Sophie

Sophie

distrib > Mandriva > 2010.2 > x86_64 > by-pkgid > a58d85af59edf7fb701c73ea3ce1c5aa > files > 12

hevea-1.10-4mdv2010.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>

<META http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<META name="GENERATOR" content="hevea 1.10">
<META name="Author" content="Luc Maranget">
<LINK rel="stylesheet" type="text/css" href="manual.css">
<TITLE>Implemented Packages</TITLE>
</HEAD>
<BODY >
<A HREF="manual038.html"><IMG SRC="previous_motif.gif" ALT="Previous"></A>
<A HREF="manual022.html"><IMG SRC="contents_motif.gif" ALT="Up"></A>
<HR>
<H2 CLASS="section"><A NAME="htoc129">B.17</A>&#XA0;&#XA0;Implemented Packages</H2><UL>
<LI><A HREF="manual-packages.html#toc101">AMS compatibility</A>
</LI><LI><A HREF="manual-packages.html#toc102">The <TT>array</TT> and <TT>tabularx</TT>
packages</A>
</LI><LI><A HREF="manual-packages.html#toc103">The <TT>calc</TT> package</A>
</LI><LI><A HREF="manual-packages.html#toc104">Specifying the document input encoding, the <TT>inputenc</TT> package</A>
</LI><LI><A HREF="manual-packages.html#toc105">More symbols</A>
</LI><LI><A HREF="manual-packages.html#toc106">The <TT>comment</TT> package</A>
</LI><LI><A HREF="manual-packages.html#toc107">Multiple Indexes with the <TT>index</TT> and
<TT>multind</TT> packages</A>
</LI><LI><A HREF="manual-packages.html#toc108">&#X201C;Natural&#X201D; bibliographies, the <TT>natbib</TT> package </A>
</LI><LI><A HREF="manual-packages.html#toc109">Multiple bibliographies</A>
</LI><LI><A HREF="manual-packages.html#toc110">Support for <TT>babel</TT></A>
</LI><LI><A HREF="manual-packages.html#toc111">The <TT>url</TT> package</A>
</LI><LI><A HREF="manual-packages.html#toc112">Verbatim text: the <TT>moreverb</TT> and
<TT>verbatim</TT> packages</A>
</LI><LI><A HREF="manual-packages.html#toc113">Typesetting computer languages: the <TT>listings</TT> package</A>
</LI><LI><A HREF="manual-packages.html#toc114">(Non-)Multipage tabular material</A>
</LI><LI><A HREF="manual-packages.html#toc115">Typesetting inference rules: the
 <TT>mathpartir</TT> package</A>
</LI><LI><A HREF="manual-packages.html#toc116">The <TT>ifpdf</TT> package</A>
</LI><LI><A HREF="manual-packages.html#toc117">Typesetting Thai</A>
</LI><LI><A HREF="manual-packages.html#toc118">Other packages</A>
</LI></UL>
<P><A NAME="implemented:package"></A>
</P><P>H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A distribution includes <TT>.hva</TT> packages that are
implementations of L<sup>A</sup>T<sub>E</sub>X packages.
Packages described in the &#X201C;<EM>Blue Book</EM>&#X201D; (<TT>makeidx</TT>,
<TT>ifthen</TT>, <TT>graphics</TT> &#X2014;and <TT>graphicx</TT>!&#X2014;,
<TT>color</TT>, <TT>alltt</TT>) are provided. Additionnaly, quite a
few extra packages are provided. I provide no full documentation for
these packages, users should refer to the first pages of the package
documentation, which can usually be found in the book&#XA0;[<A HREF="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</A>],
in your local
L<sup>A</sup>T<sub>E</sub>X installation or in a TeX CTAN-archive.</P><P>At the moment, most package options are ignored, except for the babel
package, where it is essential.</P><H3 CLASS="subsection"><A NAME="toc101"></A><A NAME="htoc130">B.17.1</A>&#XA0;&#XA0;AMS compatibility</H3><P>
<A NAME="@default204"></A>H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A <TT>amsmath</TT> package defines some of the constructs of the
<TT>amsmath</TT> package. At the moment, supported constructs are
the <CODE>cases</CODE> environment and matrix
environments&#XA0;[<A HREF="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</A>, Section&#XA0;8.4], the
environments for multi-line displayed
equations (<CODE>gather</CODE>,
<CODE>split</CODE>,&#X2026;)&#XA0;[<A HREF="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</A>, Section&#XA0;8.5] and the
<CODE>\numberwithin</CODE> command&#XA0;[<A HREF="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</A>, Section&#XA0;8.6.2].</P><P><A NAME="@default205"></A>H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A provides support for the <TT>amssymb</TT> symbols using
Unicode. I found Unicode equivalent for most symbols. However, a few symbols
remain undefined (<EM>e.g.</EM> <CODE>\varsubsetneqq</CODE>).</P><H3 CLASS="subsection"><A NAME="toc102"></A><A NAME="htoc131">B.17.2</A>&#XA0;&#XA0;The <TT>array</TT> and <TT>tabularx</TT>
packages</H3><P><A NAME="arraypack"></A>
<A NAME="@default206"></A><A NAME="@default207"></A>The <TT><A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/array.html">array</A></TT>
package is described in
[<A HREF="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</A>, Section&#XA0;5.3] and in the local documentation of modern L<sup>A</sup>T<sub>E</sub>X
installations.
It is a compatible extension of L<sup>A</sup>T<sub>E</sub>X arrays (see&#XA0;<A HREF="manual032.html#arraydef">B.10.2</A>).
Basically, it provides new column specifications
and a <CODE>\newcolumntype</CODE> construct for user-defined column
specifications.
Table&#XA0;<A HREF="#arraytable">1</A> gives a summary of the new column
specifications and of how H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A
implements them.
</P><BLOCKQUOTE CLASS="table"><DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV>
<DIV CLASS="caption"><TABLE CELLSPACING=6 CELLPADDING=0><TR><TD VALIGN=top ALIGN=left>Table 1: <A NAME="arraytable"></A> Column specifications from the
<TT>array</TT> package</TD></TR>
</TABLE></DIV>
<DIV CLASS="center">
<TABLE CELLSPACING=6 CELLPADDING=0 WIDTH="70%"><TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left NOWRAP><CODE>m{</CODE><I>width</I><CODE>}</CODE></TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left>Equivalent to the <CODE>p</CODE> column specification (the <I>width</I>
argument is ignored, entries are typeset in paragraph mode with
paragraph breaks being reduced to a single line break), except that the entries
are centered vertically.</TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left NOWRAP><CODE>b{</CODE><I>width</I><CODE>}</CODE></TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left>Equivalent to the <CODE>p</CODE> column specification, except that the entries
are bottom-aligned vertically.</TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left NOWRAP><CODE>&gt;{</CODE><I>decl</I><CODE>}</CODE></TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left>Can be used before <CODE>l</CODE>, <CODE>c</CODE>, <CODE>r</CODE>,
<CODE>p{</CODE>&#X2026;<CODE>}</CODE>, <CODE>m{</CODE>&#X2026;<CODE>}</CODE> or
<CODE>b{</CODE>&#X2026;<CODE>}</CODE>.
It inserts <I>decl</I> in front of the entries in the corresponding
column.</TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left NOWRAP><CODE>&lt;{</CODE><I>decl</I><CODE>}</CODE></TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left>Can be used after <CODE>l</CODE>, <CODE>c</CODE>, <CODE>r</CODE>,
<CODE>p{</CODE>&#X2026;<CODE>}</CODE>, <CODE>m{</CODE>&#X2026;<CODE>}</CODE> or
<CODE>b{</CODE>&#X2026;<CODE>}</CODE>.
It inserts <I>decl</I> after entries in the corresponding
column.</TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
<TR><TD VALIGN=top ALIGN=left NOWRAP><CODE>!{</CODE><I>decl</I><CODE>}</CODE></TD><TD VALIGN=top ALIGN=center NOWRAP>&#XA0;&#XA0;</TD><TD VALIGN=top ALIGN=left>Equivalent to <CODE>@{</CODE><I>decl</I><CODE>}</CODE></TD></TR>
<TR><TD CLASS="hbar" COLSPAN=3></TD></TR>
</TABLE>
</DIV>
<DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></BLOCKQUOTE><P>Note that <EM>centered</EM>, <EM>top-aligned</EM> or <EM>bottom-aligned</EM>
in the vertical direction, do not
have exactly the same meaning in L<sup>A</sup>T<sub>E</sub>X and in HTML. However, the
aspect is the same when all columns agree w.r.t. vertical alignment.
Ordinary column types (<CODE>c</CODE>, <CODE>l</CODE> and <CODE>r</CODE>)
do not specify vertical alignment, which therefore becomes browser
dependent.</P><P>The <CODE>&gt;{</CODE><I>decl</I><CODE>}</CODE> and <CODE>&lt;{</CODE><I>decl</I><CODE>}</CODE>
constructs permit the encoding of T<sub>E</sub>X <CODE>\cases</CODE> macro as follows:
</P><PRE CLASS="verbatim">\def\cases#1{\left\{\begin{array}{l&gt;{$}l&lt;{$}}#1\end{array}\right.}
</PRE><P>(This is an excerpt of the <TT>latexcommon.hva</TT> file.)</P><P>New column specifications are defined by the <CODE>\newcolumntype</CODE>
construct:
</P><DIV CLASS="flushleft">
&#XA0;&#XA0;<CODE>\newcolumntype{</CODE><I>col</I><CODE>}[</CODE><I>narg</I><CODE>]{</CODE><I>body</I><CODE>}</CODE>
</DIV><P>
Where <I>col</I> is one letter, the optional <I>narg</I> is a
number (defaults to <TT>0</TT>), and <TT>body</TT> is built up with
valid column specifications and macro-argument references
(<CODE>#</CODE><I>int</I>).
Examples are:
</P><PRE CLASS="verbatim">\newcolumntype{C}{&gt;{\bf}c}
\newcolumntype{E}[1]{*{#1}{c}}
\begin{tabular}{CE{3}}\hline
one &amp; two &amp; three &amp; four \\
five &amp; six &amp; seven &amp; eight \\ \hline
\end{tabular}
</PRE><P>The column specification
<TT>C</TT> means that entries will be typeset centered and using bold
font, while the column specifications <CODE>E{</CODE><I>num</I><CODE>}</CODE>
stands for <I>num</I> centered columns. We get:</P><TABLE CELLSPACING=6 CELLPADDING=0><TR><TD CLASS="hbar" COLSPAN=4></TD></TR>
<TR><TD ALIGN=center NOWRAP><B>one</B></TD><TD ALIGN=center NOWRAP>two</TD><TD ALIGN=center NOWRAP>three</TD><TD ALIGN=center NOWRAP>four</TD></TR>
<TR><TD ALIGN=center NOWRAP><B>five</B></TD><TD ALIGN=center NOWRAP>six</TD><TD ALIGN=center NOWRAP>seven</TD><TD ALIGN=center NOWRAP>eight</TD></TR>
<TR><TD CLASS="hbar" COLSPAN=4></TD></TR>
</TABLE><P>H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A implements column specifications with commands defined in the
<CODE>\newcommand</CODE> style. Thus, they have the same behavior as regards
double definition, which is not performed and induces a warning
message.
Thus, a column specification that is
first defined in a <TT>macro.hva</TT> specific
file, overrides the document definition.</P><P>The <TT><A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/tabularx.html">tabularx</A></TT>
package&#XA0;[<A HREF="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</A>, Section&#XA0;5.3.5] provides a new tabular
environment <CODE>tabularx</CODE> and a new column type <CODE>X</CODE>. H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A
makes the former equivalent to <CODE>tabular</CODE> and the latter
equivalent to <CODE>p{</CODE><I>ignored</I><CODE>}</CODE>. By contrast with the
subtle array formatting that the <TT>tabularx</TT> package performs,
this may seem a crude implementation. However, rendering is usually
correct, although different.</P><P>More generally and from the HTML point of view such sophisticated
formatting is browser job in the first place.
However, the HTML definition allows suggested widths or heights for
table entries and table themselves.
From H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A point of view, drawing the border line between what can be
specified and what can be left to the browser is not obvious at all.
At the moment H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A choice is not to specify too much (in
particular, all length
arguments, either to column specifications or to the arrays
themselves, are ignored). As a consequence, the final, browser viewed,
aspect of arrays will usually be different from their printed
aspect.</P><H3 CLASS="subsection"><A NAME="toc103"></A><A NAME="htoc132">B.17.3</A>&#XA0;&#XA0;The <TT>calc</TT><A NAME="calc"></A> package</H3><P>
<A NAME="@default208"></A>The <TT><A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/calc.html">calc</A></TT>
package enables using traditional, infix, notation for
arithmetic operations
inside the <I>num</I> argument to the
<CODE>\setcounter{</CODE><I>name</I><CODE>}{</CODE><I>num</I><CODE>}</CODE>
and <CODE>\addtocounter{</CODE><I>name</I><CODE>}{</CODE><I>num</I><CODE>}</CODE>
constructs (see&#XA0;[<A HREF="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</A>, Section&#XA0;A.4])</P><P>The <TT>calc</TT> package provides a similar extension of the syntax
of the <I>len</I> argument to the <CODE>\setlength</CODE> and
<CODE>\addtolength</CODE> constructs.
H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A does not implement this extension, since it does not
implement length registers in the first place.</P><H3 CLASS="subsection"><A NAME="toc104"></A><A NAME="htoc133">B.17.4</A>&#XA0;&#XA0;Specifying <A NAME="inputenc"></A>the document input encoding, the <TT>inputenc</TT> package</H3><P>
<A NAME="@default209"></A>The <TT><A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/inputenc.html">inputenc</A></TT>
package enables L<sup>A</sup>T<sub>E</sub>X to process a file
according to various <EM>8&#XA0;bits</EM> encodings, plus <TT>UTF-8</TT>.
The one used encoding is specified as an option while loading the package
<CODE>\usepackage[</CODE><I>encoding</I><CODE>]{inputenc}</CODE>.
At the moment, H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A recognizes ten latin encodings
(from <TT>latin1</TT> to <TT>latin10</TT>),
the <TT>koi8-r</TT> encoding,
the <TT>ascii</TT> encoding,
four windows encodings, the <TT>applemac</TT> encoding, and the
<TT>utf8</TT> encoding.
It is important to notice that loading the <CODE>inputenc</CODE> package
alters the HTML document charset.
For instance if the <TT>latin9</TT> input encoding is selected by:
</P><PRE CLASS="verbatim">\usepackage[latin9]{inputenc}
</PRE><P>Then, the document charset is <CODE>ISO-8859-15</CODE>, which is an
enhanced version of <CODE>ISO-8859-1</CODE> with some characters
for &#X152;, &#X153; and &#X20AC;.
The rationale behind changing the output document charset at the same
time as changing the input encoding is to allow
non-ascii bytes in the input file to be replicated as
themselves in the output file.</P><P><A NAME="@default210"></A>
However, one can change the document charset (and the output
translator) by using the internal command <CODE>\@def@charset</CODE>.
For instance, one can specify <TT>latin1</TT> encoding, while
producing HTML pages in ascii:
</P><PRE CLASS="verbatim">\usepackage[latin1]{inputenc}
%HEVEA\@def@charset{US-ASCII}
</PRE><P>See section&#XA0;<A HREF="manual018.html#encodings">8.6</A> for a more thorough description of HTML
charset management.</P><P><A NAME="@default211"></A>The <TT>inputenc</TT> package also provides the
command&#XA0;<CODE>\inputcoding{</CODE><I>encoding</I><CODE>}</CODE> that
changes the input encoding at any time.
The argument <I>encoding</I> can be any of the options accepted
by <CODE>\usepackage[</CODE><I>encoding</I><CODE>]{inputenc}</CODE>.
The command&#XA0;<CODE>\inputcoding</CODE> of H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A
follows the behavior of its L<sup>A</sup>T<sub>E</sub>X counterpart, it the sense
that it obeys scope rules.
Notice that <CODE>\inputcoding</CODE> does not change the document output
encoding and charset.</P><H3 CLASS="subsection"><A NAME="toc105"></A><A NAME="htoc134">B.17.5</A>&#XA0;&#XA0;More symbols</H3><P>
H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A implements the following packages: <TT>latexsym</TT>
<TT>amssymb</TT>, <TT>textcomp</TT> (a.k.a. &#X201C;Text companion&#X201D;)
and <TT>eurosym</TT> (a nice &#X20AC; symbol in L<sup>A</sup>T<sub>E</sub>X).</P><H3 CLASS="subsection"><A NAME="toc106"></A><A NAME="htoc135">B.17.6</A>&#XA0;&#XA0;The <TT>comment</TT><A NAME="commentpack"></A> package</H3><P>
<A NAME="@default212"></A>The <TT><A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/comment.html">comment</A></TT> package provides two commands,
<CODE>\excludecomment</CODE> and <CODE>\includecomment</CODE>, for (re-)defining
new environments that ignore their content or that do nothing. The
comment environment is also defined as an environment of the first
kind.</P><H3 CLASS="subsection"><A NAME="toc107"></A><A NAME="htoc136">B.17.7</A>&#XA0;&#XA0;Multiple Indexes with the <TT>index</TT> and
<TT>multind</TT><A NAME="multind"></A> packages</H3><P>
<A NAME="@default213"></A><A NAME="@default214"></A>H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A supports several simultaneous indexes, following the scheme
of the
<TT><A HREF="ftp://tug.ctan.org/pub/tex-archive/help/Catalogue/entries/index.html">index</A></TT> package,
which is present in modern L<sup>A</sup>T<sub>E</sub>X distributions.
This scheme is backward compatible with the standard indexing scheme
of L<sup>A</sup>T<sub>E</sub>X.</P><P>Support is not complete, but the most useful commands are available.
More precisely, H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A knows the following commands:
</P><DL CLASS="description"><DT CLASS="dt-description">
<B><TT>\newindex{</TT><I>tag</I><TT>}{</TT><I>ext</I><TT>}{</TT><I>ignored</I><TT>}{</TT><I>indexname</I><TT>}</TT></B></DT><DD CLASS="dd-description">
Declare an index.
The first argument <I>tag</I> is a tag to select this index in other
commands; <I>ext</I> is the extension of the index information file
generated by L<sup>A</sup>T<sub>E</sub>X (e.g., <TT>idx</TT>); <I>ignored</I> is ignored by
H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A; and <I>indexname</I> is the title of the index.
There also exists a
<CODE>\renewindex</CODE> commands that takes the same arguments and that can be
used to redefine previously declared indexes.
</DD><DT CLASS="dt-description"><TT><B>\makeindex</B></TT></DT><DD CLASS="dd-description"> Perform
<CODE>\newindex{default}{idx}{ind}{Index}</CODE>.
</DD><DT CLASS="dt-description"><B><TT>\index[</TT><I>tag</I><TT>]{</TT><I>arg</I><TT>}</TT></B></DT><DD CLASS="dd-description">
Act as the L<sup>A</sup>T<sub>E</sub>X <CODE>\index</CODE> command except that the information
extracted from <I>arg</I> goes to the <I>tag</I> index.
The <I>tag</I> argument defaults to <CODE>default</CODE>, thereby yielding
standard L<sup>A</sup>T<sub>E</sub>X behavior for the <CODE>\index</CODE> command without an
optional argument.
There also exists a stared-variant <CODE>\index*</CODE> that Additionally
typesets <I>arg</I>.
</DD><DT CLASS="dt-description"><B><TT>\printindex[</TT><I>tag</I><TT>]</TT></B></DT><DD CLASS="dd-description"> Compute, format and
output index whose tag is <I>tag</I>. The <I>tag</I> argument
defaults to <CODE>default</CODE>.
</DD></DL><P>The <TT><A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/multind.html">multind</A></TT> package is
supported to some extend, but <TT>index</TT> is definitely to be
preferred.</P><H3 CLASS="subsection"><A NAME="toc108"></A><A NAME="htoc137">B.17.8</A>&#XA0;&#XA0;&#X201C;Natural&#X201D; bibliographies, the <TT>natbib</TT> package </H3><P>
L<sup>A</sup>T<sub>E</sub>X <A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/natbib.html">version of <TT>natbib</TT></A>
is present in modern installations.<A NAME="@default215"></A></P><P>Implementation is quite complete and compatible
with version&#XA0;8.0 of the <TT>natbib</TT> package
(with the <TT>keyval</TT> style command <CODE>\setcitestyle</CODE>).</P><P>Unimplemented features are the sorting and compression of references.
Automatic generation of an index of citatations is handled, but
the current implementation probably is quite fragile.</P><H3 CLASS="subsection"><A NAME="toc109"></A><A NAME="htoc138">B.17.9</A>&#XA0;&#XA0;Multiple bibliographies</H3><H4 CLASS="subsubsection">The <TT>multibib</TT> package</H4><P>
<A NAME="@default216"></A><A NAME="@default217"></A>
H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A provides a slighty incomplete implementation of the
<TT>multibib</TT> package. The one non-implemented feature is the
simultaneous definition of more than one bibliography.
That is one cannot invoke <CODE>\newcites</CODE> as follows:
</P><PRE CLASS="verbatim">\newcites{suf1, suf2}{Title1, Title2}
</PRE><P>Instead, one should perform to calls to the <CODE>\newcites</CODE> command:
</P><PRE CLASS="verbatim">\newcites{suf1}{Title1}\newcites{suf2}{Title2}
</PRE><H4 CLASS="subsubsection">The <TT>chapterbib</TT> package</H4><P>
<A NAME="@default218"></A>
A basic implementation is provided. At the moment, you can
define one bibliography per included file and no toplevel
bibliography.
H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A implementation of this package recognizes the option
<CODE>sectionbib</CODE> and provides the command <CODE>\sectionbib</CODE>
to change the sectioning command introduced by bibliographies.</P><H3 CLASS="subsection"><A NAME="toc110"></A><A NAME="htoc139">B.17.10</A>&#XA0;&#XA0;Support for <TT>babel</TT></H3><P><A NAME="@default219"></A>
</P><H4 CLASS="subsubsection">B.17.10.1&#XA0;&#XA0;Basics</H4><P>
H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A offers support for the L<sup>A</sup>T<sub>E</sub>X package <TT>babel</TT>. When it reads the command
</P><PRE CLASS="verbatim">  \usepackage[lang-list]{babel}
</PRE><P>it loads <TT>babel.hva</TT>, and sends it the saved <TT>lang-list</TT>. The
file <TT>babel.hva</TT> then looks at each language (say <TT>x</TT>) in it, and loads <TT>x.hva</TT>, which offers support for the language <TT>x</TT>. As in L<sup>A</sup>T<sub>E</sub>X, the last language in the list is selected as default. As an example the command
</P><PRE CLASS="verbatim">\usepackage[english,french,german]{babel}
</PRE><P>would load <TT>babel.hva</TT>, then the files <TT>english.hva,french.hva,german.hva</TT> containing the respective definitions, and finally activate the definitions in <TT>german.hva</TT> and sets the current language to german.</P><H4 CLASS="subsubsection">B.17.10.2&#XA0;&#XA0;Commands and languages</H4><P>
The following babel commands for changing and querying the language work as in L<sup>A</sup>T<sub>E</sub>X :
</P><OL CLASS="enumerate" type=1><LI CLASS="li-enumerate">
<CODE>\selectlanguage</CODE> : to change the language
</LI><LI CLASS="li-enumerate"><CODE>\iflanguage</CODE> : to branch after comparing with current language
</LI></OL><P>The language specific details are described in the corresponding
<CODE>.hva</CODE> file, just as in the <CODE>.sty</CODE> file for L<sup>A</sup>T<sub>E</sub>X. Users
need to supply this file for their language, or modify/check the files
if thay are already supplied with the distribution. The list of
languages is given below.</P><DIV CLASS="center"><A NAME="@default220"></A>
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=1><TR><TD ALIGN=left NOWRAP>american</TD><TD ALIGN=left NOWRAP>austrian</TD><TD ALIGN=left NOWRAP>brazil</TD><TD ALIGN=left NOWRAP>catalan</TD></TR>
<TR><TD ALIGN=left NOWRAP>check</TD><TD ALIGN=left NOWRAP>croatian</TD><TD ALIGN=left NOWRAP>danish</TD><TD ALIGN=left NOWRAP>dutch</TD></TR>
<TR><TD ALIGN=left NOWRAP>english</TD><TD ALIGN=left NOWRAP>esperanto</TD><TD ALIGN=left NOWRAP>finnish</TD><TD ALIGN=left NOWRAP>french</TD></TR>
<TR><TD ALIGN=left NOWRAP>galician</TD><TD ALIGN=left NOWRAP>german</TD><TD ALIGN=left NOWRAP>italian</TD><TD ALIGN=left NOWRAP>magyar</TD></TR>
<TR><TD ALIGN=left NOWRAP>norsk</TD><TD ALIGN=left NOWRAP>nynorsk</TD><TD ALIGN=left NOWRAP>polish</TD><TD ALIGN=left NOWRAP>portuges</TD></TR>
<TR><TD ALIGN=left NOWRAP>romanian</TD><TD ALIGN=left NOWRAP>russian</TD><TD ALIGN=left NOWRAP>slovak</TD><TD ALIGN=left NOWRAP>slovene</TD></TR>
<TR><TD ALIGN=left NOWRAP>spanish</TD><TD ALIGN=left NOWRAP>swedish</TD><TD ALIGN=left NOWRAP>turkish</TD><TD ALIGN=left NOWRAP>&nbsp;</TD></TR>
</TABLE>
</DIV><H4 CLASS="subsubsection">B.17.10.3&#XA0;&#XA0;Writing <TT>hva</TT> files</H4><P>The languages for which <TT>.hva</TT> files are available with the
distribution are english, french, german, austrian and czech. These
may need to be modified as not all accents and hyphenation techniques
are supported.</P><P>They can be written/modified as simple T<sub>E</sub>X files (see the section &#XA0;<A HREF="manual038.html#texmacros">B.16.1.1</A> on writing T<sub>E</sub>X macros for details). As an example, one may also take a look at the file <A HREF="../html/french.hva">french.hva</A>, which describes the details for french. </P><P>Note how all definitions are <EM>inside</EM> the definition for
<CODE>\french@babel</CODE>, which is the command that
<CODE>\selectlanguage{french}</CODE> would call. Similar commands need to be
provided (<EM>i.e.</EM> <CODE>\x@babel</CODE> in <CODE>\x.hva</CODE> for language
<CODE>x</CODE>).</P><P>Some definitions may involve specifying Unicode characters, for doing
so, using the <CODE>\@print@u</CODE> is recommended (cf. Section&#XA0;<A HREF="manual018.html#internal">8.3</A>).
The definition of Unicode characters can be found at
<A HREF="http://www.unicode.org/charts/">http://www.unicode.org/charts/</A>.
Most language specific unicode characters can be found in the first
few files.</P><H3 CLASS="subsection"><A NAME="toc111"></A><A NAME="htoc140">B.17.11</A>&#XA0;&#XA0;The <A NAME="urlpackage"></A><TT>url</TT> package</H3><P>
<A NAME="@default221"></A><A NAME="@default222"></A><A NAME="@default223"></A>L<sup>A</sup>T<sub>E</sub>X <A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/url.html">source</A>.</P><P>This package in fact provides a enhanced <CODE>\verb</CODE> command that
can appear inside other command arguments.
This command is named <CODE>\url</CODE>,
but it can be used for any verbatim text, including DOS-like path
names.
Hence, one can insert urls in one&#X2019;s document without worrying about
L<sup>A</sup>T<sub>E</sub>X active characters:
</P><PRE CLASS="verbatim">This is a complicated url: \url{http://foo.com/~user#label%coucou}.
</PRE><P>which gets typeset as: &#X201C;This is a complicated url: <TT>http://foo.com/~user#label%coucou</TT>.&#X201D;</P><P>The main use for the <CODE>\url</CODE> command is to specify urls as arguments to
H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A commands for hyperlinks (see section&#XA0;<A HREF="manual018.html#hyperlink">8.1.1</A>):
</P><PRE CLASS="verbatim">\hevea{} home page is
\ahrefurl{\url{http://hevea.inria.fr/}}
</PRE><P>It yields: &#X201C;H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A home page is
<TT><A HREF="http://hevea.inria.fr/">http://hevea.inria.fr/</A></TT>&#X201D;.</P><P><A NAME="@default224"></A>
However the <CODE>\url</CODE> command is fragile, as a consequence it
cannot be used inside <CODE>\footahref</CODE> first argument (This is a
L<sup>A</sup>T<sub>E</sub>X problem, not an H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A one).
The <TT>url</TT> package solves this problem by providing the
<CODE>\urldef</CODE> command
for defining commands whose body is typeset by using <CODE>\url</CODE>:
</P><PRE CLASS="verbatim">\urldef{\heveahome}{\url}{http://hevea.inria.fr/}
</PRE><P>Such a source defines the robust command <CODE>\heveahome</CODE> as the
intended url.
Hence the following source works as expected:
</P><PRE CLASS="verbatim">Have a look at \footurl{\heveahome}{\hevea{} home page}
</PRE><P>It yields: &#X201C;Have a look at <A HREF="http://hevea.inria.fr/">H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A home page</A>&#X201D;.</P><P>Using <CODE>\url</CODE> inside command definitions with a
<CODE>#</CODE><I>i</I> argument is a bad idea, since
it gives &#X201C;verbatim&#X201D; a rather random meaning.
Unfortunately, in some situations (e.g, no <CODE>%</CODE>, no <CODE>#</CODE>),
it may work in L<sup>A</sup>T<sub>E</sub>X. By
contrast, it does not work in H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A. In such situations,
<CODE>\urldef</CODE> should be used.</P><P>H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A implementation is somehow compatible at the &#X201C;programming level&#X201D;.
Thus, users can define new commands whose argument is understood
verbatim. The <TT>urlhref.hva</TT> style file
from the distribution
takes advantage of this to define the <CODE>\url</CODE> command, so that it both
typesets an url and inserts a link to it.

</P><PRE CLASS="verbatim">\input{urlhref.hva}
Have a look at \url{http://hevea.inria.fr/}
</PRE><P>It yields &#X201C;Have a look at <TT><A HREF="http://hevea.inria.fr/">http://hevea.inria.fr/</A></TT>&#X201D;.

The <TT>urlhref.hva</TT>
style file (which is an H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A style file and not a L<sup>A</sup>T<sub>E</sub>X
style file) can be adequate for bibliographic references,
which often use <CODE>\url</CODE> for its typesetting power.
Of course, loading <TT>urlhref.hva</TT> only makes sense when
all arguments to <CODE>\url</CODE> are urls&#X2026;</P><H3 CLASS="subsection"><A NAME="toc112"></A><A NAME="htoc141">B.17.12</A>&#XA0;&#XA0;Verbatim text: the <TT>moreverb</TT> and
<TT>verbatim</TT> packages</H3><P>
These two packages provide new commands and environments for
processing verbatim text.
I recommend using
<TT><A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/moreverb.html">moreverb</A></TT>
rather than&#XA0;<TT>verbatim</TT>,
since H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A&#XA0;implementation is more advanced for the former package.</P><H3 CLASS="subsection"><A NAME="toc113"></A><A NAME="htoc142">B.17.13</A>&#XA0;&#XA0;Typesetting <A NAME="listings:package"></A>computer languages: the <TT>listings</TT> package</H3><P>
<A NAME="@default225"></A>I strongly recommend the
<TT><A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/listings.html">listings</A></TT> package.
Learning the user interface requires a little effort, but it is worth
it.</P><P>H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A features a quite compatible implementation, please refer to
the original package documentation.
Do not hesitate to report discrepancies.
Note that H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A does not produce very compact
HTML in case you use this package.
This can be cured by
giving <TT>hevea</TT> the command-line option <A NAME="@default226"></A><TT>-O</TT>
(see&#XA0;<A HREF="manual041.html#heveaoptions">C.1.1.4</A>).</P><P>The <TT>lstlisting</TT> environment is styled through
an homonymous style class (see <A HREF="manual019.html#css:change:all">9.2</A> and&#XA0;<A HREF="manual019.html#css:change">9.3</A>) and
most <TT>lstlisting</TT> environments get translated to <CODE>DIV</CODE>
elements with the approriate <CODE>\getenvclass{lstlisting}</CODE> class, 
which, by default is <TT>lstlisting</TT>.
A few points deserve mention:
</P><OL CLASS="enumerate" type=1><LI CLASS="li-enumerate">
The definition of default style class <TT>lstlisting</TT> includes
the important declarations
<CODE>font-family:monospace;</CODE> and <CODE>white-space:pre;</CODE>, which, more or less,
specify non-proportional font and mandatory line breaks.
In case you replace <TT>lstlisting</TT> by another style class (by
<CODE>\setenvclass{lstlisting}{</CODE><I>another one</I><CODE>}</CODE>), your
alternate definition should probably feature an identical
specification. Otherwise, rendering would be poor, as regards spacing
and line breaks.
Here is how specific listings are styled.
We first define a new environment to typeset programs written in the C
language, by using the command <CODE>\lstnewenvironment</CODE>:
<PRE CLASS="verbatim">\lstdefinestyle{colors}{keywordstyle={\bf\color{blue}}, commentstyle={\em\color{magenta}}}
\lstnewenvironment{clisting}
  {\setenvclass{lstlisting}{clisting}\lstset{language=C, style=colors}}
  {}
</PRE>The command
<CODE>\lstnewenvironment{</CODE><I>name</I><CODE>}{</CODE><I>starting
code</I><CODE>}{</CODE><I>ending code</I><CODE>}</CODE> is from the
<TT>listings</TT> package, with similar semantics.
In the starting code above, the fragment
<CODE>\setenvclass{lstlisting}{clisting}</CODE> instructs H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A to
use the style class <TT>clisting</TT> locally (notice that it could just
be another name). The style class <TT>clisting</TT> is defined in
the document preamble as follows:
<PRE CLASS="verbatim">\newstyle{.clisting}{font-family:monospace;white-space:pre;
border-left:solid black;padding-left:2ex;margin-left:2ex;}
</PRE>Typesetting a C&#XA0;listing with a black border on the left is then as
simple as:
<PRE CLASS="verbatim">\begin{clisting}
/* Compute, guess what! */
int fact(int n) {
  int r = 1 ;
  for ( ; n &gt; 0 ; n--) {
    r *= n ;
  }
  return r ;
}
\end{clisting}
</PRE>The final result is:

<DIV CLASS="clisting"><FONT COLOR="fuchsia"><EM>/* Compute, guess what! */</EM></FONT>
<FONT COLOR="blue"><B>int</B></FONT> fact(<FONT COLOR="blue"><B>int</B></FONT> n) {
  <FONT COLOR="blue"><B>int</B></FONT> r = 1 ;
  <FONT COLOR="blue"><B>for</B></FONT> ( ; n &gt; 0 ; n--) {
    r *= n ;
  }
  <FONT COLOR="blue"><B>return</B></FONT> r ;
}</DIV></LI><LI CLASS="li-enumerate">When listings are framed, that is, when some
<TT>frame=</TT>&#X2026; or <TT>background=</TT>&#X2026; keyval
specifications are active, they no longer get translated to <CODE>DIV</CODE>
elements.
Instead they get translated to one cell tables whose <CODE>TD</CODE>
and <CODE>TABLE</CODE> elements
are styled through style classes <TT>lstlisting</TT> and
<TT>lstframe</TT>, respectively. Of course, those two style classes
follow the usual <CODE>\setenvclass</CODE>/<CODE>\getenvclass</CODE> mechanism.
That way, one can for instance center all framed listings by issuing
the following declaration in the document preamble:
<PRE CLASS="verbatim">\newstyle{.lstframe}{margin:auto;}
</PRE>Notice that the default style class <TT>lstframe</TT> is empty.</LI><LI CLASS="li-enumerate"><A NAME="@default227"></A>Unfortunately the <CODE>white-space:pre;</CODE> style declaration is still a
bit young, and some browsers implement it in rather uncomplete
fashion. This is particularily true as regards text copy-pasted from
browser display. In case you want to provide your readers with easy
copy-paste of <TT>listings</TT>, you can, by issuing the command
<CODE>\lstavoidwhitepre</CODE> in the document preamble. Then,
<CODE>white-space:pre;</CODE> is not used any longer: spaces get rendered
by non-breaking space entities and linebreaks by <CODE>&lt;BR&gt;</CODE> elements,
which significantly increase output size. However, as a positive
consequence, display remains correct and text copy-pasted from browser
display indeed possesses the linebreaks shown in display.
</LI></OL><H3 CLASS="subsection"><A NAME="toc114"></A><A NAME="htoc143">B.17.14</A>&#XA0;&#XA0;(Non-)Multipage tabular material</H3><P>
<A NAME="@default228"></A><A NAME="@default229"></A>L<sup>A</sup>T<sub>E</sub>X source
for the
<TT><A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/longtable.html">longtable</A></TT>
and 
<TT><A HREF="http://www.ctan.org/tex-archive/help/Catalogue/entries/supertabular.html">supertabular</A></TT>
packages.</P><P>Those two packages provide L<sup>A</sup>T<sub>E</sub>X users with the
possibility to typeset tabular material over several
pages&#XA0;[<A HREF="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</A>, Section&#XA0;5.4]. Of course, H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A
does not care much about physical pages.
Thus the <TT>supertabular</TT>
and <TT>longtable</TT> environments are rendered more or less
as <TT>tabular</TT> environments inside <TT>table</TT> environments.</P><H3 CLASS="subsection"><A NAME="toc115"></A><A NAME="htoc144">B.17.15</A>&#XA0;&#XA0;Typesetting inference rules: the
<A NAME="mathpartir:package"></A> <TT><A NAME="mathpartir">mathpartir</A></TT> package</H3><P>
<A NAME="@default230"></A><A NAME="@default231"></A>The <TT>mathpartir</TT> package, authored by D.&#XA0;R&#XE9;my, essentially
provides two features:
</P><OL CLASS="enumerate" type=1><LI CLASS="li-enumerate">
An environment <TT>mathpar</TT> for typesetting a sequence of math formulas in mixed horizontal and vertical mode. The environment selects the best arrangement according to the line width, exactly as paragraph mode does for words.
</LI><LI CLASS="li-enumerate">A command <CODE>\inferrule</CODE> (and its starred variant) for
typsetting inferences rules.
</LI></OL><P>
We give a short description, focussing on H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A-related details.
Users are encouraged to refer to the
<A HREF="http://pauillac.inria.fr/~remy/latex/index.html#tir">original
documentation</A> of the package.</P><P>In the following, comments on rule typesetting apply to H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A output
and not to L<sup>A</sup>T<sub>E</sub>X output.</P><H4 CLASS="subsubsection">B.17.15.1&#XA0;&#XA0;The mathpar environment</H4><P><A NAME="@default232"></A></P><P>In its L<sup>A</sup>T<sub>E</sub>X version, the <TT>mathpar</TT> environment is a
&#X201C;paragraph mode for formulas&#X201D;. It allows to typeset long list of
formulas putting as many as possible on the same line:
</P><DIV CLASS="center">
<TABLE CELLSPACING=6 CELLPADDING=0><TR><TD VALIGN=middle ALIGN=left><DIV CLASS="lstlisting">\begin{mathpar}
A-Formula \and
Longer-Formula \and
And \and The-Last-One
\end{mathpar}</DIV></TD><TD VALIGN=middle ALIGN=left>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;</TD><TD VALIGN=middle ALIGN=left><DIV CLASS="mathpar">
<TABLE CLASS="mprow"><TR VALIGN="middle"><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><I>A</I>&#X2212;<I>Formula</I>&#XA0;
</TD></TR>
</TABLE></TD><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><I>Longer</I>&#X2212;<I>Formula</I>
</TD></TR>
</TABLE></TD><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><I>And</I>&#XA0;
</TD></TR>
</TABLE></TD><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><I>The</I>&#X2212;<I>Last</I>&#X2212;<I>One</I>
</TD></TR>
</TABLE></TD></TR>
</TABLE></DIV></TD></TR>
</TABLE>
</DIV><P>
In the example above, formulas are separated with <CODE>\and</CODE>. The
L<sup>A</sup>T<sub>E</sub>X implementation also changes the meaning of paragraph breaks
(either explicit as a <CODE>\par</CODE> command or implicit as a blank line)
to act as <CODE>\and</CODE>. It also redefines the command <CODE>\\</CODE> as
an explicit line-break in the flow of formulas.
</P><DIV CLASS="center">
<TABLE CELLSPACING=6 CELLPADDING=0><TR><TD VALIGN=middle ALIGN=left><DIV CLASS="lstlisting">\begin{mathpar}
\int_0^2 xdx = \frac{3}{2}
\\
\int_0^3 xdx = \frac{5}{2}
\end{mathpar}</DIV></TD><TD VALIGN=middle ALIGN=left>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;</TD><TD VALIGN=middle ALIGN=left><DIV CLASS="mathpar">
<TABLE CLASS="mprow"><TR VALIGN="middle"><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><FONT SIZE=6>&#X222B;</FONT></TD><TD CLASS="dcell"><TABLE CLASS="display"><TR><TD CLASS="dcell" ALIGN="left">2</TD></TR>
<TR><TD CLASS="dcell" ALIGN="left"><BR>
<BR>
</TD></TR>
<TR><TD CLASS="dcell" ALIGN="left">0</TD></TR>
</TABLE></TD><TD CLASS="dcell">&#XA0;<I>xdx</I>&#XA0;=&#XA0;</TD><TD CLASS="dcell"><TABLE CLASS="display"><TR><TD CLASS="dcell" ALIGN="center">3</TD></TR>
<TR><TD CLASS="hbar"></TD></TR>
<TR><TD CLASS="dcell" ALIGN="center">2</TD></TR>
</TABLE></TD></TR>
</TABLE></TD></TR>
</TABLE><TABLE CLASS="mprow"><TR VALIGN="middle"><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><FONT SIZE=6>&#X222B;</FONT></TD><TD CLASS="dcell"><TABLE CLASS="display"><TR><TD CLASS="dcell" ALIGN="left">3</TD></TR>
<TR><TD CLASS="dcell" ALIGN="left"><BR>
<BR>
</TD></TR>
<TR><TD CLASS="dcell" ALIGN="left">0</TD></TR>
</TABLE></TD><TD CLASS="dcell">&#XA0;<I>xdx</I>&#XA0;=&#XA0;</TD><TD CLASS="dcell"><TABLE CLASS="display"><TR><TD CLASS="dcell" ALIGN="center">5</TD></TR>
<TR><TD CLASS="hbar"></TD></TR>
<TR><TD CLASS="dcell" ALIGN="center">2</TD></TR>
</TABLE></TD></TR>
</TABLE></TD></TR>
</TABLE></DIV></TD></TR>
</TABLE>
</DIV><P>The H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A version is simplistic:
Formulas are typeset in math display
mode,
<CODE>\and</CODE>&#XA0;separators always produce horizontal space, while
<CODE>\\</CODE> always produce line-breaks.
However, when prefixed by <CODE>\hva</CODE> the meaning of explicit
separators is inversed: that is,
<CODE>\hva\and</CODE> produces a line-break, while <CODE>\hva\\</CODE>
produces horizontal space.
Hence, we can typeset the previous example on two lines:
</P><DIV CLASS="center">
<TABLE CELLSPACING=6 CELLPADDING=0><TR><TD VALIGN=middle ALIGN=left><DIV CLASS="lstlisting">\begin{mathpar}
A-Formula \and
Longer-Formula \hva\and
And \and The-Last-One
\end{mathpar}</DIV></TD><TD VALIGN=middle ALIGN=left>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;</TD><TD VALIGN=middle ALIGN=left><DIV CLASS="mathpar">
<TABLE CLASS="mprow"><TR VALIGN="middle"><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><I>A</I>&#X2212;<I>Formula</I>&#XA0;</TD></TR>
</TABLE></TD><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><I>Longer</I>&#X2212;<I>Formula</I>&#XA0;</TD></TR>
</TABLE></TD></TR>
</TABLE><TABLE CLASS="mprow"><TR VALIGN="middle"><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><I>And</I>&#XA0;</TD></TR>
</TABLE></TD><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><I>The</I>&#X2212;<I>Last</I>&#X2212;<I>One</I>
</TD></TR>
</TABLE></TD></TR>
</TABLE></DIV></TD></TR>
</TABLE>
</DIV><P>
It is to be noticed that the L<sup>A</sup>T<sub>E</sub>X version of the package defines
<CODE>\hva</CODE> as a no-op, so as to allow explicit instructions given to
H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A not to impact on the automatic typesetting performed by&#XA0;L<sup>A</sup>T<sub>E</sub>X.</P><H4 CLASS="subsubsection">B.17.15.2&#XA0;&#XA0;The inferrule macro</H4><P><A NAME="@default233"></A></P><P>The <CODE>\inferrule</CODE> macro is designed to typeset inference rules. It
should only be used in math mode (or display math mode). It takes
three arguments, the first being optional, specifying the label,
premises, and conclusions respectively. The premises and the
conclusions are both lists of formulas, and are separated by
<CODE>\\</CODE>.
A simple example of its use is 
</P><PRE CLASS="verbatim">\inferrule
  [label]
  {one \\ two \\ three \\ or \\ more \\ premises}
  {and \\ any \\ number \\ of \\ conclusions \\ as \\ well}
</PRE><P>which gives the following rendering:

</P><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><TABLE border=0 cellspacing=1 cellpadding=0><TR><TD align=left><SPAN STYLE="font-variant:small-caps"><FONT SIZE=2>label</FONT></SPAN></TD></TR>
<TR valign="bottom"><TD NOWRAP ALIGN="center"><I>one</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>two</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>three</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>or</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>more</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>premises</I></TD></TR>
<TR><TD height="3" bgcolor="green"></TD></TR>
<TR valign="top"><TD NOWRAP ALIGN="center"><I>and</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>any</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>number</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>of</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>conclusions</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>as</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>well</I></TD></TR>
</TABLE></TD></TR>
</TABLE><P>
Again, H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A is simplistic. Where L<sup>A</sup>T<sub>E</sub>X performs
actual typesetting, interpreting <CODE>\\</CODE> as horizontal or
vertical breaks, H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A always interpret <CODE>\\</CODE> as an
horizontal break. In fact H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A interpret all separators
(<CODE>\\</CODE>, <CODE>\and</CODE>) as horizontal breaks, when
they appear in the arguments of the <CODE>\inferrule</CODE> command.
Nethertheless prefixing separators with <CODE>\hva</CODE> yields vertical
breaks:
</P><DIV CLASS="center">
<TABLE CELLSPACING=6 CELLPADDING=0><TR><TD VALIGN=middle ALIGN=left><DIV CLASS="lstlisting">\inferrule
   {aa \hva\\ bb}
   {dd \\ ee \\ ff}</DIV></TD><TD VALIGN=middle ALIGN=left>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;</TD><TD VALIGN=middle ALIGN=left><TABLE border=0 cellspacing=1 cellpadding=0><TR valign="bottom"><TD NOWRAP ALIGN="center"><I>aa</I>&#XA0;</TD></TR>
<TR><TD NOWRAP ALIGN="center"><I>bb</I></TD></TR>
<TR><TD height="3" bgcolor="green"></TD></TR>
<TR valign="top"><TD NOWRAP ALIGN="center"><I>dd</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>ee</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>ff</I></TD></TR>
</TABLE></TD></TR>
</TABLE>
</DIV><P>The color of the horizontal rule that separates the premises and
conclusions can be changed by redefining the command
<CODE>\mpr@hhline@color</CODE>. This color must be specified as a low-level
color (cf. Section&#XA0;<A HREF="manual036.html#getcolor">B.14.2.2</A>).</P><H4 CLASS="subsubsection">B.17.15.3&#XA0;&#XA0;Options</H4><P>By default, lines are centerred in inference rules. However, this can be changed either by using <CODE>\mprset{flushleft}</CODE> or <CODE>\mprset{center}</CODE>, as shown below. 
</P><DIV CLASS="center">
<TABLE CELLSPACING=6 CELLPADDING=0><TR><TD VALIGN=middle ALIGN=left><DIV CLASS="lstlisting">$$\mprset{flushleft}
  \inferrule
    {a \\ bbb \hva\\ ccc \\ dddd}
    {e \\ ff \hva\\ gg}
$$</DIV></TD><TD VALIGN=middle ALIGN=left>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;</TD><TD VALIGN=middle ALIGN=left><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell">&#XA0;
</TD><TD CLASS="dcell"><TABLE border=0 cellspacing=1 cellpadding=0><TR valign="bottom"><TD NOWRAP ALIGN="left"><I>a</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>bbb</I>&#XA0;&#XA0;</TD></TR>
<TR><TD NOWRAP ALIGN="left"><I>ccc</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>dddd</I></TD></TR>
<TR><TD height="3" bgcolor="green"></TD></TR>
<TR valign="top"><TD NOWRAP ALIGN="left"><I>e</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>ff</I>&#XA0;</TD></TR>
<TR><TD NOWRAP ALIGN="left"><I>gg</I></TD></TR>
</TABLE></TD></TR>
</TABLE></TD></TR>
</TABLE> 
</DIV><H4 CLASS="subsubsection">B.17.15.4&#XA0;&#XA0;Derivation trees</H4><P><A NAME="@default234"></A>
The <TT>mathpartir</TT> package provides a starred variant
<CODE>\inferrule*</CODE>. In L<sup>A</sup>T<sub>E</sub>X, the boxes
produced by <CODE>\inferrule</CODE> and <CODE>\inferrule*</CODE> differ as regards
their baseline, the second being well adapted to derivation trees.
All this is irrelevant to H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A, 
but <CODE>\inferrule*</CODE> remains of interest because of its interface:
the optional argument to the <CODE>\inferrule*</CODE> command is a list of
<I>key</I><TT>=</TT><I>value</I> pairs in the style of
<TT>keyval</TT>.
This makes the variant command much more flexible.
</P><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell">

</TD><TD CLASS="dcell"><TABLE BORDER=1 CELLSPACING=0 CELLPADDING=1><TR><TD VALIGN=top ALIGN=center NOWRAP><B><TT>key</TT></B></TD><TD VALIGN=top ALIGN=left><B>Effect for value <EM>v</EM></B></TD></TR>
<TR><TD VALIGN=top ALIGN=center NOWRAP><TT>before</TT></TD><TD VALIGN=top ALIGN=left>Execute <EM>v</EM> before typesetting the rule.
Useful for instance to change the maximal width of the rule.</TD></TR>
<TR><TD VALIGN=top ALIGN=center NOWRAP><TT>left</TT></TD><TD VALIGN=top ALIGN=left>Put a label <EM>v</EM> on the left of the rule</TD></TR>
<TR><TD VALIGN=top ALIGN=center NOWRAP><TT>Left</TT></TD><TD VALIGN=top ALIGN=left>Idem.</TD></TR>
<TR><TD VALIGN=top ALIGN=center NOWRAP><TT>right</TT></TD><TD VALIGN=top ALIGN=left>As <CODE>left</CODE>, but on the right of the rule.</TD></TR>
<TR><TD VALIGN=top ALIGN=center NOWRAP><TT>Right</TT></TD><TD VALIGN=top ALIGN=left>As <CODE>Left</CODE>, but on the right of the rule.</TD></TR>
<TR><TD VALIGN=top ALIGN=center NOWRAP><TT>lab</TT></TD><TD VALIGN=top ALIGN=left>Put a label <EM>v</EM> above the inference rule, in the style
of <CODE>\inferrule</CODE>.</TD></TR>
<TR><TD VALIGN=top ALIGN=center NOWRAP><TT>Lab</TT></TD><TD VALIGN=top ALIGN=left>Idem.</TD></TR>
<TR><TD VALIGN=top ALIGN=center NOWRAP><TT>vdots</TT></TD><TD VALIGN=top ALIGN=left>Raise the rule by <EM>v</EM> and insert vertical dots, the length
argument is translated to a number of line-skips.</TD></TR>
</TABLE></TD></TR>
</TABLE><P>
Additionally, the value-less key <CODE>center</CODE> centers premises and
conclusions (this is
the default), while <CODE>flushleft</CODE> commands left aligment of
premises and conclusions (as <CODE>\mprset{flushleft}</CODE> does).
Other keys defined by the L<sup>A</sup>T<sub>E</sub>X package exist and are parsed, but
they perform no operation.</P><P>As an example, the code
</P><DIV CLASS="lstlisting">\begin{mathpar}
\inferrule* [Left=Foo]
   {\inferrule* [Right=Bar,width=8em,
                 leftskip=2em,rightskip=2em,vdots=1.5em]
      {a \and a \and bb \hva\\ cc \and dd}
      {ee}
    \and ff \and gg}
   {hh}
\hva\and
\inferrule* [lab=XX]{uu \and vv}{ww}
\end{mathpar}</DIV><P>produces the following output:
</P><DIV CLASS="mathpar">
<TABLE CLASS="mprow"><TR VALIGN="middle"><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><TABLE border=0 cellspacing=1 cellpadding=0><TR valign="bottom"><TD><SPAN STYLE="font-variant:small-caps"><FONT SIZE=2>Foo</FONT></SPAN>&#XA0;</TD><TD NOWRAP ALIGN="center"><TABLE CLASS="display"><TR valign="bottom"><TD CLASS="dcell"><TABLE border=0 cellspacing=1 cellpadding=0><TR valign="bottom"><TD NOWRAP ALIGN="center"><I>a</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>a</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>bb</I>&#XA0;</TD><TD>&#XA0;<SPAN STYLE="font-variant:small-caps"><FONT SIZE=2>Bar</FONT></SPAN></TD></TR>
<TR><TD NOWRAP ALIGN="center"><I>cc</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>dd</I></TD><TD>&#XA0;</TD></TR>
<TR><TD height="3" bgcolor="green"></TD><TD></TD></TR>
<TR valign="top"><TD NOWRAP ALIGN="center"><I>ee</I></TD><TD>&#XA0;</TD></TR>
<TR valign=middle><TD align=center>&#X22EE;<BR>
&#X22EE;</TD><TD></TD></TR>
</TABLE></TD><TD CLASS="dcell">
&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>ff</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>gg</I></TD></TR>
</TABLE></TD></TR>
<TR><TD></TD><TD height="3" bgcolor="green"></TD></TR>
<TR valign="top"><TD>&#XA0;</TD><TD NOWRAP ALIGN="center"><I>hh</I></TD></TR>
</TABLE></TD></TR>
</TABLE></TD></TR>
</TABLE><TABLE CLASS="mprow"><TR VALIGN="middle"><TD CLASS="mprcell" ALIGN="center"><TABLE CLASS="display dcenter"><TR VALIGN="middle"><TD CLASS="dcell"><TABLE border=0 cellspacing=1 cellpadding=0><TR><TD align=left><SPAN STYLE="font-variant:small-caps"><FONT SIZE=2>XX</FONT></SPAN></TD></TR>
<TR valign="bottom"><TD NOWRAP ALIGN="center"><I>uu</I>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<I>vv</I></TD></TR>
<TR><TD height="3" bgcolor="green"></TD></TR>
<TR valign="top"><TD NOWRAP ALIGN="center"><I>ww</I></TD></TR>
</TABLE></TD></TR>
</TABLE></TD></TR>
</TABLE></DIV><H3 CLASS="subsection"><A NAME="toc116"></A><A NAME="htoc145">B.17.16</A>&#XA0;&#XA0;The <TT>ifpdf</TT> package</H3><P>
<A NAME="@default235"></A>
This package should be present in modern <TT>latex</TT> installations.
Basically, the package defines a boolean register&#XA0;<TT>pdf</TT>, whose
value is true for tools that produce&#XA0;<SPAN STYLE="font-variant:small-caps">PDF</SPAN> (such as
<TT>pdflatex</TT>) and false for tools that produce&#XA0;<SPAN STYLE="font-variant:small-caps">DVI</SPAN>
(such as <TT>latex</TT>).</P><P>The hevea version of the package simply defines the boolean
register&#XA0;<TT>pdf</TT> with initial value true. Command-line option
<A NAME="@default236"></A><TT>-pdf</TT> is also added to <TT>imagen</TT> command-line
options (by using the command&#XA0;<CODE>\@addimagenopt</CODE>, see
Section&#XA0;<A HREF="manual020.html#imagen-source">10.7</A>). As a result, <TT>imagen</TT> will
normally call <TT>pdflatex</TT> in place of <TT>latex</TT>.</P><P>In case standard <TT>latex</TT> processing in <TT>imagen</TT> is
wished, one can issue the command <CODE>\pdffalse</CODE> after loading the
ifpdf package and before <CODE>\begin{document}</CODE>. Then, no
command line option is added.
Hence, to achieve <TT>latex</TT> processing of the <I>image</I>
file, while still loading the <TT>ifpdf</TT> package, one writes:
</P><PRE CLASS="verbatim">\usepackage{ifpdf}
%HEVEA\pdffalse
</PRE><H3 CLASS="subsection"><A NAME="toc117"></A><A NAME="htoc146">B.17.17</A>&#XA0;&#XA0;Typesetting Thai</H3><P>
<A NAME="@default237"></A>H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A features an implementation of Andrew Seagar&#X2019;s technique
for Thai in L<sup>A</sup>T<sub>E</sub>X,
by the means of the package <TT>thai.hva</TT> in the distribution.</P><P>As regards input encoding, Thai users of H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A could (perhaps) use
<CODE>\usepackage[utf8]{inputenc}</CODE>.
However, the typesetting of Thai is more subtle than just proper
characters. For that reason, Thai in L<sup>A</sup>T<sub>E</sub>X is better performed by
another technique, which H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A supports. See this specific
<A HREF="./thaihevea.html">document</A>.</P><H3 CLASS="subsection"><A NAME="toc118"></A><A NAME="htoc147">B.17.18</A>&#XA0;&#XA0;Other packages</H3><P>
The <TT>fancyverb</TT> and <TT>colortbl</TT>
packages are partly implemented.</P><P>The <TT>xspace</TT> package is implemented,
in simple cases, rendering is satisfactory, but beware: H<FONT SIZE=2><sup>E</sup></FONT>V<FONT SIZE=2><sup>E</sup></FONT>A
differs significantly from T<sub>E</sub>X, and discrepancies are likely.</P><P>The <TT>chngcntr</TT> package is implemented.
This package provides commands to connect (and disconnect) counters
once they are created(see
<TT><A HREF="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=addtoreset">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=addtoreset</A></TT>).</P><HR>
<A HREF="manual038.html"><IMG SRC="previous_motif.gif" ALT="Previous"></A>
<A HREF="manual022.html"><IMG SRC="contents_motif.gif" ALT="Up"></A>
</BODY>
</HTML>