\usepackage{hevea} \title{\hevea{} User Documentation\\ {\normalsize Version~\heveaversion}} \urldef{\ftpbase}{\url}{ftp://ftp.inria.fr/INRIA/Projects/para/hevea/unstable} \urldef{\ftpbase}{\url}{ftp://ftp.inria.fr/INRIA/Projects/para/hevea} \urldef{\httpbase}{\url}{http://pauillac.inria.fr/~maranget/hevea} \def\locversion{\ifdevrelease\releasedate\else\heveaversion\fi} \ahref{\ftpbase/hevea-\locversion-manual.ps.gz}{compressed Postscript}, \ahref{\ftpbase/hevea-\locversion-manual.pdf}{PDF}, and as a \ahref{\ftpbase/hevea-\locversion-manual.tar.gz}{bundle of HTML files}. \hevea{} is a \LaTeX{} to \hevea{} understands \LaTeX{} macro definitions. Simple user style Furthermore, \hevea{} customization is done by writing \LaTeX{} code. \hevea{} is written in Objective Caml, as many lexers. It is Using \hevea{} it is possible to translate large documents such \hevea{} can also be instructed to output plain text or info files. Information on \hevea{} is available at \ahrefurl{\heveaurl}. # hevea a.tex \hevea{} does not crash, just ignore them for the moment If you wish to experiment \hevea{} on small \LaTeX{} source fragments, then launch \hevea{} without arguments. \hevea{} will read its # hevea You can find some more elaborate \footahref{\heveaurl/examples/index.html}{examples} in the on-line \noindent\hevea{} really knows about two \LaTeX{} base styles, Base style \filename{style} is implemented by an \hevea{} specific More precisely, \hevea{} interprets \hevea{} searches for files). Thus, at the moment, \hevea{} distribution includes the files, Documents whose base style is not recognized by \hevea{} can be \verb+hevea mydoc.tex+ will yield an error, since \hevea{} cannot find the \texttt{acmconf.hva} file: # hevea.opt mydoc.tex This situation is avoided by invoking \hevea{} with the known # hevea article.hva mydoc.tex \hevea{} to load its \texttt{article.hva} \hevea{} about them (see section~\ref{dontknow}). \hevea{} will almost surely fail on \TeX-ish input. Just like \LaTeX{}, \hevea{} reacts to the construct \textit{file}. (if I got it right, \hevea{} even follows \TeX{} crazy # hevea mymacros.hva mydoc.tex As a consequence of \hevea{} behavior with respect to Another situation is when \hevea{} fails to process a whole style file. Usually, this means that \hevea{} crashes on that style Then, \hevea{} should be instructed This is done by invoking \texttt{hevea} as follows: # hevea mymacros.hva -e mymacros.tex mydoc.tex \hevea{} reacts in a similar, but different, manner, by \hevea{} distributions already includes quite a few ``\texttt{.hva}'' and \hevea{} will react to \verb+\usepackage{zorglub}+ by loading \hevea{} is a bit simplistic in breaking paragraphs and extra paragraph \hevea{} tries to emulate \LaTeX{} behavior in all situations, but by \LaTeX{} (or \hevea). \hevea{} math mode is not very far from normal text mode, except that feature allows users to instruct \hevea{} freely adjust \hevea{} output without changing anything to \LaTeX{} \hevea{} assumes this choice for the symbol font to be A browser correctly displays \hevea{} symbols when at \localurl{symbol.html} in \hevea{} on-line documentation by any browser, \hevea{} offers a degraded mode that outputs text \hevea{} operates in this mode when given the \verb+-nosymb+ flag. \hevea{} is also given the \verb+-francais+ flag. In that case \hevea{} handles such constraints in display mode only. The main two operating modes of \hevea{} are \emph{text} mode and \hevea{} chooses to translate in-text formulas that way. \hevea{} display mode allows more control on text placement, since As a consequence, \hevea{} is more powerful in display mode and This rule is also true in \LaTeX{} but it is more strict in \hevea{}, Users should remember that \hevea{} is not \TeX{} or \LaTeX{} and that \hevea{} author neither is D.~E.~Knuth nor L.~Lamport. Users can get an idea on how \hevea{} combines elements in display mode instructs \hevea{} to add a By contrast with formulas, which \hevea{} attempts to render with When \hevea{} thinks it cannot translate a symbol or construct In the following (silly) example, \hevea{} gets nervous because of Running \hevea{} on this input produces a warning: # hevea manual.tex writing a specific macro. The next two sections introduce \hevea{} Just like \LaTeX{}, \hevea{} can be seen as a macro language, macros As a consequence, users can tailor \hevea{} to their needs, but it \hevea{}, since this is done by writing \LaTeX{} code. Therefore, there are many situations where \hevea{} just cannot If you are not satisfied with \hevea{} rendering of text style \LaTeX{}. The key point is that you need not worry about \hevea{} \texttt{hevea.hva} file that \hevea{} loads before processing any invoke \hevea{} internal commands. \LaTeX{} key constructs or \hevea{} internal commands (see section~\ref{internal}), in \hevea{} source code. argument to \hevea. # hevea trouble.hva trouble.tex By doing so, the macros written specially for \hevea{} are not \subsection{\hevea{} does not know a macro}\label{dontknow} Since \hevea{} does not know about \verb+\raisebox+, \verb+\raisebox+ macro for \hevea, because of \html{} limitations. Whereas, with the above definition of \verb+\raisebox+, \hevea{} produces: \hevea{} now produces a satisfying output: since by \hevea{} semantics for \verb+\newcommand+ (see \subsection{\hevea{} incorrectly interprets a macro}\label{blob} Sometimes \hevea{} knows about a macro, but the produced \html{} However, \hevea{} does its best to issue warnings when such situations \hevea{} always translates \verb+\rule+ as \verb+
+, ignoring size There is not small square in the symbol font used by \hevea. \subsection{\hevea{} crashes} \hevea{} failure may have many causes, including a bug. Such a source will make both \LaTeX{} and \hevea{} choke. \hevea{} issues the following error message that shows the \LaTeX{} Thus, when \hevea{} crashes, it is a good idea to check that the Unfortunately, \hevea{} may crash on input that does not affect However, \hevea{} usually translates \LaTeX{} environments to \html{} At that point, \hevea{} refuses to generate obviously of nuisance to \hevea{}. By contrast, running \hevea{} on \texttt{horreur.tex} yields a fatal error: # hevea horreur.tex Note that \hevea{} error message ``\texttt{Latex environment If \hevea{} crashes on \LaTeX{} source (not on \TeX{} source), \hevea{} version number. \latexsection{Making \hevea{} and \LaTeX{} both happy} giving instructions to \hevea{}. by \hevea{}. processor, file loading, the \texttt{hevea} package \hevea{} and \LaTeX{} treat files differently. Here is a summary of the main \item \LaTeX{} and \hevea{} both load files given as arguments to \hevea{} does not load \filename{filename}. \item \hevea{} loads all files given as command line arguments. \item Both \LaTeX{} and \hevea{} load style files given as optional in the source and to invoke \hevea{} as follows: \verb+# hevea+ \texttt{-e} \filename{latexonly}\ldots \label{heveaonly}Having \filename{heveaonly} loaded by \hevea{} only is more simple: it suffices to invoke \hevea{} as follows: \verb+# hevea+ \filename{heveaonly}\ldots Finally, if one has an \hevea{} equivalent \textit{style}\texttt{.hva} while \hevea{} loads \textit{style}\texttt{.hva}. As \hevea{} will not fail in case \textit{style}\texttt{.hva} does not Writing an \hevea{}-specific file \textit{file}\texttt{.hva} to \hevea{} only. Users can then be sure that these definitions are In the \verb+\usepackage+ case, \hevea{} loads \textit{file}\texttt{.hva} \subsection{The \protect\texttt{hevea} package}\label{heveastyle} The \texttt{hevea.sty} style file is intended to be loaded by \LaTeX{} and not by \hevea{}. Note that \hevea{} copes with the constructs defined in the \texttt{hevea.sty} file by default. It is important to notice that the \texttt{hevea.sty} style file from is not compatible with old \LaTeX{}. Moreover, the \texttt{hevea} \hevea{} and \LaTeX{} perform the following actions on source inside environment & \multicolumn{1}{c}{\hevea} & \multicolumn{1}{c}{\LaTeX} \hevea{} and left alone by \LaTeX{}: It is impossible to avoid the spurious space in \hevea{} output by using the \texttt{hevea} boolean register or comments, see sections~\ref{heveabool} It takes a little practice of \hevea{} to understand why this is by \hevea{} inside the \texttt{latexonly} environment, in order to \noindent While there is no \hevea{} output. Since \hevea{} somehow analyses input that is enclosed in the Inside this environment, \hevea{} performs no other action \subsubsection{The \texttt{hevea} boolean register}\label{heveabool} \boolindex{hevea}Both the \texttt{hevea.sty} style file and \hevea{} define the boolean register \texttt{hevea}. and \textit{true} for \hevea{}. Thus, provided, both the \texttt{hevea.sty} style file and the {\ifthenelse{\boolean{hevea}}{\purple}{}purple rain, purple rain}\ldots {\ifthenelse{\boolean{hevea}}{\purple}{}purple rain, purple rain}\ldots \verb+\ifhevea+ (see Section~\ref{texcond}): {\ifhevea\purple\fi purple rain, purple rain}\ldots We get: {\ifhevea\purple\fi purple rain, purple rain}\ldots \index{comment!hevea@\texttt{\%HEVEA}} \hevea{} processes all lines that start with \verb+%HEVEA+, while \texttt{hevea} package. For user convenience, comment equivalents to \hevea{} just cannot process its input, but it remains acceptable to \LaTeX{} output and to include a link to this image into \hevea{} \hevea{} provides a limited support for doing this. While outputting \filename{mydoc}\texttt{.html}, \hevea{} echoes some output a \verb++ tag in \hevea{} and \hevea{} output file name. # hevea blob.tex Note that this technique is used by \hevea{} implementation of the Then, \hevea{} can have this image translated into a inlined (and Then, processing \texttt{round.tex} through \hevea{} and command, so that \hevea{} echoes \verb+\epsfbox+ and its argument to Such a definition must be seen by \hevea{} only. So, it is best put \hevea{} command line (see section~\ref{heveaonly}). because \hevea{} does not know about \verb+\epsfbox+ by default. Here again, the rule of the game is keeping \hevea{} away from the normal process: first applying the filter, then making \hevea{} send The \texttt{gpic} filter is applied first, then come \texttt{hevea} # hevea tmp.tex -o smile.html Observe how the \verb+-o+ argument to \hevea{} is used and that \texttt{imagen} argument is \hevea{} output basename (see section~\ref{basenames} for the full definition of \hevea{} output basename). \hevea{} will process this source correctly, provided it is given its Assuming that the definition above is in a \ahref{\heveaurl/examples/smile.hva}{smile.hva} file, \ahref{\heveaurl/examples/smile.tex}{smile.tex} \mbox{now is}: # hevea smile.hva tmp.tex -o smile.html The warnings above are normal: they are issued when \hevea{} runs \hevea{} outputs a single \texttt{.html} file. This file can be First generate your {\html} document by applying \hevea{}: \texttt{\# hevea }\filename{mydoc}\texttt{.tex} \hevea{} are changed into remote links. Some of \hevea{} output get replicated in all the files generated by \texttt{hevea.sty} style file from the \hevea{} distribution. An alternative to loading the \texttt{hevea} package is to put \item[{\tt\char92 tocnumber}] Instruct \hevea{} to put section numbers \item[{\tt\char92 notocnumber}] Instruct \hevea{} \emph{not} to put \verb+\begin{document}+. They all generate \html{} comments in \hevea{} \usepackage{hevea} \texttt{hevea} package is loaded). an \hevea{} unaware \html{} page by~: \ifhevea \verb+\htmlprefix{\hevea{} Manual: }+ in the document, ``\hevea{} Manual: Cutting your document into pieces with \hacha'' \hevea{} and \hacha{}. \ifhevea The example yields: \hevea{} output language being \html{}, it is normal for users to insert \hevea{} provides high-level commands for doing this. \html{} directly may interfeer in nasty ways with \hevea{} internals. commands have approriate equivalents defined by the \texttt{hevea} package (see section~\ref{heveastyle}). still can be typeset by \LaTeX{}, provided it loads the \texttt{hevea} \multicolumn{1}{c}{Macro} & \multicolumn{1}{c}{\hevea} & document processed both by \LaTeX{} and \hevea{}. Moreover, \hevea{} (optionnaly) depends on only one third party package: some compatibility with older versions of \hevea. \hevea{} should be done using the \texttt{color} package (see The \texttt{hevea.sty} style file \hevea{} consumption only. Then, for \hevea{} to include a link to the GIF image in its Then \hevea{} has to be run as: # hevea macros.hva doc.tex Since it has its own definition of \verb+\epsfbox+, \hevea{} will \newcommand{\includeimage}[1]{\ifhevea\imgsrc{#1.gif}\else\epsfbox{#1.ps}\fi} Note that this method uses the \texttt{hevea} boolean register (see section~\ref{heveabool}). If one does not wish to load the \texttt{hevea.sty} file, When \hevea{} is given the command line option ``\texttt{-O}'', \texttt{hevea.sty} style file (see section~\ref{heveastyle}). In this section a few of \hevea{} internal macros are Internal macros occur at the final expansion stage of \hevea{} and their behavior may change from one version of \hevea{} to another and crashes \hevea. \hevea{} works. The general principle of \hevea{} is that \LaTeX{} environments excerpt from the \texttt{hevea.hva} file that \hevea{} does not feature all text-level elements by default. which \hevea{} uses internaly to output \texttt{A} elements. \latexsection{Customizing \hevea} \hevea{} can be controlled by writing \LaTeX{} code. In this section, we examine how users can change \hevea{} default behavior or add \texttt{macros.hva}. That is, \hevea{} is invoked as: # hevea macros.hva mydoc.tex \hevea{} default rendering of type style changes is described in For running \hevea{}, the \textit{jsc} style can be replaced by takes an extra optional argument (which \hevea{} should ignore However, \hevea{} can process the document as it stands. calls \hevea{} \verb+\title+ with the appropriate argument. \hevea{} fully implements \LaTeXe{} \verb+\newcommand+. To do this, the \hevea{} \verb+\epsfbox+ command has to check {\@imageflush\stepcounter{image}\imgsrc[#1]{\jobname\theimage\heveaimageext}} \hevea{} provides direct support for the alternative PNG image file It suffices to invoke \texttt{hevea} as: \texttt{\#~hevea~png.hva}~\textit{mydoc.tex} To translate into text, invoke \hevea{} as follow: # hevea -text [-w ] myfile.tex Then, \hevea{} produces \texttt{myfiles.txt} a plain text translation Please note that \hevea{} translates plain \LaTeX{} to info, and not # hevea -info [-w ] myfile.tex Then, \hevea{} produces the file \texttt{myfile.info}, an info i.e., in \hevea{} case, to sectional units. Usually, \hevea{} ignore such comments. However, \hevea{} processes (and this is the case of many of \hevea{} internal commands), or However, \hevea{} does its best to read arguments even when they are \hevea{} has been improved as regards emulation of complicated \hevea{} correctly processes the following source: \verb+\textbf+ and \hevea{} succeeds in fetching the argument but \hevea{} handles it. behavior, which \hevea{} does not handle. the rest of the text alone. While \hevea{} typesets everything using bold font. Here is \ifhevea\hevea\else\LaTeX\fi{} output: Note that, in most similar situations, \hevea{} will likely crash. Fragile commands are not relevant to \hevea{} and \verb+\protect+ is to users expectations. Note that, to \hevea{} being The \emph{preamble} starts as soon as \hevea{} starts to operate and arguments to \hevea{}, see section~\ref{comline}). This is mostly useful when \hevea{} output is later cut into pieces by change \hevea{} default (empty) atribute for the iso-latin1 and symbol character sets, then \hevea{} in the directory \texttt{\heveaurl/doc/} Otherwise, \hevea{} usually issues a warning to draw user attention. \hevea{} now generates a table of contents, using a procedure similar However, \hevea{} has a more sophisticated way of producing A later run of {\hacha} on \hevea{} output file splits it \filename{style}\texttt{.hva} file (see~\ref{comline} to see where \hevea{} giving one of the four recognized style files of \hevea{} as command Conversely, if \hevea{} attempt to load \filename{style}\texttt{.hva} \hevea{} reacts to \item \hevea{} attempt to load file \textit{pkg}\texttt{.hva}, (see section~\ref{search:path} on where \hevea{} searches for files). Note that \hevea{} will not fail if it cannot load The \hevea{} distribution contains implementations of some packages, In some situations it may not hurt at all if \hevea{} does not implement a package, for instance \hevea{} does not provide an command generates will work properly only if \texttt{hevea} is invoked \hevea{} implements the \verb+center+, \verb+flushleft+ and \hevea{} also implements the corespondant \TeX{} style declaration Math mode is not as powerful in \hevea{} as in \LaTeX{}. The \hevea{} have much more possibilities in display context than inside For instance compare how \hevea{} renders \hevea{} admits, subscript (\verb+_+), superscripts (\verb+^+) and By contrast, when not in display mode, \hevea{} uses only given as a command line argument to \hevea{}. For instance, \hevea{} cannot render the \verb+\leadsto+ symbol, but it When given the \verb+-nosymb+ option, \hevea{} silently replaces \ifhevea{\input{mathaccents.hva}For instance, given the formula \ifhevea With such definitions the previous example now appears as: \verb+\textstyle+ do nothing when \hevea{} is already in the requested This is so because \hevea{} implements displayed maths as tables, \hevea{} understands command definitions given in \LaTeX{} style. Such However, \hevea{} is more tolerant: if command name}. In both cases, \LaTeX{} would crash, \hevea{} just issues specific style file given as an argument to \hevea{} (see section~\ref{heveaonly}). Conversely, changes of base macros (i.e., the ones that \hevea{} It is worth noticing that \hevea{} also partly implements \TeX{} definitions \hevea{} accepts environment definitions and redefinitions this style will clobber the output. However, \hevea{} implements As a consequence, \hevea{} accepts the following example from the Additionally, a few boolean registers are defined by \hevea{}. \item[\texttt{hevea}] Initial value is \texttt{true}. The \texttt{hevea.sty} style file also defines this register with \item[\texttt{mmode}] This register value reflects \hevea{} operating \item[\texttt{display}] This register value reflects \hevea{} operating command line option internally (see Section~\ref{heveaoptions}). When set false, \hevea{} does not insert its footer ``\emph{This document has been translated by \hevea}''. Finally, note that \hevea{} also recognized à la \TeX{} conditional \hevea{} makes a distinction between LR-mode and paragraph mode. By default, \hevea{} implements the \texttt{array} package \hevea{} uses some of the ancillary files generated by \LaTeX. If this file is present, \hevea{} reads it and put such numbers (or file is not present, or if the \texttt{hevea} command is given the ``\texttt{-fix}'' option, \hevea{} will instead use \texttt{.haux} \item[\protect\texttt{.haux}] Such files are \hevea{} equivalents of As a consequence, two runs of \hevea{} might be needed to get cross \hevea{} computes its own indexes, using \texttt{.hidx} files for Again, several runs of \hevea{} might be needed to get indexes right. \noindent\hevea{} does not fail when it cannot find an auxiliary file. When another run of \hevea{} is needed, a warning is issued, and it is user's responsability to rerun \hevea{}. provided makes \hevea{} rerun itself. The \LaTeX{} \verb+\label+ and \verb+\ref+ are changed by \hevea{} (For \hevea{} needs, one run is probably sufficient). \item If no \filename{mydoc}\texttt{.aux} file exists, then \hevea{} \hevea{} will output a Hence, in that case, \hevea{} may need to run twice to get \hevea{} issues a warning then the cross-referencing information it and by \hevea{} in the second case, when they process the See section~\ref{comline} on how \hevea{} searches files. option (see section~\ref{heveaoptions}), then \hevea{} does not attempt to load \textit{filename}. \item \hevea{} does not fails when it cannot find As with \LaTeX{}, two runs of \hevea{} are normally needed to format \hevea{} cannot interpret more complicated length arguments However \verb+\makebox+ generates a specific warning, since \hevea{} this choice is made by \hevea. (However, note that \hevea{} runs \texttt{imagen} when given the by \hevea: # hevea doc.tex \ifhevea \hevea{} partly implements the \texttt{color} package. As regards color models, \hevea{} implements the \texttt{rgb}, (\hevea{} implements the \texttt{color} package with \ifhevea Which yields: However, \hevea{} features a Here is how \hevea{} implements text-style declarations by default: \newcommand{\heveastyle}[2]{{\ifhevea#1\fi#2}} \verb+\itshape+ & \heveastyle{\itshape}{italics}\\ \verb+\slshape+ & \heveastyle{\slshape}{maroon italics}\\ \verb+\scshape+ & \heveastyle{\scshape}{navy blue}\\ \verb+\upshape+ & \heveastyle{\upshape}{no style}\\ \hline \verb+\ttfamily+ & \heveastyle{\ttfamily}{typewriter font}\\ \verb+\sffamily+ & \heveastyle{\sffamily}{purple}\\ \verb+\rmfamily+ & \heveastyle{\rmfamily}{no style}\\ \hline \verb+\bfseries+ & \heveastyle{\bfseries}{bold}\\ \verb+\mdseries+ & \heveastyle{\mdseries}{no style}\\ \hline \hevea{} implements the three components by making one declaration to italics\ifhevea: ``{\sl\sc slanted and small caps}''\fi. This section describes \hevea{} functionalities that extends on plain \LaTeX{}, Normally, \hevea{} does not recognize constructs that are specific to However, some of the internal commands of \hevea{} are homonymous to notice that \hevea{} semantics for \verb+\def+ \hevea{}, where \verb+\def+ had the same semantics as macros parameters is not performed at the same moment by \hevea{} and \LaTeX{} and in \hevea: \LaTeX{} output is ``coucou''A, while \hevea{} output is ``coucouA''. Here is \ifhevea\hevea\else\LaTeX\fi{} output: \hevea{} crash. \comdefindex{let}\hevea{} also processes a Note that \hevea{} also implements \LaTeX{} \texttt{ifthen} package \hevea{} implements the macros \verb+\unskip+ and \verb+\endinput+. However, \hevea{} source distribution includes a simple (\texttt{sh}) The \texttt{hevea} command, should be invoked as~: # hevea -exec xxdate.exe ... read by \hevea{}. \comindex{heveadate} \ifhevea(e.g. \theweekday)\fi\\ \ifhevea(e.g. \theHour)\fi\\ Counter \texttt{hour} & hour, 00\ldots{}23 \ifhevea(e.g. \thehour)\fi \\ \ifhevea(e.g. \theminute)\fi\\ \ifhevea(e.g. \thesecond)\fi\\ \hline \ifhevea(e.g. \ampm)\fi\\ \ifhevea(e.g. \timezone)\fi\\ Command \verb+\heveadate+ & Output of the ``\texttt{date}'' Unix command\ifhevea, (e.g. \heveadate)\fi\\ \hline not want to enable \hevea{} to execute silently an arbitrary program Moreover, the \texttt{hevea} program does not execute commands themselves do\ifhevea{} (this is the style of this manual).\else.\fi{} # hevea article.hva fancysection.hva doc.tex And then launch \texttt{hevea} as: # hevea doc.hva doc.tex \subsection{\hevea{} as a Back-End for VideoC} \hevea{} is one of the back-ends of the VideoC system for producing \hevea{} internal engine implements some of the core constructs needed \hevea{} distribution includes ``.hva'' packages that are \hevea{} \texttt{amsmath} package defines some of the constructs of the specifications and of how \hevea{} \hevea{} implements column specifications with commands defined in the environment \verb+tabularx+ and a new column type \verb+X+. \hevea{} From \hevea{} point of view, drawing the border line between what can be At the moment \hevea{} choice is not to specify too much (in \hevea{} does not implement this extension, since it does not \hevea{} supports several simultaneous indexes, following the scheme More precisely, \hevea{} knows the following commands: \hevea{}; and {\it indexname} is the title of the index. If given the \verb+idx+ option. \hevea{} attempts to read file difference between \LaTeX{} and \hevea{}: for \verb+\printindex+ to \hevea{} provides a slighty uncomplete implementation of the \hevea{} commands for hyperlinks (see section~\ref{hyperlink})~: \hevea{} home page is \ahrefurl{\url{http://pauillac.inria.fr/~maranget/hevea/}} It yields~: ``\hevea{} home page is \ahrefurl{\url{http://pauillac.inria.fr/~maranget/hevea/}}''. \LaTeX{} problem, not an \hevea{} one). \urldef{\heveahome}{\url}{http://pauillac.inria.fr/~maranget/hevea/} \urldef{\heveahome}{\url}{http://pauillac.inria.fr/~maranget/hevea/}% Such a source defines the robust command \verb+\heveahome+ as the Have a look at \footurl{\heveahome}{\hevea{} home page} It yields: ``Have a look at \footahref{\heveahome}{\hevea{} home page}''. contrast, it does not work in \hevea{}. In such situations, \hevea{} implementation is somehow compatible at the ``programming level''. Have a look at \url{http://pauillac.inria.fr/~maranget/hevea/} \input{urlhref.hva}It yields ``Have a look at \url{http://pauillac.inria.fr/~maranget/hevea/}''. style file (which is an \hevea{} style file and not a \LaTeX{} is much more compatible with \hevea{} than \hevea{} features a quite compatible implementation, please refer to Note that \hevea{} does not produce very compact giving \texttt{hevea} the command line option ``\texttt{-O}'' (see Section~\ref{heveaoptions}). \subsection{\hevea{} usage}\label{heveausage} \index{hevea@\texttt{hevea} command} The \texttt{hevea} command has two operating modes, normal mode and The \texttt{hevea} command interprets its arguments as names of searched along \texttt{hevea} search path, which consist in: \item \texttt{hevea} library directory. \texttt{info} from \texttt{hevea} library directory, depending upon \texttt{hevea} output format, The \texttt{hevea} library directory is fixed at compile-time (this is where \texttt{hevea} library files are installed) and typically is \texttt{/usr/local/lib/hevea}. \hevea{} will attempt to load the main input file. The output base name governs all files produced by \hevea{}. That is, \html{} output of \hevea{} normally goes to the file Thus, in the simple case where the \texttt{hevea} command is invoked # hevea file.tex \texttt{file}. The main input file is searched once along \texttt{hevea} In the more complicated case where the \texttt{hevea} command is invoked # hevea ./dir/file base style files from \hevea{} library are special. # hevea article.hva file.tex In other words \texttt{hevea} acts as a filter. ``\verb+hevea+ \textit{file}\verb+.tex+'' and not ``\verb+hevea < + \textit{file}\verb+.tex > +\textit{file}\verb+.html+''. \subsubsection{Options}\label{heveaoptions} The \texttt{hevea} command recognizes the following options: \item[{\tt -version}] Show \texttt{hevea} version and exit. \item[{\tt -e} {\it filename}] Prevent \texttt{hevea} from loading any file files, including \texttt{hevea.hva} and base style files. \item[{\tt -fix}] Iterate \hevea{} until a fixpoint is found. searched by following the searching rules of~\texttt{hevea}. \item \texttt{hevea} sets the boolean register \texttt{french} to a tutorial introduction to \hevea{}, while \hevea{} reference manual is part~\ref{referencemanual}. is part of \hevea{} and is designed to optimize \texttt{hevea} It is a companion program of \hevea{}, which must have been previously run as: \texttt{\# hevea}\ldots{} \textit{base}\texttt{.tex}\\ \texttt{\# hevea}\ldots{} \texttt{-o} \textit{base}\texttt{.html}\ldots\\ (In both cases, \textit{base} is \hevea{} output basename.) \hevea{} echoes part of its input into Note that \texttt{hevea} should have been previously run as \texttt{hevea png.hva} \textit{base}\texttt{.tex} (so that the proper The file is first translated into \texttt{doc.html} by \texttt{hevea}, HEVEA=hevea Thanks to the \verb+-fix+ options, \texttt{hevea} will run the appropriate HEVEA=hevea when given the \verb+-fix+ option, \texttt{hevea} will itself run By default, \hevea{} uses A good way to know whether your browser can show \hevea{} symbols or as intended by \hevea{}. work only with documents that are generated by \hevea{} with the \texttt{-noiso} option enabled (see section~\ref{heveaoptions}). \hevea{} home page is \ahrefurl{\httpbase}. It contains links to the \hevea{} can be freely used and redistributed without modifications. Modifying and redistributing \hevea{} implies a few constraints. More precisely, \hevea{} is distributed under the terms of the Q~Public License, but \hevea{} binaries include the Objective Caml \ifhevea The programs \commandname{hevea} and \commandname{hacha} are written in \footahref{\ftpbase/hevea-\heveaversion-1.i386.rpm}{binary distribution} \label{imagen:needs}\hevea{} users may instruct the program not to process a \verb+.gif+ file and \hevea{} outputs a link to the image file. To benefit from the full functionality of \hevea, you need all this software. However, \hevea{} runs without them, but then you will Basically, \hevea{} should be given a library directory. The installation procedure stores the \texttt{hevea.hva} In \hevea{} case, \texttt{ocamlopt} produces code that is up to three Note that the \texttt{hevea.sty} file is simply copied to \hevea{} \hevea{}: write a fast translator as a lexer, use symbol fonts and whereas \hacha{} can cut the output of \hevea{} into several files. for producing the Caml manuals. This is \hevea{} direct ancestor and I The following people contributed to \hevea{} development: \ahref{http://www.arch.ohio-state.edu/crp/faculty/pviton/support/hevea.html}{window (win32) port} of \hevea. lexer with \hevea{} main lexer is now used extensively throughout \hevea{} source code. \item Pierre Boulet, by using \hevea{} as a stage in his tool \hevea{} implementation of the \verb+alltt+ environment.