<!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  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">“Natural” 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 “<em>Blue Book</em>” (<span class="c013">makeidx</span>, <span class="c013">ifthen</span>, <span class="c013">graphics</span> —and <span class="c013">graphicx</span>!—, <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 [<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  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 [<a href="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</a>, Section 8.4], the environments for multi-line displayed equations (<code>gather</code>, <code>split</code>,…) [<a href="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</a>, Section 8.5] and the <code>\numberwithin</code> command [<a href="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</a>, Section 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  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 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 <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 <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">  </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">  </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>>{</code><span class="c018">decl</span><code>}</code></td><td class="c029">  </td><td class="c039">Can be used before <code>l</code>, <code>c</code>, <code>r</code>, <code>p{</code>…<code>}</code>, <code>m{</code>…<code>}</code> or <code>b{</code>…<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><{</code><span class="c018">decl</span><code>}</code></td><td class="c029">  </td><td class="c039">Can be used after <code>l</code>, <code>c</code>, <code>r</code>, <code>p{</code>…<code>}</code>, <code>m{</code>…<code>}</code> or <code>b{</code>…<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">  </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>>{</code><span class="c018">decl</span><code>}</code> and <code><{</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>{$}l<{$}}#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">   <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}{>{\bf}c} \newcolumntype{E}[1]{*{#1}{c}} \begin{tabular}{CE{3}}\hline one & two & three & four \\ five & six & seven & 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 [<a href="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</a>, Section 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  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 [<a href="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</a>, Section 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  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 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 Œ, œ and €. 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 <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 <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 <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  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. “Text companion”) and <span class="c013">eurosym</span> (a nice € symbol in L<sup>A</sup>T<sub>E</sub>X).</p> <h3 class="subsection" id="commentpack">B.17.6  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  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  “Natural” 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 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  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  Support for <span class="c013">babel</span></h3> <p><a id="hevea_default227"></a> </p> <h4 class="subsubsection" id="sec194">B.17.10.1  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  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"> </td></tr> </table> </div> <h4 class="subsubsection" id="sec196">B.17.10.3  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  <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 <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  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’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: “This is a complicated url: <span class="c013">http://foo.com/~user#label%coucou</span>.”</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 <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: “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>”.</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: “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>”.</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 “verbatim” 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 “programming level”. 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 “Have a look at <a href="http://hevea.inria.fr/"><span class="c013">http://hevea.inria.fr/</span></a>”. 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…</p> <h3 class="subsection" id="sec198">B.17.12  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 <span class="c013">verbatim</span>, since H<span class="c015"><sup>E</sup></span>V<span class="c015"><sup>E</sup></span>A implementation is more advanced for the former package.</p> <h3 class="subsection" id="listings:package">B.17.13  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 <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 <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 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 > 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 > 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>… or <span class="c013">background=</span>… 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><BR></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  (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 [<a href="manual047.html#latexbis">L<sup>A</sup>T<sub>E</sub>X-bis</a>, Section 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  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. Ré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  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 “paragraph mode for formulas”. 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">        </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>−<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">Longer</span>−<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>  </td></tr> </table></td><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c018">The</span>−<span class="c018">Last</span>−<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">        </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">∫</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"> <span class="c018">xdx</span> = </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">∫</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"> <span class="c018">xdx</span> = </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> 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">        </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>−<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">Longer</span>−<span class="c018">Formula</span> </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> </td></tr> </table></td><td class="mprcell c027"><table class="display dcenter"><tr class="c035"><td class="dcell"><span class="c018">The</span>−<span class="c018">Last</span>−<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 L<sup>A</sup>T<sub>E</sub>X.</p> <h4 class="subsubsection" id="sec203">B.17.15.2  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>           <span class="c018">two</span>           <span class="c018">three</span>           <span class="c018">or</span>           <span class="c018">more</span>           <span class="c018">premises</span></td></tr> <tr><td class="c000"></td></tr> <tr class="c037"><td class="c042"><span class="c018">and</span>           <span class="c018">any</span>           <span class="c018">number</span>           <span class="c018">of</span>           <span class="c018">conclusions</span>           <span class="c018">as</span>           <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">        </td><td class="c036"><table class="c004 cellpadding0"><tr class="c034"><td class="c042"><span class="c018">aa</span> </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>           <span class="c018">ee</span>           <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 <a href="manual036.html#getcolor">B.14.2.2</a>).</p> <h4 class="subsubsection" id="sec204">B.17.15.3  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">        </td><td class="c036"><table class="display dcenter"><tr class="c035"><td class="dcell">  </td><td class="dcell"><table class="c004 cellpadding0"><tr class="c034"><td class="c043"><span class="c018">a</span>           <span class="c018">bbb</span>  </td></tr> <tr><td class="c043"><span class="c018">ccc</span>           <span class="c018">dddd</span></td></tr> <tr><td class="c000"></td></tr> <tr class="c037"><td class="c043"><span class="c018">e</span>           <span class="c018">ff</span> </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  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> </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>           <span class="c018">a</span>           <span class="c018">bb</span> </td><td> <span class="c021">Bar</span></td></tr> <tr><td class="c042"><span class="c018">cc</span>           <span class="c018">dd</span></td><td> </td></tr> <tr><td class="c000"></td><td></td></tr> <tr class="c037"><td class="c042"><span class="c018">ee</span></td><td> </td></tr> <tr class="c035"><td class="c027">⋮<br> ⋮</td><td></td></tr> </table></td><td class="dcell">           <span class="c018">ff</span>           <span class="c018">gg</span></td></tr> </table></td></tr> <tr><td></td><td class="c000"></td></tr> <tr class="c037"><td> </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>           <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  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 <span class="c013">pdf</span>, whose value is true for tools that produce <span class="c020">PDF</span> (such as <span class="c013">pdflatex</span>) and false for tools that produce <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 <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 <code>\@addimagenopt</code>, see Section <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  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’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  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>   …<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 output for <span class="c018">n</span>=1, regardless of the given value of argument <span class="c018">n</span>. That is, in any paragraph inside the environment, all lines except the first get indented by <span class="c018">wd</span>.</p> <h3 class="subsection" id="sec209">B.17.19  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  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>