Sophie

Sophie

distrib > Mageia > 3 > i586 > by-pkgid > bc64cbd380b9e293ed580d8471e0d2a6 > files > 12

hevea-2.06-1.mga3.i586.rpm

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="generator" content="hevea 2.06">
<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" id="sec181">B.17&#XA0;&#XA0;Implemented Packages</h2>
<ul>
<li><a href="manual-packages.html#sec182">AMS compatibility</a>
</li><li><a href="manual-packages.html#sec183">The <span class="c013">array</span> and <span class="c013">tabularx</span>
packages</a>
</li><li><a href="manual-packages.html#calc">The <span class="c013">calc</span> package</a>
</li><li><a href="manual-packages.html#inputenc">Specifying the document input encoding, the <span class="c013">inputenc</span> package</a>
</li><li><a href="manual-packages.html#sec186">More symbols</a>
</li><li><a href="manual-packages.html#commentpack">The <span class="c013">comment</span> package</a>
</li><li><a href="manual-packages.html#multind">Multiple Indexes with the <span class="c013">index</span> and
<span class="c013">multind</span> packages</a>
</li><li><a href="manual-packages.html#sec189">&#X201C;Natural&#X201D; bibliographies, the <span class="c013">natbib</span> package </a>
</li><li><a href="manual-packages.html#sec190">Multiple bibliographies</a>
</li><li><a href="manual-packages.html#sec193">Support for <span class="c013">babel</span></a>
</li><li><a href="manual-packages.html#urlpackage">The <span class="c013">url</span> package</a>
</li><li><a href="manual-packages.html#sec198">Verbatim text: the <span class="c013">moreverb</span> and
<span class="c013">verbatim</span> packages</a>
</li><li><a href="manual-packages.html#listings%3Apackage">Typesetting computer languages: the <span class="c013">listings</span> package</a>
</li><li><a href="manual-packages.html#sec200">(Non-)Multi page tabular material</a>
</li><li><a href="manual-packages.html#mathpartir%3Apackage">Typesetting inference rules: the
 <span class="c013">mathpartir</span> package</a>
</li><li><a href="manual-packages.html#sec206">The <span class="c013">ifpdf</span> package</a>
</li><li><a href="manual-packages.html#sec207">Typesetting Thai</a>
</li><li><a href="manual-packages.html#sec208">Hanging paragraphs</a>
</li><li><a href="manual-packages.html#sec209">The <span class="c013">cleveref</span> package</a>
</li><li><a href="manual-packages.html#sec210">Other packages</a>
</li></ul>
<p><a id="implemented:package"></a>
</p><p>H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A distribution includes <span class="c013">.hva</span> 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; (<span class="c013">makeidx</span>,
<span class="c013">ifthen</span>, <span class="c013">graphics</span> &#X2014;and <span class="c013">graphicx</span>!&#X2014;,
<span class="c013">color</span>, <span class="c013">alltt</span>) are provided. Additionally, 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" id="sec182">B.17.1&#XA0;&#XA0;AMS compatibility</h3>
<p>
<a id="hevea_default212"></a>H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A <span class="c013">amsmath</span> package defines some of the constructs of the
<span class="c013">amsmath</span> 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 id="hevea_default213"></a>H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A provides support for the <span class="c013">amssymb</span> 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" id="sec183">B.17.2&#XA0;&#XA0;The <span class="c013">array</span> and <span class="c013">tabularx</span>
packages</h3>
<p><a id="arraypack"></a>
<a id="hevea_default214"></a><a id="hevea_default215"></a>The <a href="http://www.ctan.org/pkg/array.html"><span class="c013">array</span></a>
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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A
implements them.
</p><blockquote class="table"><div class="center"><hr class="c049"></div>
<div class="caption"><table class="c002 cellpading0"><tr><td class="c039">Table 1: <a id="arraytable"></a> Column specifications from the
<span class="c013">array</span> package</td></tr>
</table></div>
<div class="center">
<table class="cellpading0" style="border-spacing:6px;border-collapse:separate;width:70%"><tr><td class="hbar" colspan=3></td></tr>
<tr><td class="c041"><code>m{</code><span class="c018">width</span><code>}</code></td><td class="c029">&#XA0;&#XA0;</td><td class="c039">Equivalent to the <code>p</code> column specification (the <span class="c018">width</span>
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 class="c041"><code>b{</code><span class="c018">width</span><code>}</code></td><td class="c029">&#XA0;&#XA0;</td><td class="c039">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 class="c041"><code>&gt;{</code><span class="c018">decl</span><code>}</code></td><td class="c029">&#XA0;&#XA0;</td><td class="c039">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 <span class="c018">decl</span> in front of the entries in the corresponding
column. </td></tr>
<tr><td class="hbar" colspan=3></td></tr>
<tr><td class="c041"><code>&lt;{</code><span class="c018">decl</span><code>}</code></td><td class="c029">&#XA0;&#XA0;</td><td class="c039">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 <span class="c018">decl</span> after entries in the corresponding
column. </td></tr>
<tr><td class="hbar" colspan=3></td></tr>
<tr><td class="c041"><code>!{</code><span class="c018">decl</span><code>}</code></td><td class="c029">&#XA0;&#XA0;</td><td class="c039">Equivalent to <code>@{</code><span class="c018">decl</span><code>}</code> </td></tr>
<tr><td class="hbar" colspan=3></td></tr>
</table>
</div>
<div class="center"><hr class="c049"></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><span class="c018">decl</span><code>}</code> and <code>&lt;{</code><span class="c018">decl</span><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 <span class="c013">latexcommon.hva</span> file.)</p><p>New column specifications are defined by the <code>\newcolumntype</code>
construct:
</p><div class="flushleft">
&#XA0;&#XA0;<code>\newcolumntype{</code><span class="c018">col</span><code>}[</code><span class="c018">narg</span><code>]{</code><span class="c018">body</span><code>}</code>
</div><p>
Where <span class="c018">col</span> is one letter, the optional <span class="c018">narg</span> is a
number (defaults to <span class="c013">0</span>), and <span class="c013">body</span> is built up with
valid column specifications and macro-argument references
(<code>#</code><span class="c018">int</span>).
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
<span class="c013">C</span> means that entries will be typeset centered and using bold
font, while the column specifications <code>E{</code><span class="c018">num</span><code>}</code>
stands for <span class="c018">num</span> centered columns. We get:</p><table class="c002 cellpading0"><tr><td class="hbar" colspan=4></td></tr>
<tr><td class="c029"><span class="c022">one</span></td><td class="c029">two</td><td class="c029">three</td><td class="c029">four </td></tr>
<tr><td class="c029"><span class="c022">five</span></td><td class="c029">six</td><td class="c029">seven</td><td class="c029">eight </td></tr>
<tr><td class="hbar" colspan=4></td></tr>
</table><p>H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A implements column specifications with commands defined in the
<code>\newcommand</code> style. Thus, they have the same behaviour as regards
double definition, which is not performed and induces a warning
message.
Thus, a column specification that is
first defined in a <span class="c013">macro.hva</span> specific
file, overrides the document definition.</p><p>The <a href="http://www.ctan.org/pkg/tabularx.html"><span class="c013">tabularx</span></a>
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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A
makes the former equivalent to <code>tabular</code> and the latter
equivalent to <code>p{</code><span class="c018">ignored</span><code>}</code>. By contrast with the
subtle array formatting that the <span class="c013">tabularx</span> 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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>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" id="calc">B.17.3&#XA0;&#XA0;The <span class="c013">calc</span> package</h3>
<p>
<a id="hevea_default216"></a>The <a href="http://www.ctan.org/pkg/calc.html"><span class="c013">calc</span></a>
package enables using traditional, infix, notation for
arithmetic operations
inside the <span class="c018">num</span> argument to the
<code>\setcounter{</code><span class="c018">name</span><code>}{</code><span class="c018">num</span><code>}</code>
and <code>\addtocounter{</code><span class="c018">name</span><code>}{</code><span class="c018">num</span><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 <span class="c013">calc</span> package provides a similar extension of the syntax
of the <span class="c018">len</span> argument to the <code>\setlength</code> and
<code>\addtolength</code> constructs.
H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A does not implement this extension, since it does not
implement length registers in the first place.</p>
<h3 class="subsection" id="inputenc">B.17.4&#XA0;&#XA0;Specifying the document input encoding, the <span class="c013">inputenc</span> package</h3>
<p>
<a id="hevea_default217"></a>The <a href="http://www.ctan.org/pkg/inputenc.html"><span class="c013">inputenc</span></a>
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 <span class="c013">UTF-8</span>.
The one used encoding is specified as an option while loading the package
<code>\usepackage[</code><span class="c018">encoding</span><code>]{inputenc}</code>.
At the moment, H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A recognises ten latin encodings
(from <span class="c013">latin1</span> to <span class="c013">latin10</span>),
the <span class="c013">koi8-r</span> encoding,
the <span class="c013">ascii</span> encoding,
four windows encodings, the <span class="c013">applemac</span> encoding, and the
<span class="c013">utf8</span> encoding.
It is important to notice that loading the <code>inputenc</code> package
alters the html document charset.
For instance if the <span class="c013">latin9</span> 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 id="hevea_default218"></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 <span class="c013">latin1</span> 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 id="hevea_default219"></a>The <span class="c013">inputenc</span> package also provides the
command&#XA0;<code>\inputcoding{</code><span class="c018">encoding</span><code>}</code> that
changes the input encoding at any time.
The argument <span class="c018">encoding</span> can be any of the options accepted
by <code>\usepackage[</code><span class="c018">encoding</span><code>]{inputenc}</code>.
The command&#XA0;<code>\inputcoding</code> of H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A
follows the behaviour 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" id="sec186">B.17.5&#XA0;&#XA0;More symbols</h3>
<p>
H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A implements the following packages: <span class="c013">latexsym</span>
<span class="c013">amssymb</span>, <span class="c013">textcomp</span> (a.k.a. &#X201C;Text companion&#X201D;)
and <span class="c013">eurosym</span> (a nice &#X20AC; symbol in L<sup>A</sup>T<sub>E</sub>X).</p>
<h3 class="subsection" id="commentpack">B.17.6&#XA0;&#XA0;The <span class="c013">comment</span> package</h3>
<p>
<a id="hevea_default220"></a>The <a href="http://www.ctan.org/pkg/comment.html"><span class="c013">comment</span></a> 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" id="multind">B.17.7&#XA0;&#XA0;Multiple Indexes with the <span class="c013">index</span> and
<span class="c013">multind</span> packages</h3>
<p>
<a id="hevea_default221"></a><a id="hevea_default222"></a>H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A supports several simultaneous indexes, following the scheme
of the
<a href="ftp://tug.ctan.org/pub/tex-archive/help/Catalogue/entries/index.html"><span class="c013">index</span></a> 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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A knows the following commands:
</p><dl class="description"><dt class="dt-description">
<span class="c022"><span class="c013">\newindex{</span><span class="c018">tag</span><span class="c013">}{</span><span class="c018">ext</span><span class="c013">}{</span><span class="c018">ignored</span><span class="c013">}{</span><span class="c018">indexname</span><span class="c013">}</span></span></dt><dd class="dd-description">
Declare an index.
The first argument <span class="c018">tag</span> is a tag to select this index in other
commands; <span class="c018">ext</span> is the extension of the index information file
generated by L<sup>A</sup>T<sub>E</sub>X (e.g., <span class="c013">idx</span>); <span class="c018">ignored</span> is ignored by
H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A; and <span class="c018">indexname</span> 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"><span class="c014">\makeindex</span></dt><dd class="dd-description"> Perform
<code>\newindex{default}{idx}{ind}{Index}</code>.
</dd><dt class="dt-description"><span class="c022"><span class="c013">\index[</span><span class="c018">tag</span><span class="c013">]{</span><span class="c018">arg</span><span class="c013">}</span></span></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 <span class="c018">arg</span> goes to the <span class="c018">tag</span> index.
The <span class="c018">tag</span> argument defaults to <code>default</code>, thereby yielding
standard L<sup>A</sup>T<sub>E</sub>X behaviour for the <code>\index</code> command without an
optional argument.
There also exists a stared-variant <code>\index*</code> that Additionally
typesets <span class="c018">arg</span>.
</dd><dt class="dt-description"><span class="c022"><span class="c013">\printindex[</span><span class="c018">tag</span><span class="c013">]</span></span></dt><dd class="dd-description"> Compute, format and
output index whose tag is <span class="c018">tag</span>. The <span class="c018">tag</span> argument
defaults to <code>default</code>.
</dd></dl><p>The <a href="http://www.ctan.org/pkg/multind.html"><span class="c013">multind</span></a> package is
supported to some extend, but <span class="c013">index</span> is definitely to be
preferred.</p>
<h3 class="subsection" id="sec189">B.17.8&#XA0;&#XA0;&#X201C;Natural&#X201D; bibliographies, the <span class="c013">natbib</span> package </h3>
<p>
L<sup>A</sup>T<sub>E</sub>X <a href="http://www.ctan.org/pkg/natbib.html">version of <span class="c013">natbib</span></a>
is present in modern installations.<a id="hevea_default223"></a></p><p>Implementation is quite complete and compatible
with version&#XA0;8.0 of the <span class="c013">natbib</span> package
(with the <span class="c013">keyval</span> style command <code>\setcitestyle</code>).</p><p>Unimplemented features are the sorting and compression of references.
Automatic generation of an index of citations is handled, but
the current implementation probably is quite fragile.</p>
<h3 class="subsection" id="sec190">B.17.9&#XA0;&#XA0;Multiple bibliographies</h3>
<h4 class="subsubsection" id="sec191">The <span class="c013">multibib</span> package</h4>
<p>
<a id="hevea_default224"></a><a id="hevea_default225"></a>
H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A provides a slightly incomplete implementation of the
<span class="c013">multibib</span> 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" id="sec192">The <span class="c013">chapterbib</span> package</h4>
<p>
<a id="hevea_default226"></a>
A basic implementation is provided. At the moment, you can
define one bibliography per included file and no toplevel
bibliography.
H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A implementation of this package recognises the option
<code>sectionbib</code> and provides the command <code>\sectionbib</code>
to change the sectioning command introduced by bibliographies.</p>
<h3 class="subsection" id="sec193">B.17.10&#XA0;&#XA0;Support for <span class="c013">babel</span></h3>
<p><a id="hevea_default227"></a>
</p>
<h4 class="subsubsection" id="sec194">B.17.10.1&#XA0;&#XA0;Basics</h4>
<p>
H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A offers support for the L<sup>A</sup>T<sub>E</sub>X package <span class="c013">babel</span>. When it reads the command
</p><pre class="verbatim">  \usepackage[lang-list]{babel}
</pre><p>it loads <span class="c013">babel.hva</span>, and sends it the saved <span class="c013">lang-list</span>. The
file <span class="c013">babel.hva</span> then looks at each language (say <span class="c013">x</span>) in it, and loads <span class="c013">x.hva</span>, which offers support for the language <span class="c013">x</span>. 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 <span class="c013">babel.hva</span>, then the files <span class="c013">english.hva,french.hva,german.hva</span> containing the respective definitions, and finally activate the definitions in <span class="c013">german.hva</span> and sets the current language to german.</p>
<h4 class="subsubsection" id="sec195">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 they are already supplied with the distribution. The list of
languages is given below.</p><div class="center"><a id="hevea_default228"></a>
<table class="c001 cellpadding1" border=1><tr><td class="c031">american</td><td class="c031">austrian</td><td class="c031">brazil</td><td class="c031">catalan </td></tr>
<tr><td class="c031">check</td><td class="c031">croatian</td><td class="c031">danish</td><td class="c031">dutch </td></tr>
<tr><td class="c031">english</td><td class="c031">esperanto</td><td class="c031">finnish</td><td class="c031">french </td></tr>
<tr><td class="c031">galician</td><td class="c031">german</td><td class="c031">italian</td><td class="c031">magyar </td></tr>
<tr><td class="c031">norsk</td><td class="c031">nynorsk</td><td class="c031">polish</td><td class="c031">portuges </td></tr>
<tr><td class="c031">romanian</td><td class="c031">russian</td><td class="c031">slovak</td><td class="c031">slovene </td></tr>
<tr><td class="c031">spanish</td><td class="c031">swedish</td><td class="c031">turkish</td><td class="c031">&nbsp;</td></tr>
</table>
</div>
<h4 class="subsubsection" id="sec196">B.17.10.3&#XA0;&#XA0;Writing <span class="c013">hva</span> files</h4>
<p>The languages for which <span class="c013">.hva</span> 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" id="urlpackage">B.17.11&#XA0;&#XA0;The <span class="c013">url</span> package</h3>
<p>
<a id="hevea_default229"></a><a id="hevea_default230"></a><a id="hevea_default231"></a>L<sup>A</sup>T<sub>E</sub>X <a href="http://www.ctan.org/pkg/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: <span class="c013">http://foo.com/~user#label%coucou</span>.&#X201D;</p><p>The main use for the <code>\url</code> command is to specify urls as arguments to
H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A home page is
<a href="http://hevea.inria.fr/"><span class="c013">http://hevea.inria.fr/</span></a>&#X201D;.</p><p><a id="hevea_default232"></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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A one).
The <span class="c013">url</span> 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 \footahref{\heveahome}{\hevea{} home page}
</pre><p>It yields: &#X201C;Have a look at <a href="http://hevea.inria.fr/">H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A home page</a>&#X201D;.</p><p>Using <code>\url</code> inside command definitions with a
<code>#</code><span class="c018">i</span> 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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A. In such situations,
<code>\urldef</code> should be used.</p><p>H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A implementation is somehow compatible at the &#X201C;programming level&#X201D;.
Thus, users can define new commands whose argument is understood
verbatim. The <span class="c013">urlhref.hva</span> 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 <a href="http://hevea.inria.fr/"><span class="c013">http://hevea.inria.fr/</span></a>&#X201D;.

The <span class="c013">urlhref.hva</span>
style file (which is an H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>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 <span class="c013">urlhref.hva</span> only makes sense when
all arguments to <code>\url</code> are urls&#X2026;</p>
<h3 class="subsection" id="sec198">B.17.12&#XA0;&#XA0;Verbatim text: the <span class="c013">moreverb</span> and
<span class="c013">verbatim</span> packages</h3>
<p>
These two packages provide new commands and environments for
processing verbatim text.
I recommend using
<a href="http://www.ctan.org/pkg/moreverb.html"><span class="c013">moreverb</span></a>
rather than&#XA0;<span class="c013">verbatim</span>,
since H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A&#XA0;implementation is more advanced for the former package.</p>
<h3 class="subsection" id="listings:package">B.17.13&#XA0;&#XA0;Typesetting computer languages: the <span class="c013">listings</span> package</h3>
<p>
<a id="hevea_default233"></a>I strongly recommend the
<a href="http://www.ctan.org/pkg/listings.html"><span class="c013">listings</span></a> package.
Learning the user interface requires a little effort, but it is worth
it.</p><p>H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A features a quite compatible implementation, please refer to
the original package documentation.
Do not hesitate to report discrepancies.
Note that H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A does not produce very compact
html in case you use this package.
This can be cured by
giving <span class="c013">hevea</span> the command-line option <a id="hevea_default234"></a><span class="c013">-O</span>
(see&#XA0;<a href="manual041.html#heveaoptions">C.1.1.4</a>).</p><p>The <span class="c013">lstlisting</span> environment is styled through
an homonymous style class (see <a href="manual019.html#css%3Achange%3Aall">9.2</a> and&#XA0;<a href="manual019.html#css%3Achange">9.3</a>) and
most <span class="c013">lstlisting</span> environments get translated to <code>div</code>
elements with the appropriate <code>\getenvclass{lstlisting}</code> class, 
which, by default is <span class="c013">lstlisting</span>.
A few points deserve mention:
</p><ol class="enumerate" type=1><li class="li-enumerate">
The definition of default style class <span class="c013">lstlisting</span> 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 <span class="c013">lstlisting</span> by another style class (by
<code>\setenvclass{lstlisting}{</code><span class="c018">another one</span><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><span class="c018">name</span><code>}{</code><span class="c018">starting
code</span><code>}{</code><span class="c018">ending code</span><code>}</code> is from the
<span class="c013">listings</span> package, with similar semantics.
In the starting code above, the fragment
<code>\setenvclass{lstlisting}{clisting}</code> instructs H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A to
use the style class <span class="c013">clisting</span> locally (notice that it could just
be another name). The style class <span class="c013">clisting</span> 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"><span class="c008"><em>/* Compute, guess what! */</em></span>
<span class="c023">int</span> fact(<span class="c023">int</span> n) {
  <span class="c023">int</span> r = 1 ;
  <span class="c023">for</span> ( ; n &gt; 0 ; n--) {
    r *= n ;
  }
  <span class="c023">return</span> r ;
}</div></li><li class="li-enumerate">When listings are framed, that is, when some
<span class="c013">frame=</span>&#X2026; or <span class="c013">background=</span>&#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 <span class="c013">lstlisting</span> and
<span class="c013">lstframe</span>, 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 <span class="c013">lstframe</span> is empty.</li><li class="li-enumerate"><a id="hevea_default235"></a>Unfortunately the <code>white-space:pre;</code> style declaration is still a
bit young, and some browsers implement it in rather incomplete
fashion. This is particularly true as regards text copy-pasted from
browser display. In case you want to provide your readers with easy
copy-paste of <span class="c013">listings</span>, 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 line-breaks 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 line-breaks shown in display.
</li></ol>
<h3 class="subsection" id="sec200">B.17.14&#XA0;&#XA0;(Non-)Multi page tabular material</h3>
<p>
<a id="hevea_default236"></a><a id="hevea_default237"></a>L<sup>A</sup>T<sub>E</sub>X source
for the
<a href="http://www.ctan.org/pkg/longtable.html"><span class="c013">longtable</span></a>
and 
<a href="http://www.ctan.org/pkg/supertabular.html"><span class="c013">supertabular</span></a>
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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A
does not care much about physical pages.
Thus the <span class="c013">supertabular</span>
and <span class="c013">longtable</span> environments are rendered more or less
as <span class="c013">tabular</span> environments inside <span class="c013">table</span> environments.</p>
<h3 class="subsection" id="mathpartir:package">B.17.15&#XA0;&#XA0;Typesetting inference rules: the
 <a id="mathpartir"><span class="c013">mathpartir</span></a> package</h3>
<p>
<a id="hevea_default238"></a><a id="hevea_default239"></a>The <span class="c013">mathpartir</span> package, authored by D.&#XA0;R&#XE9;my, essentially
provides two features:
</p><ol class="enumerate" type=1><li class="li-enumerate">
An environment <span class="c013">mathpar</span> 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
typesetting inferences rules.
</li></ol><p>
We give a short description, focussing on H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A output
and not to L<sup>A</sup>T<sub>E</sub>X output.</p>
<h4 class="subsubsection" id="sec202">B.17.15.1&#XA0;&#XA0;The mathpar environment</h4>
<p><a id="hevea_default240"></a></p><p>In its L<sup>A</sup>T<sub>E</sub>X version, the <span class="c013">mathpar</span> 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 class="c002 cellpading0"><tr><td class="c036"><div class="lstlisting">\begin{mathpar}
A-Formula \and
Longer-Formula \and
And \and The-Last-One
\end{mathpar}</div></td><td class="c036">&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;</td><td class="c036"><div class="mathpar">
<table class="mprow"><tr class="c035"><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c018">A</span>&#X2212;<span class="c018">Formula</span>&#XA0;
</td></tr>
</table></td><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c018">Longer</span>&#X2212;<span class="c018">Formula</span>
</td></tr>
</table></td><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c018">And</span>&#XA0;
</td></tr>
</table></td><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c018">The</span>&#X2212;<span class="c018">Last</span>&#X2212;<span class="c018">One</span>
</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 class="c002 cellpading0"><tr><td class="c036"><div class="lstlisting">\begin{mathpar}
\int_0^2 xdx = \frac{3}{2}
\\
\int_0^3 xdx = \frac{5}{2}
\end{mathpar}</div></td><td class="c036">&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;</td><td class="c036"><div class="mathpar">
<table class="mprow"><tr class="c035"><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c017">&#X222B;</span></td><td class="dcell"><table class="display"><tr><td class="dcell c030">2</td></tr>
<tr><td class="dcell c030"><br>
<br>
</td></tr>
<tr><td class="dcell c030">0</td></tr>
</table></td><td class="dcell">&#XA0;<span class="c018">xdx</span>&#XA0;=&#XA0;</td><td class="dcell"><table class="display"><tr><td class="dcell c027">3</td></tr>
<tr><td class="hbar"></td></tr>
<tr><td class="dcell c027">2</td></tr>
</table></td></tr>
</table></td></tr>
</table><table class="mprow"><tr class="c035"><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c017">&#X222B;</span></td><td class="dcell"><table class="display"><tr><td class="dcell c030">3</td></tr>
<tr><td class="dcell c030"><br>
<br>
</td></tr>
<tr><td class="dcell c030">0</td></tr>
</table></td><td class="dcell">&#XA0;<span class="c018">xdx</span>&#XA0;=&#XA0;</td><td class="dcell"><table class="display"><tr><td class="dcell c027">5</td></tr>
<tr><td class="hbar"></td></tr>
<tr><td class="dcell c027">2</td></tr>
</table></td></tr>
</table></td></tr>
</table></div>
</td></tr>
</table>
</div><p>The H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>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 reversed: 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 class="c002 cellpading0"><tr><td class="c036"><div class="lstlisting">\begin{mathpar}
A-Formula \and
Longer-Formula \hva\and
And \and The-Last-One
\end{mathpar}</div></td><td class="c036">&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;</td><td class="c036"><div class="mathpar">
<table class="mprow"><tr class="c035"><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c018">A</span>&#X2212;<span class="c018">Formula</span>&#XA0;</td></tr>
</table></td><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c018">Longer</span>&#X2212;<span class="c018">Formula</span>&#XA0;</td></tr>
</table></td></tr>
</table><table class="mprow"><tr class="c035"><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c018">And</span>&#XA0;</td></tr>
</table></td><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c018">The</span>&#X2212;<span class="c018">Last</span>&#X2212;<span class="c018">One</span>
</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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A not to impact on the automatic typesetting performed by&#XA0;L<sup>A</sup>T<sub>E</sub>X.</p>
<h4 class="subsubsection" id="sec203">B.17.15.2&#XA0;&#XA0;The inferrule macro</h4>
<p><a id="hevea_default241"></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 class="c035"><td class="dcell"><table class="c004 cellpadding0"><tr><td class="c030"><span class="c021">label</span></td></tr>
<tr class="c034"><td class="c042"><span class="c018">one</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">two</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">three</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">or</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">more</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">premises</span></td></tr>
<tr><td class="c000"></td></tr>
<tr class="c037"><td class="c042"><span class="c018">and</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">any</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">number</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">of</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">conclusions</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">as</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">well</span></td></tr>
</table></td></tr>
</table><p>
Again, H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A always interpret <code>\\</code> as an
horizontal break. In fact H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A interpret all separators
(<code>\\</code>, <code>\and</code>) as horizontal breaks, when
they appear in the arguments of the <code>\inferrule</code> command.
Nevertheless prefixing separators with <code>\hva</code> yields vertical
breaks:
</p><div class="center">
<table class="c002 cellpading0"><tr><td class="c036"><div class="lstlisting">\inferrule
   {aa \hva\\ bb}
   {dd \\ ee \\ ff}</div></td><td class="c036">&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;</td><td class="c036"><table class="c004 cellpadding0"><tr class="c034"><td class="c042"><span class="c018">aa</span>&#XA0;</td></tr>
<tr><td class="c042"><span class="c018">bb</span></td></tr>
<tr><td class="c000"></td></tr>
<tr class="c037"><td class="c042"><span class="c018">dd</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">ee</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">ff</span></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" id="sec204">B.17.15.3&#XA0;&#XA0;Options</h4>
<p>By default, lines are centered 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 class="c002 cellpading0"><tr><td class="c036"><div class="lstlisting">$$\mprset{flushleft}
  \inferrule
    {a \\ bbb \hva\\ ccc \\ dddd}
    {e \\ ff \hva\\ gg}
$$</div></td><td class="c036">&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;</td><td class="c036"><table class="display dcenter"><tr class="c035"><td class="dcell">&#XA0;
</td><td class="dcell"><table class="c004 cellpadding0"><tr class="c034"><td class="c043"><span class="c018">a</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">bbb</span>&#XA0;&#XA0;</td></tr>
<tr><td class="c043"><span class="c018">ccc</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">dddd</span></td></tr>
<tr><td class="c000"></td></tr>
<tr class="c037"><td class="c043"><span class="c018">e</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">ff</span>&#XA0;</td></tr>
<tr><td class="c043"><span class="c018">gg</span></td></tr>
</table></td></tr>
</table>
</td></tr>
</table> 
</div>
<h4 class="subsubsection" id="sec205">B.17.15.4&#XA0;&#XA0;Derivation trees</h4>
<p><a id="hevea_default242"></a>
The <span class="c013">mathpartir</span> 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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>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
<span class="c018">key</span><span class="c013">=</span><span class="c018">value</span> pairs in the style of
<span class="c013">keyval</span>.
This makes the variant command much more flexible.
</p><table class="display dcenter"><tr class="c035"><td class="dcell">

</td><td class="dcell"><table class="c001 cellpadding1" border=1><tr><td class="c038"><span class="c014">key</span></td><td class="c040"><span class="c022">Effect for value <em>v</em></span>
</td></tr>
<tr><td class="c038"><span class="c013">before</span></td><td class="c040">Execute <em>v</em> before typesetting the rule.
Useful for instance to change the maximal width of the rule.
</td></tr>
<tr><td class="c038"><span class="c013">left</span></td><td class="c040">Put a label <em>v</em> on the left of the rule
</td></tr>
<tr><td class="c038"><span class="c013">Left</span></td><td class="c040">Idem.
</td></tr>
<tr><td class="c038"><span class="c013">right</span></td><td class="c040">As <code>left</code>, but on the right of the rule.
</td></tr>
<tr><td class="c038"><span class="c013">Right</span></td><td class="c040">As <code>Left</code>, but on the right of the rule.
</td></tr>
<tr><td class="c038"><span class="c013">lab</span></td><td class="c040">Put a label <em>v</em> above the inference rule, in the style
of <code>\inferrule</code>.
</td></tr>
<tr><td class="c038"><span class="c013">Lab</span></td><td class="c040">Idem.
</td></tr>
<tr><td class="c038"><span class="c013">vdots</span></td><td class="c040">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 alignment 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 class="c035"><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><table class="c004 cellpadding0"><tr class="c034"><td><span class="c021">Foo</span>&#XA0;</td><td class="c042"><table class="display"><tr class="c034"><td class="dcell"><table class="c004 cellpadding0"><tr class="c034"><td class="c042"><span class="c018">a</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">a</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">bb</span>&#XA0;</td><td>&#XA0;<span class="c021">Bar</span></td></tr>
<tr><td class="c042"><span class="c018">cc</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">dd</span></td><td>&#XA0;</td></tr>
<tr><td class="c000"></td><td></td></tr>
<tr class="c037"><td class="c042"><span class="c018">ee</span></td><td>&#XA0;</td></tr>
<tr class="c035"><td class="c027">&#X22EE;<br>
&#X22EE;</td><td></td></tr>
</table></td><td class="dcell">
&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">ff</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">gg</span></td></tr>
</table></td></tr>
<tr><td></td><td class="c000"></td></tr>
<tr class="c037"><td>&#XA0;</td><td class="c042"><span class="c018">hh</span></td></tr>
</table></td></tr>
</table></td></tr>
</table><table class="mprow"><tr class="c035"><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><table class="c004 cellpadding0"><tr><td class="c030"><span class="c021">XX</span></td></tr>
<tr class="c034"><td class="c042"><span class="c018">uu</span>&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;&#XA0;<span class="c018">vv</span></td></tr>
<tr><td class="c000"></td></tr>
<tr class="c037"><td class="c042"><span class="c018">ww</span></td></tr>
</table></td></tr>
</table></td></tr>
</table></div>
<h3 class="subsection" id="sec206">B.17.16&#XA0;&#XA0;The <span class="c013">ifpdf</span> package</h3>
<p>
<a id="hevea_default243"></a>
This package should be present in modern <span class="c013">latex</span> installations.
Basically, the package defines a boolean register&#XA0;<span class="c013">pdf</span>, whose
value is true for tools that produce&#XA0;<span class="c020">PDF</span> (such as
<span class="c013">pdflatex</span>) and false for tools that produce&#XA0;<span class="c020">DVI</span>
(such as <span class="c013">latex</span>).</p><p>The hevea version of the package simply defines the boolean
register&#XA0;<span class="c013">pdf</span> with initial value true. Command-line option
<a id="hevea_default244"></a><span class="c013">-pdf</span> is also added to <span class="c013">imagen</span> 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, <span class="c013">imagen</span> will
normally call <span class="c013">pdflatex</span> in place of <span class="c013">latex</span>.</p><p>In case standard <span class="c013">latex</span> processing in <span class="c013">imagen</span> 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 <span class="c013">latex</span> processing of the <span class="c018">image</span>
file, while still loading the <span class="c013">ifpdf</span> package, one writes:
</p><pre class="verbatim">\usepackage{ifpdf}
%HEVEA\pdffalse
</pre>
<h3 class="subsection" id="sec207">B.17.17&#XA0;&#XA0;Typesetting Thai</h3>
<p>
<a id="hevea_default245"></a>H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>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 <span class="c013">thai.hva</span> in the distribution.</p><p>As regards input encoding, Thai users of H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>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<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A supports. See this specific
<a href="./thaihevea.html">document</a>.</p>
<h3 class="subsection" id="sec208">B.17.18&#XA0;&#XA0;Hanging paragraphs</h3>
<p>
<a id="hevea_default246"></a>The <span class="c013">hanging</span> package is implemented.
H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A implementation consists of no-ops, except for the
<span class="c013">hangparas</span> environment, which is partially implemented.
Assume the following usage of <span class="c013">hangparas</span>:
</p><div class="flushleft">
<code>\begin{hangparas}{</code><span class="c018">wd</span><code>}{</code><span class="c018">n</span><code>}</code>
&#XA0;&#XA0;&#X2026;<code>\end{hangparas}</code>
</div><p>
where <span class="c018">wd</span> is a length that makes sense both for L<sup>A</sup>T<sub>E</sub>X
and CSS (typically <span class="c013">2ex</span>).
Then html output will reproduce L<sup>A</sup>T<sub>E</sub>X&#XA0;output for&#XA0;<span class="c018">n</span>=1, regardless
of the given value of argument&#XA0;<span class="c018">n</span>.
That is, in any paragraph inside the environment,
all lines except the first get indented by&#XA0;<span class="c018">wd</span>.</p>
<h3 class="subsection" id="sec209">B.17.19&#XA0;&#XA0;The <span class="c013">cleveref</span> package</h3>
<p>
<a id="hevea_default247"></a>The <a href="http://www.ctan.org/pkg/cleveref.html"><span class="c013">cleveref</span></a> package
attempts (and mostly succeeds) typesetting references
cleverly. Its main feature is a <code>\cref</code> command that accepts several,
comma separated, label references and typesets them as a list
(which can be one-element long, of course) prefixed with sectional unit names.
The H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A implementation is quite complete, but it does not support some
of the subtleties of the L<sup>A</sup>T<sub>E</sub>X implementations, especially as regards
customisation.</p>
<h3 class="subsection" id="sec210">B.17.20&#XA0;&#XA0;Other packages</h3>
<p>
The <span class="c013">fancyverb</span> and <span class="c013">colortbl</span>
packages are partly implemented.</p><p>The <span class="c013">xspace</span> package is implemented,
in simple cases, rendering is satisfactory, but beware: H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A
differs significantly from T<sub>E</sub>X, and discrepancies are likely.</p><p>The <span class="c013">chngcntr</span> package is implemented.
This package provides commands to connect (and disconnect) counters
once they are created (see
<a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=addtoreset"><span class="c013">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=addtoreset</span></a>).</p><p>The <span class="c013">import</span> package is partially implemented:
all starred commands are missing.</p><p>The <span class="c013">booktabs</span> package is implemented.
This package provides nicer rulers in tables as specific commands.
H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A defines those as no-ops.</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>