diff -pruN 2.29-2/browser.html 2.32-1/browser.html --- 2.29-2/browser.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/browser.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,29 +2,30 @@ - - + + + Browser configuration -Previous -Up -Next +Previous +Up +Next

C.2  Browser configuration

-By default, HEVEA does not anymore use the FACE=symbol +By default, HEVEA does not anymore use the FACE=symbol attribute to the <FONT ...> tag. As a consequence, browser -configuration is no longer needed.

HEVEA now extensively outputs Unicode entities. -This first means that HEVEA targets modern browsers with +configuration is no longer needed.

HEVEA now extensively outputs Unicode entities. +This first means that HEVEA targets modern browsers with decent unicode support, and only those.

In case your browser is recent and that you nevertheless experience display -problems on HEVEA-generated pages, see the excellent +problems on HEVEA-generated pages, see the excellent Alan Wood’s Unicode Resources. It may help to understand display problems and even to solve them by configuring browsers or installing some fonts.


-Previous -Up -Next +Previous +Up +Next Binary files 2.29-2/contents_motif.gif and 2.32-1/contents_motif.gif differ diff -pruN 2.29-2/contents_motif.svg 2.32-1/contents_motif.svg --- 2.29-2/contents_motif.svg 1970-01-01 00:00:00.000000000 +0000 +++ 2.32-1/contents_motif.svg 2018-07-04 13:20:49.000000000 +0000 @@ -0,0 +1,4 @@ + + + diff -pruN 2.29-2/cutname.html 2.32-1/cutname.html --- 2.29-2/cutname.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/cutname.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,16 +2,17 @@ - - + + + Cutting your document into pieces with HACHA -Previous -Up -Next +Previous +Up +Next
-

7  Cutting your document into pieces with HACHA

+

7  Cutting your document into pieces with HACHA

-HEVEA outputs a single .html file. This file can be -cut into pieces at various sectional units by HACHA

+HEVEA outputs a single .html file. This file can be +cut into pieces at various sectional units by HACHA

7.1  Simple usage

-First generate your html document by applying HEVEA: +First generate your html document by applying HEVEA:

# hevea doc.tex

@@ -49,45 +50,45 @@ Sectional units above the cutting sectio article and book styles) close the current table of contents and open a new one. Cross-references are properly handled, that is, the local links generated by -HEVEA are changed into remote links.

The name of the root file can be changed using the +HEVEA are changed into remote links.

The name of the root file can be changed using the -o option:

# hacha -o root.html doc.html -

Some of HEVEA output get replicated in all the files generated by -HACHA. +

Some of HEVEA output get replicated in all the files generated by +HACHA. Users can supply a header and a footer, which will appear at the -begining and end of every page generated by HACHA. It suffices to +begining and end of every page generated by HACHA. It suffices to include the following commands in the document preamble:

-  \htmlhead{header}
-  \htmlfoot{footer} -

HACHA also makes every page it generates a clone of its input as +  \htmlhead{header}
+  \htmlfoot{footer} +

HACHA also makes every page it generates a clone of its input as regards attributes to the <body ...> opening tag and meta-information from the <head><\head> block. See section B.2 for examples of this replication -feature.

By contrast, style information specified in the style elements +feature.

By contrast, style information specified in the style elements from rom the <head><\head> block is not replicated. Instead, all style definitions are collected into an external style sheet file whose name is doc.css, and all generated html files adopt doc.css as an external style sheet. -It is important to notice that, since version 1.08, HEVEA produces +It is important to notice that, since version 1.08, HEVEA produces a style element by itself, even if users do not explicitely use styles. As a consequence, -HACHA normally produces a +HACHA normally produces a file doc.css, which should not be forgotten while -copying files to their final destination after a run of HACHA.

+copying files to their final destination after a run of HACHA.

7.2  Advanced usage

-

HACHA behaviour can be altered from the document source, by using +

HACHA behaviour can be altered from the document source, by using a counter and a few macros.

A document that explicitly includes cutting macros still can be typeset by LATEX, provided it loads the -hevea.sty style file from the HEVEA distribution. +hevea.sty style file from the HEVEA distribution. (See section 5 for details on this style file). An alternative to loading the hevea package is to put all cutting instructions in comments starting with %HEVEA.

7.2.1  Principle

-HACHA recognizes all sectional units, ordered as follows, from +HACHA recognizes all sectional units, ordered as follows, from top to bottom: part, chapter, section, subsection, subsubsection, paragraph and subparagraph.

At any point between \begin{document} and @@ -98,7 +99,7 @@ Table of contents output goes to the roo the output file. Cutting units start a new output file, whereas units comprised between the cutting unit and the cutting units plus the cutting depth add new -entries in the table of contents.

At document start, the root file and the output file are HACHA +entries in the table of contents.

At document start, the root file and the output file are HACHA output file (i.e. index.html). The cutting unit and the cutting depth are set to default values that depend on the document style.

@@ -106,51 +107,51 @@ depend on the document style.

The following cutting instructions are for use in the document preamble. They command the cutting scheme of the whole document: -

+

\cuttingunit
This is a macro that holds the document cutting unit. You can change the default (which is section in the article style and chapter in the book style) by doing:
-\renewcommand{\cuttingunit}{secname}. +\renewcommand{\cuttingunit}{secname}.
-
\tocnumber
Instruct HEVEA to put section numbers +
\tocnumber
Instruct HEVEA to put section numbers into table of content entries. -
\notocnumber
Instruct HEVEA not to put +
\notocnumber
Instruct HEVEA not to put section numbers into table of content entries. This is the default.
cuttingdepth
This is a counter that holds the document cutting depth. You can change the default value of 1 by doing -\setcounter{cuttingdepth}{numvalue}. +\setcounter{cuttingdepth}{numvalue}. A cutting depth of zero means no other entries than the cutting units in the table of contents.

Other cutting instructions are to be used after -\begin{document}. They all generate html comments in HEVEA +\begin{document}. They all generate html comments in HEVEA output. -These comments then act as instructions to HACHA. - - +These comments then act as instructions to HACHA. + +

-\cuthere{secname}{itemtitle}
+\cuthere{secname}{itemtitle}
Attempt a cut.
\cutdef[depth]{secname}
+
\cutdef[depth]{secname}
Open a new table of contents, with cutting depth depth and cutting unit secname. If the optional depth is absent, the cutting depth does not change. @@ -169,7 +170,8 @@ Commands \cuthere and 7.3.6).

Default settings work as follows: \begin{document} performs

\cutdef*[\value{cuttingdepth}]{\cuttingunit}
-

and \end{document} performs \cutend*. +

+and \end{document} performs \cutend*. All sectioning commands perform \cuthere, with the sectional unit name as first argument and the (optional, if present) sectioning @@ -178,40 +180,40 @@ Note that starred versions of the sectio cutting instructions.

7.2.3  Table of links organisation

-A table of links generated by HACHA is a list +A table of links generated by HACHA is a list of links to generated files. Additionally, some sublists may be present, up to a certain depth. The items in those sublists are links inside generated files, they point to sectional unit titles -below the cutting unit, up to a certain depth.

More precisely, let A be a certain sectional unit (e.g. -“part”), let B be just below A +below the cutting unit, up to a certain depth.

More precisely, let A be a certain sectional unit (e.g. +“part”), let B be just below A (e.g. “section”), -and let C be just below C (e.g. “subsection”). -Further assume that cutting is performed at level B with a depth of +and let C be just below C (e.g. “subsection”). +Further assume that cutting is performed at level B with a depth of more than one. -Then, every unit A holds a one or several tables of links -to generated files, and each generated file normally holds a B unit. -Sublists with links to C units inside B units normally appear in the -tables of links of level A. -The command-line options -tocbis -and -tocter instruct hacha +Then, every unit A holds a one or several tables of links +to generated files, and each generated file normally holds a B unit. +Sublists with links to C units inside B units normally appear in the +tables of links of level A. +The command-line options -tocbis +and -tocter instruct hacha to put sublists at other places. With -tocbis sublists are duplicated at the beginning -of the B level files; while with -tocter sublist only +of the B level files; while with -tocter sublist only appear at the beginning -of the B level files.

In my opinion, -default style is appropriate for documents with short B units; +of the B level files.

In my opinion, +default style is appropriate for documents with short B units; while -tocbis style -is appropriate for documents with long B units with +is appropriate for documents with long B units with a few sub-units; and -tocter style is appropriate -for documents with long B units with +for documents with long B units with a lot of sub-units. As you may have noticed, this manual is cut by following the --tocbis style.

Whatever the style is, if a B unit is cut +-tocbis style.

Whatever the style is, if a B unit is cut (e.g. because its text is enclosed in -\cutdef{C}\cutend), -then every C unit goes into its own file and there is no sublist -after the relevant B level entry in the A level table of links.

+\cutdef{C}\cutend), +then every C unit goes into its own file and there is no sublist +after the relevant B level entry in the A level table of links.

7.2.4  Examples

Consider, for instance, a book document with a long chapter that you want to cut at the section level, showing subsections: @@ -219,7 +221,8 @@ that you want to cut at the section leve ..... \chapter{The next chapter} -

+

+ Then, you should insert a \cutdef at chapter start and a \cutend at chapter end:

\chapter{A long chapter}
@@ -227,15 +230,16 @@ Then, you should insert a \cutdef<
 .....
 %HEVEA\cutend
 \chapter{The next chapter}
-

Then, the file +

+Then, the file that would otherwise contain the long chapter now contains the chapter title and a table of sections. No other change is needed, since the command \section already performs the appropriate \cuthere{section}{...} commands, which were ignored by default. (Also note that cutting macros are placed inside %HEVEA comments, -for LATEX not to be disturbed).

- +for LATEX not to be disturbed).

+ The \cuthere macro can be used to put some document parts into their own file. This may prove appropriate for long cover pages or abstracts that would @@ -247,7 +251,8 @@ Consider the following document: \begin{abstract} A big abstract \end{abstract} ... -

Then, you make the abstract go to its own file as it was a cutting +

+Then, you make the abstract go to its own file as it was a cutting unit by typing:

\documentclass{article}
 \usepackage{hevea}
@@ -256,110 +261,115 @@ unit by typing:
 \cuthere{\cuttingunit}{Abstract}
 \begin{abstract} A big abstract \end{abstract}
 ...
-

(Note that, this time, cutting macros appear unprotected in the +

+(Note that, this time, cutting macros appear unprotected in the source. However, LATEX still can process the document, since the hevea package is loaded).

7.2.5  More and More Pages in Output

-In some situations it may be appropriate to produce many +In some situations it may be appropriate to produce many pages from one source files. More specifically, loading the deepcut package will put all sectioning units of your document (from \part to \subsection in their own file.

Similarly, loading the figcut package will make all figures and tables go into their own file. The figcut package accepts two options, show and -noshow. The former, which is the default, instructs HEVEA +noshow. The former, which is the default, instructs HEVEA to repeat the caption into the main flow of text, with a link to the figure. The latter option disables the feature.

7.3  More Advanced Usage

-In this section we show how to alter some details of HACHA +In this section we show how to alter some details of HACHA behaviour. This includes controlling output file names and the title of generated web pages and introducing arbitrary cuts.

7.3.1  Controlling output file names

-

When invoked as hacha doc.html, -HACHA produces a index.html table of links file that +

When invoked as hacha doc.html, +HACHA produces a index.html table of links file that points into doc001.html, doc002.html, etc. content files. This is not very convenient when one wishes to point inside the document from outside. -However, the \cutname{name} command -sets the name of the current output file name as name.

Consider a document cut at the section level, which contains the +However, the \cutname{name} command +sets the name of the current output file name as name.

Consider a document cut at the section level, which contains the following important section:

\section{Important\label{important} section}
 ...
-

To make the important section goes into file important.html, +

+To make the important section goes into file important.html, one writes:

\section{Important\label{important} section}\cutname{important.html}
 ...
-

Then, section “Important section” can be referenced from -an HEVEA unaware html page by: +

+Then, section “Important section” can be referenced from +an HEVEA unaware html page by:

In this document, there is a very
 <a href="important.html#important">important section</a>.
-

If you are reading the html version of this manual, you may check +

+If you are reading the html version of this manual, you may check that you are now reading file cutname.html. This particular file name has been specified from the source using \cutname{cutname.html}.

7.3.2  Controlling page titles

- -When HACHA creates a web page from a given sectional unit, + +When HACHA creates a web page from a given sectional unit, the title of this page normally is the name of the sectional unit. For instance, the title of this very page should be -“Cutting your document into pieces with HACHA”. +“Cutting your document into pieces with HACHA”. It is possible to insert some text at the beginning of all page titles, by using the \htmlprefix command. Hence, by writing \htmlprefix{\hevea{} Manual: } in the document, the title of this page would become: -“HEVEA Manual: Cutting your document into pieces with HACHA” +“HEVEA Manual: Cutting your document into pieces with HACHA” and the title of all other pages would show the same prefix.

7.3.3  Links for the root file

- -The command \toplinks{prev}{up}{next} instructs HACHA to put links to a + +The command \toplinks{prev}{up}{next} instructs HACHA to put links to a “previous”, “up” and “next” page in the root file. The following points are worth noticing:

  • The \toplink command must appear in the document preamble (i.e. before \begin{document}).
  • The arguments -prev, up and next should expand to urls, +prev, up and next should expand to urls, notice that these argument are processed (see section 8.1.1).
  • When one of the expected argument is left empty, the corresponding link is not generated.

This feature can prove useful to relate documents that are generated independently by -HEVEA and HACHA.

+HEVEA and HACHA.

7.3.4  Controlling link aspect from the document

-By default the links to the previous, up and next pages show a small +By default the links to the previous, up and next pages show a small icon (an appropriate arrow). This can be changed with the command -\setlinkstext{prev}{up}{next}, -where prev, up and next are some LATEX +\setlinkstext{prev}{up}{next}, +where prev, up and next are some LATEX source. - + For instance the default behaviour is equivalent to:

\setlinkstext
-  {\imgsrc[alt="Previous"]{previous_motif.gif}}
-  {\imgsrc[alt="Up"]{contents_motif.gif}}
-  {\imgsrc[alt="Next"]{next_motif.gif}}
-

Command \setlinkstext behaves as \toplinks does. + {\imgsrc[alt="Previous"]{previous_motif.svg}} + {\imgsrc[alt="Up"]{contents_motif.svg}} + {\imgsrc[alt="Next"]{next_motif.svg}} +

+Command \setlinkstext behaves as \toplinks does. That is, it must occur in document preamble, arguments are processed and empty arguments yield no effect (i.e. defaults apply).

7.3.5  Cutting a document anywhere

- + Part of a document goes to a separate file when enclosed in a cutflow environment:

-\begin{cutflow}{title}\end{cutflow} +\begin{cutflow}{title}\end{cutflow}

The content “…” will go into a file of its own, while -the argument title is used as the title of the introduced +the argument title is used as the title of the introduced html page.

The html page introduced here does not belong to the normal flow of text. Consequently, one needs an explicit reference from the normal flow of text @@ -382,7 +392,8 @@ Answers in section~\ref{answers}. \item Dylan is Dylan. \end{enumerate} \end{cutflow} -

The example yields: +

+The example yields:

A small quiz

  1. @@ -392,37 +403,37 @@ What is black?

Answers in section 7.3.5.

- + However,introducing html hyperlink targets and references with the \aname and \ahrefloc commands (see section 8.1.1) -will be more practical most of the time.

The starred variant environment +will be more practical most of the time.

The starred variant environment cutflow* is the same as cutflow, save for the html header and footer (see Section 7.1) which are not replicated in the introduced page.

7.3.6  Footnotes

-Footnote texts (given as arguments either to \footnote or +Footnote texts (given as arguments either to \footnote or \footnotetext) do not go directly to output. Instead, footnote texts accumulate internally in a buffer, awaiting to be flushed. The flushing of notes is controlled by the means of a current flushing unit, which is a sectional unit name or -document — a fictional unit above all units. +document — a fictional unit above all units. At any point, the current flushing unit is the value of the -command \@footnotelevel. +command \@footnotelevel. In practice, the flushing of footnote texts is performed by two commands:

  • -\flushdef{secname} simply sets -the flushing unit to secname. -
  • \footnoteflush{secname} acts +\flushdef{secname} simply sets +the flushing unit to secname. +
  • \footnoteflush{secname} acts as follows:
    • -If argument secname is equal to or above the +If argument secname is equal to or above the current flushing unit, then footnote texts are flushed (if any). In the output, the texts themselves are surrounded by special comments -that tag them as footnote texts and record secname. +that tag them as footnote texts and record secname.
    • Otherwise, no action is performed.

@@ -431,38 +442,38 @@ while the book style file perfo At the end of processing, \end{document} performs \footnoteflush{\@footnotelevel}, so as to flush any pending notes.

Cutting commands interact with footnote flushing as follows:

  • -\cuthere{secname} -executes \footnoteflush{secname}. +\cuthere{secname} +executes \footnoteflush{secname}. Remember that all sectioning commands perform \cuthere with their sectional unit name as argument. -
  • \cutdef{secname} +
  • \cutdef{secname} saves the current flushing unit and buffer on some internal stack, starts a new buffer for footnote texts, and -sets the current flushing unit to secname -(by performing \flushdef{secname}). +sets the current flushing unit to secname +(by performing \flushdef{secname}).
  • \cutend first flushes any pending texts (by performing \footnoteflush with the current flushing unit as argument), and restores the flushing unit and footnote text buffer saved by the matching \cutdef.
  • The starred variants \cutdef* and \cutend* perform no operation that is related to footnotes. -

Later, when running across footnote texts in its input file, HACHA +

Later, when running across footnote texts in its input file, HACHA sometimes put notes in a separate file. -More precisely, HACHA has knowledge of the +More precisely, HACHA has knowledge of the current cutting level, the current sectional unit where cuts occur — as given by the relevant \cutdef. -Moreover, HACHA knows the current section level — +Moreover, HACHA knows the current section level — that is, the last sectional command processed. -Besides, HACHA extracts the note level from the comments +Besides, HACHA extracts the note level from the comments that surround the notes (as given by the command \footnoteflush that produced the notes). -Then, HACHA creates a separate file for notes +Then, HACHA creates a separate file for notes when the cutting level and the note level differ, or when the current level is above the cutting level (e.g. the current level is document while the cutting level is chapter). As a result, notes should stay where they are when they occur at the end of -HACHA output file and otherwise go to a separate file.

To make a complicated story even more complicated, +HACHA output file and otherwise go to a separate file.

To make a complicated story even more complicated, footnotes in minipage environments or in the arguments to \title or \author have a different, I guess satisfactory, behaviour.

Given the above description, footnotes are managed by default as follows. @@ -475,7 +486,7 @@ chapters. A later run of  

-In case you wish to adopt a book-like behaviour for +In case you wish to adopt a book-like behaviour for an article (footnotes at the end of sections), it suffices to insert \flushdef{section} in the document preamble.

We now give a few example of interaction between notes and cutting. @@ -517,8 +528,8 @@ redefine the flushing unit, and flush no the end of cutname.html

5
Sent at the end of cutname.html

-Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/debian/changelog 2.32-1/debian/changelog --- 2.29-2/debian/changelog 2016-09-25 10:32:00.000000000 +0000 +++ 2.32-1/debian/changelog 2018-08-08 15:00:49.000000000 +0000 @@ -1,3 +1,17 @@ +hevea-doc (2.32-1) unstable; urgency=medium + + * New upstream version. + * Debhelper compatibility level 11 + * d/hevea-doc.install: drop *.gif (there aren't any), add *.svg + * Updated Vcs-* to salsa + * Privacy breach due to https request in html documents: + - replace by file: url of local copy of mathjax + - add dependency on libjs-mathjax + * Standards-Version 4.2.0: + - use https in format specification in d /copyright + + -- Ralf Treinen Wed, 08 Aug 2018 17:00:49 +0200 + hevea-doc (2.29-2) unstable; urgency=medium * upload to unstable with binary package diff -pruN 2.29-2/debian/compat 2.32-1/debian/compat --- 2.29-2/debian/compat 2016-09-25 10:32:00.000000000 +0000 +++ 2.32-1/debian/compat 2018-08-08 15:00:49.000000000 +0000 @@ -1 +1 @@ -7 +11 diff -pruN 2.29-2/debian/control 2.32-1/debian/control --- 2.29-2/debian/control 2016-09-25 10:32:00.000000000 +0000 +++ 2.32-1/debian/control 2018-08-08 15:00:49.000000000 +0000 @@ -4,15 +4,15 @@ Priority: optional Maintainer: Debian OCaml Maintainers Uploaders: Ralf Treinen , Samuel Mimram -Build-Depends: debhelper (>= 7.0.50~) -Standards-Version: 3.9.8 -Vcs-Git: https://anonscm.debian.org/git/pkg-ocaml-maint/packages/hevea-doc.git -Vcs-Browser: https://anonscm.debian.org/cgit/pkg-ocaml-maint/packages/hevea-doc.git +Build-Depends: debhelper (>= 11) +Standards-Version: 4.2.0 +Vcs-Browser: https://salsa.debian.org/ocaml-team/hevea-doc +Vcs-Git: https://salsa.debian.org/ocaml-team/hevea-doc.git Homepage: http://hevea.inria.fr Package: hevea-doc Architecture: all -Depends: ${misc:Depends} +Depends: ${misc:Depends}, libjs-mathjax Recommends: hevea, www-browser Description: HeVeA documentation HeVeA is a powerful and efficient translator from LaTeX to HTML (and other diff -pruN 2.29-2/debian/copyright 2.32-1/debian/copyright --- 2.29-2/debian/copyright 2016-09-25 10:32:00.000000000 +0000 +++ 2.32-1/debian/copyright 2018-08-08 15:00:49.000000000 +0000 @@ -1,4 +1,4 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: hevea-manual Upstream-Contact: Luc Maranget Source: http://hevea.inria.fr/distri/ diff -pruN 2.29-2/debian/hevea-doc.install 2.32-1/debian/hevea-doc.install --- 2.29-2/debian/hevea-doc.install 2016-09-25 10:32:00.000000000 +0000 +++ 2.32-1/debian/hevea-doc.install 2018-08-08 15:00:49.000000000 +0000 @@ -1 +1 @@ -*.html *.gif *.png *.css /usr/share/doc/hevea/html +mathjax-local/*.html *.svg *.png *.css /usr/share/doc/hevea/html diff -pruN 2.29-2/debian/rules 2.32-1/debian/rules --- 2.29-2/debian/rules 2016-09-25 10:32:00.000000000 +0000 +++ 2.32-1/debian/rules 2018-08-08 15:00:49.000000000 +0000 @@ -3,5 +3,11 @@ %: dh $@ +BAD='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js' +GOOD='file:///usr/share/javascript/mathjax/MathJax.js' + override_dh_auto_build: -# nothing to do! + mkdir -p mathjax-local + for f in *.html; do \ + sed -e s@${BAD}@${GOOD}@ $${f} > mathjax-local/$${f}; \ + done diff -pruN 2.29-2/extras.html 2.32-1/extras.html --- 2.29-2/extras.html 1970-01-01 00:00:00.000000000 +0000 +++ 2.32-1/extras.html 2018-07-04 13:20:49.000000000 +0000 @@ -0,0 +1,487 @@ + + + + + + + +Extra Features + + +Previous +Up +Next +
+

B.16  Extra Features

+ +

+This section describes HEVEA functionalities that extends on plain LATEX, +as defined in [LATEX]. +Most of the features described here are performed by default.

+

B.16.1  TEX macros

+

+Normally, HEVEA does not recognise constructs that are specific to +TEX. +However, some of the internal commands of HEVEA are homonymous to +TEX macros, in order to enhance compatibility. +Note that full compatibility with TEX is not guaranteed.

+

B.16.1.1  À la TEX macros definitions

+

+ +The \def construct for defining commands is supported. +It is important to +notice that HEVEA semantics for \def +follows TEX semantics. +That is, defining a command that already +exists with \def succeeds.

Delimiting characters in command definition are somehow supported. +Consider the following example from the TEX Book: +

\def\Look{\textsc{Look}}
+\def\x{\textsc{x}}
+\def\cs AB#1#2C$#3\$ {#3{ab#1}#1 c\x #2}
+\cs AB {\Look}{}C${And \$}{look}\$ 5.
+

+It yields: + + + +And $lookabLookLook cx5.

Please note that delimiting characters are supported as far as I +could, problems are likely with delimiting characters which include +spaces or command names, in particular the command name \{. +One can include \{ in a command argument by using the grouping +characters {}: +

\def\frenchquote(#1){\guillemotleft~\emph{#1}~\guillemotright{} (in French)}
+he said \frenchquote(Alors cette accolade ouvrante {``\{''}~?).
+

+Yields: +he said « Alors cette accolade ouvrante “{” ? » (in French). +

Another issue regards comments: “%” in arguments may give undefined +behaviours, while comments are better avoided while defining +macros. As an example, the following code will not +be handled properly +by HEVEA: +

\def\x%
+   #1{y}
+

+Such TEX source should be rewritten as \def\x#1{y}.

Another source of incompatibility with TEX is that substitution of +macros parameters is not performed at the same moment by HEVEA and +TEX. +However, things should go smoothly at the first level of macro +expansion, that is when the delimiters +appear in source code at the same level as the macro that is to +parse them. +For instance, the following source will give different results in +LATEX and in HEVEA: +

\def\cs#1A{``#1''}
+\def\othercs#1{\cs#1A}
+\othercs{coucouA}
+

+LATEX output is “coucou”A, while HEVEA output is “coucouA”. +For instance, here is HEVEA output: + + +“coucouA”. +Please note that in most situations this discrepancy will make +HEVEA crash.

+

B.16.1.2  The \let construct

+

+HEVEA also processes a +limited version of \let: +

+\let macro-name1 = macro-name2 +

+The effect is to bind macro-name1 to whatever macro-name2 +is bound to at the time \let is processed. This construct may +prove very useful in situations where +one wishes to slightly modify basic commands. +See sections 10.3 and B.2 for examples of using +\let in such a situation.

+

B.16.1.3  The \global construct

+

+ +It is possible to escape scope and to make global definitions +and bindings by using the TEX construct \global. +The \global construct is significant before +\def and \let constructs.

+Also note that \gdef is equivalent to \global\def.

+

B.16.1.4  TEX Conditional Macros

+

+ +The \newif\ifname, where name is made of letters +only, creates three macros: +\ifname, \nametrue and +\namefalse. +The latter two set the name condition to true and +false, respectively. +The \ifname command tests the condition name: +

+\ifname
+text
1
+\else
+text2
+\fi
+

+Text text1 is processed when name is +true, otherwise text2 is processed. +If text2 is empty, then the \else keyword can be +omitted.

Note that HEVEA also implements LATEX ifthen package +and that TEX simple conditional macros are fully compatible with +LATEX boolean registers. More precisely, +we have the following correspondences: +

+ + + + + + +
TEXLATEX
\newif\ifname  \newboolean{name}
\nametrue  \setboolean{name}{true}
\namefalse  \setboolean{name}{false}
\ifname text1\else +text2\fi  \ifthenelse{\boolean{name}}{text1}{text2}
+
+

B.16.1.5  Other TEX Macros

+

+HEVEA implements the macros \unskip and \endinput. +It also supports the \csname\endcsname +construct.

+

B.16.2  Command Definition inside Command Definition

+

+ +If one strictly follows the LATEX manual, only commands with no +arguments can be defined inside other commands. +Parameters (i.e. #n) occurring inside command bodies +refer to the outer definition, even when they appear in nested +command definitions. +That is, the following source: +

\newcommand{\outercom}[1]{\newcommand{\insidecom}{#1}\insidecom}
+\outercom{outer}
+

+yields this output: +

+ +outer +

Nevertheless, nested commands with arguments are allowed. +Standard parameters #n still refer to the outer +definition, while nested parameters ##n refer to the +inner definition. +That is, the source: +

\newcommand{\outercom}[1]{\newcommand{\insidecom}[1]{##1}\insidecom{inner}}
+\outercom{outer}
+

+yields this output: +

+ +inner +
+

B.16.3  Date and time

+

+ +Date and time support is not enabled by default, for portability and +simplicity reasons.

However, HEVEA source distribution includes a simple (sh) +shell script +xxdate.exe that activates date and time support. +The hevea command, should be invoked as: +

# hevea -exec xxdate.exe ...
+

+This will execute the script xxdate.exe, whose output is then +read by HEVEA. +As a consequence, standard LATEX counters year, +month, day and +time are defined and +LATEX command \today works properly. + +Additionally the following counters and commands are defined: +

+ + + + + + + + + + + +
Counter weekday  day of week, 0…6 +(e.g. 3)
Counter Hour  hour, 00…11 +(e.g. 03)
Counter hour  hour, 00…23 (e.g. 15)
Counter minute  minute, 00…59 +(e.g. 20)
Counter second  second, 00…619(e.g. 45)
Command \ampm  AM or PM +(e.g. PM)
Command \timezone  Time zone +(e.g. CEST)
Command \heveadate  Output of the date Unix +command, (e.g. Wed Jul 4 15:20:45 CEST 2018)
+

Note that I chose to add an extra option (and not an extra +\@exec primitive) for security reasons. You certainly do +not want to enable HEVEA to execute silently an arbitrary program +without being conscious of that fact. +Moreover, the hevea program does not execute +xxdate.exe by default since it is difficult to write such +a script in a portable manner.

Windows users should enjoy the same features with the version of +xxdate.exe included in the Win32 distribution.

+

B.16.4  Fancy sectioning commands

+

+Loading the fancysection.hva file will radically change the +style of sectional units headers: they appear over a green +background, the background color saturation decreases as the sectioning +commands themselves do (this is the style of this manual). +Additionally, the document background color is white.

Note : Fancy section has been re-implemented using style-sheets. While it respects the old behaviour, users are encouraged to try out style-sheets for more flexibility. See Section 9 for details.

The fancysection.hva file is intended to be loaded after +the document base style. +Hence the easiest way to load the fancysection.hva file +is by issuing \usepackage{fancysection} in the document preamble. +To allow processing by LATEX, one may for instance create +an empty fancysection.sty file.

As an alternative, to use fancy section style in +doc.tex whose base style is article +you should issue the command: +

  # hevea article.hva fancysection.hva doc.tex
+

+You can also make a doc.hva file that contains the two lines: +

  \input{article.hva}
+  \input{fancysection.hva}
+

+And then launch hevea as: +

  # hevea doc.hva doc.tex
+

Sectioning command background colours can be changed by +redefining the corresponding colours (part, chapter, +section,…). +For instance, you get various mixes of red and orange by: +

\input{article.hva}
+\input{fancysection.hva}
+\definecolor{part}{named}{BrickRed}
+\definecolor{section}{named}{RedOrange}
+\definecolor{subsection}{named}{BurntOrange}
+

+(See section B.14.2 for details on the named +color model that is used above.)

+Another choice is issuing the command +\colorsections{hue}, where +hue is a hue value to be interpreted in the HSV model. +For instance, +

\input{article.hva}
+\input{fancysection.hva}
+\colorsections{20}
+

+will yield sectional headers on a red-orange background.

+HEVEA distribution features another style for fancy sectioning commands: +the undersection package provides underlined sectional headers.

+

B.16.5  Targeting Windows

+

+ +At the time of this release, Windows support for symbols +through Unicode is not as complete as the one of Linux, which I am +using for testing HEVEA.

One of the most salient shortcomings is the inability to display sub-elements +for big brackets, braces and parenthesis, which HEVEA normally +outputs when it processes \left[, \right\} etc.

We (hopefully) expect Windows fonts to display more of +Unicode easily in a foreseeable future. As a temporary fix, we provide +a style file winfonts.hva. +Authors concerned by producing pages that do not look too ugly +when viewed through Windows browsers are thus advised to +load the file winfonts.hva. +For instance they can invoke HEVEA as: +

# hevea winfonts.hva ...
+

+At the moment, loading winfonts.hva +only changes the rendering +of LATEX big delimiters, avoiding the troublesome Unicode entities. +As an example, here are some examples of rendering. +

+
+ + + + + + + + +
delimitersdefaultwinfonts
\left\{  …  \right\}     +

+⎪
+⎨
+⎪
+⎩
+ + +
1
2
3

+⎪
+⎬
+⎪
+⎭
     +
 / 
+ | 
+< 
+ | 
+ \ 
+ + +
1
2
3
 \
+ |
+ >
+ |
+ /
\left[  …  \right]     +

+⎢
+⎢
+⎣
+ + +
1
2
3

+⎥
+⎥
+⎦
     +
+ + +
+ + +
1
2
3
+ + +
\left(  …  \right)     +

+⎜
+⎜
+⎝
+ + +
1
2
3

+⎟
+⎟
+⎠
     +

+| 
+| 
+\ 
+ + +
1
2
3
 \
+ |
+ |
+ /
\left\vert  …  \right\vert     +

+⎪
+⎪
+⎪
+ + +
1
2
3

+⎪
+⎪
+⎪
     +
+ + +
1
2
3
\left\Vert  …  \right\Vert     +
⎪⎪
+⎪⎪
+⎪⎪
+⎪⎪
+ + +
1
2
3
⎪⎪
+⎪⎪
+⎪⎪
+⎪⎪
     +
+ + +
1
2
3

More generally, it remains authors responsibility to be careful not to +issue too refined Unicode entities. To that aim, authors that target +a wide audience should first limit themselves to the most common +symbols (e.g. use \leq [≤] +in place of \preceq [≼]) and, above all, +they should control the rendering of their documents using several browsers.

+

B.16.6  MathJax support

+

+

MathJax +support is enabled by loading the +mathjax package. Two operating mode modes are provided: +explicit and automatic. Notice that HEVEA distribution includes a innocuous +mathjax.sty for LATEX compatibility — see also Sec. C.4.2.

+

B.16.6.1  Explicit mode

+

+Explicit mode is enabled when \usepackage{mathjax} +appears in the document preamble, +or when HEVEA is invoked as “hevea mathjax.hva…”.

Basic consists in one environment displayjax +and one command \textjax. +The environment is appropriate for displayed maths. +As an example, the following source +

A displayed formula:
+\begin{displayjax}
+\frac{\pi}{4} = \left[1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} +
+\frac{1}{9} + \cdots + \frac{(-1)^n}{2n+1} + \cdots \right]
+\end{displayjax}
+

+is displayed as follows: +

+A displayed formula: +\[ +\frac{\pi}{4} = \left[1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \frac{1}{9} + \cdots + \frac{(-1)^n}{2n+1} + \cdots \right] +\] +

The \textjax command is appropriate for inline mathematical contents. +For instance, the following source +

``A nice inline formula:
+\textjax{\frac{\pi}{4} = \left[1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} +
+\frac{1}{9} + \cdots + \frac{(-1)^n}{2n+1} + \cdots \right]}.''
+

+is typeset as: “A nice inline formula: \(\frac{\pi}{4} = \left[1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \frac{1}{9} + \cdots + \frac{(-1)^n}{2n+1} + \cdots \right]\).”

Advanced support consists in the mathjax environment. Source code +enclosed in \begin{mathjax}\ldots\end{mathjax} will be +reproduced into output for the MathJax script to handle it. +However, HEVEA does not start any other action. +Thanks to this feature, users can have any (recognised by MathJax) +displayed math environment processed by MathJax. For instance, +the following source +

\begin{mathjax}
+\begin{eqnarray*}
+z^2  & = & x^2 + y^2\\
+\end{eqnarray*}
+\end{mathjax}
+

+will be displayed as: +

+ +\begin{eqnarray*} +z^2 & = & x^2 + y^2\\ +\end{eqnarray*} + +

Finally, notice that a document that uses the explicit MathJax +constructs can be processed by LATEX, provided +it loads the mathjax.sty file present in HEVEA distribution. +This can be done simply by having the line \usepackage{mathjax} in +teh document preamble. Then, HEVEA and LATEX will react appropriately +(see sections 2.3.2 and B.5.2).

+

B.16.6.2  Automatic mode

+

+Automatic mode is enabled when \usepackage[auto]{mathjax} +appears in the document preamble, +or when HEVEA is invoked as “hevea mathjaxauto.hva…”.

In automatic mode, HEVEA will pass all mathematical text to MathJax. +This mode seems by far the most practical, but beware: +

  1. +There is no communication back from MathJax to HEVEA. +As result, equation numbers, as generated for instance by the +equation environment, will not find their way to the final display. +
  2. Some constructs, such as \mbox, are not handled +by MathJax. +
+

B.16.6.3  Customising the MathJax script

+

+By default HEVEA insert a reference to the “default” +MathJax script +with “default” configuration parameters. +Advanced users can change this setting by redefining the \jax@meta +command, which must contain the appropriate <script> element. +See the file html/mathjax.hva for details.

+
+9
According to +date man page.
+
+Previous +Up +Next + + diff -pruN 2.29-2/index.html 2.32-1/index.html --- 2.29-2/index.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/index.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,36 +2,37 @@ - + + HEVEA User Documentation -Version 2.29 +Version 2.32 - +

HEVEA User Documentation
-Version 2.29

Luc Maranget*

July 26, 2016

HEVEA User Documentation
+Version 2.32

Luc Maranget*

July 4, 2018


This manual also exists in -compressed Postscript, -PDF, and as -a bundle of HTML files. -


Abstract: -HEVEA is a LATEX to +compressed Postscript, +PDF, and as +a bundle of HTML files. +


Abstract: +HEVEA is a LATEX to html translator. The input language is a fairly complete subset of LATEX 2є (old LATEX style is also accepted) and the output language is html that is (hopefully) correct with respect to -version 5 [HTML-5a, HTML-5b]

HEVEA understands LATEX macro definitions. Simple user style +version 5 [HTML-5a, HTML-5b]

HEVEA understands LATEX macro definitions. Simple user style files are understood with little or no modifications. -Furthermore, HEVEA customisation is done by writing LATEX code.

HEVEA is written in Objective Caml, as many lexers. It is -quite fast and flexible. Using HEVEA it is possible to translate +Furthermore, HEVEA customisation is done by writing LATEX code.

HEVEA is written in Objective Caml, as many lexers. It is +quite fast and flexible. Using HEVEA it is possible to translate large documents such as manuals, books, etc. very quickly. All documents are translated as one single html file. Then, the output -file can be cut into smaller files, using the companion program HACHA.

HEVEA can also be instructed to output plain text or info files.

Information on HEVEA is available at http://hevea.inria.fr/. +file can be cut into smaller files, using the companion program HACHA.

HEVEA can also be instructed to output plain text or info files.

Information on HEVEA is available at http://hevea.inria.fr/.

@@ -49,5 +50,5 @@ includes a small Luc.Maranget@inria.fr
This document was translated from LATEX by -HEVEA.
+HEVEA.
diff -pruN 2.29-2/manual001.html 2.32-1/manual001.html --- 2.29-2/manual001.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual001.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,12 +2,13 @@ - - + + + Contents -Up +Up

Contents

  • @@ -30,11 +31,11 @@
  • 4  How to detect and correct errors -
  • 5  Making HEVEA and LATEX both happy +
  • 5  Making HEVEA and LATEX both happy
  • 6  With a little help from LATEX -
  • 7  Cutting your document into pieces with HACHA +
  • 7  Cutting your document into pieces with HACHA -
  • 10  Customising HEVEA +
  • 10  Customising HEVEA
  • B.5  Classes, Packages and Page Styles -
  • B.16  Extra Features +
  • B.16  Extra Features -
  • B.17  Implemented Packages +
  • B.17  Implemented Packages
  • Part C  Practical information

  • -Up +Up Binary files 2.29-2/manual001.png and 2.32-1/manual001.png differ diff -pruN 2.29-2/manual002.html 2.32-1/manual002.html --- 2.29-2/manual002.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual002.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,13 +2,14 @@ - - + + + Tutorial -Up -Next +Up +Next
    @@ -34,11 +35,11 @@ Tutorial
  • How to detect and correct errors -
  • Making HEVEA and LATEX both happy +
  • Making HEVEA and LATEX both happy
  • With a little help from LATEX -
  • Cutting your document into pieces with HACHA +
  • Cutting your document into pieces with HACHA -
  • Customising HEVEA +
  • Customising HEVEA
    -Up -Next +Up +Next Binary files 2.29-2/manual002.png and 2.32-1/manual002.png differ diff -pruN 2.29-2/manual003.html 2.32-1/manual003.html --- 2.29-2/manual003.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual003.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,13 +2,14 @@ - - + + + How to get started -Up -Next +Up +Next

    1  How to get started

    @@ -17,24 +18,26 @@ Assume that you have a file,

    # hevea a.tex
    -

    Probably, you will get some warnings. If -HEVEA does not crash, just ignore them for the moment +

    +Probably, you will get some warnings. If +HEVEA does not crash, just ignore them for the moment (Section 4 explains how to correct errors).

    If everything goes fine, this will produce a new file, -a.html, which you can visualise through a html browser.

    If you wish to experiment HEVEA on small LATEX source fragments, -then launch HEVEA without arguments. HEVEA will read its +a.html, which you can visualise through a html browser.

    If you wish to experiment HEVEA on small LATEX source fragments, +then launch HEVEA without arguments. HEVEA will read its standard input and print the translation on its standard output. For instance:

    # hevea
     $x \in \mathcal{E}$
     ^D
     <span style="font-style:italic">x</span> &#X2208; <span style="color:red"><span style="font-style:italic">E</span></span>
    -

    Incidentally, notice that the symbol “∈” translates to the +

    +Incidentally, notice that the symbol “∈” translates to the appropriate numerical character reference and that the calligraphic -letter “E” renders as a red “E”. You can find some +letter “E” renders as a red “E”. You can find some more elaborate examples in the on-line documentation.


    -Up -Next +Up +Next Binary files 2.29-2/manual003.png and 2.32-1/manual003.png differ diff -pruN 2.29-2/manual004.html 2.32-1/manual004.html --- 2.29-2/manual004.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual004.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Style files -Previous -Up -Next +Previous +Up +Next

    2  Style files

      @@ -24,60 +25,61 @@ define document layout parameters, comma

      The base style of a LATEX document is the argument to the \documentclass command (\documentstyle in old style). Normally, the base style of a document defines the structure and -appearance of the whole document.

      HEVEA really knows about two LATEX base styles, +appearance of the whole document.

      HEVEA really knows about two LATEX base styles, article and book. Additionally, the report base style is recognized and considered equivalent to book and the seminar base style for making slides is recognized and -implemented by small additions on the article style.

      Base style style is implemented by an HEVEA specific +implemented by small additions on the article style.

      Base style style is implemented by an HEVEA specific style file style.hva. -More precisely, HEVEA interprets +More precisely, HEVEA interprets \documentclass{style} by attempting to load the file style.hva (see section C.1.1.1 on where -HEVEA searches for files). -Thus, at the moment, HEVEA distribution includes the files, +HEVEA searches for files). +Thus, at the moment, HEVEA distribution includes the files, article.hva, book.hva, etc.

      2.2  Other base styles

      -Documents whose base style is not recognized by HEVEA can be +Documents whose base style is not recognized by HEVEA can be processed when the unknown base style is a derivation of a recognized base style.

      Let us assume that doc.tex uses an exotic base style such as acmconf. Then, typing hevea doc.tex will yield an error, since -HEVEA cannot find the acmconf.hva file: +HEVEA cannot find the acmconf.hva file:

      # hevea.opt doc.tex
       doc.tex:1: Warning: Cannot find file: acmconf.hva
       doc.tex:1: Error while reading LaTeX: No base style
       Adios
      -

      This situation is avoided by invoking HEVEA with the known +

      This situation is avoided by invoking HEVEA with the known base style file article.hva as an extra argument:

      # hevea article.hva doc.tex
      -

      The extra argument instructs -HEVEA to load its article.hva +

      +The extra argument instructs +HEVEA to load its article.hva style file before processing doc.tex. It will then ignore the document base style specified by \documentclass (or \documentstyle).

      Observe that the fix above works because the acmconf and article base styles look the same to the document (i.e. they define the same macros). More generally, most base styles that are neither -article nor book are in fact variations +article nor book are in fact variations on either two of them. However, such styles usually provides extra macros. If users documents use these macros, then users should also instruct -HEVEA about them (see section 4.1).

      Finally, it is important to notice that +HEVEA about them (see section 4.1).

      Finally, it is important to notice that renaming a base style file style.cls into style.hva will not work in general. As a matter of fact, base style files are TEX and not LATEX source and -HEVEA will almost surely fail on TEX-ish input.

      +HEVEA will almost surely fail on TEX-ish input.

      2.3  Other style files

      A LATEX document usually loads additional style files, by using the commands \input or \usepackage or \input.

      2.3.1  Files loaded with \input

      -Just like LATEX, HEVEA reacts to the construct -\input{file} by loading the file -file. (if I got it right, HEVEA even follows TEX’s crazy +Just like LATEX, HEVEA reacts to the construct +\input{file} by loading the file +file. (if I got it right, HEVEA even follows TEX’s crazy conventions on .tex extensions).

      As it is often the case, assume that the document doc.tex has a \input{mymacros.tex} instruction in its preamble, where mymacros.tex gathers custom definitions. @@ -89,33 +91,35 @@ The new definitions are best collected i mymacros.hva for instance. Then, doc.tex is to be translated by issuing the command:

      # hevea mymacros.hva doc.tex
      -

      The file mymacros.hva is processed before +

      +The file mymacros.hva is processed before doc.tex (and thus before mymacros.tex). -As a consequence of HEVEA behaviour with respect to +As a consequence of HEVEA behaviour with respect to definition and redefinition (see section B.8.1), the macro definitions in mymacros.hva take precedence over the ones in mymacros.tex, provided the document original definitions (the ones in mymacros.tex) are performed by \newcommand -(or \newenvironment).

      Another situation is when HEVEA fails to process a whole -style file. Usually, this means that HEVEA crashes on that style +(or \newenvironment).

      Another situation is when HEVEA fails to process a whole +style file. Usually, this means that HEVEA crashes on that style file. The basic idea is then to write a mymacros.hva style file that contains alternative definitions for all the commands defined in mymacros.sty. -Then, HEVEA should be instructed +Then, HEVEA should be instructed to load mymacros.hva and not to load mymacros.tex. This is done by invoking hevea as follows:

      # hevea mymacros.hva -e mymacros.tex doc.tex
       

      Of course, mymacros.hva must now contain replacements for all the useful macros of mymacro.tex.

      -

      2.3.2  Files loaded with \usepackage

      +

      2.3.2  Files loaded with \usepackage

      + As far as I know, LATEX reacts to the construct -\usepackage{name} by loading the file -name.sty. -HEVEA reacts in a similar, but different, manner, by -loading the file name.hva.

      HEVEA distributions already includes quite a few .hva +\usepackage{name} by loading the file +name.sty. +HEVEA reacts in a similar, but different, manner, by +loading the file name.hva.

      HEVEA distributions already includes quite a few .hva implementations of famous packages (see section B.17). When a given package (say zorglub) is not implemented, the situation may not be as bad as it may seem first. @@ -123,11 +127,11 @@ Hopefully, you are only using a few comm zorglub, and you feel confident enough to implement them yourself. Then, it suffices to put your definitions in file zorglub.hva -and HEVEA will react to \usepackage{zorglub} by loading +and HEVEA will react to \usepackage{zorglub} by loading zorglub.hva.

      See section B.5.2 for the full story on \usepackage.


      -Previous -Up -Next +Previous +Up +Next Binary files 2.29-2/manual004.png and 2.32-1/manual004.png differ diff -pruN 2.29-2/manual005.html 2.32-1/manual005.html --- 2.29-2/manual005.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual005.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + A note on style -Previous -Up -Next +Previous +Up +Next

      3  A note on style

        @@ -25,8 +26,8 @@ Sequence of spaces normally are translat Newlines in the input document undergo a special treatement. A newline triggers a special scanning mode that reads all following spaces and newlines. In case at least one additional newline character -is read, then HEVEA executes the \par command. -Otherwise, HEVEA outputs a single newline character. +is read, then HEVEA executes the \par command. +Otherwise, HEVEA outputs a single newline character. This process approximates TEX process for introducting paragraph breaks and, as a result, empty lines produce paragraph breaks.

        Space after commands with no argument is skipped (as in LATEX) — however this is not true in math mode, as explained in @@ -36,27 +37,29 @@ They can be skipped in first reading.

        3.1.1  Spurious Paragraphs

        Paragraphs are rendered by the means of p elements. -HEVEA is a bit simplistic in breaking paragraphs and spurious paragraphs +HEVEA is a bit simplistic in breaking paragraphs and spurious paragraphs may be present in the final html document. -Normally, as HEVEA never outputs p elements whose contents is +Normally, as HEVEA never outputs p elements whose contents is made of spaces only, this should not happen very often. Unfortunately, some commands do not produce any output in LATEX, -while they do produce output in HEVEA: those commands +while they do produce output in HEVEA: those commands are \label, \index etc. -HEVEA translates -\label{name} into the anchor -<a id="name"></a>. As a result, the following +HEVEA translates +\label{name} into the anchor +<a id="name"></a>. As a result, the following source fragment will introduce a spurious paragraph.

        This a first paragraph.
         
         \label{label}
         
         This is another paragraph.
        -

        Indeed, whe have the following translation: +

        +Indeed, whe have the following translation:

        <p>This a first paragraph.</p>
         <p><a id="label"></a></p>
         <p>This is another paragraph.</p>
        -

        Which your browser renders as follows — with additional borders +

        +Which your browser renders as follows — with additional borders emphasizing p elements.

        This a first paragraph.

        @@ -74,11 +77,13 @@ This is another paragraph.

        \section*{A section}\label{section:label}
         
         First paragraph. 
        -

        Produced html is, after a few cosmetic simplifications: +

        +Produced html is, after a few cosmetic simplifications:

        <h2 class="section">A section</h2>
         <p><a id="section:label"></a></p>
         <p>First paragraph.</p>
        -

        Output is so, because closing the element h2 implies re-opening +

        +Output is so, because closing the element h2 implies re-opening a new paragraph. Your browser renders the above html fragment as follows:

        @@ -87,30 +92,32 @@ Your browser renders the above html frag

        First paragraph.

        Here, two possible re-writing of source are:

        -
  • Part A
    Tutorial

    \section*{A\label{section:label} section}
    +
    +
    +
    \section*{A\label{section:label} section}
     
     First paragraph.
    -
    \section*{A section}
    +
    \section*{A section}
     
     \label{section:label}First paragraph.
    -

    In all cases, this amounts to avoiding a paragraph whose contents consists in a sole \label command.

    Spurious paragraphs are more easily seen by running hevea -with the command-line option -dv, which instructs +with the command-line option -dv, which instructs hevea to add border on some of the elements it produces, including p elements.

    3.1.2  Spaces after Commands

    - + Space after commands with no argument is skipped. Consider the following example:

    \newcommand{\open}{(}
     \newcommand{\close}{)}
     \open text opened by ``\verb+\open+''
     and closed by ``\verb+\close+''\close.
    -

    We get: +

    +We get:

    @@ -119,7 +126,7 @@ and closed by ``\verb+\close+''\close.

    In the output above, the space after \open does not find its way to the output.

    More generally, -HEVEA tries to emulate LATEX behaviour in all situations, but +HEVEA tries to emulate LATEX behaviour in all situations, but discrepancies probably exist. Thus, users are invited to make explicit what they want. This is good practice anyway, because LATEX is mysterious @@ -130,74 +137,75 @@ macro is first applied and then expansed Some space: \tryspace{\bfsymbol}\\ No space: \bfsymbol XXX -

    Spacing is a bit chaotic here, -the space after symbol remains when #1 is substituted for it -by LATEX (or HEVEA).

    +

    +Spacing is a bit chaotic here, +the space after symbol remains when #1 is substituted for it +by LATEX (or HEVEA).

    - -
    Some space : symbol XXX
    No space : symbolXXX + +
    Some space : symbol XXX
    No space : symbolXXX

    Note that, if a space before “XXX” is wanted, then one should probably write:

    \newcommand{\tryspace}[1]{#1{} XXX}
    -

    Finally, whether the tabulation character is a space or not +

    Finally, whether the tabulation character is a space or not is random, so avoid tabs in your source document.

    3.2  Math mode

    -HEVEA math mode is not very far from normal text mode, except that +HEVEA math mode is not very far from normal text mode, except that all letters are shown in italics and that space after macros is echoed.

    However, typesetting math formulas in html rises two difficulties. First, formulas contain symbols, such as Greek letters; second, even simple formulas do not follow the simple basic typesetting model of html.

    3.2.1  Spacing in math mode

    - + By contrast with LATEX, spaces from the input are significant in math mode, this -feature allows users to instruct HEVEA +feature allows users to instruct HEVEA on how to put space in their formulas. For instance, \alpha\rightarrow\beta is typeset without spaces between symbols, whereas \alpha \rightarrow \beta produces these spaces. -

    - +

    \alpha\rightarrow\beta : α→β
    \alpha \rightarrow \beta : α → β
    +
    \alpha\rightarrow\beta : α→β
    \alpha \rightarrow \beta : α → β

    Note that LATEX ignores spaces in math mode, so that users can -freely adjust HEVEA output without changing anything to LATEX +freely adjust HEVEA output without changing anything to LATEX output.

    3.2.2  Symbols

    -


    -
    +


    +
    Figure 1: Some symbols
    Figure 1: Some symbols
    - - - - - - - +
    \in:      \notin:  
    \int:      \prod:  
    \preceq:      \prec:  
    \leq:      \geq:  
    \cup:      \cap:  
    \supset:      \subset:  
    \supseteq:      \subseteq:  
    + + + + + +
    \in:      \notin:  
    \int:      \prod:  
    \preceq:      \prec:  
    \leq:      \geq:  
    \cup:      \cap:  
    \supset:      \subset:  
    \supseteq:      \subseteq:  
    -

    -With respect to previous versions of HEVEA since the begining, the +


    +With respect to previous versions of HEVEA since the begining, the treatment of symbols has significantly evolved. Outputting symbols is now performed by using Unicode character references, an option that much more complies whith standards than the previous option of selecting a “symbol” font. Observe that this choice is now possible, because more and more browsers correctly display such references. See Figure 1 for a few such symbols.

    However, this means that ancient or purposely limited browsers (such as -text-oriented browsers) cannot display maths, as translated by HEVEA. +text-oriented browsers) cannot display maths, as translated by HEVEA. For authors that insist on avoiding symbols that cannot be shown -by any browser, HEVEA offers a degraded mode that outputs text +by any browser, HEVEA offers a degraded mode that outputs text in place of symbols. -HEVEA operates in this mode when given the -textsymbols +HEVEA operates in this mode when given the -textsymbols command-line option. Replacement text is in English. For instance. the “∈” symbol is replace by “in”. This is far from being satisfactory, but degraded mode may be @@ -208,7 +216,7 @@ Apart from containing symbols, formulas constraints: sub-elements must be combined together following patterns that departs from normal text typesetting. For instance, fractions numerators and denominators must be placed one above the other. -HEVEA handles such constraints in display mode only.

    The main two operating modes of HEVEA are text mode and +HEVEA handles such constraints in display mode only.

    The main two operating modes of HEVEA are text mode and display mode. Text mode is the mode for typesetting normal text, when in this mode, text items are echoed one following the other and @@ -221,7 +229,7 @@ html block-level elements start a new li Conversly, since opening a html block-level elements means starting a new line, any text that sould appear inside a paragraph must be translated using only html text-level elements. -HEVEA chooses to translate in-text formulas that way.

    HEVEA display mode allows more control on text placement, since +HEVEA chooses to translate in-text formulas that way.

    HEVEA display mode allows more control on text placement, since entering display mode means opening a html table element and that tables allow to control the relative position of their sub-elements. @@ -239,56 +247,56 @@ For instance, a displayed fraction ($\int_1^2 xdx = \frac{3}{2}$ appears as: -∫12 xdx =3/2, +∫12 xdx =3/2, while the same formula has a better aspect in display mode: -

    -
    2

    +

    + - -
    2


    1
    xdx =  + +
    3
    1
    xdx =  - +
    3
    2
    2

    -As a consequence, HEVEA is more powerful in display mode and +As a consequence, HEVEA is more powerful in display mode and formulas should be displayed as soon as they get a bit complicated. -This rule is also true in LATEX but it is more strict in HEVEA, +This rule is also true in LATEX but it is more strict in HEVEA, since html capabilities to typeset formulas inside text are quite poor. In particular, it is not possible to get in-text “real” fractions or -in-text limit-like subscripts.

    Users should remember that HEVEA is not TEX or LATEX and that -HEVEA author neither is D. E. Knuth nor L. Lamport. +in-text limit-like subscripts.

    Users should remember that HEVEA is not TEX or LATEX and that +HEVEA author neither is D. E. Knuth nor L. Lamport. Thus, some formulas may be rendered poorly. For instance, two fractions with different denominator and numerator height look strange. -

    +

    1
    -
    1
    + -
    - - -
    N
    i=0
    Ui
    + + +
    N
    i=0
    Ui
     = 
    +
    - - -
    N
    i=0
    Ui
     =  - +
    + + +
    N
    i=0
    Ui
    1
    1

    The reason is that vertical displays in an horizontal display are html tables that always get centered in the vertical direction. -Such a crude model cannot faithfully emulate any TEX box placement.

    Users can get an idea on how HEVEA combines elements in display mode -by giving the -dv command-line option, which -instructs HEVEA to add +Such a crude model cannot faithfully emulate any TEX box placement.

    Users can get an idea on how HEVEA combines elements in display mode +by giving the -dv command-line option, which +instructs HEVEA to add borders to the table elements introduced by displays.

    3.2.4  Arrays and display mode

    -

    By contrast with formulas, which HEVEA attempts to render with +

    By contrast with formulas, which HEVEA attempts to render with text-level elements only when they appear inside paragraphs, LATEX arrays always translate to the block-level element table, thereby introducing non-desired line @@ -300,10 +308,11 @@ Consider the following source: \begin{tabular}{|cc|} \hline item-1 & item-2 \\ \hline\end{tabular}. Next sentence. -

    We get: +

    +We get:

    This is a small array: -
    item-1item-2 +
    item-1item-2
    . Next sentence.

    However, since in some sense, all html tables are displayed, the @@ -314,34 +323,36 @@ specification is l, c mode (see section B.10.2).

    3.3  Warnings

    -When HEVEA thinks it cannot translate a symbol or construct +When HEVEA thinks it cannot translate a symbol or construct properly, it issues a warning. This draws user attention onto a potential problem. However, rendering may be correct.

    -In the following (silly) example, HEVEA gets nervous because of +In the following (silly) example, HEVEA gets nervous because of the complicated length given as argument to \hspace:

    \newlength{\mylength}\setlength{\mylength}{5pt}
     \begin{tabular}{c@{\hspace{\mylength}}c}
     Before & After
     \end{tabular}
    -

    Running HEVEA on this input produces a warning: +

    +Running HEVEA on this input produces a warning:

    # hevea manual.tex
     ...
     manual.tex:507: Warning: \hspace with arg '\mylength'
     ...
    -

    However the final rendering is correct: +

    +However the final rendering is correct:

    -
    BeforeAfter +
    BeforeAfter

    Note that all warnings can be suppressed with the -s (silent) option. When a warning reveals a real problem, it can often be cured by -writing a specific macro. The next two sections introduce HEVEA +writing a specific macro. The next two sections introduce HEVEA macros, then section 4 describes how to proceed with greater detail.

    3.4  Commands

    -Just like LATEX, HEVEA can be seen as a macro language, macros +Just like LATEX, HEVEA can be seen as a macro language, macros are rewritten until no more expansion is possible. Then, either some characters (such as letters, integers…) are outputed or some internal operation (such as changing font attributes, or arranging @@ -349,10 +360,10 @@ text items in a certain manner) are perf by users. However, predicting program behaviour and correcting errors may prove difficult, since final output or errors may occur after several levels of macro expansion. -As a consequence, users can tailor HEVEA to their needs, but it +As a consequence, users can tailor HEVEA to their needs, but it remains a subtle task. Nevertheless, happy LATEX users should enjoy customizing -HEVEA, since this is done by writing LATEX code.

    +HEVEA, since this is done by writing LATEX code.

    3.5  Style choices

    LATEX and html differ in many aspects. For instance, LATEX allows @@ -360,20 +371,21 @@ fine control over text placement, wherea html does not. More symbols and font attributes are available in LATEX than in html. Conversely, html has font attributes, such as color, which -standard LATEX has not.

    Therefore, there are many situations where HEVEA just cannot +standard LATEX has not.

    Therefore, there are many situations where HEVEA just cannot render the visual effect of LATEX constructions. Here some choices have to be made. For instance, calligraphic letters (\mathcal) -are rendered in red.

    If you are not satisfied with HEVEA rendering of text style +are rendered in red.

    If you are not satisfied with HEVEA rendering of text style declarations, then you can choose your own, by redefining the \cal macros, using \renewcommand, the macro redefinition operator of -LATEX. The key point is that you need not worry about HEVEA +LATEX. The key point is that you need not worry about HEVEA internals: just redefine the old-LATEX style text-style declarations (i.e. \it, \sc, etc.) and everything should get fine:

    \renewcommand{\sc}{\Huge}
     \renewcommand{\cal}{\em}
    -

    (See sections 4 and 5 on how to make such +

    +(See sections 4 and 5 on how to make such changes while leaving your file processable by LATEX, and section 10.2 for a more thorough descripton of customizing type styles).

    @@ -381,22 +393,22 @@ With such redefinitions, we get:

    -This is small caps and this is CALLIGRAPHIC LETTERS +This is small caps and this is CALLIGRAPHIC LETTERS

    Note that many of LATEX commands and environments are defined in the -hevea.hva file that HEVEA loads before processing any +hevea.hva file that HEVEA loads before processing any input. These constructs are written using LATEX source code, in the end they -invoke HEVEA internal commands.

    Other LATEX constructs, such as -LATEX key constructs or HEVEA internal commands (see section 8.3), +invoke HEVEA internal commands.

    Other LATEX constructs, such as +LATEX key constructs or HEVEA internal commands (see section 8.3), that require special processing are defined -in HEVEA source code. +in HEVEA source code. However, the vast majority of these definitions can be overridden by a redefinition. This may prove useless, since there is little point in redefining core constructs such as \newcommand for instance.


    -Previous -Up -Next +Previous +Up +Next Binary files 2.29-2/manual005.png and 2.32-1/manual005.png differ diff -pruN 2.29-2/manual006.html 2.32-1/manual006.html --- 2.29-2/manual006.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual006.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,20 +2,21 @@ - - + + + How to detect and correct errors -Previous -Up -Next +Previous +Up +Next

    4  How to detect and correct errors

    Most of the problems that occur during the translation of a given LATEX file (say trouble.tex) can be detected and solved at @@ -23,39 +24,41 @@ the macro-level. That is, most problems and can be solved by writing a few macros. The best place for these macros is an user style file (say trouble.hva) given as -argument to HEVEA. +argument to HEVEA.

    # hevea trouble.hva trouble.tex
    -

    By doing so, the macros written specially for HEVEA are not +

    +By doing so, the macros written specially for HEVEA are not seen by LATEX. Even better, trouble.tex is not changed at all.

    A worth-mentiong alternative is inserting \usepackage{trouble} -in the document preamble. Then, given HEVEA semantics for +in the document preamble. Then, given HEVEA semantics for \usepackage (see Section B.5.2), -HEVEA-specific commands should be placed in +HEVEA-specific commands should be placed in the file “trouble.hva” file, while LATEX-specific commands -should be placed in teh file “trouble.sty”.

    Of course, adapting a document to HEVEA processing +should be placed in teh file “trouble.sty”.

    Of course, adapting a document to HEVEA processing will be easier if the LATEX source is written in a generic style, using macros. Note that this style is recommended anyway, since it facilitates document maintenance.

    -

    4.1  HEVEA does not know a macro

    +

    4.1  HEVEA does not know a macro

    Consider the following LATEX source excerpt:

    You can \raisebox{.6ex}{\em raise} text.
     

    LATEX typesets this as follows:

    -

    Since HEVEA does not know about \raisebox, +

    Since HEVEA does not know about \raisebox, it incorrectly processes this input. More precisely, it first prints a warning message:

    trouble.tex:34: Unknown macro: \raisebox
    -

    Then, it goes on by translating the arguments of \raisebox as if +

    +Then, it goes on by translating the arguments of \raisebox as if they were normal text. As a consequence some .6ex is finally found in the html output:

    You can .6exraise text.

    To correct this, you should provide a macro that has more or less the effect of \raisebox. It is impossible to write a generic -\raisebox macro for HEVEA, because of html limitations. +\raisebox macro for HEVEA, because of html limitations. However, in this case, the effect of \raisebox is to raise the box a little. Thus, the first, numerical, argument to \raisebox can be @@ -70,20 +73,23 @@ example, where text is both raised a lowered a little:

    You can \raisebox{.6ex}{\em raise}
     or \raisebox{-.6ex}{\em lower} text.
    -

    Which LATEX renders as follows: +

    +Which LATEX renders as follows:

    -Whereas, with the above definition of \raisebox, HEVEA produces: +Whereas, with the above definition of \raisebox, HEVEA produces:

    You can raise or lower text.

    A solution is to add a new macro definition in the trouble.hva file:

    \newcommand{\lowerbox}[2]{$_{\mbox{#2}}$}
    -

    Then, trouble.tex itself has to be modified a little. +

    +Then, trouble.tex itself has to be modified a little.

    You can \raisebox{.6ex}{\em raise}
     or \lowerbox{-.6ex}{\em lower} text.
    -

    HEVEA now produces a satisfying output: +

    +HEVEA now produces a satisfying output:

    You can raise @@ -92,24 +98,26 @@ or lower text. it should also contain the following definition for \lowerbox:

    \newcommand{\lowerbox}[2]{\raisebox{#1}{#2}}
    -

    This definition can safely be placed anywhere in trouble.tex, -since by HEVEA semantics for \newcommand (see +

    +This definition can safely be placed anywhere in trouble.tex, +since by HEVEA semantics for \newcommand (see section B.8.1) the new definition will not overwrite the old one.

    -

    4.2  HEVEA incorrectly interprets a macro

    -

    Sometimes HEVEA knows about a macro, but the produced html +

    4.2  HEVEA incorrectly interprets a macro

    +

    Sometimes HEVEA knows about a macro, but the produced html does not look good when seen through a browser. This kind of errors is detected while visually checking the output. -However, HEVEA does its best to issue warnings when such situations +However, HEVEA does its best to issue warnings when such situations are likely to occur.

    Consider, for instance, this definition of \blob as a small black square.

    \newcommand{\blob}{\rule[.2ex]{1ex}{1ex}}
     \blob\ Blob \blob
    -

    Which LATEX typesets as follows: +

    +Which LATEX typesets as follows:

    -HEVEA always translates \rule as <hr>, ignoring size +HEVEA always translates \rule as <hr>, ignoring size arguments. Hence, it produces the following, wrong, output:

    @@ -121,10 +129,11 @@ of \blob, such as a bullet Thus, you may choose to give \blob a definition in trouble.hva:

    \newcommand{\blob}{\bullet}
    -

    This new definition yields the following, more satisfying output: +

    +This new definition yields the following, more satisfying output:

    • Blob •

    -In case we do want a square blob, there are two alternatives. +In case we do want a square blob, there are two alternatives. We can have LATEX typeset some subparts of the document and then to include them as images, section 6 explains how to proceed. @@ -137,8 +146,8 @@ seems ok.

    █ Blob █

    However, beware that not all browsers display all of Unicode…

    -

    4.3  HEVEA crashes

    -

    HEVEA failure may have many causes, including a bug. +

    4.3  HEVEA crashes

    +

    HEVEA failure may have many causes, including a bug. However, it may also stem from a wrong LATEX input. Thus, this section is to be read before reporting a bug…

    4.3.1  Simple cases: LATEX also crashes

    @@ -149,16 +158,18 @@ In the following source, environments ar This is right-flushed quoted text. \end{flushright} \end{quote} -

    Such a source will make both LATEX and HEVEA choke. -HEVEA issues the following error message that shows the LATEX +

    +Such a source will make both LATEX and HEVEA choke. +HEVEA issues the following error message that shows the LATEX environment that is not closed properly:

    ./trouble.tex:6: Environment nesting error: html: 'DIV' closes 'BLOCKQUOTE'
     ./trouble.tex:4: Latex environment 'quote' is pending
     Adios
    -

    Thus, when HEVEA crashes, it is a good idea to check that the +

    +Thus, when HEVEA crashes, it is a good idea to check that the input is correct by running LATEX on it.

    4.3.2  Complicated cases

    -

    Unfortunately, HEVEA may crash on input that does not affect +

    Unfortunately, HEVEA may crash on input that does not affect LATEX. Such errors usually relate to environment or group nesting.

    Consider for instance the following “optimized” version of a quoteright environment: @@ -173,13 +184,13 @@ are intended to replace while \endquote stands for \end{quote}. Note that the closing \endflushright is omitted, since it does nothing. -LATEX accepts such an input and produces a right-flushed quotation.

    However, HEVEA usually translates LATEX environments to html +LATEX accepts such an input and produces a right-flushed quotation.

    However, HEVEA usually translates LATEX environments to html block-level elements and it requires those elements to be nested properly. Here, \quote translates to <blockquote>, \flushright translates to <div class="flushright"> and \endquote translates to </blockquote>. -At that point, HEVEA refuses to generate obviously +At that point, HEVEA refuses to generate obviously non-correct html and it crashes:

    Giving up command: \@close
     Giving up command: \endquote
    @@ -188,13 +199,15 @@ Giving up command: \end
     ./trouble.tex:7: Environment nesting error: html: 'BLOCKQUOTE' closes 'DIV'
     ./trouble.tex:5: Latex environment 'quoteright' is pending
     Adios
    -

    Also notice that the error message above includes a backtrace showing +

    +Also notice that the error message above includes a backtrace showing the call-chain of commands.

    In this case, the solution is easy: environments must be opened and closed consistently. LATEX style being recommended, one should write:

    \newenvironment{quoteright}
       {\begin{quote}\begin{flushright}}
       {\end{flushright}\end{quote}}
    -

    And we get: +

    +And we get:

    @@ -202,21 +215,22 @@ This is a right-flushed quotation

    Unclosed LATEX groups ({…) are another source -of nuisance to HEVEA. +of nuisance to HEVEA. Consider the following horreur.tex file:

    \documentclass{article}
     
     \begin{document}
     In this sentence, a group is opened now {\em and never closed.
     \end{document}
    -

    LATEX accepts this file, although it produces a warning: +

    +LATEX accepts this file, although it produces a warning:

    # latex horreur.tex 
     This is TeX, Version 3.14159 (Web2C 7.2)
       ...
     (\end occurred inside a group at level 1)
     Output written on horreur.dvi (1 page, 280 bytes).
     
    -

    By contrast, running HEVEA on horreur.tex yields a fatal error: +

    By contrast, running HEVEA on horreur.tex yields a fatal error:

    # hevea horreur.tex 
     Giving up command: \@raise@enddocument
     Giving up command: \enddocument
    @@ -224,20 +238,21 @@ Giving up command: \end
     ./horreur.tex:4: Environment nesting error: Latex env error: 'document' closes ''
     ./horreur.tex:3: Latex environment '' is pending
     Adios
    -

    Thus, users should close opening braces where it belongs. -Note that HEVEA error message “Latex environment -’env’ is pending” helps a lot in locating +

    +Thus, users should close opening braces where it belongs. +Note that HEVEA error message “Latex environment +’env’ is pending” helps a lot in locating the brace that hurts.

    4.3.3  Desperate cases

    -

    If HEVEA crashes on LATEX source (not on TEX source), +

    If HEVEA crashes on LATEX source (not on TEX source), then you may have discovered a bug, or this manual is not as complete as it should. In any case, please report to Luc.Maranget@inria.fr.

    To be useful, your bug report should include LATEX code that triggers the bug (the shorter, the better) and mention -HEVEA version number.

    +HEVEA version number.


    -Previous -Up -Next +Previous +Up +Next Binary files 2.29-2/manual006.png and 2.32-1/manual006.png differ diff -pruN 2.29-2/manual007.html 2.32-1/manual007.html --- 2.29-2/manual007.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual007.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,16 +2,17 @@ - - + + + Making HEVEA and LATEX both happy -Previous -Up -Next +Previous +Up +Next
    -

    5  Making HEVEA and LATEX both happy

    +

    5  Making HEVEA and LATEX both happy

    • File loading
    • The hevea package @@ -21,22 +22,22 @@ A satisfactory translation from LATEX to html often requires -giving instructions to HEVEA. +giving instructions to HEVEA. Typically, these instructions are macro definitions and these instructions should not be seen by LATEX. Conversely, some source that LATEX needs should not be processed -by HEVEA. +by HEVEA. Basically, there are three ways to make input vary according to the processor, file loading, the hevea package and comments.

      5.1  File loading

      -

      HEVEA and LATEX treat files differently. Here is a summary of the main +

      HEVEA and LATEX treat files differently. Here is a summary of the main differences:

      • -LATEX and HEVEA both load files given as arguments to +LATEX and HEVEA both load files given as arguments to \input, however when given the option -e filename, -HEVEA does not load filename. -
      • HEVEA loads all files given as command-line arguments. -
      • Both LATEX and HEVEA load style files given as optional +HEVEA does not load filename. +
      • HEVEA loads all files given as command-line arguments. +
      • Both LATEX and HEVEA load style files given as optional arguments to \documentstyle and as arguments to \usepackage, but the files are searched by following different methods and @@ -44,85 +45,85 @@ considering different file extensions.

      As a consequence, for having a file latexonly loaded by LATEX only, it suffices to use \input{latexonly} -in the source and to invoke HEVEA as follows: +in the source and to invoke HEVEA as follows:

      -# hevea -e latexonly

      Having heveaonly loaded by HEVEA only is more -simple: it suffices to invoke HEVEA as follows: +# hevea -e latexonly

      Having heveaonly loaded by HEVEA only is more +simple: it suffices to invoke HEVEA as follows:

      -# hevea heveaonly

      Finally, if one has an HEVEA equivalent style.hva -for a LATEX style file style.sty, +# hevea heveaonly

      Finally, if one has an HEVEA equivalent style.hva +for a LATEX style file style.sty, then one should load the file as follows:

      -\usepackage{style} +\usepackage{style}

      -This will result in, LATEX loading style.sty, -while HEVEA loads style.hva. -As HEVEA will not fail in case style.hva does not +This will result in, LATEX loading style.sty, +while HEVEA loads style.hva. +As HEVEA will not fail in case style.hva does not exist, this is another method for having a style file loaded by -LATEX only.

      Writing an HEVEA-specific file file.hva +LATEX only.

      Writing an HEVEA-specific file file.hva is the method of choice for supplying command definitions -to HEVEA only. Users can then be sure that these definitions are -not seen by LATEX and will not get echoed to the image -file (see section 6).

      The file file.hva can be loaded by either +to HEVEA only. Users can then be sure that these definitions are +not seen by LATEX and will not get echoed to the image +file (see section 6).

      The file file.hva can be loaded by either supplying the command-line argument -file.hva, or by -\usepackage{file} from inside the document. +file.hva, or by +\usepackage{file} from inside the document. Which method is better depends on whether you choose to override or to replace the document definition. In the command-line case, -definitions from file.hva are processed before the +definitions from file.hva are processed before the ones from the document and will override them, provided the document definitions are made using \newcommand (or \newenvironment). -In the \usepackage case, HEVEA loads file.hva -at the place where LATEX loads file.sty, hence -the definitions from file.hva replace -the definitions from file.sty in the strict sense.

      +In the \usepackage case, HEVEA loads file.hva +at the place where LATEX loads file.sty, hence +the definitions from file.hva replace +the definitions from file.sty in the strict sense.

      5.2  The hevea package

      -The hevea.sty style file is intended to be loaded by LATEX -and not by HEVEA. +The hevea.sty style file is intended to be loaded by LATEX +and not by HEVEA. It provides LATEX with means to ignore or process some parts of the document. -Note that HEVEA copes with the constructs defined in +Note that HEVEA copes with the constructs defined in the hevea.sty file by default. It is important to notice that the hevea.sty style file from the distribution is a package in LATEX 2є terms and that it is not compatible with old LATEX. Moreover, the hevea package loads the comment package which must be present. Also notice that, for compatibility, -HEVEA reacts to +HEVEA reacts to \usepackage{hevea} by loading its own version of the comment package (Section B.17.6).

      5.2.1  Environments for selecting a translator

      -HEVEA and LATEX perform the following actions on source inside +HEVEA and LATEX perform the following actions on source inside the latexonly, verblatex, htmlonly, rawhtml, toimage and verbimage environments: - - + +

      - - - - - - - + + + + + +
      environment HEVEALATEX +
      environment HEVEALATEX
      latexonly ignore, \end{env} -constructs are processed (see section 5.2.2)  process
      verblatex ignore  process
      htmlonly process  ignore
      rawhtml echo verbatim (see section 8.4)  ignore
      toimage send to the image file, \end{env} -constructs and macro characters are processed (see section 6)  process
      verbimage send to the image file (see section 6)  process
      latexonly ignore, \end{env} +constructs are processed (see section 5.2.2)  process
      verblatex ignore  process
      htmlonly process  ignore
      rawhtml echo verbatim (see section 8.4)  ignore
      toimage send to the image file, \end{env} +constructs and macro characters are processed (see section 6)  process
      verbimage send to the image file (see section 6)  process

      As an example, this is how some text can be typeset in purple by -HEVEA and left alone by LATEX: +HEVEA and left alone by LATEX:

      We get:
       \begin{htmlonly}%
       \purple purple rain, purple rain%
      @@ -131,9 +132,10 @@ HEV
       purple rain, purple rain%
       \end{latexonly}%
       \ldots
      -

      We get: +

      +We get: purple rain, purple rain -…

      It is impossible to avoid the spurious space in HEVEA output +…

      It is impossible to avoid the spurious space in HEVEA output for the source above. This extra spaces comes from the newline character that follows \end{htmlonly}. Namely this @@ -147,22 +149,22 @@ and 5.3.

      image and verbimage do not create scope. -It takes a little practice of HEVEA to understand why this is +It takes a little practice of HEVEA to understand why this is convenient.

      5.2.2  Why are there two environments for ignoring input?

      - + Some scanning and analysis of source is performed -by HEVEA inside the latexonly environment, in order to -allow latexonly to dynamically occur inside other environments.

      More specifically, \end{env} macros -are recognized and their env argument is tested against -the name of the environment whose opening macro \env +by HEVEA inside the latexonly environment, in order to +allow latexonly to dynamically occur inside other environments.

      More specifically, \end{env} macros +are recognized and their env argument is tested against +the name of the environment whose opening macro \env opened the latexonly environment. -In that case, macro expansion of \endenv is performed and -any further occurrence of \end{env’} is tested +In that case, macro expansion of \endenv is performed and +any further occurrence of \end{env’} is tested and may get expanded if it matches a pending -\begin{env’} +\begin{env’} construct.

      This enables playing tricks such as:

      \newenvironment{latexhuge}
         {\begin{latexonly}\huge}
      @@ -171,11 +173,12 @@ construct.

      This enables playing tr \begin{latexhuge} This will appear in huge font in \LaTeX{} output only. \end{latexhuge} -

      LATEX output will be: +

      +LATEX output will be:

      -While there is no HEVEA output.

      Since HEVEA somehow analyses input that is enclosed in the +While there is no HEVEA output.

      Since HEVEA somehow analyses input that is enclosed in the latexonly environment, it may choke. However, this environment is intended to select processing by @@ -183,36 +186,38 @@ LATEX only and mig Fortunately, it remains possible to have input processed by LATEX only, regardless of what it is, by enclosing it in the verblatex environment. -Inside this environment, HEVEA performs no other action +Inside this environment, HEVEA performs no other action than looking for \end{verblatex}. As a consequence, the \begin{verblatex} and \end{verblatex} constructs may only appear in the main flow of text or inside the same macro body, a bit like LATEX verbatim environment.

      Relations between toimage and verbimage are similar. -Additionally, formal parameters #i are replaced by +Additionally, formal parameters #i are replaced by actual arguments inside the toimage environment (see end of section 6.3 for an example of this feature).

      5.2.3  The hevea boolean register

      Boolean registers are provided by the ifthen package (see [LATEX, Section C.8.5] and section B.8.5 in this document). -Both the hevea.sty style file -and HEVEA define the boolean register hevea. -However, this register initial value is false for LATEX -and true for HEVEA.

      Thus, provided, both the hevea.sty style file and the +Both the hevea.sty style file +and HEVEA define the boolean register hevea. +However, this register initial value is false for LATEX +and true for HEVEA.

      Thus, provided, both the hevea.sty style file and the ifthen packages are loaded, the “purple rain” example can be rephrased as follows:

      We get:
       {\ifthenelse{\boolean{hevea}}{\purple}{}purple rain, purple rain}\ldots
      -

      We get: +

      +We get: purple rain, purple rain

      Another choice is using the TEX-style conditional macro -\ifhevea (see Section B.16.1.4): +\ifhevea (see Section B.16.1.4):

      We get:
       {\ifhevea\purple\fi purple rain, purple rain}\ldots
      -

      We get: purple rain, purple rain

      +

      +We get: purple rain, purple rain

      5.3  Comments

      -HEVEA processes all lines that start with %HEVEA, while +HEVEA processes all lines that start with %HEVEA, while LATEX treats these lines as comments. Thus, this is a last variation on the “purple rain” example:

      We get
      @@ -220,31 +225,32 @@ Thus, this is a last variation on the &#
       purple rain, purple rain%
       %HEVEA}%
       \ldots
      -

      (Note how comments are placed at the end of some lines to avoid spurious spaces +

      +(Note how comments are placed at the end of some lines to avoid spurious spaces in the final output.)

      We get: purple rain, purple rain

      Comments thus provide an alternative to loading the hevea package. For user convenience, comment equivalents to the latexonly and toimage environment are also provided: - - + +

      - -
      environmentcomment +
      environmentcomment equivalent
      \begin{latexonly}\end{latexonly} - - - + -
      %BEGIN LATEX
      %END LATEX +
      \begin{latexonly}\end{latexonly} + +
      %BEGIN LATEX
      %END LATEX
        
        
      \begin{toimage}\end{toimage} - - @@ -254,8 +260,8 @@ Note that LATEX, b of processing text between %BEGIN and %END comments. However, no environment is opened and closed and no scope is created while using comment equivalents.


      -Previous -Up -Next +Previous +Up +Next Binary files 2.29-2/manual007.png and 2.32-1/manual007.png differ diff -pruN 2.29-2/manual008.html 2.32-1/manual008.html --- 2.29-2/manual008.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual008.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,18 +2,19 @@ - - + + +With a little help from LATEX -Previous -Up -Next +Previous +Up +Next

      6  With a little help from LATEX

        -
      • The image file +
      • The image file
      • A toy example
      • Including Postscript images
      • Using filters @@ -21,39 +22,39 @@

        Sometimes, -HEVEA just cannot process its input, but it remains acceptable to +HEVEA just cannot process its input, but it remains acceptable to have LATEX process it, to produce an image from -LATEX output and to include a link to this image into HEVEA +LATEX output and to include a link to this image into HEVEA output. -HEVEA provides a limited support for doing this.

        -

        6.1  The image file

        -

        While outputting doc.html, HEVEA echoes some +HEVEA provides a limited support for doing this.

        +

        6.1  The image file

        +

        While outputting doc.html, HEVEA echoes some of its input to the image file, doc.image.tex. - + Part of this process is done at the user’s request. More precisely, the following two constructs -send text to the image file: +send text to the image file:

        \begin{toimage}
        -text
        +text
        \end{toimage}
         
        %BEGIN IMAGE
        -text
        +text
        %END IMAGE

        Additionally, \usepackage commands, top-level and global definitions are automatically echoed to the image file. This enables using -document-specific commands in text above.

        +document-specific commands in text above.

        Output to the image file builds up a current page, which is flushed by the \imageflush command. This command has the following effect: it outputs a strict page break in the image file, increments the image counter and -output a <img src="pagename.png"> tag in HEVEA -output file, where pagename is build from the image counter -and HEVEA output file name. +output a <img src="pagename.png"> tag in HEVEA +output file, where pagename is build from the image counter +and HEVEA output file name. Then the imagen script has to be run by:

        # imagen doc @@ -62,11 +63,11 @@ This will process the docATEX, dvips, ghostscript and a few others tools, which must all be present (see section C.4.1), finally producing one -pagename.png file per page in the image +pagename.png file per page in the image file.

        The usage of imagen is described at section C.1.5. Note that imagen is a simple shell script. Unix users can pass hevea the command-line option --fix. Then hevea will +-fix. Then hevea will itself call imagen, when appropriate.

        6.2  A toy example

        @@ -74,7 +75,8 @@ Consider the “blob” exampl Here is the active part of a blob.tex file:

         \newcommand{\blob}{\rule[.2ex]{1ex}{1ex}}
          \blob\ Blob \blob
        -

        This time, we would like \blob to produce a small black square, which +

        +This time, we would like \blob to produce a small black square, which \rule[.2ex]{1ex}{1ex} indeed does in LATEX. Thus we can write:

         \newcommand{\blob}{%
        @@ -82,10 +84,12 @@ Thus we can write:
          \end{toimage}%
          \imageflush}
          \blob\ Blob \blob
        -

        Now we issue the following two commands: +

        +Now we issue the following two commands:

         # hevea blob.tex
          # imagen blob
        -

        And we get: +

        +And we get:

        @@ -98,10 +102,10 @@ problematic. Cost can be lowered using \savebox, but the other problems remain.

        6.3  Including Postscript images

        - + In this section, a technique to transform included Postscript images into included bitmap images is described. -Note that this technique is used by HEVEA implementation of the +Note that this technique is used by HEVEA implementation of the graphics package (see section B.14.1), which provides a more standard manner to include Postscript images in LATEX documents.

        Included images are easy to manage: it suffices to let LATEX do the @@ -112,7 +116,8 @@ image in the source file \begin{center} \epsfbox{round.ps} \end{center} -

        Then, HEVEA can have this image translated into a inlined (and +

        +Then, HEVEA can have this image translated into a inlined (and centered) .png image by modifying source as follows:

         \begin{center}
          %BEGIN IMAGE
        @@ -120,11 +125,12 @@ centered) .png
          %END IMAGE
          %HEVEA\imageflush
          \end{center}
        -

        (Note that the round.tex file +

        +(Note that the round.tex file still can be processed by LATEX, since comment equivalents of the toimage environment are used and that the \imageflush command is inside -a %HEVEA comment — see section 5.3.)

        Then, processing round.tex through HEVEA and +a %HEVEA comment — see section 5.3.)

        Then, processing round.tex through HEVEA and imagen yields:

        @@ -137,22 +143,23 @@ on the image file because it do packages or define the right macros.

        However, the above solution implies modifying the original LATEX source code. A better solution is to define the \epsfbox -command, so that HEVEA echoes \epsfbox and its argument to +command, so that HEVEA echoes \epsfbox and its argument to the image file and performs \imageflush:

         \newcommand{\epsfbox}[1]{%
          \begin{toimage}
          \epsfbox{#1}
          \end{toimage}
          \imageflush}
        -

        Such a definition must be seen by HEVEA only. So, it is best put +

        +Such a definition must be seen by HEVEA only. So, it is best put in a separate file whose name is given as an extra argument on -HEVEA command-line (see section 5.1). +HEVEA command-line (see section 5.1). Putting it in the document source -protected inside an %HEVEA comment is a bad idea, because it might then get echoed to the image file +protected inside an %HEVEA comment is a bad idea, because it might then get echoed to the image file and generate trouble when LATEX is later run by imagen.

        Observe that the above definition of \epsfbox is a definition and not a redefinition (i.e. \newcommand is used and not \renewcommand), -because HEVEA does not know about \epsfbox by default. +because HEVEA does not know about \epsfbox by default. Also observe that this not a recursive definition, since commands do not get expanded inside the toimage environment.

        Finally, if the Postscript image is produced from a bitmap, it is a pity to translate it back into a bitmap. @@ -166,8 +173,8 @@ In such a scheme, the document contains A first run of the program on LATEX source changes these fragments into constructs that LATEX (or a subsequent stage in the paper document production chain, such as dvips) can handle. -Here again, the rule of the game is keeping HEVEA away from the -normal process: first applying the filter, then making HEVEA send +Here again, the rule of the game is keeping HEVEA away from the +normal process: first applying the filter, then making HEVEA send the filter output to the image file, and then having imagen do the job.

        Consider the gpic filter, for making drawings. Source for gpic is enclosed in .PS.PE, @@ -182,7 +189,8 @@ paragraph: \begin{center} ~\box\graph~ \end{center} -

        Both the image description (.PS.PE) and usage (\box\graph) +

        +Both the image description (.PS.PE) and usage (\box\graph) are for the image file, and they should be enclosed by %BEGIN IMAGE%END IMAGE comments. Additionally, the image link is put where it belongs by an @@ -198,33 +206,38 @@ Additionally, the image link is put wher %END IMAGE %HEVEA\imageflush \end{center} -

        The gpic filter is applied first, then come hevea +

        +The gpic filter is applied first, then come hevea and imagen:

         # gpic -t < smile.tex > tmp.tex
          # hevea tmp.tex -o smile.html
          # imagen smile
        -

        And we get: +

        +And we get:

        -Observe how the -o argument to HEVEA is used and that -imagen argument is HEVEA output basename (see -section C.1.1.2 for the full definition of HEVEA output basename).

        In the gpic example, modifying user source cannot be totally avoided. +Observe how the -o argument to HEVEA is used and that +imagen argument is HEVEA output basename (see +section C.1.1.2 for the full definition of HEVEA output basename).

        In the gpic example, modifying user source cannot be totally avoided. However, writing in a generic style saves typing. For instance, users may define the following environment for centered gpic pictures in LATEX:

         \newenvironment{centergpic}{}{\begin{center}~\box\graph~\end{center}}
        -

        Source code will now be as follows: +

        +Source code will now be as follows:

         \begin{centergpic}
          .PS
          ellipse "{\Large\bf Smile!}"
          .PE
          \end{centergpic}
        -

        HEVEA will process this source correctly, provided it is given its +

        +HEVEA will process this source correctly, provided it is given its own definition for the centergpic environment beforehand:

         \newenvironment{centergpic}
            {\begin{toimage}}
            {\box\graph\end{toimage}\begin{center}\imageflush\end{center}}
        -

        Assuming that the definition above is in a smile.hva file, +

        +Assuming that the definition above is in a smile.hva file, the command sequence for translating smile.tex now is:

         # gpic -t < smile.tex > tmp.tex
        @@ -232,13 +245,14 @@ the command sequence for translating
          tmp.tex:5: Warning: ignoring definition of \centergpic
          tmp.tex:5: Warning: not defining environment centergpic
          # imagen smile
        -

        The warnings above are normal: they are issued when HEVEA runs +

        +The warnings above are normal: they are issued when HEVEA runs across the LATEX-intended definition of the centergpic environment and refuses to override its own definition for that environment.


        -Previous -Up -Next +Previous +Up +Next Binary files 2.29-2/manual008.png and 2.32-1/manual008.png differ Binary files 2.29-2/manual009.png and 2.32-1/manual009.png differ diff -pruN 2.29-2/manual010.html 2.32-1/manual010.html --- 2.29-2/manual010.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual010.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,8 +2,9 @@ - - + + + Answers Binary files 2.29-2/manual010.png and 2.32-1/manual010.png differ diff -pruN 2.29-2/manual011.html 2.32-1/manual011.html --- 2.29-2/manual011.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual011.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,13 +2,14 @@ - - + + + A cut subsubsection -Up -Next +Up +Next

        7.3.7  A cut subsubsection

        @@ -18,7 +19,7 @@ A note in a subsubsection, flushed at su 1

        At the end of my page.

        -Up -Next +Up +Next Binary files 2.29-2/manual011.png and 2.32-1/manual011.png differ diff -pruN 2.29-2/manual012.html 2.32-1/manual012.html --- 2.29-2/manual012.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual012.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,13 +2,14 @@ - - + + + Another cut subsubsection -Previous -Up +Previous +Up

        7.3.8  Another cut subsubsection

        @@ -17,7 +18,7 @@ Another note in a subsubsection, flushed 2

        At the end of my page.

        -Previous -Up +Previous +Up diff -pruN 2.29-2/manual013.html 2.32-1/manual013.html --- 2.29-2/manual013.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual013.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,20 +2,21 @@ - - + + + A cut subsubsection -Up -Next +Up +Next

        7.3.9  A cut subsubsection

        A note in a subsubsection, flushed at sections.4


        -Up -Next +Up +Next diff -pruN 2.29-2/manual014.html 2.32-1/manual014.html --- 2.29-2/manual014.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual014.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,19 +2,20 @@ - - + + + Another cut subsubsection -Previous -Up +Previous +Up

        7.3.10  Another cut subsubsection

        Another note in a subsubsection, flushed at sections.5


        -Previous -Up +Previous +Up diff -pruN 2.29-2/manual015.html 2.32-1/manual015.html --- 2.29-2/manual015.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual015.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,20 +2,21 @@ - - + + + A cut subsubsection -Up -Next +Up +Next

        7.3.11  A cut subsubsection

        A note in a subsubsection flushed at document level.6


        -Up -Next +Up +Next diff -pruN 2.29-2/manual016.html 2.32-1/manual016.html --- 2.29-2/manual016.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual016.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,19 +2,20 @@ - - + + + Another cut subsubsection -Previous -Up +Previous +Up

        7.3.12  Another cut subsubsection

        Another note in a subsubsection at document level.7


        -Previous -Up +Previous +Up diff -pruN 2.29-2/manual017.html 2.32-1/manual017.html --- 2.29-2/manual017.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual017.html 2018-07-04 13:20:49.000000000 +0000 @@ -3,8 +3,9 @@ Notes - - + + +
        diff -pruN 2.29-2/manual018.html 2.32-1/manual018.html --- 2.29-2/manual018.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual018.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Generating html constructs -Previous -Up -Next +Previous +Up +Next

        8  Generating html constructs

          @@ -22,49 +23,49 @@

        -HEVEA output language being html, it is normal for users to insert +HEVEA output language being html, it is normal for users to insert hypertext constructs their documents, or to control colours.

        8.1  High-Level Commands

        -HEVEA provides high-level commands for generating +HEVEA provides high-level commands for generating hypertext constructs. Users are advised to use these commands in the first place, because it is easy to write incorrect html and that writing -html directly may interfere in nasty ways with HEVEA internals.

        +html directly may interfere in nasty ways with HEVEA internals.

        -

        +

        A few commands for hyperlink management and included images are provided, all these commands have appropriate equivalents defined by the hevea package (see section 5.2). Hence, a document that relies on these high-level commands still can be typeset by LATEX, provided it loads the hevea -package.

      %BEGIN IMAGE
      %END IMAGE +
      \begin{toimage}\end{toimage} + +
      %BEGIN IMAGE
      %END IMAGE
      +package.

      MacroHEVEALATEX
      - + - + - + - + - + - - + -
      MacroHEVEALATEX
      -\ahref{url}{text}    make text an hyperlink to url    echo text
      +\ahref{url}{text}    make text an hyperlink to url    echo text
      -\footahref{url}{text}    make text an hyperlink to url    make url a footnote to text, -url is shown in typewriter font
      +\footahref{url}{text}    make text an hyperlink to url    make url a footnote to text, +url is shown in typewriter font
      -\ahrefurl{url}    make url an hyperlink to url.    typeset url in typewriter font
      +\ahrefurl{url}    make url an hyperlink to url.    typeset url in typewriter font
      -\ahrefloc{label}{text}    make text an hyperlink to label inside the document    echo text
      +\ahrefloc{label}{text}    make text an hyperlink to label inside the document    echo text
      -\aname{label}{text}    make text an hyperlink target with label label    echo text
      +\aname{label}{text}    make text an hyperlink target with label label    echo text
      -\mailto{address}    make address a “mailto” link to address    typeset address in typewriter font +
      +\mailto{address}    make address a “mailto” link to address    typeset address in typewriter font
      \imgsrc[attr]{url}    insert url as an image, attr are attributes in the -html sense    do nothing
      \imgsrc[attr]{url}    insert url as an image, attr are attributes in the +html sense    do nothing
      \home{text}    produce a home-dir url both for output and links, output aspect is: “~text” +
      \home{text}    produce a home-dir url both for output and links, output aspect is: “~text

      It is important to notice that all arguments are processed. @@ -76,7 +77,7 @@ you should do something like this: this is annoying. Moreover, the immediate solution, using \verb, \ahref{\verb" ... /~maranget/..."}{his home page} does not work, since LATEX forbids verbatim formatting -inside command arguments.

      +inside command arguments.

      Fortunately, the url package provides a very convenient \url command that acts like \verb and can appear in other command arguments @@ -84,37 +85,39 @@ other command arguments Hence, provided the url package is loaded, a more convenient reformulation of the example above is:

      \ahref{\url{http://pauillac.inria.fr/~maranget/index.html}}{his home page}
      -

      Or even better: +

      +Or even better:

      \urldef{\lucpage}{\url}{http://pauillac.inria.fr/~maranget/index.html}
       \ahref{\lucpage}{his home page}
      -

      It may seem complicated, but this is a safe way to have a -document processed both by LATEX and HEVEA. +

      +It may seem complicated, but this is a safe way to have a +document processed both by LATEX and HEVEA. Drawing a line between url typesetting and hyperlinks is correct, because users may sometime want urls to be processed and some other times not. -Moreover, HEVEA (optionally) depends on only one third party package: -url, which is as correct as it can be and well-written.

      - +Moreover, HEVEA (optionally) depends on only one third party package: +url, which is as correct as it can be and well-written.

      + In case the \url command is undefined at the time \begin{document} is processed, the commands \url, \oneurl and \footurl are defined as synonymous for \ahref, \ahrefurl and \footahref, thereby ensuring -some compatibility with older versions of HEVEA. +some compatibility with older versions of HEVEA. Note that this usage of \url is deprecated.

      8.1.2  html style colours

      Specifying colours both for LATEX and -HEVEA should be done using the color package (see +HEVEA should be done using the color package (see section B.14.2). However,one can also specify text color using special type style declarations. The hevea.sty style file define no equivalent for these declarations, which therefore are for -HEVEA consumption only.

      Those declarations follow html conventions for colours. +HEVEA consumption only.

      Those declarations follow html conventions for colours. There are sixteen predefined colours:

      -
      \black, +
      \black, \silver, \gray, \white, @@ -133,15 +136,15 @@ There are sixteen predefined colours:

      -Additionally, the current text color can be -changed by the declaration \htmlcolor{number}, -where number is a six digit hexadecimal number specifying a +Additionally, the current text color can be +changed by the declaration \htmlcolor{number}, +where number is a six digit hexadecimal number specifying a color in the RGB space. For instance, the declaration \htmlcolor{404040} changes font color to dark gray,

      8.2  More on included images

      - + The \imgsrc command becomes handy when one has images both in Postscript and GIF (or PNG or JPG) format. As explained in section 6.3, Postscript images can be included in @@ -150,27 +153,31 @@ LATEX documents by encapsulated Postscript file, then a doc.tex document can include it by:

      \epsfbox{screenshot.ps}
      -

      We may very well also have a GIF version of the screenshot image +

      +We may very well also have a GIF version of the screenshot image (or be able to produce one easily using image converting tools), let us store it in a screenshot.ps.gif file. -Then, for HEVEA to include a link to the GIF image in its +Then, for HEVEA to include a link to the GIF image in its output, it suffices to define the \epsfbox command in the macro.hva file as follows:

      \newcommand{\epsfbox}[1]{\imgsrc{#1.gif}}
      -

      Then HEVEA has to be run as: +

      +Then HEVEA has to be run as:

      # hevea macros.hva doc.tex
      -

      Since it has its own definition of \epsfbox, HEVEA will +

      +Since it has its own definition of \epsfbox, HEVEA will silently include a link the GIF image and not to the Postscript image.

      If another naming scheme for image files is preferred, there are alternatives. For instance, assume that Postscript files are of the kind -name.ps, while GIF files are of the kind -name.gif. +name.ps, while GIF files are of the kind +name.gif. Then, images can be included using -\includeimage{name}, where +\includeimage{name}, where \includeimage is a specific user-defined command:

      \newcommand{\includeimage}[1]{\ifhevea\imgsrc{#1.gif}\else\epsfbox{#1.ps}\fi}
      -

      Note that this method uses the hevea boolean register (see +

      +Note that this method uses the hevea boolean register (see section 5.2.3). If one does not wish to load the hevea.sty file, one can adopt the slightly more verbose definition: @@ -180,23 +187,24 @@ one can adopt the slightly more verbose \epsfbox{#1.ps} %END LATEX } -

      When the Postscript file has been produced by +

      +When the Postscript file has been produced by translating a bitmap file, this simple method of making a bitmap image and using the \imgsrc command is the most adequate. -It should be preferred over using the more automated image file +It should be preferred over using the more automated image file mechanism (see section 6), which will translate the image back from Postscript to bitmap format and will thus degrade it.

      8.3  Internal macros

      -In this section a few of HEVEA internal macros are +In this section a few of HEVEA internal macros are described. -Internal macros occur at the final expansion stage of HEVEA and +Internal macros occur at the final expansion stage of HEVEA and invoke Objective Caml code.

      Normally, user source code should not use them, since -their behaviour may change from one version of HEVEA to another and +their behaviour may change from one version of HEVEA to another and because using them incorrectly easily -crashes HEVEA. +crashes HEVEA. However:

      • Internal macros @@ -204,13 +212,13 @@ are almost mandatory for writing supplem
      • Casual usage is a convenient (but dangerous) way to finely control output (cf. the examples in the next section).
      • Knowing a little about internal macros helps in understanding how -HEVEA works. -

      -The general principle of HEVEA is that LATEX environments -\begin{env}… -\end{env} get -translated into html block-level elements <block -attributes></block>. +HEVEA works. +

      +The general principle of HEVEA is that LATEX environments +\begin{env}… +\end{env} get +translated into html block-level elements <block +attributes></block>. More specifically, such block level elements are opened by the internal macro \@open and closed by the internal macro \@close. @@ -232,12 +240,12 @@ are discarded silently.

      Following elements cannot occur inside p; more precisely, block-level opening tags implicitly close any active p. As a consequence, -HEVEA closes the active p element when it processes +HEVEA closes the active p element when it processes \@open and opens a new p when it processes the matching \@close. Generally, no p element is opened by default inside block-level -elements, that is, HEVEA does not immediately open p after having +elements, that is, HEVEA does not immediately open p after having processed \@open. However, if a paragraph break occurs later, then a new p element is opened, and will be closed automatically @@ -254,16 +262,14 @@ Opening a block-level element inside a g involves closing the active p and opening a new p when the matching \@close is processed.

      Finally, display mode (as introduced by $$) is also complicated. Displays basically are table elements with one row -(tr), and HEVEA manages to introduce table cells (td) +(tr), and HEVEA manages to introduce table cells (td) where appropriate. Processing \@open inside a display means closing the current cell, starting a new cell, opening the specified block, and then immediately opening a new display. Processing the matching \@close closes the internal display, then the specified block, then the cell and finally opens a new cell. In many occasions (in particular for groups), either cell -break or the internal display may get cancelled.

      - - +break or the internal display may get cancelled.

      @@ -274,45 +280,47 @@ break or the internal display may get ca + + It is important to notice that primitive arguments are processed (except for the \@print primitive, and for some of the basic style primitives). Thus, some characters cannot be given directly (e.g. # and % must be given as \# and \%).

      -\@print{text}
      -Echo text verbatim. As a consequence use only ascii -in text. -
      \@getprint{text}
      -Process text using a special output mode that strips off +\@print{text}
      +Echo text verbatim. As a consequence use only ascii +in text. +
      \@getprint{text}
      +Process text using a special output mode that strips off html tags. This macro is the one to use for processed attributes of html tags. -
      \@hr[attr]{width}{height}
      -Output an html horizontal rule, attr is attributes given -directly (e.g. SIZE=3 HOSHADE), while width and -height are length arguments given in the LATEX style +
      \@hr[attr]{width}{height}
      +Output an html horizontal rule, attr is attributes given +directly (e.g. SIZE=3 HOSHADE), while width and +height are length arguments given in the LATEX style (e.g. 2pt or .5\linewidth). -
      \@print@u{n}
      -Output the (Unicode) character “n”, which can +
      \@print@u{n}
      +Output the (Unicode) character “n”, which can be given either as a decimal number or an hexadecimal number prefixed -by “X”.
      \@open{block}{attributes}
      -Open html block-level element block with attributes -attributes. The block name block must be +by “X”.
      \@open{block}{attributes}
      +Open html block-level element block with attributes +attributes. The block name block must be lowercase. -As a special case block may be the empty string, then a html +As a special case block may be the empty string, then a html group is opened. -
      \@close{block}
      -Close html block-level element block. +
      \@close{block}
      +Close html block-level element block. Note that \@open and \@close must be properly balanced. -
      \@out@par{arg}
      +
      \@out@par{arg}
      If occurring inside a p element, that is if a <p> opening tag is active, \@out@par first closes it (by emitting </p>), -then formats arg, and then re-open a p element. -Otherwise \@out@par simply formats arg. +then formats arg, and then re-open a p element. +Otherwise \@out@par simply formats arg. This command is adequate when -formatting arg produces block-level elements. -

      +formatting arg produces block-level elements. +

      Text-level elements are managed differently. They are not seen as blocks that must be closed explicitly. Instead they follow a “declaration” style, similar @@ -321,8 +329,8 @@ to the one of LATE Block-level elements (and html groups) delimit the effect of such declarations.

      -\@span{attr}
      - +\@span{attr}
      + Declare the text-level element span (with given attributes) as active. The text-level element span will get opened as soon as @@ -332,29 +340,29 @@ Enclosed block-level elements are treate before them, and re-opening span (with given attributes) inside them. The following text-level constructs exhibit similar behaviour with respect -to block-level elements.
      \@style{shape}
      Declare the -text shape shape (which must be lowercase) as active. Text +to block-level elements.
      \@style{shape}
      Declare the +text shape shape (which must be lowercase) as active. Text shapes are known as font style elements (i, tt, etc.; -warning:most of font style elements are depreciated in html5, +warning:most of font style elements are depreciated in html5, and some of them are no longer valid, prefer CSS in span tags) -or phrase elements (em, etc.) in the html terminology.
      \@styleattr{name}{attr}
      +or phrase elements (em, etc.) in the html terminology.
      \@styleattr{name}{attr}
      This command generalises both \@span and \@style, -as both a text-level element name name and attributes are specified. +as both a text-level element name name and attributes are specified. More specifically, -\@span{attr} can be seen as a shorthand for -\@styleattr{span}{attr}; +\@span{attr} can be seen as a shorthand for +\@styleattr{span}{attr}; while -\@style{name} can be seen as +\@style{name} can be seen as a shorthand for -\@styleattr{name}{}.
      \@fontsize{int}
      Declare +\@styleattr{name}{}.
      \@fontsize{int}
      Declare the text-level element span with attribute -style="font-size:font-size" as active. +style="font-size:font-size" as active. The argument -int must be a small integer in the range +int must be a small integer in the range 1,2, … , 7. -hevea computes font-size, a CSS fontsize value, -from int. -More specifically, font-size will +hevea computes font-size, a CSS fontsize value, +from int. +More specifically, font-size will range from x-small to 120% included in a xx-large, 3 being the default size medium. Notice that \@fontsize is deprecated in favour of @@ -362,16 +370,16 @@ Notice that \@fontsize is d \@span{style="font-size=xx-small"}, \@span{style="font-size=x-small"}, \@span{style="font-size=small"}, -etc.
      \@fontcolor{color}
      +etc.
      \@fontcolor{color}
      Declare the text-level element span with attribute -"style=color" as active. -The argument color must be a color attribute value in the html +"style=color" as active. +The argument color must be a color attribute value in the html style. That is either one of the sixteen conventional colours black, silver etc, or a RGB hexadecimal color specification of the form -#XXXXXX. -Note that the argument color is processed, as a consequence -numerical color arguments should be given as \#XXXXXX.
      \@nostyle
      +#XXXXXX. +Note that the argument color is processed, as a consequence +numerical color arguments should be given as \#XXXXXX.
      \@nostyle
      Close active text-level declarations and ignore further text-level declarations. The effect stops when the enclosing block-level element is closed. @@ -390,7 +398,7 @@ italics one may write: An indeed hevea styles text in that manner, starting from version 2.00. Such (verbose) declarations are then abstracted into style class declarations -by HEVEA optimiser esponja, which is invoked by hevea +by HEVEA optimiser esponja, which is invoked by hevea when given option “-O”.

      Notice that style attributes can be given to elements other than span. However, combining style attributes requires a little care as only one style attribute is allowed. @@ -398,14 +406,14 @@ Namely <cite style="font-weight is illegal and should be written <cite style="font-weight:bold;color:red">. For instance: -Das Kapital. -

      +Das Kapital. +

      The command \@addtyle can be handy for adding style to already style elements:

      -\@addstyle{name:val}{attrs}
      -Echo the space-separated attributes attrs of a tag with the -name:val style declaration added to these attributes. The +\@addstyle{name:val}{attrs}
      +Echo the space-separated attributes attrs of a tag with the +name:val style declaration added to these attributes. The style attribute is added if necessary. Examples: \@addstyle{color:red}{href="#"} will produce href="#" style="color:red", and @@ -417,31 +425,34 @@ As an example, consider the following de for typesetting citation in bold, written directly in html:

      \newcommand{\styledcite}[2][]
       {{\@styleattr{cite}{\@addstyle{#1}{style="font-weight:bold"}}#2}}
      -

      The purpose of the optional argument is to add style to specific citations, +

      +The purpose of the optional argument is to add style to specific citations, as in:

      Two fundamental works: \styledcite{The Holy Bible} and
       \styledcite[color:red]{Das Kapital}.
      -

      We get: Two fundamental works: The Holy Bible and -Das Kapital.

      Notice that the example is given for illustrating the usage of the +

      +We get: Two fundamental works: The Holy Bible and +Das Kapital.

      Notice that the example is given for illustrating the usage of the \@addstyle macros, which is intended for package writers. A probably simpler way to proceed would be to use LATEX text-style declarations:

      \newcommand{styledcite}[2][]{{\@style{cite}#1\bf{}#2}}
       Two fundamental works: \styledcite{The Holy Bible} and
       \styledcite[\color{red}]{Das Kapital}.
      -

      We get: -Two fundamental works: The Holy Bible and -Das Kapital.

      +

      +We get: +Two fundamental works: The Holy Bible and +Das Kapital.

      8.4  The rawhtml environment

      - + Any text enclosed between \begin{rawhtml} and \end{rawhtml} is echoed verbatim into the html output file. -Similarly, \rawhtmlinput{file} echoes the -contents of file file. +Similarly, \rawhtmlinput{file} echoes the +contents of file file. In fact, rawhtml is the environment counterpart of the \@print command, but experience showed it to be much more -error prone.

      When HEVEA was less sophisticated then it is now, +error prone.

      When HEVEA was less sophisticated then it is now, rawhtml was quite convenient. But, as time went by, numerous pitfalls around rawhtml showed up. Here are a few: @@ -456,14 +467,14 @@ environment should contain only html For instance, writing \begin{rawhtml}<table>\end{rawhtml}\begin{rawhtml}</table>\end{rawhtml} is -dangerous, because HEVEA is not informed about opening and closing +dangerous, because HEVEA is not informed about opening and closing the block-level element table. In that case, one should use -the internal macros \@open and \@close.

    • \begin{rawhtml}text\end{rawhtml} fragments that +the internal macros \@open and \@close.
    • \begin{rawhtml}text\end{rawhtml} fragments that contain block-level elements will almost certainly mix poorly with p elements (introduced by paragraph breaks) and with active style declaration (introduced by, for instance, \it). Safe usage will most of the time means using the internal macros -\@nostyle and \@out@par.
    • When HEVEA is given the command-line option -O, +\@nostyle and \@out@par.
    • When HEVEA is given the command-line option -O, checking and optimisation of text-level elements in the whole document takes place. As a consequence, incorrect html introduced by using the rawhtml environment may be detected at a later stage, @@ -479,7 +490,8 @@ A list of links: <li><a href="http://www.sun.com/">Sun</a>. </ul> \end{rawhtml} -

      One can write: +

      +One can write:

      \begin{htmlonly}
       A list of links:
       \begin{itemize}
      @@ -488,40 +500,43 @@ A list of links:
       \end{itemize}
       \end{htmlonly}
       

      + A list of links:

      - -If HEVEA is targeted to text or info files (see +

    • + +If HEVEA is targeted to text or info files (see Section 11). The text inside rawhtml environments is ignored. However there exists a rawtext environment (and a \rawtextinput command) to echo text verbatim in text or info output mode. Additionally, the raw environment and a \rawinput -command echo their contents verbatim, regardless of HEVEA output -mode. Of course, when HEVEA produces html, +command echo their contents verbatim, regardless of HEVEA output +mode. Of course, when HEVEA produces html, the latter environment and command suffer from the same drawbacks as rawhtml.

      8.5  Examples

      - + As a first example of using internal macros, consider the following excerpt from the hevea.hva file that defines the center environment:

      \newenvironment{center}{\@open{div}{style="text-align:center"}}{\@close{div}}
      -

      Notice that the code above is no longer present and is given here +

      +Notice that the code above is no longer present and is given here for explanatory purpose only. -Now HEVEA uses style-sheets and the actual definition of the +Now HEVEA uses style-sheets and the actual definition of the center environment is as follows:

      \newstyle{.center}{text-align:center;margin-left:auto;margin-right:auto;}%
       \setenvclass{center}{center}%
       \newenvironment{center}
         {\@open{div}{\@getprint{class="\getenvclass{center}"}}
         {\@close{div}}%
      -

      Basically environments \begin{center}\end{center} will, by +

      +Basically environments \begin{center}\end{center} will, by default, be translated into blocks <div class="center"></div>. Additionally, the style class associated to center environments @@ -530,34 +545,37 @@ commands \setenvclass and < See section 9.3 for more explanations.

      Another example is the definition of the \purple color declaration (see section 8.1.2):

      \newcommand{\purple}{\@fontcolor{purple}}
      -

      HEVEA does not feature all text-level elements by default. +

      HEVEA does not feature all text-level elements by default. However one can easily use them with internal macros. For instance this is how you can make all emphasised text blink:

      \renewcommand{\em}{\@styleattr{em}{style="text-decoration:blink"}}
       

      + Here is an example of this questionable blinking feature:

      Hello!

      -

      - - +

      + + Then, here is the definition of a simplified \imgsrc command (see section 8.1.1), without its optional argument:

      \newcommand{\imgsrc}[1]
         {\@print{<img src="}\@getprint{#1}\@print{">}}
      -

      Here, \@print and \@getprint are used to output +

      +Here, \@print and \@getprint are used to output html text, depending upon whether this text requires processing or not. Note that \@open{img}{src="#1"} is not correct, because the element img consists in a single tag, without a -closing tag.

      +closing tag.

      Another interesting example is the definition of the command \@doaelement, -which HEVEA uses internally to output A elements. +which HEVEA uses internally to output A elements.

      \newcommand{\@doaelement}[2]
         {{\@nostyle\@print{<a }\@getprint{#1}\@print{>}}{#2}{\@nostyle\@print{</a>}}
      -

      The command \@doaelement takes two arguments: the first +

      +The command \@doaelement takes two arguments: the first argument contains the opening tag attributes; while the second element is the textual content of the A element. By contrast with the \imgsrc example above, @@ -565,9 +583,9 @@ tags are emitted inside groups where sty \@nostyle declaration. Such a complication is needed, so as to avoid breaking proper nesting of text-level elements.

      - - + + Here is another example of direct block opening. The bgcolor environment from the color package locally changes background color (see section B.14.2.1). @@ -576,13 +594,14 @@ This environment is defined as follows: {\@open{table}{}\@open{tr}{}% \@open{td}{\@addstyle{background-color:\@getcolor{#2}}{#1}}} {\@close{td}\@close{tr}\@close{table}} -

      The bgcolor environment operates by opening a html table +

      +The bgcolor environment operates by opening a html table (table) with only one row (tr) and cell (td) in its opening command, and closing all these elements in its closing command. In my opinion, such a style of opening block-level elements in environment opening commands and closing them in environment closing commands is good style. -The one cell background color is forced with a background-color +The one cell background color is forced with a background-color property in a style attribute. Note that the mandatory argument to \begin{bgcolor} is the background color expressed as a high-level color, which therefore @@ -590,58 +609,60 @@ needs to be translated into a low-level \@getcolor internal macro from the color package. Additionally, \begin{bgcolor} takes html attributes as an optional argument. These attributes are the ones of the -table element.

      If you wish to output a given Unicode character whose value you know, +table element.

      If you wish to output a given Unicode character whose value you know, the recommended technique is to define an ad-hoc command that simply call the \@print@u command. For instance, “blackboard sigma” is Unicode U+02140 (hexa). Hence you can define the command \bbsigma as follows:

      \newcommand{\bbsigma}{\@print@u{X2140}}
      -

      Then, “\bbsigma” will output “⅀”

      +

      +Then, “\bbsigma” will output “⅀”

      8.6  The document charset

      According to standards, as far as I understand them, html pages are made of Unicode (ISO 10646) characters. By contrast, a file in any operating system is usually considered as -being made of bytes.

      To account for that fact, html pages usually specify a document +being made of bytes.

      To account for that fact, html pages usually specify a document charset that defines a translation from a flow of bytes to a flow of characters. For instance, the byte 0xA4 means Unicode 0x00A4 (¤) in the ISO-8859-1 (or latin1) encoding, and 0x20AC (€) in the ISO-8859-15 (or latin9) encoding. -Notice that HEVEA has no difficulty to output both symbols, in fact +Notice that HEVEA has no difficulty to output both symbols, in fact they are defined as Unicode characters:

      \newcommand{\textcurrency}{\@print@u{XA4}}
       \newcommand{\texteuro}{\@print@u{X20AC}}
      -

      But the \@print@u command may output the specified character as +

      +But the \@print@u command may output the specified character as a byte, when possible, by the means of the output translator. If not possible, \@print@u outputs a numerical character -references (for instance &#X20AC;).

      Of course, the document charset and the output translator +references (for instance &#X20AC;).

      Of course, the document charset and the output translator must be synchronised. The command \@def@charset takes a charset name as argument and performs the operation of specifying the document character set and the output translator. It should occur in the document preamble. -Valid charset names are ISO-8859-n where n is a +Valid charset names are ISO-8859-n where n is a number in 115, KOI8-R, US-ASCII (the default), -windows-n where n is +windows-n where n is 1250, 1251, 1252 or 1257, or macintosh, or UTF-8. In case those charsets do not suffice, you may ask the author for other document charsets. Notice however that document charset is not that important, the default US-ASCII works everywhere! Input encoding of source files is another, although -related, issue — see Section B.17.4.

      If wished so, the charset can be extracted from the current -locale environment, provided this yields a valid (to HEVEA) charset name. +related, issue — see Section B.17.4.

      If wished so, the charset can be extracted from the current +locale environment, provided this yields a valid (to HEVEA) charset name. This operation is performed by a companion script: xxcharset.exe. -It thus suffices to launch HEVEA as: +It thus suffices to launch HEVEA as:

      -# hevea -exec xxcharset.exe other arguments +# hevea -exec xxcharset.exe other arguments

      -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual019.html 2.32-1/manual019.html --- 2.29-2/manual019.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual019.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,16 +2,17 @@ - - + + + Support for style sheets -Previous -Up -Next +Previous +Up +Next
      -

      9  Support for style sheets

      +

      9  Support for style sheets

      9.1  Overview

      -Starting with version 1.08, HEVEA offers support for style sheets +Starting with version 1.08, HEVEA offers support for style sheets (of the CSS variant see [CSS-2]).

      Style sheets provide enhanced expressiveness. For instance, it is now possible to get “real” (whatever real means here) small caps in html, and in a relatively standard manner. There are other, discrete, maybe unnoticeable, similar enhancements.

      However, style sheets mostly offer an additional mechanism to -customise their documents to HEVEA users. To do so, users should -probably get familiar with how HEVEA uses style sheets in the first -place.

      HEVEA interest for style sheets is at the moment confined to -block-level elements (div, table, H<n>, +customise their documents to HEVEA users. To do so, users should +probably get familiar with how HEVEA uses style sheets in the first +place.

      HEVEA interest for style sheets is at the moment confined to +block-level elements (div, table, H<n>, etc.). The general principle is as follows: when a command or an environment gets translated into a block-level element, the opening tag of the block level element has a -class="name" attribute, where name is the +class="name" attribute, where name is the command or environment name.

      As an example the LATEX command \subsection is implemented with the element h3, resulting in html output of the form:

          <h3 class="subsection">
           ...
           </h3>
      -

      By default, most styles are undefined, and default rendering of +

      +By default, most styles are undefined, and default rendering of block-level elements applies. However, some packages (such as, for -instance fancysection, see Section B.16.4) may +instance fancysection, see Section B.16.4) may define them. -If you wish to change the style of section headers, loading the -fancysection package may prove appropriate (see B.16.4). +If you wish to change the style of section headers, loading the +fancysection package may prove appropriate (see B.16.4). However, one can also proceed more directly, by appending new definitions to the document style sheet, with the command \newstyle. @@ -65,7 +67,8 @@ These specification will normally affect Given the previous style definition, the sectioning command

      \subsection*{A styled subsection heading}
      -

      should yield: +

      +should yield:

      A styled subsection heading

      The following points are worth noticing: @@ -84,18 +87,19 @@ a light green background, with small lef This has been performed by simply issuing the following command in the document preamble.

      \newstyle{.verbatim}{margin:1ex 1ex;padding:1ex;background:\#ccffcc;}
      -

      Observe that, in the explicit numerical color argument above, the +

      +Observe that, in the explicit numerical color argument above, the hash character “#” has to be escaped.

      9.3  Changing the style of some instances of an environment

      -One can also change the style class attached to a given instance of +One can also change the style class attached to a given instance of an environment and thus control styling of environments more precisely.

      As a matter of fact, the name of the class attribute of -environment env is referred to through an indirection, by -using the command \getenvclass{env}. +environment env is referred to through an indirection, by +using the command \getenvclass{env}. The class attribute can be changed with the command -\setenvclass{env}{class}. +\setenvclass{env}{class}. The \setenvclass command internally defines a command -\env@class, whose content is read +\env@class, whose content is read by the \getenvclass command. As a consequence, the class attribute of environments follows normal scoping rules. @@ -115,7 +119,7 @@ its default value to the new value myverbatim. The change remains active until the end of the current group (here, the “}” at the end). Then, the class of environment verbatim is restored to its default value -— which happen to be verbatim.

      +— which happen to be verbatim.

      This example also shows two new ways to specify colours in style definition, with a conventional html color name (here maroon) or as @@ -126,7 +130,8 @@ new environments.

      \newenvironment{flashyverbatim}
         {\setenvclass{verbatim}{myverbatim}\verbatim}
         {\endverbatim}
      -

      Then, we can use \begin{flashyverbatim}… +

      +Then, we can use \begin{flashyverbatim}\end{flashyverbatim} to get verbatim environments style with the intended myverbatim style class.

      This text is typeset inside the environment
      @@ -134,12 +139,12 @@ the intended myverbat
       style.
       

      9.4  Which class affects what

      -

      Generally, the styling of environment env is performed through +

      Generally, the styling of environment env is performed through the commands -\getenvclass{env} -and \setenvclass{env}{}, -with \getenvclass{env} producing the -default value of env.

      Concretely, this means that most of the environments are styled through +\getenvclass{env} +and \setenvclass{env}{}, +with \getenvclass{env} producing the +default value of env.

      Concretely, this means that most of the environments are styled through an homonymous style class. Here is a non-exhaustive list of such environments

      @@ -149,30 +154,31 @@ quotation, verbatim, abstract, mathpar ( Section B.17.15), lstlisting (cf. Section B.17.13), etc.

      All sectioning commands (\part, \section etc.) -output H<n> block-level elements, which are styled +output H<n> block-level elements, which are styled through style classes named part, section, etc.

      List making-environment introduce extra style classes for items. More specifically, for list-making environments itemize and enumerate, li elements are styled as follows:

      -
      <ul class="itemize">
      +
      +
      +
      <ul class="itemize">
       <li class="li-itemize"> ...
       </ul>
      -
      <ol class="enumerate">
      +
      <ol class="enumerate">
       <li class="li-enumerate"> ...
       </ol>
      -

      That is, li elements are styled as environments, the key name -being li-env.

      The description, trivlist and list environments +being li-env.

      The description, trivlist and list environments (which all get translated into DL elements) are styled in a similar way, internal DT and DD elements being -styles through names dt-env and -dd-env respectively.

      +styles through names dt-env and +dd-env respectively.

      9.5  A few examples

      9.5.1  The title of the document

      -

      +

      The command \maketitle formats the document title within a table element, with class title, for display. The name of the title is displayed @@ -188,13 +194,15 @@ information (author, date) are displayed </td> </tr> </table> -

      Users can impact on title formatting by adding style in the +

      +Users can impact on title formatting by adding style in the appropriate style classes. For instance the following style class definitions:

      \newstyle{.title}
         {text-align:center;margin:1ex auto;color:navy;border:solid navy;}
       \newstyle{.titlerest}{font-variant:small-caps;}
      -

      will normally produce a title in dark blue, centered in a box, with +

      +will normally produce a title in dark blue, centered in a box, with author and date in small-caps.

      @@ -205,23 +213,24 @@ author and date in small-caps.

      9.5.2  Enclosing things in a styled div

      -At the moment, due to the complexity of the task, environments +At the moment, due to the complexity of the task, environments tabular and array cannot be styled as others environments can be, by defining an appropriate class in the preamble. However, even for such constructs, limited styling can be performed, by using the divstyle environment. -The opening command \begin{divstyle}{class} +The opening command \begin{divstyle}{class} takes the name of a class as -an argument, and translates to <div class="class">. +an argument, and translates to <div class="class">. Of course the closing command \end{divstyle} translates to </div>. The limitation is that the enclosed part may generate more html blocks, and that not all style attribute defined in class class -class will apply to those inner blocks.

      As an example consider the style class definition below. +class will apply to those inner blocks.

      As an example consider the style class definition below.

      \newstyle{.ruled}{border:solid black;padding:1ex;background:\#eeddbb;color:maroon}
      -

      The intended behaviour is to add a black border around the inner block +

      +The intended behaviour is to add a black border around the inner block (with some padding), and to have maroon text over a light brown background.

      If we, for instance, enclose an itemize environment, the resulting effect is more or less what we have expected: @@ -246,10 +255,10 @@ Good Morning & Bonjour\\ Thank You & \end{tabular}\end{center} \end{divstyle}

      -
      - - - +
      EnglishFrench
      Good MorningBonjour
      Thank YouMerci
      Good ByeAu Revoir
      + + +
      EnglishFrench
      Good MorningBonjour
      Thank YouMerci
      Good ByeAu Revoir

      @@ -267,17 +276,18 @@ Good Morning & Bonjour\\ Thank You & \end{tabular} \end{divstyle} \end{tabular}\end{center} -

      This works because of the rules that +

      +This works because of the rules that govern the width of html table elements, which yield minimal width. This trick is used in -numerous places by HEVEA, for instance in document titles, and looks +numerous places by HEVEA, for instance in document titles, and looks quite safe. -

      - - - - +

      EnglishFrench
      Good MorningBonjour
      Thank YouMerci
      Good ByeAu Revoir
      @@ -287,16 +297,16 @@ of the styling div
      -
      + + + +
      EnglishFrench
      Good MorningBonjour
      Thank YouMerci
      Good ByeAu Revoir
      - - - +
      EnglishFrench
      Good MorningBonjour
      Thank YouMerci
      Good ByeAu Revoir
      + + +
      EnglishFrench
      Good MorningBonjour
      Thank YouMerci
      Good ByeAu Revoir

      9.5.3  Styling the itemize environment

      - + Our idea is highlight lists with a left border whose color fades @@ -346,7 +356,8 @@ The text above is typeset from the follo ... \end{toc} \end{toc} -

      For simplicity, we assume a limit of four over the nesting depth of +

      +For simplicity, we assume a limit of four over the nesting depth of toc environment. We first define four style classes toc1, toc2, toc3 and toc4 in the document preamble. @@ -358,14 +369,16 @@ designed. \newtocstyle{2}{\@getstylecolor{Brown}} \newtocstyle{3}{\@getstylecolor{Tan}} \newtocstyle{4}{\@getstylecolor{Melon}} -

      The toc environment uses a counter to record nesting depth. +

      +The toc environment uses a counter to record nesting depth. Notice how the style class of the itemize environment is redefined before \begin{itemize}.

      \newcounter{toc}
       \newenvironment{toc}
       {\stepcounter{toc}\setenvclass{itemize}{toc\thetoc}\begin{itemize}}
       {\addtocounter{toc}{-1}\end{itemize}}
      -

      The outputted html is: +

      +The outputted html is:

      <ul class="toc1"><li class="li-itemize">
       Part&nbsp;A
       <ul class="toc2"><li class="li-itemize">
      @@ -378,36 +391,38 @@ Section&nbsp;I.1
       </ul>
       

      9.6  Miscellaneous

      -

      9.6.1  HACHA and style sheets

      +

      9.6.1  HACHA and style sheets

      -HACHA now produces an additional file: a style sheet, which is -shared by all the html files produced by HACHA. +HACHA now produces an additional file: a style sheet, which is +shared by all the html files produced by HACHA. Please refer to section 7.1 for details.

      9.6.2  Producing an external style sheet

      -By default, style declarations defined with +By default, style declarations defined with \newstyle go into the header of the html document doc.html. However, one can send those declaration into an external style file, whose name is doc.css. -Then, HEVEA automatically relates doc.html to +Then, HEVEA automatically relates doc.html to its style sheet doc.css. To achieve this behaviour, it suffices to set the value of the boolean -register externalcss to true, by issuing the command +register externalcss to true, by issuing the command \externalcsstrue in the preamble of the source document. -Notice that HEVEA output still can be processed by HACHA, with +Notice that HEVEA output still can be processed by HACHA, with correct behaviour.

      9.6.3  Linking to external style sheets

      -The HEVEA command \loadcssfile{url} allows the +The HEVEA command \loadcssfile{url} allows the user to link to an external style sheet (like the link option for -HTML). The command takes an url of the external +HTML). The command takes an url of the external sheet as argument and emits the HTML text to link to the given external style sheet. As an example, the command

      \loadcssfile{../abc.css}
      -

      produces the following html text in the head of the document. +

      +produces the following html text in the head of the document.

        <link rel="stylesheet" type="text/css" href="../abc.css">
      -

      To yield some effect, \loadcssfile must appear in the document +

      +To yield some effect, \loadcssfile must appear in the document preamble. Several \loadcssfile commands can be issued. Then the given external style sheets appear in the output, following source order.

      Notice that the argument to \loadcssfile is processed. Thus, if it @@ -421,7 +436,7 @@ package (see Section EVEA before it starts to process the +definitions performed by HEVEA before it starts to process the user’s document. Additionally, external style sheets specified with \loadcssfile appear before style classes defined with \newstyle. @@ -431,10 +446,10 @@ external style sheets. Thus, using exter if they alter the styling of elements, may produce awkward results.

      Those limitations do not apply of course to style classes whose names are new, since there cannot be default definitions for them. Then, linking with external style sheets can prove useful to -promote uniform styling of several documents produced by HEVEA.

      +promote uniform styling of several documents produced by HEVEA.


      -
      Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual020.html 2.32-1/manual020.html --- 2.29-2/manual020.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual020.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,16 +2,17 @@ - - + + + Customising HEVEA -Previous -Up -Next +Previous +Up +Next
      -

      10  Customising HEVEA

      +

      10  Customising HEVEA

      -HEVEA can be controlled by writing LATEX code. In this section, -we examine how users can change HEVEA default behaviour or add +HEVEA can be controlled by writing LATEX code. In this section, +we examine how users can change HEVEA default behaviour or add functionalities. In all this section we assume that a document doc.tex is processed, using a private command file -macros.hva. That is, HEVEA is invoked as: +macros.hva. That is, HEVEA is invoked as:

      # hevea macros.hva doc.tex
      -

      The general idea is as follows: one redefines LATEX constructs in +

      +The general idea is as follows: one redefines LATEX constructs in macros.hva, using internal commands. This requires a good working knowledge of both LATEX and html. Usually, one can avoid internal commands, but then, all command @@ -48,34 +50,37 @@ commands:

      \let\oldquote\quote
       \let\oldendquote\endquote
       \renewenvironment{quote}{\oldquote\em}{\oldendquote}
      -

      In some sense, this second +

      +In some sense, this second solution is easier, when one already knows how to customise LATEX. However, this is less safe, since the definition of \em can be changed elsewhere.

      There is yet another solution that takes advantage of style sheets. One can also add this line to the macros.hva file:

      \newstyle{.quote}{font-style:oblique;}
      -

      This works because the environment quote is styled through +

      +This works because the environment quote is styled through style class quote (see Section 9.2). Notice that this solution has very little to do with “emphasising” in the proper sense, since here we short-circuit the implicit path from \em to oblique fonts.

      10.2  Changing defaults for type-styles

      -HEVEA default rendering of type style changes is described in +HEVEA default rendering of type style changes is described in section B.15.1. For instance, the following example shows the default rendering for the font shapes:

      \itshape italic shape \slshape slanted shape
       \scshape small caps shape \upshape upright shape
      -

      By default, \itshape is italics, \slshape is oblique +

      +By default, \itshape is italics, \slshape is oblique italics, \scshape is small-caps (thanks to style sheets) and \upshape is no style at all. All shapes are mutually exclusive, this means that each shape declaration cancels the effect of other active shape declarations. For instance, in the example, small caps shapes is small caps (no italics here).

      -italic shape slanted shape -small caps shape upright shape +italic shape slanted shape +small caps shape upright shape

      If one wishes to change the rendering of some of the shapes (say slanted caps), then one should redefine the old-style \sl declaration. For instance, to render slanted as Helvetica (why so?), one should @@ -83,15 +88,15 @@ redefine \sl by \rene macros.hva.

      And now, the shape example above gets rendered as follows:

      -italic shape slanted shape -small caps shape upright shape +italic shape slanted shape +small caps shape upright shape

      Redefining the old-style \sl is compatible with the cancellation mechanism, redefining \slshape is not. Thus, redefining directly LATEX 2є \slshape with \renewcommand{\slshape}{} would yield:

      -italic shape slanted shape -small caps shape upright shape +italic shape slanted shape +small caps shape upright shape

      Hence, redefining old-style declarations using internal commands should yield satisfactory output. However, since cancellation is done at the html @@ -101,31 +106,32 @@ Anyway, you might have not noticed it if

      10.3  Changing the interface of a command

      Assume for instance that the base style of doc.tex is -jsc (the +jsc (the Journal of Symbolic Computation style for articles). -For running HEVEA, the jsc style can be replaced by -article +For running HEVEA, the jsc style can be replaced by +article style, but for a few commands whose calling interface is changed. In particular, the \title command -takes an extra optional argument (which HEVEA should ignore +takes an extra optional argument (which HEVEA should ignore anyway). -However, HEVEA can process the document as it stands. +However, HEVEA can process the document as it stands. One solution to insert the following lines into macros.hva:

      \input{article.hva}% Force document class 'article'
       \let\oldtitle=\title
       \renewcommand{\title}[2][]{\oldtitle{#2}}
      -

      The effect is to replace \title by a new command which -calls HEVEA \title with the appropriate argument. +

      +The effect is to replace \title by a new command which +calls HEVEA \title with the appropriate argument.

      10.4  Checking the optional argument within a command

      - -HEVEA fully implements LATEX 2є \newcommand. + +HEVEA fully implements LATEX 2є \newcommand. That is, users can define commands with an optional argument. Such a feature permits to write a \epsfbox command that has the same interface as the LATEX command and -echoes itself as it is invoked to the image file. -To do this, the HEVEA \epsfbox command has to check +echoes itself as it is invoked to the image file. +To do this, the HEVEA \epsfbox command has to check whether it is invoked with an optional argument or not. This can be achieved as follows:

      \newcommand{\epsfbox}[2][!*!]{%
      @@ -136,39 +142,40 @@ This can be achieved as follows:
       

      10.5  Changing the format of images

      - - - - + + + + Semi-automatic generation of included images is described in section 6. Links to included images are generated by the \imageflush command, which calls the \imgsrc command:

      \newcommand{\imageflush}[1][]
       {\@imageflush\stepcounter{image}\imgsrc[#1]{\hevaimagedir\jobname\theimage\heveaimageext}}
      -

      That is, you may supply a html-style attribute to the included image, +

      +That is, you may supply a html-style attribute to the included image, as an optional argument to the \imageflush command.

      By default, images are PNG images stored in .png files. -HEVEA provides support for the alternative GIF image file format. +HEVEA provides support for the alternative GIF image file format. It suffices to invoke hevea as:

      -# hevea gif.hva doc.tex +# hevea gif.hva doc.tex

      -Then imagen must be run with option -gif: +Then imagen must be run with option -gif:

      # imagen -gif doc

      A convenient alternative is to invoke hevea as:

      -# hevea -fix gif.hva doc.tex +# hevea -fix gif.hva doc.tex

      Then hevea will invoke imagen with the appropriate option when it thinks images need to be rebuild. An even more convenient alternative is to load gif.hva from within document source, for instance with the \usepackage -command.

      HEVEA also provides support for the alternative SVG image file format. +command.

      HEVEA also provides support for the alternative SVG image file format. As for GIF images, it is more convenient to use option -fix to combine hevea and imagen invocations:

      -# hevea -fix svg.hva doc.tex +# hevea -fix svg.hva doc.tex

      Notice that imagen production chain of SVG images always call pdflatex, even when not given @@ -182,31 +189,31 @@ letting client browser select the most a teh srcset attribute of the img element.

      10.6  Storing images in a separate directory

      - + By redefining the \heveaimagedir command, users can specify a directory for images. More precisely, if the following redefinition occurs in the document preamble.

      -\renewcommand{\heveaimagedir}{dir} +\renewcommand{\heveaimagedir}{dir}

      Then, all links to images in the produced html file will be as -“dir/…”. -Then imagen must be invoked with option - +“dir/…”. +Then imagen must be invoked with option - todir:

      -# imagen -todir dir doc +# imagen -todir dir doc

      As usual, hevea will invoke imagen with the appropriate option, provided it is passed the -fix option.

      10.7  Controlling imagen from document source

      - + The internal command -\@addimagenopt{option} add -the text option to imagen command-line options, when +\@addimagenopt{option} add +the text option to imagen command-line options, when launched automatically by hevea (i.e. when -hevea is given the -fix command-line option).

      For instance, to instruct hevea/imagen to +hevea is given the -fix command-line option).

      For instance, to instruct hevea/imagen to reduce all images by a factor of √2, it suffices to state:

      %HEVEA\@addimagenopt{-mag 707} @@ -216,8 +223,8 @@ accepted by imagen
      8
      or GIF, if gif.hva is loaded

      -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual021.html 2.32-1/manual021.html --- 2.29-2/manual021.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual021.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,13 +2,14 @@ - - + + + Other output formats -Previous -Up +Previous +Up

      11  Other output formats

        @@ -23,9 +24,10 @@ html, plain text and info manuals from o

        11.1  Text

        The LATEX file is processed and converted into a plain text -formatted file. It allows some pretty-printing in plain text.

        To translate into text, invoke HEVEA as follow: +formatted file. It allows some pretty-printing in plain text.

        To translate into text, invoke HEVEA as follow:

        # hevea -text [-w <width>] myfile.tex
        -

        Then, HEVEA produces myfiles.txt a plain text translation +

        +Then, HEVEA produces myfiles.txt a plain text translation of myfile.tex.

        Additionally, the optional argument -w <number> sets the width of the output for text formatting. By default, The text will be 72 characters wide.

        Nearly every environment has been translated, included lists and tables. @@ -40,10 +42,10 @@ columns only. Table rendering can be poor in case of line overflow. The only way to correct this (apart from changing the tables themselves) is to adjust the formatting width, using the -the -w command-line option.

        For now, maths are not supported at all in text mode. You can get very weird +the -w command-line option.

        For now, maths are not supported at all in text mode. You can get very weird results with in-text mathematical formulas. Of course, simple expressions such as subscripts remains readable. -For instance, x2 will be rendered as x^2, but ∫01f(x)dx will +For instance, x2 will be rendered as x^2, but ∫01f(x)dx will yield something like : int01f(x)dx.

        11.2  Info

        @@ -51,10 +53,11 @@ The file format info is also supported. Info files are text files with limited hypertext links, they can be read by using emacs info mode or the info program. -Please note that HEVEA translates plain LATEX to info, and not +Please note that HEVEA translates plain LATEX to info, and not TeXinfo.

        You can translate your LATEX files into info file(s) as follows:

        # hevea -info [-w <width>] myfile.tex
        -

        Then, HEVEA produces the file myfile.info, an info +

        +Then, HEVEA produces the file myfile.info, an info translation of myfile.tex. However, if the resulting file is too large, it is cut into pieces automatically, @@ -66,9 +69,9 @@ commands. Menus are created to navigate References, indexes and footnotes are supported, as they are in html mode. However, the info format only allows pointers to info nodes, -i.e. in HEVEA case, to sectional units. +i.e. in HEVEA case, to sectional units. As a consequence all cross references lead to sectional unit headers.


        -Previous -Up +Previous +Up diff -pruN 2.29-2/manual022.html 2.32-1/manual022.html --- 2.29-2/manual022.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual022.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Reference manual -Previous -Up -Next +Previous +Up +Next
        @@ -42,7 +43,7 @@ manual [Sectioning Commands
      • The Appendix
      • Table of Contents -
      • Use HACHA +
      • Use HACHA
      • Classes, Packages and Page Styles -
      • Extra Features +
      • Extra Features
      • Implemented Packages

      • -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual023.html 2.32-1/manual023.html --- 2.29-2/manual023.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual023.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,13 +2,14 @@ - - + + +Commands and Environments -Up -Next +Up +Next

        B.1  Commands and Environments

          @@ -21,15 +22,15 @@

        B.1.1  Command Names and Arguments

        LATEX comments that start with “%” and end at end of line are ignored and produce no output. -Usually, HEVEA ignore such comments. However, HEVEA processes +Usually, HEVEA ignore such comments. However, HEVEA processes text that follows “%HEVEA” and some other comments have a specific meaning to it (see -section 5.3).

        +section 5.3).

        Command names follow strict LATEX syntax. That is, apart from #, $, ~, _ and ^, they either are “\” followed by a single non-letter character or “\” followed by a sequence of letters. Additionally, the letter sequence may be preceded by “@” -(and this is the case of many of HEVEA internal commands), or +(and this is the case of many of HEVEA internal commands), or terminated by “*” (starred variants are implemented as plain commands).

        Users are strongly advised to follow strict LATEX syntax for arguments. That is, mandatory arguments are enclosed in curly braces @@ -37,61 +38,63 @@ arguments. That is, mandatory arguments balanced. Optional arguments are enclosed in square brackets []. -However, HEVEA does its best to read arguments even when they are +However, HEVEA does its best to read arguments even when they are not enclosed in curly braces. Such arguments are a single, different from “\”, “{” and “ ”, character or a command name. Thus, constructs such as \'ecole, $a_1$ or $a_\Gamma$ are -recognized and processed as école a1 and aΓ. +recognized and processed as école a1 and aΓ. By contrast, a^\mbox{...} is not recognized and must be written a^{\mbox{...}}.

        Also note that, by contrast with LATEX, comments are parsed during argument scanning, as an important consequence brace nesting is also -checked inside comments.

        - +checked inside comments.

        + With respect to previous versions, -HEVEA has been improved as regards emulation of complicated +HEVEA has been improved as regards emulation of complicated argument passing. That is, commands and their arguments can now appear in different static text bodies. As a consequence, -HEVEA correctly processes the following source: +HEVEA correctly processes the following source:

        \newcommand{\boite}{\textbf}
         \boite{In bold}
        -

        The definition of \boite makes it reduces as -\textbf and HEVEA succeeds in fetching the argument +

        +The definition of \boite makes it reduces as +\textbf and HEVEA succeeds in fetching the argument “{In bold}”. We get

        -In bold +In bold

        The above example arguably is no “legal” LATEX, -but HEVEA handles it. +but HEVEA handles it. Of course, there remains numerous “clever” LATEX tricks that exploits TEX internal -behaviour, which HEVEA does not handle. +behaviour, which HEVEA does not handle. For instance consider the following source:

        \newcommand{\boite}[1]{\textbf#1}
         \boite{{In bold}, Not in Bold.}
        -

        LATEX typesets the text “In bold” using bold font, leaving -the rest of the text alone. While HEVEA typesets everything using -bold font. Here is HEVEA output: +

        +LATEX typesets the text “In bold” using bold font, leaving +the rest of the text alone. While HEVEA typesets everything using +bold font. Here is HEVEA output:

        -In bold, Not in Bold. +In bold, Not in Bold.

        -Note that, in most similar situations, HEVEA will likely crash.

        As a conclusion of this important section, +Note that, in most similar situations, HEVEA will likely crash.

        As a conclusion of this important section, Users are strongly advised to use ordinary command names and curly braces and not to think too much the TEX way.

        B.1.2  Environments

        Environment opening and closing is performed like in LATEX, with -\begin{env} and -\end{env}. -The *-form of an environment is a plain environment.

        It is not advised to use \env and -\endenv in place of \begin{env} and -\end{env}.

        +\begin{env} and +\end{env}. +The *-form of an environment is a plain environment.

        It is not advised to use \env and +\endenv in place of \begin{env} and +\end{env}.

        B.1.3  Fragile Commands

        -Fragile commands are not relevant to HEVEA and \protect is +Fragile commands are not relevant to HEVEA and \protect is defined as a null command.

        B.1.4  Declarations

        @@ -99,14 +102,14 @@ Scope rules are the same as in LAB.1.5  Invisible Commands

        I am a bit lost here. However spaces in the output should correspond -to users expectations. Note that, to HEVEA being +to users expectations. Note that, to HEVEA being invisible commands is a static property attached to command name.

        B.1.6  The \\ Command

        The \\ and \\* commands are the same, they perform a line break, except inside arrays where they end the current row. Optional arguments to \\ and \\* are ignored.


        -Up -Next +Up +Next diff -pruN 2.29-2/manual024.html 2.32-1/manual024.html --- 2.29-2/manual024.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual024.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,58 +2,60 @@ - - + + +The Structure of the Document -Previous -Up -Next +Previous +Up +Next

        B.2  The Structure of the Document

        Document structure is a bit simplified with respect to LATEX, since documents consist of only two parts. -The preamble starts as soon as HEVEA starts to operate and +The preamble starts as soon as HEVEA starts to operate and ends with the \begin{document} construct. Then, any input occurring before \end{document} is translated to html. However, the preamble is processed and the preamble comprises the content of the files given as command-line -arguments to HEVEA, see section C.1.1.1). +arguments to HEVEA, see section C.1.1.1). As a consequence, command and environment definitions that occur before \begin{document} are performed. and they remain -valid during all the processing.

        - +valid during all the processing.

        + In particular one can define a header and a footer, by using the \htmlhead and \htmlfoot commands in the preamble. Those commands register their argument as the header and the footer of the final html document. The header appears first while the footer appears last in (visible) html output. -This is mostly useful when HEVEA output is later cut into pieces by -HACHA, since both header and footer are replicated -at the start and end of any file generated by HACHA. +This is mostly useful when HEVEA output is later cut into pieces by +HACHA, since both header and footer are replicated +at the start and end of any file generated by HACHA. For instance, to append a copyright notice at the end of all the html pages, it suffices to invoke the \htmlfoot command as follows in the document preamble:

        \htmlfoot{\copyright to me}
        -

        - - - +

        + + + The \htmlhead command cannot be used for changing anything outside of the html document body, there are specific commands for doing this. Those command must be used in the document preamble. One can -change HEVEA default (empty) attribute of +change HEVEA default (empty) attribute of the opening <body ...> tag by redefining \@bodyargs. For instance, you get black text on a white background, when the following declaration occurs before \begin{document}:

        \renewcommand{\@bodyargs}{style="color:black;background:white"}
        -

        Since version 1.08, a recommended alternative is to use style sheets: +

        +Since version 1.08, a recommended alternative is to use style sheets:

        \newstyle{body}{color:black; background:white;}
         

        One can also change the default (empty) attribute of the opening <html ...> tag by redefining @@ -61,7 +63,7 @@ following declaration occurs before

        \renewcommand{\@htmlargs}{lang=en}
        -

        +

        Similarly, some elements can be inserted into the output file head element by redefining the \@meta command (Such elements typically are meta, link, etc.). @@ -74,22 +76,23 @@ author information as follows: \begin{rawhtml} <meta name="Author" content="Luc Maranget"> \end{rawhtml}} -

        Note how \@meta is first bound to +

        +Note how \@meta is first bound to \oldmeta before being redefined and how \oldmeta is invoked in the new definition of \@meta. Namely, simply overriding the old definition of \@meta would -imply not outputting default meta-information.

        +imply not outputting default meta-information.

        The \@charset command holds the value of the (html) document character set. By default, this value is US-ASCII. -In previous versions of HEVEA, one could change the +In previous versions of HEVEA, one could change the value of the document character set by simply redefining \@charset. Then, it was users responsability to provide a (LATEX) document in the correspounding encoding. This is no longer so, and users should not redefine \@charset directly. Please, see Section 8.6 for details.


        -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual025.html 2.32-1/manual025.html --- 2.29-2/manual025.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual025.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + +Sentences and Paragraphs -Previous -Up -Next +Previous +Up +Next

        B.3  Sentences and Paragraphs

          @@ -20,8 +21,8 @@

        B.3.1  Spacing

        - - + + Generally speaking, spaces (and single newline characters) in the source are echoed in the output. Browser then manage with spaces and line-breaks. Following LATEX behaviour, spaces after commands are @@ -52,10 +53,10 @@ at chapters end in the book sty See section 7.3.6 for a description of how footnotes are flushed.

        B.3.4  Accents and special symbols

        -Thanks to Unicode character references, HEVEA can virtually output +Thanks to Unicode character references, HEVEA can virtually output any symbol. -It may happen that HEVEA does not known about a particular symbol, -that is, most of the time, HEVEA does not known about a particular +It may happen that HEVEA does not known about a particular symbol, +that is, most of the time, HEVEA does not known about a particular command. In that case a warning is issued to draw user attention. Users can then choose a particular symbol amongst the recognized ones, or as an explicit Unicode character reference (see @@ -69,7 +70,8 @@ For instance, consider the following sou legitimate use of acute accents, one attempt to put an accute accent over the letter “h”:

        ``\'Ecole'' works as in \LaTeX, while ``\'h'' does not.
        -

        HEVEA output will be “École” works as in LATEX, while “h” does not. +

        +HEVEA output will be “École” works as in LATEX, while “h” does not. And a warning will be issued.

        ./tmp.tex:3741: Warning: Application of '\'' on 'h' failed
        @@ -77,8 +79,8 @@ And a warning will be issued.
         is a convenient alternative to accent commands —
         see Section B.17.4.


        -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual027.html 2.32-1/manual027.html --- 2.29-2/manual027.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual027.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Classes, Packages and Page Styles -Previous -Up -Next +Previous +Up +Next

        B.5  Classes, Packages and Page Styles

          @@ -29,27 +30,27 @@ being equivalent.

          If one of the re \documentclass or \documentstyle is executed, then no attempt to load a style file is made. This allows to override the document style file by -giving one of the four recognized style files of HEVEA as a command -line argument (see 2.2).

          Conversely, if HEVEA attempt to load style.hva +giving one of the four recognized style files of HEVEA as a command +line argument (see 2.2).

          Conversely, if HEVEA attempt to load style.hva fails, then a fatal error is flagged, since it can be sure that the document cannot be processed.

          B.5.2  Packages and Page Styles

          - -HEVEA reacts to -\usepackage[options]{pkg} in + +HEVEA reacts to +\usepackage[options]{pkg} in the following way:

          1. The whole \usepackage command with its arguments gets echoed to the image file (see 6). -
          2. HEVEA attempt to load file pkg.hva, -(see section C.1.1.1 on where HEVEA searches for files). +
          3. HEVEA attempt to load file pkg.hva, +(see section C.1.1.1 on where HEVEA searches for files).

          -Note that HEVEA will not fail if it cannot load -pkg.hva and that no warning is issued in that case.

          The HEVEA distribution contains implementations of some packages, -such as verbatim, colors, graphics, etc.

          In some situations it may not hurt at all if HEVEA does not -implement a package, for instance HEVEA does not provide an +Note that HEVEA will not fail if it cannot load +pkg.hva and that no warning is issued in that case.

          The HEVEA distribution contains implementations of some packages, +such as verbatim, colors, graphics, etc.

          In some situations it may not hurt at all if HEVEA does not +implement a package, for instance HEVEA does not provide an implementation for the fullpage package.

          Users needing an implementation of a package that is widely used and available are encouraged to contact the author. @@ -59,18 +60,18 @@ implementations by themselves.

          All title related commands exist, with the following peculiarities:

          • -The argument to the \title command appears +The argument to the \title command appears in the html document header. As a consequence, titles should -remain simple. Normal design (as regards HEVEA) is for +remain simple. Normal design (as regards HEVEA) is for \title to occur in the document preamble, so that the title is known at the time when the document header is emitted (while processing \begin{document}). However, there are two subtleties.

            If no \title command occurs in document preamble and that one \title command appears in the document, then the title is saved into the -.haux file for a next run of HEVEA to put it in the +.haux file for a next run of HEVEA to put it in the html document header.

            If \title commands are present both in preamble and after \begin{document}, then the former takes precedence.

          • When not present the date is left empty. The -\today command generates will work properly +\today command generates will work properly only if hevea is invoked with the -exec xxdate.exe option. Otherwise \today generates nothing and a warning is issued. @@ -78,8 +79,8 @@ issued. including the book style. The titlepage environment does nothing.


            -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual028.html 2.32-1/manual028.html --- 2.29-2/manual028.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual028.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Displayed Paragraphs -Previous -Up -Next +Previous +Up +Next

            B.6  Displayed Paragraphs

              @@ -22,9 +23,9 @@ environments

              Displayed-paragraph environments translate to block-level elements.

              In addition to the environments described in this section, -HEVEA implements the center, flushleft and +HEVEA implements the center, flushleft and flushright environments. -HEVEA also implements the corespondant TEX style declaration +HEVEA also implements the corespondant TEX style declaration \centering \raggedright and \raggedleft, but these declarations may not work as expected, when they do not appear directly inside a displayed-paragraph environment or inside an array @@ -50,24 +51,24 @@ environments The list environment translates to the DL element. Arguments to \begin{list} are handled as follows:

              -  \begin{list}{default_label}{decls} -

              The first argument default_label is the label generated by an +  \begin{list}{default_label}{decls} +

              The first argument default_label is the label generated by an \item command with no argument. -The second argument, decls is a sequence of declarations. +The second argument, decls is a sequence of declarations. In practice, the following declarations are relevant:

              -\usecounter{counter}
              -The counter counter is incremented by \refstepcounter +\usecounter{counter}
              +The counter counter is incremented by \refstepcounter by every \item command with no argument, before it does anything else.
              \renewcommand{\makelabel}[1]{}
              The command \item executes -\makelabel{label}, where label is the item +\makelabel{label}, where label is the item label, to print its label. Thus, users can change label formatting by redefining \makelabel. -The default definition of \makelabel simply echoes label. +The default definition of \makelabel simply echoes label.

              As an example, a list with an user-defined counter can be defined as follows:

              \newcounter{coucou}
              @@ -76,12 +77,13 @@ follows:
               \renewcommand{\makelabel}[1]{\textbf{#1}.}}
               ...
               \end{list}
              -

              This yields: +

        +This yields:

        -1.
        First item. -
        2.
        Second item. +1.
        First item. +
        2.
        Second item.

        The trivlist environment is also supported. It is equivalent to the description environment.

        B.6.4  Verbatim

        @@ -90,8 +92,8 @@ the PRE element. Inside verbatim*, spaces are replaced by underscores (“_”).

        Similarly, \verb and \verb* translate to the CODE text element.

        The alltt environment is supported.


        -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual029.html 2.32-1/manual029.html --- 2.29-2/manual029.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual029.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + +Mathematical Formulae -Previous -Up -Next +Previous +Up +Next

        B.7  Mathematical Formulae

          @@ -36,36 +37,36 @@ are supported. Equation labelling and numbering is performed in the first two environments, using the equation counter. Additionally, numbering can be suppressed in one row of an -eqnarray, using the \nonumber command.

          Math mode is not as powerful in HEVEA as in LATEX. The +eqnarray, using the \nonumber command.

          Math mode is not as powerful in HEVEA as in LATEX. The limitations of math mode can often be surpassed by using math display mode. As a matter of fact, math mode is for in-text formulas. From the html point of view, this means that math mode does not close the current flow of text and that formulas in math mode must be rendered using text-level elements only. By contrast, displayed formulas can be rendered using block-level elements. This means that -HEVEA have much more possibilities in display context than inside +HEVEA have much more possibilities in display context than inside normal flow of text. In particular, stacking text elements one above the over is possible only in display context. -For instance compare how HEVEA renders +For instance compare how HEVEA renders $\frac{1}{\sum_{i=1}^{\infty} i$ -as: 1/∑i=1 i, and +as: 1/∑i=1 i, and $$\frac{1}{\sum_{i=1}^{\infty} i$$ as: -

        Part B
        Reference manual

        +

        1
        -
        1
        +
        - - -
        i=1
         i
        + + +
        i=1
         i

        B.7.2  Common Structures

        -

        HEVEA admits, subscript (_), superscripts (^) and -fractions (\frac{numer}{denom}). +

        HEVEA admits, subscript (_), superscripts (^) and +fractions (\frac{numer}{denom}). The best effect is obtained in display mode, where html table element is extensively used. -By contrast, when not in display mode, HEVEA uses only +By contrast, when not in display mode, HEVEA uses only SUB and SUP text-level elements to render superscrits and subscript, and the result may not be very satisfying.

        However, simple subscripts and superscripts, such as x_i or x^2, @@ -78,48 +79,49 @@ is issued.

        An attempt is made to r strange for the latter two.

        B.7.3  Square Root

        - + The nth root command \sqrt is supported only for n=3,4, thanks to the existence of Unicode characters for the same. For the others, we shift to fractional exponents, in which case, the \sqrt command is defined as follows:

        \newcommand{\sqrt}[3][2]{\left(#2\right)^{1/#1}}
         

        + Then, the source fragment: $$\sqrt[5]{\frac{1}{n!}} + \sqrt[3]{\pi} + \sqrt{\pi}$$ gets rendered as follows: -


        +




        -⎝
        +⎝
        1
        - +
        1
        n!
        n!



        -⎠
        +⎠ -
        1
        - - +
        - +
        1
        5
        5

        +



         
         
         +  - -
        π
         +  - +
        π
         +  + +
        π
         +  +
        π

        B.7.4  Unicode and mathematical symbols

        -

        The support for unicode symbols offered by modern browsers allows to +

        The support for unicode symbols offered by modern browsers allows to translate almost all math symbols correctly.

        Log-like functions and variable sized-symbols are recognized and their subscripts and superscripts are put where they should in display mode. Subscript and superscript placement can be changed using the \limits and \nolimits commands. Big delimiters are also handled.

        B.7.5  Putting one thing above/below/inside

        -

        +

        The commands \stackrel, \underline and \overline are recognized. They produce sensible output in display mode. @@ -131,16 +133,16 @@ These macros perform the following defau

        \textunderline
        Underlines its argument, using the U text-level element.
        \textoverline
        Overlines using style-sheets (used <SPAN> with a top border). -

        The command \boxed works well both in display and normal math mode. Input of the form \boxed{\frac{\pi}{2}} produces π/2 in normal math, and -

        +

        The command \boxed works well both in display and normal math mode. Input of the form \boxed{\frac{\pi}{2}} produces π/2 in normal math, and +

        π
        - +
        π
        2
        2

        -in display-math mode. The commands \bigl,\bigr etc. are also rendered well. Some examples can be found here.

        +in display-math mode. The commands \bigl,\bigr etc. are also rendered well. Some examples can be found here.

        B.7.6  Math accents

        -

        +

        Math accents that have coresponding text accents (\hat, \tilde, etc.) are handled by default. They in fact act as the @@ -148,7 +150,7 @@ corresponding text-mode accents (Section As a consequence, they work properly only on ascii letters. This may be quite cumbersome, but at least some warnings draw user’s attention on the problem. -If accents are critical to your document and that HEVEA issues +If accents are critical to your document and that HEVEA issues a lot of warnings, a solution is to redefine the math accent command. A suggested replacement is using limit superscripts. That way accents are positioned above symbols in display mode and @@ -159,15 +161,16 @@ $$ \hat{\mu} = \hat{\Delta}. $$ In text: $\hat{\mu} = \hat{\delta}$ -

        An you get, +

        +An you get, displayed: -

        - - -
        ^
        µ
         
         =  - - +

        ^
        Δ
         
        + + +
        ^
        µ
         
         =  + +
        ^
        Δ
         
        .

        @@ -179,45 +182,45 @@ you get “µ = δ” command is rendered differently in display and non-display mode. In display mode, the arrow appears in normal position, while in non-display the arrow appears as an ordinary superscript. -

        \vec{u} in text mode: u,   -\vec{u} in display mode:  - - +

        u
         
        \vec{u} in text mode: u,   +\vec{u} in display mode:  + +
        u
         

        Most “extensible accents” (\widetilde, \widehat, etc.) are not even defined. There are a few exceptions: line “accents”: -

        -
             +

        abc
        +
        -
            
        abc
          \underline
             - +
        abc
             +
        abc
          \overline

        Brace “accents”: -

        -
             - - +

         
        1 × 2 × ⋯ × n


        +
        -
             + +
         
        1 × 2 × ⋯ × n


          \underbrace
             - - +


        1 × 2 × ⋯ × n
         
             + +


        1 × 2 × ⋯ × n
         
          \overbrace

        And arrow “accents”: -

             - - +


        1 × 2 × ⋯ × n
         
        -
             + +

        1 × 2 × ⋯ × n
         
          \overleftarrow
        @@ -225,7 +228,7 @@ There are a few exceptions: line “
             - - +

        1 × 2 × ⋯ × n
         
             + +

        1 × 2 × ⋯ × n
         
          \overrightarrow

        B.7.7  Spacing

        - + By contrast with LATEX, space in the input matters in math mode. One or more spaces are translated to one space. Furthermore, @@ -246,17 +249,17 @@ by style changes or not is browser depen yield calligraphic letters in LATEX) exist. They yield red letters by default.

        Observe that this does not corresponds directly to how LATEX manage style in math mode and that, in fact, style cannot really change in math mode.

        Math style changing declarations \displaystyle and -\textstyle do nothing when HEVEA is already in the requested +\textstyle do nothing when HEVEA is already in the requested mode, otherwise they issue a warning. -This is so because HEVEA implements displayed maths as tables, +This is so because HEVEA implements displayed maths as tables, which require to be both opened and closed and introduce line breaks in the output. As a consequence, warnings on \displaystyle are to be taken seriously.

        The commands \scriptstyle and \scriptscriptstyle perform type size changes.


        -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual030.html 2.32-1/manual030.html --- 2.29-2/manual030.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual030.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Definitions, Numbering -Previous -Up -Next +Previous +Up +Next

        B.8  Definitions, Numbering

        B.8.1  Defining Commands

        -

        - - -HEVEA understands command definitions given in LATEX style. Such +

        + + +HEVEA understands command definitions given in LATEX style. Such definitions are made using \newcommand, \renewcommand and \providecommand. These three constructs accept the same arguments and have the same meaning as in LATEX, in particular it is possible to define an user command with one optional argument. -However, HEVEA is more tolerant: if command -name already exists, then a subsequent \newcommand{name}…is ignored. If macro name does not exists, then -\renewcommand{name}…performs a definition of name. In both cases, LATEX would crash, HEVEA just issues +However, HEVEA is more tolerant: if command +name already exists, then a subsequent \newcommand{name}…is ignored. If macro name does not exists, then +\renewcommand{name}…performs a definition of name. In both cases, LATEX would crash, HEVEA just issues warnings.

        The behaviour of \newcommand allows to shadow document definition, provided the new definitions are processed before the document definitions. This is easily done by grouping the shadowing definition in a -specific style file given as an argument to HEVEA (see section 5.1). -Conversely, changes of base macros (i.e. the ones that HEVEA +specific style file given as an argument to HEVEA (see section 5.1). +Conversely, changes of base macros (i.e. the ones that HEVEA defines before loading any user-specified file) must be performed using \renewcommand.

        Scoping rules apply to macros, as they do in LATEX. Environments and groups define a scope and command definition -are local to the scope they occur.

        It is worth noticing that HEVEA also partly implements TEX definitions +are local to the scope they occur.

        It is worth noticing that HEVEA also partly implements TEX definitions (using \def) and bindings (using \let), see -section B.16.1 for details.

        +section B.16.1 for details.

        B.8.2  Defining Environments

        -HEVEA accepts environment definitions and redefinitions +HEVEA accepts environment definitions and redefinitions by \newenvironment and \renewenvironment. The support is complete and should conform to [LATEX, Sections C.8.2].

        Environments define a scope both for commands and environment @@ -59,23 +60,23 @@ theorem-like environment definitions are

        B.8.4  Numbering

        LATEX counters are (fully ?) supported. -In particular, defining a counter cmd with -\newcounter{cmd} creates a macro -\thecmd that outputs the counter value. -Then the \thecmd command can be redefined. +In particular, defining a counter cmd with +\newcounter{cmd} creates a macro +\thecmd that outputs the counter value. +Then the \thecmd command can be redefined. For instance, section numbering can be turned into alphabetic style by:

        \renewcommand{\thesection}{\alph{section}}
         

        Note that TEX style for counters is not supported at all and that using -this style will clobber the output. However, HEVEA implements -the calc package that makes using TEX style for counters +this style will clobber the output. However, HEVEA implements +the calc package that makes using TEX style for counters useless in most situations (see section B.17.3).

        B.8.5  The ifthen Package

        - + The ifthen package is partially supported. The one unsupported construct is the \lengthtest test expression, which is -undefined.

        As a consequence, HEVEA accepts the following example from the +undefined.

        As a consequence, HEVEA accepts the following example from the LATEX manual:

        \newcounter{ca}\newcounter{cb}%
         \newcommand{\printgcd}[2]{%
        @@ -88,26 +89,27 @@ LATEX manual:
             gcd(\arabic{ca}, \arabic{cb}) = }%
           \arabic{ca}.}%
         For example: \printgcd{54}{30}
        -

        For example: Gcd(54,30) = -gcd(24, 30) = gcd(24, 6) = gcd(18, 6) = gcd(12, 6) = gcd(6, 6) = 6.

        Additionally, a few boolean registers are defined by HEVEA. +

        +For example: Gcd(54,30) = +gcd(24, 30) = gcd(24, 6) = gcd(18, 6) = gcd(12, 6) = gcd(6, 6) = 6.

        Additionally, a few boolean registers are defined by HEVEA. Some of them are of interest to users.

        hevea
        Initial value is true. The hevea.sty style file also defines this register with -initial value false. -
        mmode
        This register value reflects HEVEA operating -mode, it is true in math-mode and false otherwise. -
        display
        This register value reflects HEVEA operating -mode, it is true in display-mode and false otherwise. +initial value false. +
        mmode
        This register value reflects HEVEA operating +mode, it is true in math-mode and false otherwise. +
        display
        This register value reflects HEVEA operating +mode, it is true in display-mode and false otherwise.
        footer
        Initial value is true. -When set false, HEVEA does not insert its footer “This -document has been translated by HEVEA”.

        Finally, note that HEVEA also recognised à la TEX conditional -macros (see section B.16.1.4). Such macros are fully compatible +When set false, HEVEA does not insert its footer “This +document has been translated by HEVEA”.

        Finally, note that HEVEA also recognised à la TEX conditional +macros (see section B.16.1.4). Such macros are fully compatible with the boolean registers of the ifthen package, as it is the case in LATEX.


        -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual031.html 2.32-1/manual031.html --- 2.29-2/manual031.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual031.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Figures and Other Floating Bodies -Previous -Up -Next +Previous +Up +Next

        B.9  Figures and Other Floating Bodies

        Figures and tables are put where they appear in source, regardless of @@ -20,20 +21,20 @@ horizontal rules.

        Captions and cro However captions are not moved at end of figures: instead, they appear where the \caption commands occur in source code. The \suppressfloats command does nothing and the -figure related counters (such as topnumber) exist but are useless.

        Marginal notes go in the right margin by default.
        To get marginal notes in the left margin, use +figure related counters (such as topnumber) exist but are useless.

        Marginal notes go in the right margin by default.
        To get marginal notes in the left margin, use \reversemaginpar.

        -Marginal notes are handled in an HEVEA specific way. +Marginal notes are handled in an HEVEA specific way. By default, all notes go in the right margin. Issuing \reversemarginpar causes the notes to go in the left margin. Unsurprisingly, issuing \normalmarginpar reverts to default behaviour.

        The \marginpar command has an optional argument.

        -  \marginpar[left_text]{right_text} +  \marginpar[left_text]{right_text}

        -If optional argument left_text is present and that notes -go in the left margin, then left_text is the text of the -note. Otherwise, right_text is the text of the note. -As a conclusion, marginal notes in HEVEA always go to a fixed side +If optional argument left_text is present and that notes +go in the left margin, then left_text is the text of the +note. Otherwise, right_text is the text of the note. +As a conclusion, marginal notes in HEVEA always go to a fixed side of the page, which side being controlled by the commands \normalmarginpar (right side) and \reversemarginpar (left side). This departs form LATEX that selects a default side @@ -57,8 +58,8 @@ one can issue the following commands in \setenvclass{marginpar}{mynote}


        -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual032.html 2.32-1/manual032.html --- 2.29-2/manual032.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual032.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Lining It Up in Columns -Previous -Up -Next +Previous +Up +Next

        B.10  Lining It Up in Columns

          @@ -44,14 +45,14 @@ in the horizontal direction. They will get top-aligned in the vertical direction if there are other column specifications in the same array that specify vertical alignment constraints -(such as p{wd}, see below). -Otherwise, vertical alignment is unspecified.

          Entries in a column whose specification is p{wd} +(such as p{wd}, see below). +Otherwise, vertical alignment is unspecified.

          Entries in a column whose specification is p{wd} get left-aligned in the horizontal direction and top-aligned in the vertical direction and a paragraph break reduces to one line break inside them. This is the only occasion where -HEVEA makes a distinction between LR-mode and paragraph mode. -Also observe that the length argument wd to the p +HEVEA makes a distinction between LR-mode and paragraph mode. +Also observe that the length argument wd to the p specification is ignored.

          Some LATEX array features are not supported at all:

          • Optional arguments to \begin{array} and @@ -73,13 +74,13 @@ to \hline.

          Additionally, the tabular* environment is recognised and gets rendered as an html table with an advisory -width attribute.

          By default, HEVEA implements the array package +width attribute.

          By default, HEVEA implements the array package (see [LATEX-bis, Section 5.3] and section B.17.2 in this document), which significantly extends the array and tabular environments.


          -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual033.html 2.32-1/manual033.html --- 2.29-2/manual033.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual033.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Moving Information Around -Previous -Up -Next +Previous +Up +Next

          B.11  Moving Information Around

            @@ -23,22 +24,22 @@

            B.11.1  Files

            In some situations, -HEVEA uses some of the ancillary files generated by LATEX. +HEVEA uses some of the ancillary files generated by LATEX. More precisely, while processing file doc.tex, the following files may be read:

            .aux
            The file doc.aux contains cross-referencing information, such as figure or section numbers. -If this file is present, HEVEA reads it and put such numbers (or +If this file is present, HEVEA reads it and put such numbers (or labels) inside the links generated by the \ref command. If the .aux file is not present, or if the hevea command is given the --fix option, HEVEA will instead use .haux +-fix option, HEVEA will instead use .haux files. -
            .haux
            Such files are HEVEA equivalents of +
            .haux
            Such files are HEVEA equivalents of .aux files. Indeed, they are .aux files tailored to -HEVEA needs. -Two runs of HEVEA might be needed to get cross references right. +HEVEA needs. +Two runs of HEVEA might be needed to get cross references right.
            .htoc
            This file contains a formatted table of contents. It is produced while reading the .haux file. As consequence a table of contents is available only when the @@ -47,46 +48,48 @@ is generated by bibhv When present, it is read by the \bibliography command.
            .bbl
            The doc.bbl file is generated by BibTEX from doc.aux. When present, and if no doc.hbbl exists, -doc.bbl is read by the \bibliography command.
            .hidx and .hind
            -HEVEA computes its own indexes, using .hidx files for +doc.bbl is read by the \bibliography command.
            .hidx and .hind
            +HEVEA computes its own indexes, using .hidx files for storing index references and, using .hind files for storing formatted indexes. Index formatting significantly departs from the one of LATEX. -Again, several runs of HEVEA might be needed to get indexes right. -

            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 responsibility to rerun HEVEA. -However, the convenient -fix command-line option instructs -HEVEA to rerun itself, until it believes it has reached stable state.

            +Again, several runs of HEVEA might be needed to get indexes right. +

            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 responsibility to rerun HEVEA. +However, the convenient -fix command-line option instructs +HEVEA to rerun itself, until it believes it has reached stable state.

            B.11.2  Cross-References

            - -The LATEX commands \label and \ref are changed by HEVEA + +The LATEX commands \label and \ref are changed by HEVEA into html anchors and local links, using the “a” element. Additionally, numerical references to sectional units, figures, tables, etc. are shown, as they would appear in the .dvi file. Numerical references to pages (such as generated by \pageref) -are not shown; only an link is generated.

            The anchor used is the label argument to -\label{label}. -More precisely, \label{label} translates to -<a id="label"></a>; -while \ref{label} -translates to <a name="#label">nnn</a>, -where nnn is the appropriate numerical reference to a section. -As a consequence spaces are better avoided in label.

            Starting with HEVEA version 2.04, +are not shown; only an link is generated.

            The anchor used is the label argument to +\label{label}. +More precisely, \label{label} translates to +<a id="label"></a>; +while \ref{label} +translates to <a name="#label">nnn</a>, +where nnn is the appropriate numerical reference to a section. +As a consequence spaces are better avoided in label.

            Starting with HEVEA version 2.04, the html anchors used by \label and \ref cannot differ from the arguments to these commands anymore. Moreover, -when \label{label} occurs +when \label{label} occurs inside the argument of a sectioning command (i.e. in section title, as recommended by section B.4.1), -then HEVEA and HACHA will use label +then HEVEA and HACHA will use label as the “id” attribute of the corresponding section. For instance, the LATEX source of this very section is:

            \subsection{Cross-References\label{cross-reference}}
            -

            It translates to html similar to +

            +It translates to html similar to

            <h3 class="subsection" id="cross-reference">B.11.2&#XA0;&#XA0;Cross-References</h3>
            -

            Notice that no <a id="cross-reference"></a> appears above. +

            +Notice that no <a id="cross-reference"></a> appears above. Instead id="cross-reference" appears in the enclosing h3 header element.

            While processing a document doc.tex, cross-referencing information can be computed in two different, mutually @@ -100,21 +103,21 @@ then cross-referencing information is ex from that file. Of course, the doc.aux file has to be up-to-date, that is, it should be generated by running LATEX as many times as necessary. -(For HEVEA needs, one run is probably sufficient). +(For HEVEA needs, one run is probably sufficient).

          • If no doc.aux file exists or if hevea -has been given the -fix command-line option, then HEVEA +has been given the -fix command-line option, then HEVEA expect to find cross-referencing information in the file doc.haux.

          The second option is recommended.

          When using its own doc.haux file, -HEVEA will output a +HEVEA will output a new doc.haux file at the end of its processing. This new doc.haux file contains actualised cross referencing information. -Hence, in that case, HEVEA may need to run twice to get +Hence, in that case, HEVEA may need to run twice to get cross-references right. Note that, just like LATEX, -HEVEA issues a warning then the cross-referencing information it +HEVEA issues a warning then the cross-referencing information it generates differs from what it has read at start-up, and that it does not fail if doc.haux does not exist.

          Observe that if a non-correct doc.aux file is present, then cross-references will apparently be wrong. However the @@ -125,7 +128,7 @@ The \cite macro is supporte correctly handled. Citation labels are extracted from the .aux file if present, from the .haux file otherwise. Note that these labels are put there by LATEX in the first case, -and by HEVEA in the second case, when they process the +and by HEVEA in the second case, when they process the \bibitem command.

          Using BibTEX

          All BibTEX related commands exist and echo the appropriate @@ -146,50 +149,51 @@ BibTEX. Thus, another way to

          # latex doc.tex
           # bibtex doc
           # hevea doc.tex
          -

          In case both files exist, +

          +In case both files exist, notice that loading the .hbbl file has priority over loading the .bbl file.

          B.11.4  Splitting the Input

          - + The \input and \include commands exist and they perform exactly the same operation of searching (and then processing) a file, whose name is given as an argument. -See section C.1.1.1 on how HEVEA searches files. +See section C.1.1.1 on how HEVEA searches files. However, in the case of the \include command, the file is searched only when previously given as an argument to -the \includeonly command.

          +the \includeonly command.

          Note the following features:

          • TEX syntax for \input is not supported. That is, -one should write \input{filename}. -
          • If filename is excluded with the -e command-line +one should write \input{filename}. +
          • If filename is excluded with the -e command-line option (see section C.1.1.4), -then HEVEA does not attempt to load filename. +then HEVEA does not attempt to load filename. Instead, it -echoes \input{filename} and -\include{filename} commands into the -image file. This sounds complicated, but this is what you want! -
          • HEVEA does not fail when it cannot find +echoes \input{filename} and +\include{filename} commands into the +image file. This sounds complicated, but this is what you want! +
          • HEVEA does not fail when it cannot find a file, it just issues a warning.

          The \listfiles command is a null command.

          B.11.5  Index and Glossary

          - + Glossaries are not handled (who uses them ?).

          While processing a document doc.tex, index entries go into the file doc.hidx, while the formatted index gets written into the file doc.hind. -As with LATEX, two runs of HEVEA are normally needed to format +As with LATEX, two runs of HEVEA are normally needed to format the index. However, if all index producing commands (normally \index) occur before the index formatting command (normally \printindex), then only one run is needed.

          As in LATEX, index processing is not enabled by default and some package has to be loaded explicitly in the document preamble. -To that aim, HEVEA provides the standard package makeidx, +To that aim, HEVEA provides the standard package makeidx, and two extended packages that allow the production of several indexes -(see section B.17.7).

          Formatting of indexes in HEVEA departs from LATEX behaviour. +(see section B.17.7).

          Formatting of indexes in HEVEA departs from LATEX behaviour. More precisely the theindex environment does not exist. Instead, indexes are formatted using special indexenv environments. @@ -200,11 +204,11 @@ by setting the value of the

          B.11.6  Terminal Input and Output

          The \typeout command echos its argument on the -terminal, macro parameter #i are replaced by their values. +terminal, macro parameter #i are replaced by their values. The \typein command is not supported.


          -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual034.html 2.32-1/manual034.html --- 2.29-2/manual034.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual034.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Line and Page Breaking -Previous -Up -Next +Previous +Up +Next

          B.12  Line and Page Breaking

            @@ -31,8 +32,8 @@ silently ignored.

            They are no pages in the physical sense in html. Thus, all these commands are ignored.


            -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual035.html 2.32-1/manual035.html --- 2.29-2/manual035.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual035.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Lengths, Spaces and Boxes -Previous -Up -Next +Previous +Up +Next

            B.13  Lengths, Spaces and Boxes

              @@ -36,7 +37,7 @@ arguments. Such arguments get converted spaces or line breaks. Basically, the value of 1em or 1ex is one space or one line-break. For other length units, a simple conversion based upon a -10pt font is used.

              HEVEA cannot interpret more complicated length arguments +10pt font is used.

              HEVEA cannot interpret more complicated length arguments or perform negative spacing. In these situations, a warning is issued and no output is done.

              Spacing commands without arguments are recognised. The \enspace, \quad and \qquad commands output @@ -49,7 +50,7 @@ breaks.

              Stretchable lengths do not mode). Both LATEX boxing commands \mbox and \makebox commands exist. -However \makebox generates a specific warning, since HEVEA +However \makebox generates a specific warning, since HEVEA ignore the length and positioning instructions given as optional argument.

              Similarly, the boxing with frame \fbox and \framebox commands are recognised and @@ -61,19 +62,19 @@ command, which issues a warning and type inside a \mbox (and thus no frame is drawn). Users can alter the behaviour of \fbox in non-display mode by redefining \textfbox.

              Boxes can be saved for latter usage by storing them in bins. -New bins are defined by \newsavebox{cmd}.

              Then some text can be saved into cmd by -\sbox{cmd}{text} or -\begin{lrbox}{cmd} text \end{lrbox}. +New bins are defined by \newsavebox{cmd}.

              Then some text can be saved into cmd by +\sbox{cmd}{text} or +\begin{lrbox}{cmd} text \end{lrbox}. The text is translated to html, as if it was inside a \mbox and the resulting output is stored. It is retrieved (and outputted) by the command -\usebox{cmd}. +\usebox{cmd}. The \savebox command reduces to \sbox, ignoring its optional arguments.

              The \rule commands translate to a html horizontal rule (<HR>) regardless of its arguments.

              All other box-related commands do not exist.


              -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual036.html 2.32-1/manual036.html --- 2.29-2/manual036.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual036.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Pictures and Colours -Previous -Up -Next +Previous +Up +Next

              B.14  Pictures and Colours

                @@ -25,7 +26,7 @@ In the case of the pi it remains users responsibility to explicitly choose source chunks that will get rendered as images. In the case of the commands from the graphics package, -this choice is made by HEVEA.

                For instance consider the following picture: +this choice is made by HEVEA.

                For instance consider the following picture:

                \newcounter{cms}
                 \setlength{\unitlength}{1mm}
                 \begin{picture}(50,10)
                @@ -37,7 +38,8 @@ this choice is made by H%BEGIN IMAGE
                @@ -48,12 +50,13 @@ the image to appear in html output:
                 \end{picture}
                 %END IMAGE
                 %HEVEA\imageflush
                -

                This will result in normal processing by LATEX and image inclusion -by HEVEA:

                All commands from the graphics package are implemented using the +

                +This will result in normal processing by LATEX and image inclusion +by HEVEA:

                All commands from the graphics package are implemented using the automatic image inclusion feature. More precisely, the outermost invocations of the \includegraphics, \scalebox, -etc. commands are sent to the image image file and there will +etc. commands are sent to the image image file and there will be one image per outermost invocation of these commands.

                For instance, consider a document doc.tex that loads the graphics package and that includes some (scaled) images by: @@ -62,10 +65,12 @@ images by: \scalebox{.75}{\includegraphics{round.ps}} \includegraphics{round.ps} \end{center} -

                Then, issuing the following two commands: +

                +Then, issuing the following two commands:

                # hevea doc.tex
                 # imagen doc
                -

                yields html that basically consists in three image links, +

                +yields html that basically consists in three image links, the images being generated by imagen.

                @@ -78,12 +83,12 @@ Since the advent of .gif or .jpg) became frequent. -In that case, users are advised not to use HEVEA default +In that case, users are advised not to use HEVEA default implementation of the graphics package. Instead, they may use a simple variation of the technique described in Section 8.2.

                B.14.2  The color Package

                -

                HEVEA partly implements the color package. +

                HEVEA partly implements the color package. Implemented commands are \definecolor, \color, \colorbox, \textcolor, \colorbox and \fcolorbox. @@ -92,20 +97,20 @@ At startup, colours black, white, red, green, blue, cyan, yellow and magenta are -pre-defined.

                Colours are defined by -\definecolor{name}{model}{spec}, -where name is the color name, model is the color -model used, and spec is the color specification according to +pre-defined.

                Colours are defined by +\definecolor{name}{model}{spec}, +where name is the color name, model is the color +model used, and spec is the color specification according to the given model. Defined colours are used by the declaration -\color{name} and by the command -\textcolor{name}{text}, which +\color{name} and by the command +\textcolor{name}{text}, which change text color. Please note that, the \color declaration accepts color specifications directly when invoked as -\color[model]{spec}. -The \textcolor command has a similar feature.

                As regards color models, HEVEA implements the rgb, +\color[model]{spec}. +The \textcolor command has a similar feature.

                As regards color models, HEVEA implements the rgb, cmyk, hsv and hls color models. In those models, color specifications are floating point numbers less than one. @@ -190,7 +195,7 @@ Define a color name for them.

              • Specify the named color model as an optional argument to \color and \textcolor.
              • Use the names directly -(HEVEA implements the color package with +(HEVEA implements the color package with the usenames option given).
              • That is: @@ -205,7 +210,7 @@ Which yields: Text as a brick.

              • Text as another brick.
              • Text as another brick. -
              • HEVEA also implements the \colorbox and \fcolorbox commands. +

                HEVEA also implements the \colorbox and \fcolorbox commands.

                \colorbox{red}{Red background},
                 \fcolorbox{magenta}{red}{Red background, magenta border}.
                 
                @@ -222,16 +227,16 @@ hinders clarity and some of the colours document background color.

                B.14.2.1  The bgcolor environment

                - -With respect to the LATEX color package, HEVEA features + +With respect to the LATEX color package, HEVEA features an additional bgcolor environment, for changing the background color of some subparts of the document. The bgcolor environment is a displayed environment and it normally starts a new line. -Simple usage is \begin{bgcolor}{color}… +Simple usage is \begin{bgcolor}{color}\end{bgcolor}, where -color is a color defined with \definecolor. +color is a color defined with \definecolor. Hence the following source yield a paragraph with a red background:

                \begin{bgcolor}{red}
                 \color{yellow}Yellow letters on a red backgroud
                @@ -247,7 +252,8 @@ Advanced users may change the default, f
                 

                \begin{bgcolor}[style="padding:0"]{yellow}
                 \color{red}Red letters on a yellow backgroud
                 \end{bgcolor}
                -

                The resulting output will be red letters +

                +The resulting output will be red letters on a yellow background and no padding:

                @@ -256,8 +262,8 @@ on a yellow background and no padding:

                B.14.2.2  From High-Level Colours to Low-Level Colours

                - - + + High-level colours are color names defined with \definecolor. Low-level colours are html-style colours. @@ -275,8 +281,8 @@ Such low-level colours are appropriate f cascading style sheets [CSS-2]. See Section 9.3 for an example.


                -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual037.html 2.32-1/manual037.html --- 2.29-2/manual037.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual037.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,14 +2,15 @@ - - + + + Font Selection -Previous -Up -Next +Previous +Up +Next

                B.15  Font Selection

                  @@ -23,51 +24,52 @@ All LATEX 2&# are recognised. Aspect is rather like LATEX 2є output, but there is no guarantee.

                  As html does not provide the same variety of type styles as LATEX does. -However css provide a wide variety of font properties. -HEVEA uses generic properties, proper rendering will then depend +However css provide a wide variety of font properties. +HEVEA uses generic properties, proper rendering will then depend upon user agent. For instance, it belongs to the user agent to make a difference between -italics (rendered by the font style “italic”) -and slanted (rendered by the font style “oblique”).

                  Here is how HEVEA implements text-style declarations by default: +italics (rendered by the font style “italic”) +and slanted (rendered by the font style “oblique”).

                  Here is how HEVEA implements text-style declarations by default:

                  -
                  - - - - +
                  \itshape  font-style:italic
                  \slshape  font-style:oblique
                  \scshape  font-variant:small-caps
                  \upshape  no style
                  + + + + -
                  \itshape  font-style:italic
                  \slshape  font-style:oblique
                  \scshape  font-variant:small-caps
                  \upshape  no style
                  - - - +
                  \ttfamily  font-family:monospace
                  \sffamily  font-family:sans-serif
                  \rmfamily  no style
                  + + + -
                  \ttfamily  font-family:monospace
                  \sffamily  font-family:sans-serif
                  \rmfamily  no style
                  - - +
                  \bfseries  font-weight:bold
                  \mdseries  no style
                  + +
                  \bfseries  font-weight:bold
                  \mdseries  no style

                  Text-style commands also exists, they are defined as -\mbox{\decl}. For instance, +\mbox{\decl}. For instance, \texttt is defined as a command with one argument whose body is \mbox{\ttfamily#1}. Finally, the \emph command for emphasised text also exists, it yields text-level em elements.

                  As in LATEX, type styles consists in three components: shape, series and family. -HEVEA implements the three components by making one declaration to +HEVEA implements the three components by making one declaration to cancel the effect of other declarations of the same kind. For instance consider the following source, that exhibits shape changes:

                  {\itshape italic shape \slshape slanted shape
                   \scshape small caps shape \upshape upright shape}
                  -

                  Then, in the rendering below, “small caps shape” appears in small caps shape +

                  +Then, in the rendering below, “small caps shape” appears in small caps shape only and not in italics:

                  -italic shape slanted shape -small caps shape upright shape +italic shape slanted shape +small caps shape upright shape

                  Old style declarations are also recognised, they translate to text-level elements. However, no elements are cancelled when using old style declaration. Thus, the source @@ -84,13 +86,13 @@ All declarations, from \tiny

                  B.15.3  Special Symbols

                  -

                  The \symbol{num} outputs character number num +

                  The \symbol{num} outputs character number num (decimal) from the Unicode character set. -This departs from LATEX, which output symbol number num in +This departs from LATEX, which output symbol number num in the current font.


                  -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual038.html 2.32-1/manual038.html --- 2.29-2/manual038.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual038.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,393 +0,0 @@ - - - - - - -Extra Features - - -Previous -Up -Next -
                  -

                  B.16  Extra Features

                  - -

                  -This section describes HEVEA functionalities that extends on plain LATEX, -as defined in [LATEX]. -Most of the features described here are performed by default.

                  -

                  B.16.1  TEX macros

                  -

                  -Normally, HEVEA does not recognise constructs that are specific to -TEX. -However, some of the internal commands of HEVEA are homonymous to -TEX macros, in order to enhance compatibility. -Note that full compatibility with TEX is not guaranteed.

                  -

                  B.16.1.1  À la TEX macros definitions

                  -

                  - -The \def construct for defining commands is supported. -It is important to -notice that HEVEA semantics for \def -follows TEX semantics. -That is, defining a command that already -exists with \def succeeds.

                  Delimiting characters in command definition are somehow supported. -Consider the following example from the TEX Book: -

                  \def\Look{\textsc{Look}}
                  -\def\x{\textsc{x}}
                  -\def\cs AB#1#2C$#3\$ {#3{ab#1}#1 c\x #2}
                  -\cs AB {\Look}{}C${And \$}{look}\$ 5.
                  -

                  It yields: - - - -And $lookabLookLook cx5.

                  Please note that delimiting characters are supported as far as I -could, problems are likely with delimiting characters which include -spaces or command names, in particular the command name \{. -One can include \{ in a command argument by using the grouping -characters {}: -

                  \def\frenchquote(#1){\guillemotleft~\emph{#1}~\guillemotright{} (in French)}
                  -he said \frenchquote(Alors cette accolade ouvrante {``\{''}~?).
                  -

                  Yields: -he said « Alors cette accolade ouvrante “{” ? » (in French). -

                  Another issue regards comments: “%” in arguments may give undefined -behaviours, while comments are better avoided while defining -macros. As an example, the following code will not -be handled properly -by HEVEA: -

                  \def\x%
                  -   #1{y}
                  -

                  Such TEX source should be rewritten as \def\x#1{y}.

                  Another source of incompatibility with TEX is that substitution of -macros parameters is not performed at the same moment by HEVEA and -TEX. -However, things should go smoothly at the first level of macro -expansion, that is when the delimiters -appear in source code at the same level as the macro that is to -parse them. -For instance, the following source will give different results in -LATEX and in HEVEA: -

                  \def\cs#1A{``#1''}
                  -\def\othercs#1{\cs#1A}
                  -\othercs{coucouA}
                  -

                  LATEX output is “coucou”A, while HEVEA output is “coucouA”. -Here is HEVEA output: - - -“coucouA” -Please note that in most situations this discrepancy will make -HEVEA crash.

                  -

                  B.16.1.2  The \let construct

                  -

                  -HEVEA also processes a -limited version of \let: -

                  -\let macro-name1 = macro-name2 -

                  -The effect is to bind macro-name1 to whatever macro-name2 -is bound to at the time \let is processed. This construct may -prove very useful in situations where -one wishes to slightly modify basic commands. -See sections 10.3 and B.2 for examples of using -\let in such a situation.

                  -

                  B.16.1.3  The \global construct

                  -

                  - -It is possible to escape scope and to make global definitions -and bindings by using the TEX construct \global. -The \global construct is significant before -\def and \let constructs.

                  -Also note that \gdef is equivalent to \global\def.

                  -

                  B.16.1.4  TEX Conditional Macros

                  -

                  - -The \newif\ifname, where name is made of letters -only, creates three macros: -\ifname, \nametrue and -\namefalse. -The latter two set the name condition to true and -false, respectively. -The \ifname command tests the condition name: -

                  -\ifname
                  -text
                  1
                  -\else
                  -text2
                  -\fi
                  -

                  -Text text1 is processed when name is -true, otherwise text2 is processed. -If text2 is empty, then the \else keyword can be -omitted.

                  Note that HEVEA also implements LATEX ifthen package -and that TEX simple conditional macros are fully compatible with -LATEX boolean registers. More precisely, -we have the following correspondences: -

                  - - - - - - -
                  TEXLATEX
                  \newif\ifname  \newboolean{name}
                  \nametrue  \setboolean{name}{true}
                  \namefalse  \setboolean{name}{false}
                  \ifname text1\else -text2\fi  \ifthenelse{\boolean{name}}{text1}{text2}
                  -
                  -

                  B.16.1.5  Other TEX Macros

                  -

                  -HEVEA implements the macros \unskip and \endinput. -It also supports the \csname\endcsname -construct.

                  -

                  B.16.2  Command Definition inside Command Definition

                  -

                  - -If one strictly follows the LATEX manual, only commands with no -arguments can be defined inside other commands. -Parameters (i.e. #n) occurring inside command bodies -refer to the outer definition, even when they appear in nested -command definitions. -That is, the following source: -

                  \newcommand{\outercom}[1]{\newcommand{\insidecom}{#1}\insidecom}
                  -\outercom{outer}
                  -

                  yields this output: -

                  - -outer -

                  Nevertheless, nested commands with arguments are allowed. -Standard parameters #n still refer to the outer -definition, while nested parameters ##n refer to the -inner definition. -That is, the source: -

                  \newcommand{\outercom}[1]{\newcommand{\insidecom}[1]{##1}\insidecom{inner}}
                  -\outercom{outer}
                  -

                  yields this output: -

                  - -inner -
                  -

                  B.16.3  Date and time

                  -

                  - -Date and time support is not enabled by default, for portability and -simplicity reasons.

                  However, HEVEA source distribution includes a simple (sh) -shell script -xxdate.exe that activates date and time support. -The hevea command, should be invoked as: -

                  # hevea -exec xxdate.exe ...
                  -

                  This will execute the script xxdate.exe, whose output is then -read by HEVEA. -As a consequence, standard LATEX counters year, -month, day and -time are defined and -LATEX command \today works properly. - -Additionally the following counters and commands are defined: -

                  - - - - - - - - - - - -
                  Counter weekday  day of week, 0…6 -(e.g. 2)
                  Counter Hour  hour, 00…11 -(e.g. 02)
                  Counter hour  hour, 00…23 (e.g. 14)
                  Counter minute  minute, 00…59 -(e.g. 07)
                  Counter second  second, 00…619(e.g. 22)
                  Command \ampm  AM or PM -(e.g. PM)
                  Command \timezone  Time zone -(e.g. CEST)
                  Command \heveadate  Output of the date Unix -command, (e.g. Tue Jul 26 14:07:22 CEST 2016)
                  -

                  Note that I chose to add an extra option (and not an extra -\@exec primitive) for security reasons. You certainly do -not want to enable HEVEA to execute silently an arbitrary program -without being conscious of that fact. -Moreover, the hevea program does not execute -xxdate.exe by default since it is difficult to write such -a script in a portable manner.

                  Windows users should enjoy the same features with the version of -xxdate.exe included in the Win32 distribution.

                  -

                  B.16.4  Fancy sectioning commands

                  -

                  -Loading the fancysection.hva file will radically change the -style of sectional units headers: they appear over a green -background, the background color saturation decreases as the sectioning -commands themselves do (this is the style of this manual). -Additionally, the document background color is white.

                  Note : Fancy section has been re-implemented using style-sheets. While it respects the old behaviour, users are encouraged to try out style-sheets for more flexibility. See Section 9 for details.

                  The fancysection.hva file is intended to be loaded after -the document base style. -Hence the easiest way to load the fancysection.hva file -is by issuing \usepackage{fancysection} in the document preamble. -To allow processing by LATEX, one may for instance create -an empty fancysection.sty file.

                  As an alternative, to use fancy section style in -doc.tex whose base style is article -you should issue the command: -

                    # hevea article.hva fancysection.hva doc.tex
                  -

                  You can also make a doc.hva file that contains the two lines: -

                    \input{article.hva}
                  -  \input{fancysection.hva}
                  -

                  And then launch hevea as: -

                    # hevea doc.hva doc.tex
                  -

                  Sectioning command background colours can be changed by -redefining the corresponding colours (part, chapter, -section,…). -For instance, you get various mixes of red and orange by: -

                  \input{article.hva}
                  -\input{fancysection.hva}
                  -\definecolor{part}{named}{BrickRed}
                  -\definecolor{section}{named}{RedOrange}
                  -\definecolor{subsection}{named}{BurntOrange}
                  -

                  (See section B.14.2 for details on the named -color model that is used above.)

                  -Another choice is issuing the command -\colorsections{hue}, where -hue is a hue value to be interpreted in the HSV model. -For instance, -

                  \input{article.hva}
                  -\input{fancysection.hva}
                  -\colorsections{20}
                  -

                  will yield sectional headers on a red-orange background.

                  -HEVEA distribution features another style for fancy sectioning commands: -the undersection package provides underlined sectional headers.

                  -

                  B.16.5  Targeting Windows

                  -

                  - -At the time of this release, Windows support for symbols -through Unicode is not as complete as the one of Linux, which I am -using for testing HEVEA.

                  One of the most salient shortcomings is the inability to display sub-elements -for big brackets, braces and parenthesis, which HEVEA normally -outputs when it processes \left[, \right\} etc.

                  We (hopefully) expect Windows fonts to display more of -Unicode easily in a foreseeable future. As a temporary fix, we provide -a style file winfonts.hva. -Authors concerned by producing pages that do not look too ugly -when viewed through Windows browsers are thus advised to -load the file winfonts.hva. -For instance they can invoke HEVEA as: -

                  # hevea winfonts.hva ...
                  -

                  At the moment, loading winfonts.hva -only changes the rendering -of LATEX big delimiters, avoiding the troublesome Unicode entities. -As an example, here are some examples of rendering. -

                  -
                  - - - - - - - - -
                  delimitersdefaultwinfonts
                  \left\{  …  \right\}     -

                  -⎪
                  -⎨
                  -⎪
                  -⎩
                  - - -
                  1
                  2
                  3

                  -⎪
                  -⎬
                  -⎪
                  -⎭
                       -
                   / 
                  - | 
                  -< 
                  - | 
                  - \ 
                  - - -
                  1
                  2
                  3
                   \
                  - |
                  - >
                  - |
                  - /
                  \left[  …  \right]     -

                  -⎢
                  -⎢
                  -⎣
                  - - -
                  1
                  2
                  3

                  -⎥
                  -⎥
                  -⎦
                       -
                  - - -
                  - - -
                  1
                  2
                  3
                  - - -
                  \left(  …  \right)     -

                  -⎜
                  -⎜
                  -⎝
                  - - -
                  1
                  2
                  3

                  -⎟
                  -⎟
                  -⎠
                       -

                  -| 
                  -| 
                  -\ 
                  - - -
                  1
                  2
                  3
                   \
                  - |
                  - |
                  - /
                  \left\vert  …  \right\vert     -

                  -⎪
                  -⎪
                  -⎪
                  - - -
                  1
                  2
                  3

                  -⎪
                  -⎪
                  -⎪
                       -
                  - - -
                  1
                  2
                  3
                  \left\Vert  …  \right\Vert     -
                  ⎪⎪
                  -⎪⎪
                  -⎪⎪
                  -⎪⎪
                  - - -
                  1
                  2
                  3
                  ⎪⎪
                  -⎪⎪
                  -⎪⎪
                  -⎪⎪
                       -
                  - - -
                  1
                  2
                  3

                  More generally, it remains authors responsibility to be careful not to -issue too refined Unicode entities. To that aim, authors that target -a wide audience should first limit themselves to the most common -symbols (e.g. use \leq [≤] -in place of \preceq [≼]) and, above all, -they should control the rendering of their documents using several browsers.

                  -
                  -9
                  According to -date man page.
                  -
                  -Previous -Up -Next - - diff -pruN 2.29-2/manual040.html 2.32-1/manual040.html --- 2.29-2/manual040.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual040.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,13 +2,14 @@ - - + + + Practical information -Previous -Up +Previous +Up
                  @@ -16,24 +17,24 @@ Practical information
                  -Previous -Up +Previous +Up diff -pruN 2.29-2/manual041.html 2.32-1/manual041.html --- 2.29-2/manual041.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual041.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,43 +2,44 @@ - - + + +Usage -Up -Next +Up +Next
                  -

                  C.1  Usage

                  +

                  C.1  Usage

                  -

                  C.1.1  HEVEA usage

                  +

                  C.1.1  HEVEA usage

                  - + The hevea command has two operating modes, normal mode and filter mode. Operating mode is determined by the nature of the last command-line argument.

                  -

                  C.1.1.1  Command line arguments

                  +

                  C.1.1.1  Command line arguments

                  The hevea command interprets its arguments as names of files and attempts to process them. -Given an argument filename there are two cases: +Given an argument filename there are two cases:

                  • -If filename is base.tex or -base.hva, -then a single attempt to open filename is made. +If filename is base.tex or +base.hva, +then a single attempt to open filename is made.
                  • In other cases, -a first attempt to open filename.tex is made. -In case of failure, a second attempt to open filename is made. +a first attempt to open filename.tex is made. +In case of failure, a second attempt to open filename is made.

                  In all attempts, implicit filenames are @@ -52,7 +53,7 @@ option), info from hevea library directory, depending upon hevea output format,

                  - + The hevea library directory is fixed at compile-time (this is where hevea library files are installed) and typically is /usr/local/lib/hevea. @@ -61,7 +62,7 @@ by setting the HEVEAD In all cases, the value of hevea library directory can be accessed from the processed document as the value of the command \@hevealibdir.

                  -

                  C.1.1.2  Normal mode

                  +

                  C.1.1.2  Normal mode

                  If the last argument has an extension that is different from .hva or has no extension, @@ -70,27 +71,28 @@ The main input file is the document to b contains the \documentclass command. In that case two basenames are defined:

                  • -The input basename, basein, +The input basename, basein, is defined as the main input file name, with extension removed when present. -
                  • The output basename, baseout, is basein +
                  • The output basename, baseout, is basein with leading directories omitted. However the output basename can be changed, using the -o option (see below).

                  -HEVEA will attempt to load the main input file. +HEVEA will attempt to load the main input file. Ancillary files from a previous run of LATEX (i.e. .aux, .bll and .idx files) -will be searched as basein.ext. -The output base name governs all files produced by HEVEA. -That is, html output of HEVEA normally goes to the file -baseout.html, +will be searched as basein.ext. +The output base name governs all files produced by HEVEA. +That is, html output of HEVEA normally goes to the file +baseout.html, while cross-referencing information goes into -baseout.haux. Furthemore, -if an image file is generated (cf. section 6), its -name will be baseout.image.tex.

                  Thus, in the simple case where the hevea command is invoked +baseout.haux. Furthemore, +if an image file is generated (cf. section 6), its +name will be baseout.image.tex.

                  Thus, in the simple case where the hevea command is invoked as:

                  # hevea file.tex
                  -

                  The input basename is file and the output basename also is +

                  +The input basename is file and the output basename also is file. The main input file is searched once along hevea search path as file.tex. html output goes into file @@ -98,28 +100,30 @@ html output goes into file In the more complicated case where the hevea command is invoked as:

                  # hevea ./dir/file
                  -

                  The input base name is ./dir/file and the output basename is +

                  +The input base name is ./dir/file and the output basename is file. The main input file is loaded by first attempting to open file ./dir/file.tex, then file ./dir/file. html output goes into file file.html, in the current directory.

                  Finally, the output base name can be a full path, -but you have to use option -o. +but you have to use option -o. For instance, we consider:

                  # hevea -o out/out.html file.tex
                  -

                  Then, html output goes into out/out.html — notice +

                  +Then, html output goes into out/out.html — notice that directory out must exist. Furthermore, hevea output base name is out/out. This means that hevea generates files out/out.haux, out/out.image.tex etc.

                  The article.hva, seminar.hva, book.hva and report.hva -base style files from HEVEA library are special. +base style files from HEVEA library are special. Only the first base style file is loaded and the \documentclass command has no effect when a base style file is already loaded. This feature allows to override the document base style. Thus, a document file.tex can be translated using the -article base style as follows: +article base style as follows:

                  # hevea article.hva file.tex
                   
                  -

                  C.1.1.3  Filter mode

                  +

                  C.1.1.3  Filter mode

                  If there is no command-line argument, or if the last command-line argument has the extension .hva, then @@ -129,9 +133,9 @@ output normally goes to the standard out Output starts immediately, whithout waiting for \begin{document}. In other words hevea acts as a filter.

                  Please note that this operating mode is just for translating isolated LATEX constructs. -The normal way to translate a full document file.tex being -“hevea file.tex” and not -“hevea < file.tex > file.html”.

                  +The normal way to translate a full document file.tex being +“heveafile.tex” and not +“hevea < file.tex > file.html”.

                  C.1.1.4  Options

                  The hevea command recognises the following options: @@ -143,20 +147,20 @@ verbosity. However, this is mostly for d elements issued. Specifically, all div and p are bordered, while the structure of displayed material is also shown.

                  -s
                  Suppress warnings. -
                  -I dirname
                  Add dirname to the search path. -
                  -o name
                  Make name the output basename. -However, if name is base.html, then -the output basename is base. -Besides, -o - makes HEVEA output to standard output. -
                  -e filename
                  Prevent hevea from loading any file -whose name is filename. Note that this option applies to all +
                  -I dirname
                  Add dirname to the search path. +
                  -o name
                  Make name the output basename. +However, if name is base.html, then +the output basename is base. +Besides, -o - makes HEVEA output to standard output. +
                  -e filename
                  Prevent hevea from loading any file +whose name is filename. Note that this option applies to all files, including hevea.hva and base style files. -
                  -fix
                  Iterate HEVEA until a fixpoint is found. +
                  -fix
                  Iterate HEVEA until a fixpoint is found. Additionally, images get generated automatically.
                  -O
                  Optimise html by calling esponja (see section C.1.3). -
                  -exec prog
                  Execute file prog and read the -output. The file prog must have execution permission and is +
                  -exec prog
                  Execute file prog and read the +output. The file prog must have execution permission and is searched by following the searching rules of hevea.
                  -francais
                  Deprecated by babel support. This option issues a warning message. @@ -182,24 +186,24 @@ definition. In particular, this option d extension is .txt.
                  -info
                  Output info format. Output file extension is .info. -
                  -w width
                  Set the line width for text or info +
                  -w width
                  Set the line width for text or info output, defaults to 72.

                  Part A of this document is -a tutorial introduction to HEVEA, -while Part B is the reference manual of HEVEA.

                  -

                  C.1.2  HACHA usage

                  +a tutorial introduction to HEVEA, +while Part B is the reference manual of HEVEA.

                  +

                  C.1.2  HACHA usage

                  - + The hacha command interprets its argument -base.html as the name of +base.html as the name of a html source file to cut into pieces.

                  It also recognises the following options:

                  -v
                  Be a little verbose. -
                  -o filename
                  Make HACHA output go into file -filename (defaults to index.html). -Additionally, if filename is a composite filename, -dir/base, then all files outputted by HACHA will -reside in directory dir. +
                  -o filename
                  Make HACHA output go into file +filename (defaults to index.html). +Additionally, if filename is a composite filename, +dir/base, then all files outputted by HACHA will +reside in directory dir.
                  -tocbis
                  Another style for table of contents: sub-tables are replicated at the beginning of @@ -208,28 +212,30 @@ every file. Like -tocbis above, except that sub-tables do not appear in the main table of contents (see Section 7.2.3). +
                  -no-svg-arrows
                  Use GIF arrows for the Previous/Up/Next links, +in place of the default SVG arrows.
                  -nolinks
                  Do not insert Previous/Up/Next links in generated pages. -
                  -hrf
                  Output a base.hrf file, showing +
                  -hrf
                  Output a base.hrf file, showing in which output files are the anchors from the input file gone. The format of this summary is one -“anchor\tfile” line per anchor. +“anchor\tfile” line per anchor. This information may be needed by other tools.
                  -help
                  Print version number and a short help message.

                  Section 7 of the user manual explains how to -alter HACHA default behaviour.

                  -

                  C.1.3  esponja usage

                  +alter HACHA default behaviour.

                  +

                  C.1.3  esponja usage

                  - + The program esponja -is part of HEVEA and is designed to optimise hevea +is part of HEVEA and is designed to optimise hevea output. However, esponja can also be used alone to optimise text-level elements in html files. Since esponja fails to operate when it detects incorrect html, it can be used as a partial html validator.

                  -

                  C.1.3.1  Operating mode

                  +

                  C.1.3.1  Operating mode

                  The program esponja interprets its arguments as names of files and attempt to process them. @@ -237,7 +243,8 @@ It is important to notice that -n.

                  Invoking esponja as

                  # esponja foo.html
                  -

                  will alter foo.html. +

                  +will alter foo.html. Of course, if esponja does not succeed in making foo.html any smaller or if esponja fails, the original foo.html is left unchanged. @@ -245,14 +252,14 @@ Note that this feature allows to optimis by:

                  # esponja *.html
                   
                  -

                  C.1.3.2  Options

                  +

                  C.1.3.2  Options

                  The command esponja recognises the following options:

                  -v
                  Be verbose, can be repeated to increase verbosity.
                  -n
                  Do not alter input files. Instead, esponja -output for file input.html goes to file -input.esp. Option -n implies option -v. +output for file input.html goes to file +input.esp. Option -n implies option -v.
                  -u
                  Output esponja intermediate version of html. In most occasions, this amounts to pessimize instead of to optimise. It may yield challenging input for other html optimisers. @@ -264,30 +271,30 @@ is a simple wrapper, which basically forces bibtex into accepting a .haux file as input and producing a .hbbl file as output. Usage is -bibhva bibtex-options basename.

                  -

                  C.1.5  imagen usage

                  +bibhva bibtex-options basename.

                  +

                  C.1.5  imagen usage

                  - + The command imagen is a simple shell script that translates a LATEX document into many .png images. The imagen script relies on much software to be installed on -your computer, see Section C.4.1.

                  It is a companion program of HEVEA, which must have been previously run as: +your computer, see Section C.4.1.

                  It is a companion program of HEVEA, which must have been previously run as:

                  -# heveabase.tex
                  +# heveabase.tex
                  or
                  -# hevea-o base.html
                  +# hevea-o base.html

                  -In both cases, base is HEVEA output basename. +In both cases, base is HEVEA output basename. When told to do so (see section 6) -HEVEA echoes part of its input into -the base.image.tex file.

                  The imagen script should then be run as: +HEVEA echoes part of its input into +the base.image.tex file.

                  The imagen script should then be run as:

                  -# imagen base +# imagen base

                  The imagen script produces -one basennn.png image file per page in the -base.image.tex file.

                  This is done by first calling latex on -base.image.tex, yielding one dvi +one basennn.png image file per page in the +base.image.tex file.

                  This is done by first calling latex on +base.image.tex, yielding one dvi file. Then, dvips translates this file into one single Postscript file that contains all @@ -297,62 +304,62 @@ Postscript files are interpreted by ghos outputs ppm images, which are then fed into a series of transformations that change them into .png files.

                  The imagen script recognises the following options:

                  --mag nnnn
                  Change the enlarging ratio that is applied +-mag nnnn
                  Change the enlarging ratio that is applied while translating DVI into Postscript. -More precisely, dvips is run with -xnnnn +More precisely, dvips is run with -xnnnn option. Default value for this ration is 1414, this means that, by default, imagen magnifies LATEX output by a factor of 1.414. -
                  -extra command
                  Insert command as an additional +
                  -extra command
                  Insert command as an additional stage in imagen ppm to png production chain. -command is an Unix filter that expects a ppm image +command is an Unix filter that expects a ppm image in its standard input and outputs a ppm image on its standard output. -A sensible choice for command is one command from the +A sensible choice for command is one command from the netpbm package, several such commands piped together, or -various invocations of the convert command from ImageMagick. -
                  -quant number
                  Add an extra color quantisation step +various invocations of the convert command from ImageMagick. +
                  -quant number
                  Add an extra color quantisation step in imagen ppm image production chain, where -number is the maximal number of colors in the produced +number is the maximal number of colors in the produced images. This option may be needed as a response to a failure in the image production chain. It can also help in limiting image files size. -
                  -png
                  Output PNG images. This is the default. -
                  -gif
                  +
                  -png
                  Output PNG images. This is the default. +
                  -gif
                  Output GIF images in place of PNG images. GIF image files have a .gif extension. Note that hevea should have been previously run as -hevea gif.hva base.tex (so that the proper +hevea gif.hva base.tex (so that the proper .gif filename extension is given to image file references from within the html document). -
                  -svg
                  +
                  -svg
                  Output SVG images in addition to PNG (or GIF) images. Note that hevea should have been previously run as -hevea svg.hva base.tex. +hevea svg.hva base.tex.
                  -pnm
                  Output PPM images. This option mostly serves debugging purposes. Experimented users can also take advantage of it for performing additional image transformation or adopting exotic image formats. -
                  -t arg
                  Pass option “-t arg” to +
                  -t arg
                  Pass option “-t arg” to dvips. For instance, using “-t a3” may help when images are truncated on the right. -
                  -pdf
                  +
                  -pdf
                  Have imagen call pdflatex instead of latex.

                  The first three options enable users to correct some misbehaviours. -For instance, when the document base style is seminar, image +For instance, when the document base style is seminar, image orientation may be wrong and the images are too small. This can be cured by invoking imagen as:

                  -# imagen -extra "pnmflip -ccw" -mag 2000 base +# imagen -extra "pnmflip -ccw" -mag 2000 base

                  Notice that hevea calls imagen by itself, -when given the command-line option -fix. +when given the command-line option -fix. In that situation, the command-line options of imagen can be controlled from source file by using the command \@addimagenopt (see Section 10.7).

                  -

                  C.1.6  Invoking hevea, hacha and imagen

                  +

                  C.1.6  Invoking hevea, hacha and imagen

                  In this section, we give a few sequence of (Unix) commands to build the html version of a document in various @@ -367,7 +374,8 @@ Then, hacha cu table of links file index.html.

                  # hevea -fix doc.hva doc.tex
                   # hacha doc.html
                  -

                  Thanks to the command-line option -fix, hevea runs the +

                  +Thanks to the command-line option -fix, hevea runs the appropriate number of times automatically. In case hevea produces a non-empty doc.image.tex file, then hevea calls imagen by itself @@ -378,20 +386,23 @@ run imagen by It is time not to use the option -fix.

                  # rm -f doc.image.tex
                   # hevea doc.hva doc.tex
                  -

                  Now, hevea normally has shown the imagen +

                  +Now, hevea normally has shown the imagen command line that it would have run, if it had been given the option -fix. For instance, if doc.hva includes \input{gif.hva}, then hevea shows the following warning:

                  HeVeA Warning: images may have changed, run 'imagen -gif doc'
                  -

                  Now, one can run imagen as it should be.

                  It is sometime convenient not to clobber the source directory with +

                  +Now, one can run imagen as it should be.

                  It is sometime convenient not to clobber the source directory with numerous target files. It suffices to instruct hevea and hacha to output files in a specific directory, say doc.

                  # hevea -fix -o doc/doc.html doc.hva doc.tex
                   # hacha -o doc/index.html doc/doc.html
                  -

                  Notice that hevea does not create the target directory +

                  +Notice that hevea does not create the target directory doc: it must exist before hevea runs. Again, in case hevea calls imagen, image generation should proceed smoothly and the final files @@ -409,7 +420,8 @@ style sheet generated by doc may be a good idea, since then one easily install all relevant files by copying doc to a public destination.

                  # cp -r doc $(HOME)/public_html
                  -

                  However, one then also installs the auxiliary files of hevea, +

                  +However, one then also installs the auxiliary files of hevea, and hevea output file doc.html, which is no longer useful once hacha has run. Hence, those should be erased beforehand. @@ -433,12 +445,13 @@ $(DOC).html: $(DOC).hva $(DOC).tex clean: rm -f $(DOC).html $(DOC).h{toc,aux,ind} rm -f index.html $(DOC)[0-9][0-9][0-9].html $(DOC).css -

                  Note that the clean rule removes all the doc001.html, +

                  +Note that the clean rule removes all the doc001.html, doc002.html, etc. and doc.css files produced by hacha. Also note that make clean also removes the -doc.haux, doc.hind and doc.htoc files, which are HEVEA -auxiliary files.

                  When the image file feature is used, one can use the +doc.haux, doc.hind and doc.htoc files, which are HEVEA +auxiliary files.

                  When the image file feature is used, one can use the following, extended, Makefile:

                  HEVEA=hevea
                   HEVEAOPTS=-fix
                  @@ -455,7 +468,8 @@ clean:
                           rm -f $(DOC).html $(DOC).h{toc,aux,ind}
                           rm -f index.html $(DOC)[0-9][0-9][0-9].html $(DOC).css
                           rm -f $(DOC).image.* $(DOC)[0-9][0-9][0-9].png *_motif.gif
                  -

                  Observe that the clean rule now also gets rid of +

                  +Observe that the clean rule now also gets rid of doc.image.tex and of the various files produced by imagen.

                  With the following Makefile, hevea, imagen, hacha all output their files into @@ -479,7 +493,8 @@ partialclean: clean: rm -f $(DIR)/* -

                  The above Makefile directly produces html and PNG files +

                  +The above Makefile directly produces html and PNG files into the final directory $(HOME)/public_html/$(DOC). The new partialclean entry erases files that are not useful anymore, once imagen and hacha have @@ -501,7 +516,7 @@ install: partialclean ...


                  -Up -Next +Up +Next diff -pruN 2.29-2/manual043.html 2.32-1/manual043.html --- 2.29-2/manual043.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual043.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,30 +2,31 @@ - - + + + Availability -Previous -Up -Next +Previous +Up +Next
                  -

                  C.3  Availability

                  +

                  C.3  Availability

                  -

                  C.3.1  Internet stuff

                  -

                  HEVEA home page is http://hevea.inria.fr/. It contains links to the +

                  C.3.1  Internet stuff

                  +

                  HEVEA home page is http://hevea.inria.fr/. It contains links to the on-line manual and to the distribution.

                  The author can be contacted at Luc.Maranget@inria.fr.

                  -

                  C.3.2  Law

                  +

                  C.3.2  Law

                  -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 +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 runtime system, which is distributed under the Gnu Library General Public License (LGPL). See the LICENSE file for details.

                  The manual itself is distributed under the terms of @@ -33,8 +34,8 @@ the Free Document Dissemination Licence.


                  -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual044.html 2.32-1/manual044.html --- 2.29-2/manual044.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual044.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,21 +2,22 @@ - - + + + Installation -Previous -Up -Next +Previous +Up +Next
                  -

                  C.4  Installation

                  +

                  C.4  Installation

                  -

                  C.4.1  Requirements

                  +

                  C.4.1  Requirements

                  The programs hevea and hacha are written in Objective Caml. Thus, you @@ -24,36 +25,37 @@ really need Objective Caml (the more rec compile them. However, some binary distributions exist, which are managed by people other than me (thanks to them). -Links to some of these distributions appear in HEVEA home page.

                  HEVEA users may instruct the program not to process a +Links to some of these distributions appear in HEVEA home page.

                  HEVEA users may instruct the program not to process a part of the input (see section 6). Instead, this part is -processed into a bitmap file and HEVEA outputs a link to the image file. +processed into a bitmap file and HEVEA outputs a link to the image file. LATEX source is changed into .png images by the imagen script, which basically calls, LATEX, dvips, ghostscript and the convert command from the image processing package -ImageMagick.

                  To benefit from the full functionality of HEVEA, you need all -this software. However, HEVEA runs without them, but then you will +ImageMagick.

                  To benefit from the full functionality of HEVEA, you need all +this software. However, HEVEA runs without them, but then you will have to produce images by yourself.

                  -

                  C.4.2  Principles

                  +

                  C.4.2  Principles

                  The details are given in the README file from the distribution. -Basically, HEVEA should be given a library +Basically, HEVEA should be given a library directory. The installation procedure stores the hevea.hva and base style files in this directory. There are two compilation modes, the opt mode selects the native code OCaml compiler ocamlopt, while the byte mode selects the bytecode OCaml compiler ocamlc. -In HEVEA case, ocamlopt produces code that is up to three +In HEVEA case, ocamlopt produces code that is up to three times as fast as the one produced by ocamlc. Thus, default compilation mode is opt, however it may be the -case on some systems that only ocamlc is available.

                  Note that, when installing HEVEA from the source distribution, the -hevea.sty file is simply copied to HEVEA -library directory. It remains users responsibility to -make it accessible to LATEX.

                  +case on some systems that only ocamlc is available.

                  Note that, when installing HEVEA from the source distribution, the +hevea.sty (and mathjax.sty) style files are +simply copied to HEVEA library directory. +It remains users (and package maintainers) responsibility to make those +files accessible to LATEX.


                  -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual045.html 2.32-1/manual045.html --- 2.29-2/manual045.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual045.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,30 +2,31 @@ - - + + + Other LATEX to html translators -Previous -Up -Next +Previous +Up +Next
                  -

                  C.5  Other LATEX to html translators

                  +

                  C.5  Other LATEX to html translators

                  This short section gives pointers to a few other translators. I performed not extensive testing and make no thorough comparison.

                  -LaTeX2html
                  +LaTeX2html
                  LaTeX2html is a full system. It is written in perl and calls LATEX when in trouble. As a consequence, LaTeX2html is powerful but it may fail on large documents, for speed and memory reasons. More information on LaTeX2html can be found at
                  TTH
                  The principle behind TTH is the same as the one of -HEVEA: write a fast translator as a lexer, use symbol fonts and +http://www.latex2html.org/ +
                  TTH
                  The principle behind TTH is the same as the one of +HEVEA: write a fast translator as a lexer, use symbol fonts and tables. However, there are differences, TTH accepts both TEX and LATEX source, TTH is written in C and the full source is not available @@ -34,7 +35,7 @@ Additionally, TTH insist on not using an generated information and will show proper cross-reference labels, even when no .aux file is present. TTH output is a single document, -whereas HACHA can cut the output of HEVEA into several files. +whereas HACHA can cut the output of HEVEA into several files. (however there exists a commercial version of TTH that provides this extra functionality). TTH can be found at @@ -46,20 +47,20 @@ mainly to produce hypertext. It interacts with TeX-based applications through style files and postprocessors, leaving the processing of the source files to the native TeX compiler. As a result, TeX4ht may be more powerful -than HEVEA, but may also be more difficult to configure. +than HEVEA, but may also be more difficult to configure. More information on TeX4ht can be found at:
                  htmlgen
                  The htmlgen translator is specialized -for producing the Caml manuals. This is HEVEA direct ancestor and I +for producing the Caml manuals. This is HEVEA direct ancestor and I owe much to its author, X. Leroy. See [htmlgen] for a description of htmlgen and a (bit outdated) discussion on LATEX to html translation.

                  -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual046.html 2.32-1/manual046.html --- 2.29-2/manual046.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual046.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,23 +2,24 @@ - - + + + Acknowledgements -Previous -Up -Next +Previous +Up +Next
                  -

                  C.6  Acknowledgements

                  +

                  C.6  Acknowledgements

                  -The following people contributed to HEVEA development: +The following people contributed to HEVEA development:

                  • Philip A.Viton, maintains a -Windows (win32) port of HEVEA. +Windows (win32) port of HEVEA.
                  • Tibault Suzanne authored the HTML 5 generator that now is -the default generator of HEVEA. +the default generator of HEVEA.
                  • Abhishek Thakur implemented most of the new features of version 1.08, including, translations of symbols to Unicode entities, the babel package, and style sheet support. @@ -27,24 +28,24 @@ snippets produced by its tool VideoC for writing pedagogical documents on programming. The very principle he introduced for interfacing the videoc -lexer with HEVEA main lexer is now used extensively throughout -HEVEA source code. +lexer with HEVEA main lexer is now used extensively throughout +HEVEA source code.
                  • Andrew Seagar is at the origin of support for the Thai language. He is -the author of the document “How to Use HEVEA +the author of the document “How to Use HEVEA with the Thai Character Set”. -
                  • Pierre Boulet, by using HEVEA as a stage in his tool +
                  • Pierre Boulet, by using HEVEA as a stage in his tool MlDoc for documenting Objective Caml source code, forced me into debugging -HEVEA implementation of the alltt environment. +HEVEA implementation of the alltt environment.
                  • Nicolas Tessaud implemented the -text and -info output modes (see section 11).
                  • Georges Mariano asked for many feature, and argued a lot to have them implemented.
                  • Many users contributed by sending bug reports.

                  -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual047.html 2.32-1/manual047.html --- 2.29-2/manual047.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual047.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,16 +2,17 @@ - - + + + References -Previous -Up -Next +Previous +Up +Next
                  -

                  References

                  +

                  References

                  [LATEX-bis]
                  @@ -49,8 +50,8 @@ Håkon Wium Lie. the web at http://www.w3.org/TR/REC-CSS2/, 2011.

                  -Previous -Up -Next +Previous +Up +Next diff -pruN 2.29-2/manual048.html 2.32-1/manual048.html --- 2.29-2/manual048.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual048.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,309 +2,322 @@ - - + + + Index -Previous -Up +Previous +Up
                  -

                  Index

                  -

                  Part C
                  Practical information

                  • -“ ” (space), B.3.1 +

                    Index

                    +

                    +
                  • comment package, B.17.6 +
                  • \cutdef, 7.2.2, 7.2.4 +
                  • \cutend, 7.2.2, 7.2.4 +
                  • cutflow environment, 7.3.5 +
                  • cutflow* environment, 7.3.5 +
                  • \cuthere, 7.2.2, 7.2.4 +
                  • \cutname, 7.3.1 +
                  • cuttingdepth counter, 7.2.2 +
                  • \cuttingunit, 7.2.2, 7.2.4

                    -
                  • deepcut package, 7.2.5 -
                  • \def, B.16.1.1 +
                  • deepcut package, 7.2.5 +
                  • \def, B.16.1.1
                  • display problems -
                  • divstyle environment, 9.5.2 +
                  • displayjax environment, B.16.6, B.16.6.1 +
                  • divstyle environment, 9.5.2

                    -
                  • \else, B.16.1.4 -
                  • esponja command, C.1.3 -
                  • externalcss (boolean register), 9.6.2 -
                  • \externalcsstrue, 9.6.2 -
                    -
                    -
                  • fancysection package, B.16.4 -
                  • \fcolorbox, B.14.2 -
                  • \fi, B.16.1.4 -
                  • figcut package, 7.2.5 -
                  • \flushdef, 7.3.6, 7.3.6 -
                  • \footahref, 8.1.1 -
                  • \footnoteflush, 7.3.6 -
                  • \footurl, 8.1.1 -
                    -
                    -
                  • GIF, 10.5, C.1.5 -
                  • \gdef, B.16.1.3 -
                  • \getenvclass, 8.5, 9.3 -
                  • \global, B.16.1.3 -
                  • graphics package, B.14.1 -
                  • +
                  • \imageflush, 6.1, 10.5 +
                  • imagen command, C.1.5 +
                  • \imgsrc, 7.3.4, 8.1.1, 8.2, 8.5, 10.5 +
                  • index package, B.17.7 +
                  • indexcols counter, B.11.5 +
                  • indexenv environment, B.11.5 +
                  • inference rules, B.17.15 +
                  • \input, B.11.4 +
                  • inputenc package, B.17.4 +
                  • \inputencoding, B.17.4 +
                    +
                    +
                  • \label, B.4.1, B.11.2 +
                  • latexonly environment, 5.2.1, 5.2.2 +
                  • \let, B.2, B.16.1.2 +
                  • listings package, B.17.13 +
                  • \loadcssfile, 9.6.3 +
                  • longtable package, B.17.14 +
                  • \lstavoidwhitepre, B.17.13 +
                    +
                    +
                  • \mailto, 8.1.1 +
                  • \marginpar, B.9 +
                  • math accents, B.7.6 +
                  • mathjax environment, B.16.6.1 +
                  • mathjax package, B.16.6 +
                  • mathjax.sty LATEX style file, B.16.6 +
                  • mathjaxauto.hva file, B.16.6.2 +
                  • mathpartir package, B.17.15 + -
                  • multibib package, B.17.9 -
                  • multind package, B.17.7 +
                  • multibib package, B.17.9 +
                  • multind package, B.17.7

                    -
                  • natbib package, B.17.8 -
                  • \newcites, B.17.9 -
                  • \newcommand, B.8.1 -
                  • \newif, B.16.1.4 -
                  • \newstyle, 9.1 -
                  • \normalmarginpar, B.9 -
                  • \notocnumber, 7.2.2 +
                  • natbib package, B.17.8 +
                  • \newcites, B.17.9 +
                  • \newcommand, B.8.1 +
                  • \newif, B.16.1.4 +
                  • \newstyle, 9.1 +
                  • \normalmarginpar, B.9 +
                  • \notocnumber, 7.2.2

                    -
                  • \oneurl, 8.1.1 +
                  • \oneurl, 8.1.1

                    -
                  • PDF, C.1.5 -
                  • PNG, 10.5, C.1.5 -
                  • pdflatex, C.1.5 -
                  • \purple, 8.5 +
                  • PDF, C.1.5 +
                  • PNG, 10.5, C.1.5 +
                  • pdflatex, C.1.5 +
                  • \purple, 8.5

                    -
                  • raw environment, 8.4 -
                  • rawhtml environment, 5.2.1, 8.4, B.2 -
                  • \rawhtmlinput, 8.4 -
                  • \rawinput, 8.4 -
                  • rawtext environment, 8.4 -
                  • \rawtextinput, 8.4 -
                  • \ref, B.11.2 -
                  • \renewcommand, B.8.1 -
                  • \reversemarginpar, B.9 +
                  • raw environment, 8.4 +
                  • rawhtml environment, 5.2.1, 8.4, B.2 +
                  • \rawhtmlinput, 8.4 +
                  • \rawinput, 8.4 +
                  • rawtext environment, 8.4 +
                  • \rawtextinput, 8.4 +
                  • \ref, B.11.2 +
                  • \renewcommand, B.8.1 +
                  • \reversemarginpar, B.9

                    -
                  • SVG, 10.5, C.1.5 -
                  • \setenvclass, 8.5, 9.3 -
                  • \setlinkstext, 7.3.4 -
                  • spacing, see “ ” -
                  • sqrt, B.7.3 -
                  • style-sheets, 9 +
                  • SVG, 10.5, C.1.5 +
                  • \setenvclass, 8.5, 9.3 +
                  • \setlinkstext, 7.3.4 +
                  • spacing, see “ ” +
                  • sqrt, B.7.3 +
                  • style-sheets, 9
                  • styles for -
                  • supertabular package, B.17.14 +
                  • supertabular package, B.17.14

                    -
                  • \tableofcontents, B.4.3 -
                  • tabularx package, B.17.2 -
                  • tabulation, 3.1.2 -
                  • text-level elements, 8.3 +
                  • \tableofcontents, B.4.3 +
                  • tabularx package, B.17.2 +
                  • tabulation, 3.1.2 +
                  • text-level elements, 8.3 -
                  • \textcolor, B.14.2 -
                  • \textoverline, B.7.5 -
                  • \textstackrel, B.7.5 -
                  • \textunderline, B.7.5 -
                  • Thai, B.17.17 -
                  • \title, B.5.3 -
                  • \tocnumber, 7.2.2 -
                  • \today, B.5.3, B.16.3 -
                  • toimage environment, 5.2.1, 5.2.2, 6.1 -
                  • \toplinks, 7.3.3 +
                  • \textcolor, B.14.2 +
                  • \textjax, B.16.6, B.16.6.1 +
                  • \textoverline, B.7.5 +
                  • \textstackrel, B.7.5 +
                  • \textunderline, B.7.5 +
                  • Thai, B.17.17 +
                  • \title, B.5.3 +
                  • \tocnumber, 7.2.2 +
                  • \today, B.5.3, B.16.3 +
                  • toimage environment, 5.2.1, 5.2.2, 6.1 +
                  • \toplinks, 7.3.3

                    -
                  • undersection package, B.16.4 -
                  • unicode, B.7.4 -
                  • \url, 8.1.1, B.17.11 -
                  • url package, B.17.11 -
                  • \urldef, B.17.11 -
                  • \usepackage, B.5.2 +
                  • undersection package, B.16.4 +
                  • unicode, B.7.4 +
                  • \url, 8.1.1, B.17.11 +
                  • url package, B.17.11 +
                  • \urldef, B.17.11 +
                  • \usepackage, 2.3.2, B.5.2

                    -
                  • verbimage environment, 5.2.1, 5.2.2 -
                  • verblatex environment, 5.2.1, 5.2.2 +
                  • verbimage environment, 5.2.1, 5.2.2 +
                  • verblatex environment, 5.2.1, 5.2.2

                    -
                  • winfonts package, B.16.5 +
                  • winfonts package, B.16.5

                    -
                  • xxcharset.exe script, 8.6 -
                  • xxdate.exe script, B.16.3 +
                  • xxcharset.exe script, 8.6 +
                  • xxdate.exe script, B.16.3

                  • -Previous -Up +Previous +Up diff -pruN 2.29-2/manual.css 2.32-1/manual.css --- 2.29-2/manual.css 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual.css 2018-07-04 13:20:49.000000000 +0000 @@ -13,42 +13,43 @@ .c012{font-family:Helvetica} .c013{font-family:monospace} .c014{font-family:monospace;font-weight:bold} -.c015{font-size:small} -.c016{font-size:x-large} -.c017{font-size:xx-large} -.c018{font-style:italic} -.c019{font-style:oblique} -.c020{font-variant:small-caps} -.c021{font-variant:small-caps;font-size:small} -.c022{font-weight:bold} -.c023{font-weight:bold;color:blue} -.c024{font-weight:bold;color:red} -.c025{height:4em; margin:0ex 2px;} -.c026{height:4em; margin:0ex 4px;} -.c027{text-align:center} -.c028{text-align:center;border:solid 1px;white-space:nowrap} -.c029{text-align:center;white-space:nowrap} -.c030{text-align:left} -.c031{text-align:left;border:solid 1px;white-space:nowrap} -.c032{text-align:left;white-space:nowrap} -.c033{text-align:right;white-space:nowrap} -.c034{vertical-align:bottom} -.c035{vertical-align:middle} -.c036{vertical-align:middle;text-align:left;} -.c037{vertical-align:top} -.c038{vertical-align:top;text-align:center;border:solid 1px;white-space:nowrap} -.c039{vertical-align:top;text-align:left;} -.c040{vertical-align:top;text-align:left;border:solid 1px;} -.c041{vertical-align:top;text-align:left;white-space:nowrap} -.c042{whitespace:nowrap;text-align:center} -.c043{whitespace:nowrap;text-align:left} -.c044{width:10%;text-align:center} -.c045{width:100%;} -.c046{width:40%;text-align:center} -.c047{width:5%;text-align:center} -.c048{width:6px;} -.c049{width:80%;height:2} -.c050{width:90%;text-align:center} +.c015{font-family:sans-serif} +.c016{font-size:small} +.c017{font-size:x-large} +.c018{font-size:xx-large} +.c019{font-style:italic} +.c020{font-style:oblique} +.c021{font-variant:small-caps} +.c022{font-variant:small-caps;font-size:small} +.c023{font-weight:bold} +.c024{font-weight:bold;color:blue} +.c025{font-weight:bold;color:red} +.c026{height:4em; margin:0ex 2px;} +.c027{height:4em; margin:0ex 4px;} +.c028{text-align:center} +.c029{text-align:center;border:solid 1px;white-space:nowrap} +.c030{text-align:center;white-space:nowrap} +.c031{text-align:left} +.c032{text-align:left;border:solid 1px;white-space:nowrap} +.c033{text-align:left;white-space:nowrap} +.c034{text-align:right;white-space:nowrap} +.c035{vertical-align:bottom} +.c036{vertical-align:middle} +.c037{vertical-align:middle;text-align:left;} +.c038{vertical-align:top} +.c039{vertical-align:top;text-align:center;border:solid 1px;white-space:nowrap} +.c040{vertical-align:top;text-align:left;} +.c041{vertical-align:top;text-align:left;border:solid 1px;} +.c042{vertical-align:top;text-align:left;white-space:nowrap} +.c043{whitespace:nowrap;text-align:center} +.c044{whitespace:nowrap;text-align:left} +.c045{width:10%;text-align:center} +.c046{width:100%;} +.c047{width:40%;text-align:center} +.c048{width:5%;text-align:center} +.c049{width:6px;} +.c050{width:80%;height:2} +.c051{width:90%;text-align:center} .li-itemize{margin:1ex 0ex;} .li-enumerate{margin:1ex 0ex;} .dd-description{margin:0ex 0ex 1ex 4ex;} @@ -105,6 +106,7 @@ background:#FFAD7A} .xtitlerest{font-variant:small-caps;} .ruled{border:solid black;padding:1ex;background:#eeddbb;color:maroon} .ruledbis{border:solid black;padding:1ex;background:#eeddbb;color:maroon;display:inline-block} +.show{border:solid black; border-width:thin; margin:2ex;} body{background-color:white} a:link{color:#00B200;text-decoration:underline;} a:visited{color:#006600;text-decoration:underline;} diff -pruN 2.29-2/manual.haux 2.32-1/manual.haux --- 2.29-2/manual.haux 2016-07-26 12:07:24.000000000 +0000 +++ 2.32-1/manual.haux 2018-07-04 13:20:46.000000000 +0000 @@ -9,6 +9,7 @@ \@@addtocsec{htoc}{sec6}{1}{\@print{2.2}\quad{}Other base styles{}} \newlabel{otherbase}{{2.2}{X}} \@@addtocsec{htoc}{sec7}{1}{\@print{2.3}\quad{}Other style files{}} +\new@anchor@label{sec9}{usepackage:both}{{2.3.2}{X}} \@@addtocsec{htoc}{sec10}{0}{\@print{3}\quad{}A note on style{}} \@@addtocsec{htoc}{sec11}{1}{\@print{3.1}\quad{}Spacing, Paragraphs{}} \new@anchor@label{sec12}{spurious:par}{{3.1.1}{X}} @@ -215,82 +216,85 @@ Package{}} \new@anchor@label{sec179}{fancysection}{{B.16.4}{X}} \@@addtocsec{htoc}{winfonts}{1}{\@print{B.16.5}\quad{}Targeting \label{winfonts}Windows{}} \new@anchor@label{sec180}{winfonts}{{B.16.5}{X}} -\@@addtocsec{htoc}{sec181}{0}{\@print{B.17}\quad{}Implemented Packages{}} +\@@addtocsec{htoc}{mathjax}{1}{\@print{B.16.6}\quad{}\textsf{MathJax} \label{mathjax}support{}} +\new@anchor@label{sec181}{mathjax}{{B.16.6}{X}} +\@@addtocsec{htoc}{sec185}{0}{\@print{B.17}\quad{}Implemented Packages{}} \newlabel{implemented:package}{{B.17}{X}} \citation{latexbis} -\@@addtocsec{htoc}{sec182}{1}{\@print{B.17.1}\quad{}AMS compatibility{}} +\@@addtocsec{htoc}{sec186}{1}{\@print{B.17.1}\quad{}AMS compatibility{}} \citation{latexbis} \citation{latexbis} \citation{latexbis} -\@@addtocsec{htoc}{sec183}{1}{\@print{B.17.2}\quad{}The \texttt{array} and \texttt{tabularx} +\@@addtocsec{htoc}{sec187}{1}{\@print{B.17.2}\quad{}The \texttt{array} and \texttt{tabularx} packages{}} \newlabel{arraypack}{{B.17.2}{X}} \citation{latexbis} \newlabel{arraytable}{{1}{X}} \citation{latexbis} \@@addtocsec{htoc}{calc}{1}{\@print{B.17.3}\quad{}The \texttt{calc}\label{calc} package{}} -\new@anchor@label{sec184}{calc}{{B.17.3}{X}} +\new@anchor@label{sec188}{calc}{{B.17.3}{X}} \citation{latexbis} \@@addtocsec{htoc}{inputenc}{1}{\@print{B.17.4}\quad{}Specifying \label{inputenc}the document input encoding, the \texttt{inputenc} package{}} -\new@anchor@label{sec185}{inputenc}{{B.17.4}{X}} -\@@addtocsec{htoc}{sec186}{1}{\@print{B.17.5}\quad{}More symbols{}} +\new@anchor@label{sec189}{inputenc}{{B.17.4}{X}} +\@@addtocsec{htoc}{sec190}{1}{\@print{B.17.5}\quad{}More symbols{}} \@@addtocsec{htoc}{commentpack}{1}{\@print{B.17.6}\quad{}The \texttt{comment}\label{commentpack} package{}} -\new@anchor@label{sec187}{commentpack}{{B.17.6}{X}} +\new@anchor@label{sec191}{commentpack}{{B.17.6}{X}} \@@addtocsec{htoc}{multind}{1}{\@print{B.17.7}\quad{}Multiple Indexes with the \texttt{index} and \texttt{multind}\label{multind} packages{}} -\new@anchor@label{sec188}{multind}{{B.17.7}{X}} -\@@addtocsec{htoc}{sec189}{1}{\@print{B.17.8}\quad{}``Natural'' bibliographies, the \texttt{natbib} package {}} -\@@addtocsec{htoc}{sec190}{1}{\@print{B.17.9}\quad{}Multiple bibliographies{}} -\@@addtocsec{htoc}{sec193}{1}{\@print{B.17.10}\quad{}Support for \texttt{babel}{}} +\new@anchor@label{sec192}{multind}{{B.17.7}{X}} +\@@addtocsec{htoc}{sec193}{1}{\@print{B.17.8}\quad{}``Natural'' bibliographies, the \texttt{natbib} package {}} +\@@addtocsec{htoc}{sec194}{1}{\@print{B.17.9}\quad{}Multiple bibliographies{}} +\@@addtocsec{htoc}{sec197}{1}{\@print{B.17.10}\quad{}Support for \texttt{babel}{}} \@@addtocsec{htoc}{urlpackage}{1}{\@print{B.17.11}\quad{}The \label{urlpackage}\texttt{url} package{}} -\new@anchor@label{sec197}{urlpackage}{{B.17.11}{X}} -\@@addtocsec{htoc}{sec198}{1}{\@print{B.17.12}\quad{}Verbatim text: the \texttt{moreverb} and +\new@anchor@label{sec201}{urlpackage}{{B.17.11}{X}} +\@@addtocsec{htoc}{sec202}{1}{\@print{B.17.12}\quad{}Verbatim text: the \texttt{moreverb} and \texttt{verbatim} packages{}} \@@addtocsec{htoc}{listings:package}{1}{\@print{B.17.13}\quad{}Typesetting \label{listings:package}computer languages: the \texttt{listings} package{}} -\new@anchor@label{sec199}{listings:package}{{B.17.13}{X}} -\@@addtocsec{htoc}{sec200}{1}{\@print{B.17.14}\quad{}(Non-)Multi page tabular material{}} +\new@anchor@label{sec203}{listings:package}{{B.17.13}{X}} +\@@addtocsec{htoc}{sec204}{1}{\@print{B.17.14}\quad{}(Non-)Multi page tabular material{}} \citation{latexbis} \@@addtocsec{htoc}{mathpartir:package}{1}{\@print{B.17.15}\quad{}Typesetting inference rules: the \label{mathpartir:package} \aname{mathpartir}{\texttt{mathpartir}} package{}} -\new@anchor@label{sec201}{mathpartir:package}{{B.17.15}{X}} -\@@addtocsec{htoc}{sec206}{1}{\@print{B.17.16}\quad{}The \texttt{ifpdf} package{}} -\@@addtocsec{htoc}{sec207}{1}{\@print{B.17.17}\quad{}Typesetting Thai{}} -\@@addtocsec{htoc}{sec208}{1}{\@print{B.17.18}\quad{}Hanging paragraphs{}} -\@@addtocsec{htoc}{sec209}{1}{\@print{B.17.19}\quad{}The \texttt{cleveref} package{}} -\@@addtocsec{htoc}{sec210}{1}{\@print{B.17.20}\quad{}Other packages{}} +\new@anchor@label{sec205}{mathpartir:package}{{B.17.15}{X}} +\@@addtocsec{htoc}{sec210}{1}{\@print{B.17.16}\quad{}The \texttt{ifpdf} package{}} +\@@addtocsec{htoc}{sec211}{1}{\@print{B.17.17}\quad{}Typesetting Thai{}} +\@@addtocsec{htoc}{sec212}{1}{\@print{B.17.18}\quad{}Hanging paragraphs{}} +\@@addtocsec{htoc}{sec213}{1}{\@print{B.17.19}\quad{}The \texttt{cleveref} package{}} +\@@addtocsec{htoc}{sec214}{1}{\@print{B.17.20}\quad{}Other packages{}} \@@addtocsec{htoc}{practical}{-1}{\@print{Part C}\quad{}Practical \label{practical}information{}} -\new@anchor@label{sec211}{practical}{{C}{X}} -\@@addtocsec{htoc}{sec212}{0}{\@print{C.1}\quad{}Usage{}} -\@@addtocsec{htoc}{sec213}{1}{\@print{C.1.1}\quad{}\hevea{} usage{}} +\new@anchor@label{sec215}{practical}{{C}{X}} +\@@addtocsec{htoc}{sec216}{0}{\@print{C.1}\quad{}Usage{}} +\@@addtocsec{htoc}{sec217}{1}{\@print{C.1.1}\quad{}\hevea{} usage{}} \newlabel{heveausage}{{C.1.1}{X}} \newlabel{comline}{{C.1.1.1}{X}} \newlabel{search:path}{{C.1.1.1}{X}} \newlabel{basenames}{{C.1.1.2}{X}} -\new@anchor@label{sec217}{heveaoptions}{{C.1.1.4}{X}} -\@@addtocsec{htoc}{sec218}{1}{\@print{C.1.2}\quad{}\hacha{} usage{}} -\@@addtocsec{htoc}{sec219}{1}{\@print{C.1.3}\quad{}\texttt{esponja} usage{}} +\new@anchor@label{sec221}{heveaoptions}{{C.1.1.4}{X}} +\@@addtocsec{htoc}{sec222}{1}{\@print{C.1.2}\quad{}\hacha{} usage{}} +\@@addtocsec{htoc}{sec223}{1}{\@print{C.1.3}\quad{}\texttt{esponja} usage{}} \newlabel{esponjausage}{{C.1.3}{X}} \newlabel{esponjaoptions}{{C.1.3.2}{X}} \@@addtocsec{htoc}{bibhva}{1}{\@print{C.1.4}\quad{}\texttt{bibhva}\label{bibhva} usage{}} -\new@anchor@label{sec222}{bibhva}{{C.1.4}{X}} -\@@addtocsec{htoc}{sec223}{1}{\@print{C.1.5}\quad{}\texttt{imagen} usage{}} +\new@anchor@label{sec226}{bibhva}{{C.1.4}{X}} +\@@addtocsec{htoc}{sec227}{1}{\@print{C.1.5}\quad{}\texttt{imagen} usage{}} \newlabel{imagenusage}{{C.1.5}{X}} -\@@addtocsec{htoc}{sec224}{1}{\@print{C.1.6}\quad{}Invoking \texttt{hevea}, \texttt{hacha} and \texttt{imagen}{}} +\@@addtocsec{htoc}{sec228}{1}{\@print{C.1.6}\quad{}Invoking \texttt{hevea}, \texttt{hacha} and \texttt{imagen}{}} \@@addtocsec{htoc}{makefile}{1}{\@print{C.1.7}\quad{}Using \label{makefile}\texttt{make}{}} -\new@anchor@label{sec225}{makefile}{{C.1.7}{X}} +\new@anchor@label{sec229}{makefile}{{C.1.7}{X}} \@@addtocsec{htoc}{browser}{0}{\@print{C.2}\quad{}Browser \label{browser}configuration{}} -\new@anchor@label{sec226}{browser}{{C.2}{X}} -\@@addtocsec{htoc}{sec227}{0}{\@print{C.3}\quad{}Availability{}} -\@@addtocsec{htoc}{sec228}{1}{\@print{C.3.1}\quad{}Internet stuff{}} -\@@addtocsec{htoc}{sec229}{1}{\@print{C.3.2}\quad{}Law{}} -\@@addtocsec{htoc}{sec230}{0}{\@print{C.4}\quad{}Installation{}} -\@@addtocsec{htoc}{sec231}{1}{\@print{C.4.1}\quad{}Requirements{}} +\new@anchor@label{sec230}{browser}{{C.2}{X}} +\@@addtocsec{htoc}{sec231}{0}{\@print{C.3}\quad{}Availability{}} +\@@addtocsec{htoc}{sec232}{1}{\@print{C.3.1}\quad{}Internet stuff{}} +\@@addtocsec{htoc}{sec233}{1}{\@print{C.3.2}\quad{}Law{}} +\@@addtocsec{htoc}{sec234}{0}{\@print{C.4}\quad{}Installation{}} +\@@addtocsec{htoc}{sec235}{1}{\@print{C.4.1}\quad{}Requirements{}} \newlabel{requirements}{{C.4.1}{X}} \newlabel{imagen:needs}{{C.4.1}{X}} -\@@addtocsec{htoc}{sec232}{1}{\@print{C.4.2}\quad{}Principles{}} -\@@addtocsec{htoc}{sec233}{0}{\@print{C.5}\quad{}Other \LaTeX{} to \html{} translators{}} +\@@addtocsec{htoc}{sec236}{1}{\@print{C.4.2}\quad{}Principles{}} +\newlabel{installsty}{{C.4.2}{X}} +\@@addtocsec{htoc}{sec237}{0}{\@print{C.5}\quad{}Other \LaTeX{} to \html{} translators{}} \citation{htmlgen} -\@@addtocsec{htoc}{sec234}{0}{\@print{C.6}\quad{}Acknowledgements{}} +\@@addtocsec{htoc}{sec238}{0}{\@print{C.6}\quad{}Acknowledgements{}} \@addcontentsline{htoc}{0}{\ahrefloc{@biblio}{\refname}} \bibcite{latexbis}{\LaTeX-bis} \bibcite{latex}{\LaTeX} diff -pruN 2.29-2/manual.hind 2.32-1/manual.hind --- 2.29-2/manual.hind 2016-07-26 12:07:24.000000000 +0000 +++ 2.32-1/manual.hind 2018-07-04 13:20:46.000000000 +0000 @@ -1,267 +1,279 @@ \begin{indexenv} -\indexitem `` '' (space), \@locref{hevea_default153}{B.3.1} +\indexitem `` '' (space), \@locref{hevea_default155}{B.3.1} \begin{indexenv} -\indexitem after macro, \@locref{hevea_default1}{3.1.2} +\indexitem after macro, \@locref{hevea_default2}{3.1.2} \begin{indexenv} -\indexitem in math, \@locref{hevea_default3}{3.2.1}, \defocc{\@locref{hevea_default171}{B.7.7}} +\indexitem in math, \@locref{hevea_default4}{3.2.1}, \defocc{\@locref{hevea_default173}{B.7.7}} \end{indexenv} \end{indexenv} \indexspace -\indexitem \texttt{\#\#}\textit{n}, \@locref{hevea_default207}{B.16.2} +\indexitem \texttt{\#\#}\textit{n}, \@locref{hevea_default209}{B.16.2} \indexspace \indexitem \texttt{- -todir} (\texttt{imagen} option), \@locref{hevea_default137}{10.6} -\indexitem \texttt{-dv} (\texttt{hevea} option), \@locref{hevea_default0}{3.1.1}, \@locref{hevea_default5}{3.2.3} -\indexitem \texttt{-e} (\texttt{hevea} option), \@locref{hevea_default184}{B.11.4} -\indexitem \texttt{-fix} (\texttt{hevea} option), \@locref{hevea_default25}{6.1}, \@locref{hevea_default139}{10.7}, \@locref{hevea_default158}{B.4.3}, \@locref{hevea_default179}{B.11.1}, \@locref{hevea_default265}{C.1.5}, \@locref{hevea_default266}{C.1.6} -\indexitem \texttt{-gif} (\texttt{imagen} option), \@locref{hevea_default135}{10.5} -\indexitem \texttt{-O} (\texttt{hevea} option), \@locref{hevea_default90}{8.4}, \@locref{hevea_default240}{B.17.13} -\indexitem \texttt{-o} (\texttt{hevea} option), \@locref{hevea_default256}{C.1.1.2} -\indexitem \texttt{-pdf} (\texttt{imagen} option), \@locref{hevea_default250}{B.17.16} -\indexitem \texttt{-textsymbols} (\texttt{hevea} option), \@locref{hevea_default4}{3.2.2} -\indexitem \texttt{-tocbis} (\texttt{hacha} option), \@locref{hevea_default35}{7.2.3} -\indexitem \texttt{-tocter} (\texttt{hacha} option), \@locref{hevea_default36}{7.2.3} -\indexitem \texttt{-w} (\texttt{hevea} option), \@locref{hevea_default140}{11.1} -\indexspace -\indexitem \texttt{\char92@addimagenopt}, \defocc{\@locref{hevea_default138}{10.7}} -\indexitem \texttt{\char92@addstyle}, \@locref{hevea_default87}{8.3} -\indexitem \texttt{\char92@bodyargs}, \@locref{hevea_default147}{B.2} -\indexitem \texttt{\char92@charset}, \@locref{hevea_default152}{B.2} -\indexitem \texttt{\char92@clearstyle}, \defocc{\@locref{hevea_default82}{8.3}} -\indexitem \texttt{\char92@close}, \defocc{\@locref{hevea_default77}{8.3}}, \@locref{hevea_default97}{8.5}, \@locref{hevea_default107}{8.5} -\indexitem \texttt{\char92@def@charset}, \defocc{\@locref{hevea_default111}{8.6}}, \@locref{hevea_default224}{B.17.4} -\indexitem \texttt{\char92@fontcolor}, \defocc{\@locref{hevea_default84}{8.3}} -\indexitem \texttt{\char92@fontsize}, \defocc{\@locref{hevea_default83}{8.3}} -\indexitem \texttt{\char92@footnotelevel}, \defocc{\@locref{hevea_default54}{7.3.6}} -\indexitem \texttt{\char92@getcolor}, \@locref{hevea_default108}{8.5}, \defocc{\@locref{hevea_default196}{B.14.2.2}} -\indexitem \texttt{\char92@getprint}, \defocc{\@locref{hevea_default73}{8.3}}, \@locref{hevea_default102}{8.5} -\indexitem \texttt{\char92@getstylecolor}, \@locref{hevea_default118}{9.3}, \defocc{\@locref{hevea_default197}{B.14.2.2}} -\indexitem \texttt{\char92@hevealibdir}, \defocc{\@locref{hevea_default255}{C.1.1.1}} -\indexitem \texttt{\char92@hr}, \defocc{\@locref{hevea_default75}{8.3}} -\indexitem \texttt{\char92@htmlargs}, \@locref{hevea_default148}{B.2} -\indexitem \texttt{\char92@meta}, \@locref{hevea_default149}{B.2} -\indexitem \texttt{\char92@nostyle}, \defocc{\@locref{hevea_default81}{8.3}}, \@locref{hevea_default103}{8.5}, \@locref{hevea_default104}{8.5} -\indexitem \texttt{\char92@open}, \defocc{\@locref{hevea_default76}{8.3}}, \@locref{hevea_default96}{8.5}, \@locref{hevea_default106}{8.5} -\indexitem \texttt{\char92@print}, \defocc{\@locref{hevea_default72}{8.3}}, \@locref{hevea_default101}{8.5} -\indexitem \texttt{\char92@print@u}, \@locref{hevea_default6}{4.2}, \defocc{\@locref{hevea_default74}{8.3}}, \@locref{hevea_default109}{8.5}, \@locref{hevea_default110}{8.6} -\indexitem \texttt{\char92@span}, \defocc{\@locref{hevea_default80}{8.3}} -\indexitem \texttt{\char92@style}, \defocc{\@locref{hevea_default78}{8.3}} -\indexitem \texttt{\char92@styleattr}, \defocc{\@locref{hevea_default79}{8.3}} -\indexspace -\indexitem \verb+\bigl,\bigr+ etc., \@locref{hevea_default169}{B.7.5} -\indexitem \verb+\boxed+, \@locref{hevea_default168}{B.7.5} -\indexitem \verb+\sqrt+, \@locref{hevea_default162}{B.7.3} -\indexspace -\indexitem \texttt{\char92addcontentsline}, \defocc{\@locref{hevea_default157}{B.4.3}} -\indexitem \texttt{\char92ahref}, \defocc{\@locref{hevea_default57}{8.1.1}} -\indexitem \texttt{\char92ahrefloc}, \@locref{hevea_default50}{7.3.5}, \defocc{\@locref{hevea_default60}{8.1.1}} -\indexitem \texttt{\char92ahrefurl}, \defocc{\@locref{hevea_default58}{8.1.1}} -\indexitem \texttt{amsmath} package, \@locref{hevea_default218}{B.17.1} -\indexitem \texttt{amssymb} package, \@locref{hevea_default219}{B.17.1} -\indexitem \texttt{\char92aname}, \@locref{hevea_default49}{7.3.5}, \defocc{\@locref{hevea_default61}{8.1.1}} +todir} (\texttt{imagen} option), \@locref{hevea_default139}{10.6} +\indexitem \texttt{-dv} (\texttt{hevea} option), \@locref{hevea_default1}{3.1.1}, \@locref{hevea_default6}{3.2.3} +\indexitem \texttt{-e} (\texttt{hevea} option), \@locref{hevea_default186}{B.11.4} +\indexitem \texttt{-fix} (\texttt{hevea} option), \@locref{hevea_default27}{6.1}, \@locref{hevea_default141}{10.7}, \@locref{hevea_default160}{B.4.3}, \@locref{hevea_default181}{B.11.1}, \@locref{hevea_default278}{C.1.5}, \@locref{hevea_default279}{C.1.6} +\indexitem \texttt{-gif} (\texttt{imagen} option), \@locref{hevea_default137}{10.5} +\indexitem \texttt{-O} (\texttt{hevea} option), \@locref{hevea_default92}{8.4}, \@locref{hevea_default253}{B.17.13} +\indexitem \texttt{-o} (\texttt{hevea} option), \@locref{hevea_default269}{C.1.1.2} +\indexitem \texttt{-pdf} (\texttt{imagen} option), \@locref{hevea_default263}{B.17.16} +\indexitem \texttt{-textsymbols} (\texttt{hevea} option), \@locref{hevea_default5}{3.2.2} +\indexitem \texttt{-tocbis} (\texttt{hacha} option), \@locref{hevea_default37}{7.2.3} +\indexitem \texttt{-tocter} (\texttt{hacha} option), \@locref{hevea_default38}{7.2.3} +\indexitem \texttt{-w} (\texttt{hevea} option), \@locref{hevea_default142}{11.1} +\indexspace +\indexitem \texttt{\char92@addimagenopt}, \defocc{\@locref{hevea_default140}{10.7}} +\indexitem \texttt{\char92@addstyle}, \@locref{hevea_default89}{8.3} +\indexitem \texttt{\char92@bodyargs}, \@locref{hevea_default149}{B.2} +\indexitem \texttt{\char92@charset}, \@locref{hevea_default154}{B.2} +\indexitem \texttt{\char92@clearstyle}, \defocc{\@locref{hevea_default84}{8.3}} +\indexitem \texttt{\char92@close}, \defocc{\@locref{hevea_default79}{8.3}}, \@locref{hevea_default99}{8.5}, \@locref{hevea_default109}{8.5} +\indexitem \texttt{\char92@def@charset}, \defocc{\@locref{hevea_default113}{8.6}}, \@locref{hevea_default237}{B.17.4} +\indexitem \texttt{\char92@fontcolor}, \defocc{\@locref{hevea_default86}{8.3}} +\indexitem \texttt{\char92@fontsize}, \defocc{\@locref{hevea_default85}{8.3}} +\indexitem \texttt{\char92@footnotelevel}, \defocc{\@locref{hevea_default56}{7.3.6}} +\indexitem \texttt{\char92@getcolor}, \@locref{hevea_default110}{8.5}, \defocc{\@locref{hevea_default198}{B.14.2.2}} +\indexitem \texttt{\char92@getprint}, \defocc{\@locref{hevea_default75}{8.3}}, \@locref{hevea_default104}{8.5} +\indexitem \texttt{\char92@getstylecolor}, \@locref{hevea_default120}{9.3}, \defocc{\@locref{hevea_default199}{B.14.2.2}} +\indexitem \texttt{\char92@hevealibdir}, \defocc{\@locref{hevea_default268}{C.1.1.1}} +\indexitem \texttt{\char92@hr}, \defocc{\@locref{hevea_default77}{8.3}} +\indexitem \texttt{\char92@htmlargs}, \@locref{hevea_default150}{B.2} +\indexitem \texttt{\char92@meta}, \@locref{hevea_default151}{B.2} +\indexitem \texttt{\char92@nostyle}, \defocc{\@locref{hevea_default83}{8.3}}, \@locref{hevea_default105}{8.5}, \@locref{hevea_default106}{8.5} +\indexitem \texttt{\char92@open}, \defocc{\@locref{hevea_default78}{8.3}}, \@locref{hevea_default98}{8.5}, \@locref{hevea_default108}{8.5} +\indexitem \texttt{\char92@print}, \defocc{\@locref{hevea_default74}{8.3}}, \@locref{hevea_default103}{8.5} +\indexitem \texttt{\char92@print@u}, \@locref{hevea_default7}{4.2}, \defocc{\@locref{hevea_default76}{8.3}}, \@locref{hevea_default111}{8.5}, \@locref{hevea_default112}{8.6} +\indexitem \texttt{\char92@span}, \defocc{\@locref{hevea_default82}{8.3}} +\indexitem \texttt{\char92@style}, \defocc{\@locref{hevea_default80}{8.3}} +\indexitem \texttt{\char92@styleattr}, \defocc{\@locref{hevea_default81}{8.3}} +\indexspace +\indexitem \verb+\bigl,\bigr+ etc., \@locref{hevea_default171}{B.7.5} +\indexitem \verb+\boxed+, \@locref{hevea_default170}{B.7.5} +\indexitem \verb+\sqrt+, \@locref{hevea_default164}{B.7.3} +\indexspace +\indexitem \texttt{\char92addcontentsline}, \defocc{\@locref{hevea_default159}{B.4.3}} +\indexitem \texttt{\char92ahref}, \defocc{\@locref{hevea_default59}{8.1.1}} +\indexitem \texttt{\char92ahrefloc}, \@locref{hevea_default52}{7.3.5}, \defocc{\@locref{hevea_default62}{8.1.1}} +\indexitem \texttt{\char92ahrefurl}, \defocc{\@locref{hevea_default60}{8.1.1}} +\indexitem \texttt{amsmath} package, \@locref{hevea_default231}{B.17.1} +\indexitem \texttt{amssymb} package, \@locref{hevea_default232}{B.17.1} +\indexitem \texttt{\char92aname}, \@locref{hevea_default51}{7.3.5}, \defocc{\@locref{hevea_default63}{8.1.1}} \indexitem argument\begin{indexenv} -\indexitem of commands, \@locref{hevea_default143}{B.1.1} -\indexitem of \texttt{\char92 input}, \@locref{hevea_default183}{B.11.4} +\indexitem of commands, \@locref{hevea_default145}{B.1.1} +\indexitem of \texttt{\char92 input}, \@locref{hevea_default185}{B.11.4} \end{indexenv} -\indexitem \texttt{array} package, \@locref{hevea_default220}{B.17.2} +\indexitem \texttt{array} package, \@locref{hevea_default233}{B.17.2} \indexspace \indexitem babel\begin{indexenv} -\indexitem languages, \@locref{hevea_default234}{B.17.10.2} +\indexitem languages, \@locref{hevea_default247}{B.17.10.2} \end{indexenv} -\indexitem \texttt{babel} package, \@locref{hevea_default233}{B.17.10} -\indexitem \texttt{bgcolor} environment, \@locref{hevea_default105}{8.5}, \defocc{\@locref{hevea_default195}{B.14.2.1}} -\indexitem block-level elements, \@locref{hevea_default71}{8.3} -\indexitem browser configuration, \@locref{hevea_default267}{C.2} -\indexspace -\indexitem \texttt{calc} package, \@locref{hevea_default222}{B.17.3} -\indexitem \texttt{chapterbib} package, \@locref{hevea_default232}{B.17.9} -\indexitem \texttt{cleveref} package, \@locref{hevea_default253}{B.17.19} +\indexitem \texttt{babel} package, \@locref{hevea_default246}{B.17.10} +\indexitem \texttt{bgcolor} environment, \@locref{hevea_default107}{8.5}, \defocc{\@locref{hevea_default197}{B.14.2.1}} +\indexitem block-level elements, \@locref{hevea_default73}{8.3} +\indexitem browser configuration, \@locref{hevea_default280}{C.2} +\indexspace +\indexitem \texttt{calc} package, \@locref{hevea_default235}{B.17.3} +\indexitem \texttt{chapterbib} package, \@locref{hevea_default245}{B.17.9} +\indexitem \texttt{cleveref} package, \@locref{hevea_default266}{B.17.19} \indexitem color\begin{indexenv} -\indexitem of background, \see{\texttt{\char92@bodyargs}}{\@locref{hevea_default146}{B.2}} -\indexitem of section headings, \@locref{hevea_default212}{B.16.4} +\indexitem of background, \see{\texttt{\char92@bodyargs}}{\@locref{hevea_default148}{B.2}} +\indexitem of section headings, \@locref{hevea_default214}{B.16.4} \end{indexenv} -\indexitem \texttt{\char92color}, \@locref{hevea_default191}{B.14.2} -\indexitem \texttt{color} package, \@locref{hevea_default190}{B.14.2} -\indexitem \texttt{\char92colorbox}, \@locref{hevea_default193}{B.14.2} -\indexitem \texttt{\char92colorsections}, \defocc{\@locref{hevea_default214}{B.16.4}} +\indexitem \texttt{\char92color}, \@locref{hevea_default193}{B.14.2} +\indexitem \texttt{color} package, \@locref{hevea_default192}{B.14.2} +\indexitem \texttt{\char92colorbox}, \@locref{hevea_default195}{B.14.2} +\indexitem \texttt{\char92colorsections}, \defocc{\@locref{hevea_default216}{B.16.4}} \indexitem command\begin{indexenv} -\indexitem and arguments, \@locref{hevea_default142}{B.1.1} -\indexitem definition, \defocc{\@locref{hevea_default172}{B.8.1}}, \@locref{hevea_default199}{B.16.1.1}, \@locref{hevea_default208}{B.16.2} -\indexitem syntax, \@locref{hevea_default141}{B.1.1} +\indexitem and arguments, \@locref{hevea_default144}{B.1.1} +\indexitem definition, \defocc{\@locref{hevea_default174}{B.8.1}}, \@locref{hevea_default201}{B.16.1.1}, \@locref{hevea_default210}{B.16.2} +\indexitem syntax, \@locref{hevea_default143}{B.1.1} \end{indexenv} \indexitem comment\begin{indexenv} -\indexitem \texttt{\%BEGIN IMAGE}, \@locref{hevea_default20}{5.3} -\indexitem \texttt{\%BEGIN LATEX}, \@locref{hevea_default19}{5.3} -\indexitem \texttt{\%END IMAGE}, \@locref{hevea_default22}{5.3} -\indexitem \texttt{\%END LATEX}, \@locref{hevea_default21}{5.3} -\indexitem \texttt{\%HEVEA}, \@locref{hevea_default18}{5.2.3} -\end{indexenv} -\indexitem \texttt{comment} package, \@locref{hevea_default226}{B.17.6} -\indexitem \texttt{\char92cutdef}, \@locref{hevea_default33}{7.2.2}, \@locref{hevea_default37}{7.2.4} -\indexitem \texttt{\char92cutend}, \@locref{hevea_default34}{7.2.2}, \@locref{hevea_default38}{7.2.4} -\indexitem \texttt{cutflow} environment, \defocc{\@locref{hevea_default48}{7.3.5}} -\indexitem \texttt{cutflow*} environment, \defocc{\@locref{hevea_default51}{7.3.5}} -\indexitem \texttt{\char92cuthere}, \@locref{hevea_default32}{7.2.2}, \@locref{hevea_default39}{7.2.4} -\indexitem \texttt{\char92cutname}, \defocc{\@locref{hevea_default43}{7.3.1}} -\indexitem \texttt{cuttingdepth} counter, \@locref{hevea_default31}{7.2.2} -\indexitem \texttt{\char92cuttingunit}, \@locref{hevea_default28}{7.2.2}, \@locref{hevea_default40}{7.2.4} +\indexitem \texttt{\%BEGIN IMAGE}, \@locref{hevea_default22}{5.3} +\indexitem \texttt{\%BEGIN LATEX}, \@locref{hevea_default21}{5.3} +\indexitem \texttt{\%END IMAGE}, \@locref{hevea_default24}{5.3} +\indexitem \texttt{\%END LATEX}, \@locref{hevea_default23}{5.3} +\indexitem \texttt{\%HEVEA}, \@locref{hevea_default20}{5.2.3} +\end{indexenv} +\indexitem \texttt{comment} package, \@locref{hevea_default239}{B.17.6} +\indexitem \texttt{\char92cutdef}, \@locref{hevea_default35}{7.2.2}, \@locref{hevea_default39}{7.2.4} +\indexitem \texttt{\char92cutend}, \@locref{hevea_default36}{7.2.2}, \@locref{hevea_default40}{7.2.4} +\indexitem \texttt{cutflow} environment, \defocc{\@locref{hevea_default50}{7.3.5}} +\indexitem \texttt{cutflow*} environment, \defocc{\@locref{hevea_default53}{7.3.5}} +\indexitem \texttt{\char92cuthere}, \@locref{hevea_default34}{7.2.2}, \@locref{hevea_default41}{7.2.4} +\indexitem \texttt{\char92cutname}, \defocc{\@locref{hevea_default45}{7.3.1}} +\indexitem \texttt{cuttingdepth} counter, \@locref{hevea_default33}{7.2.2} +\indexitem \texttt{\char92cuttingunit}, \@locref{hevea_default30}{7.2.2}, \@locref{hevea_default42}{7.2.4} \indexspace -\indexitem \texttt{deepcut} package, \@locref{hevea_default41}{7.2.5} -\indexitem \texttt{\char92def}, \@locref{hevea_default198}{B.16.1.1} +\indexitem \texttt{deepcut} package, \@locref{hevea_default43}{7.2.5} +\indexitem \texttt{\char92def}, \@locref{hevea_default200}{B.16.1.1} \indexitem display problems\begin{indexenv} -\indexitem for authors, \@locref{hevea_default216}{B.16.5} -\indexitem for viewers, \@locref{hevea_default268}{C.2} +\indexitem for authors, \@locref{hevea_default218}{B.16.5} +\indexitem for viewers, \@locref{hevea_default281}{C.2} \end{indexenv} -\indexitem \texttt{divstyle} environment, \defocc{\@locref{hevea_default122}{9.5.2}} +\indexitem \texttt{displayjax} environment, \defocc{\@locref{hevea_default221}{B.16.6}}, \defocc{\@locref{hevea_default225}{B.16.6.1}} +\indexitem \texttt{divstyle} environment, \defocc{\@locref{hevea_default124}{9.5.2}} \indexspace -\indexitem \texttt{\char92else}, \@locref{hevea_default205}{B.16.1.4} -\indexitem \texttt{esponja} command, \@locref{hevea_default258}{C.1.3} -\indexitem \texttt{externalcss} (boolean register), \defocc{\@locref{hevea_default124}{9.6.2}} -\indexitem \texttt{\char92externalcsstrue}, \defocc{\@locref{hevea_default125}{9.6.2}} -\indexspace -\indexitem \texttt{fancysection} package, \@locref{hevea_default213}{B.16.4} -\indexitem \texttt{\char92fcolorbox}, \@locref{hevea_default194}{B.14.2} -\indexitem \texttt{\char92fi}, \@locref{hevea_default206}{B.16.1.4} -\indexitem \texttt{figcut} package, \@locref{hevea_default42}{7.2.5} -\indexitem \texttt{\char92flushdef}, \defocc{\@locref{hevea_default53}{7.3.6}}, \@locref{hevea_default55}{7.3.6} -\indexitem \texttt{\char92footahref}, \defocc{\@locref{hevea_default59}{8.1.1}} -\indexitem \texttt{\char92footnoteflush}, \defocc{\@locref{hevea_default52}{7.3.6}} -\indexitem \texttt{\char92footurl}, \@locref{hevea_default67}{8.1.1} -\indexspace -\indexitem GIF, \@locref{hevea_default131}{10.5}, \@locref{hevea_default261}{C.1.5} -\indexitem \texttt{\char92gdef}, \@locref{hevea_default202}{B.16.1.3} -\indexitem \texttt{\char92getenvclass}, \@locref{hevea_default99}{8.5}, \defocc{\@locref{hevea_default117}{9.3}} -\indexitem \texttt{\char92global}, \@locref{hevea_default201}{B.16.1.3} -\indexitem \texttt{graphics} package, \@locref{hevea_default188}{B.14.1} -\indexitem \texttt{graphicx} package, \@locref{hevea_default189}{B.14.1} -\indexspace -\indexitem \texttt{hacha} command, \@locref{hevea_default257}{C.1.2} -\indexitem \texttt{hanging} package, \@locref{hevea_default252}{B.17.18} -\indexitem \texttt{hevea} boolean register, \@locref{hevea_default17}{5.2.3} -\indexitem \texttt{hevea} command, \@locref{hevea_default254}{C.1.1} -\indexitem \texttt{\char92heveadate}, \@locref{hevea_default211}{B.16.3} -\indexitem \texttt{\char92heveaimagedir}, \@locref{hevea_default136}{10.6} -\indexitem \texttt{\char92home}, \defocc{\@locref{hevea_default64}{8.1.1}} -\indexitem \texttt{\char92htmlcolor}, \@locref{hevea_default68}{8.1.2} -\indexitem \texttt{\char92htmlfoot}, \@locref{hevea_default145}{B.2} -\indexitem \texttt{\char92htmlhead}, \@locref{hevea_default144}{B.2} -\indexitem \texttt{htmlonly} environment, \defocc{\@locref{hevea_default8}{5.2.1}} -\indexitem \texttt{\char92htmlprefix}, \defocc{\@locref{hevea_default44}{7.3.2}} -\indexitem hyperlinks, \@locref{hevea_default56}{8.1.1}, \@locref{hevea_default236}{B.17.11} -\indexspace -\indexitem \texttt{\char92if}, \@locref{hevea_default204}{B.16.1.4} -\indexitem \texttt{ifpdf} package, \@locref{hevea_default249}{B.17.16} -\indexitem \texttt{ifthen} package, \@locref{hevea_default175}{B.8.5} +\indexitem \texttt{\char92else}, \@locref{hevea_default207}{B.16.1.4} +\indexitem \texttt{esponja} command, \@locref{hevea_default271}{C.1.3} +\indexitem \texttt{externalcss} (boolean register), \defocc{\@locref{hevea_default126}{9.6.2}} +\indexitem \texttt{\char92externalcsstrue}, \defocc{\@locref{hevea_default127}{9.6.2}} +\indexspace +\indexitem \texttt{fancysection} package, \@locref{hevea_default215}{B.16.4} +\indexitem \texttt{\char92fcolorbox}, \@locref{hevea_default196}{B.14.2} +\indexitem \texttt{\char92fi}, \@locref{hevea_default208}{B.16.1.4} +\indexitem \texttt{figcut} package, \@locref{hevea_default44}{7.2.5} +\indexitem \texttt{\char92flushdef}, \defocc{\@locref{hevea_default55}{7.3.6}}, \@locref{hevea_default57}{7.3.6} +\indexitem \texttt{\char92footahref}, \defocc{\@locref{hevea_default61}{8.1.1}} +\indexitem \texttt{\char92footnoteflush}, \defocc{\@locref{hevea_default54}{7.3.6}} +\indexitem \texttt{\char92footurl}, \@locref{hevea_default69}{8.1.1} +\indexspace +\indexitem GIF, \@locref{hevea_default133}{10.5}, \@locref{hevea_default274}{C.1.5} +\indexitem \texttt{\char92gdef}, \@locref{hevea_default204}{B.16.1.3} +\indexitem \texttt{\char92getenvclass}, \@locref{hevea_default101}{8.5}, \defocc{\@locref{hevea_default119}{9.3}} +\indexitem \texttt{\char92global}, \@locref{hevea_default203}{B.16.1.3} +\indexitem \texttt{graphics} package, \@locref{hevea_default190}{B.14.1} +\indexitem \texttt{graphicx} package, \@locref{hevea_default191}{B.14.1} +\indexspace +\indexitem \texttt{hacha} command, \@locref{hevea_default270}{C.1.2} +\indexitem \texttt{hanging} package, \@locref{hevea_default265}{B.17.18} +\indexitem \texttt{hevea} boolean register, \@locref{hevea_default19}{5.2.3} +\indexitem \texttt{hevea} command, \@locref{hevea_default267}{C.1.1} +\indexitem \texttt{hevea.sty} \LaTeX{} style file, \@locref{hevea_default8}{5.2} +\indexitem \texttt{\char92heveadate}, \@locref{hevea_default213}{B.16.3} +\indexitem \texttt{\char92heveaimagedir}, \@locref{hevea_default138}{10.6} +\indexitem \texttt{\char92home}, \defocc{\@locref{hevea_default66}{8.1.1}} +\indexitem \texttt{\char92htmlcolor}, \@locref{hevea_default70}{8.1.2} +\indexitem \texttt{\char92htmlfoot}, \@locref{hevea_default147}{B.2} +\indexitem \texttt{\char92htmlhead}, \@locref{hevea_default146}{B.2} +\indexitem \texttt{htmlonly} environment, \defocc{\@locref{hevea_default10}{5.2.1}} +\indexitem \texttt{\char92htmlprefix}, \defocc{\@locref{hevea_default46}{7.3.2}} +\indexitem hyperlinks, \@locref{hevea_default58}{8.1.1}, \@locref{hevea_default249}{B.17.11} +\indexspace +\indexitem \texttt{\char92if}, \@locref{hevea_default206}{B.16.1.4} +\indexitem \texttt{ifpdf} package, \@locref{hevea_default262}{B.17.16} +\indexitem \texttt{ifthen} package, \@locref{hevea_default177}{B.8.5} \indexitem image inclusion\begin{indexenv} -\indexitem bitmap, \@locref{hevea_default69}{8.2} -\indexitem in Postscript, \defocc{\@locref{hevea_default26}{6.3}}, \@locref{hevea_default128}{10.4}, \@locref{hevea_default187}{B.14.1} -\indexitem output format, \@locref{hevea_default129}{10.5} -\end{indexenv} -\indexitem \texttt{\char92imageflush}, \defocc{\@locref{hevea_default24}{6.1}}, \@locref{hevea_default133}{10.5} -\indexitem \texttt{imagen} command, \@locref{hevea_default259}{C.1.5} -\indexitem \texttt{\char92imgsrc}, \@locref{hevea_default47}{7.3.4}, \defocc{\@locref{hevea_default63}{8.1.1}}, \@locref{hevea_default70}{8.2}, \@locref{hevea_default100}{8.5}, \@locref{hevea_default134}{10.5} -\indexitem \texttt{index} package, \@locref{hevea_default227}{B.17.7} -\indexitem \texttt{indexcols} counter, \@locref{hevea_default186}{B.11.5} -\indexitem \texttt{indexenv} environment, \defocc{\@locref{hevea_default185}{B.11.5}} -\indexitem inference rules, \@locref{hevea_default245}{B.17.15} -\indexitem \texttt{\char92input}, \defocc{\@locref{hevea_default182}{B.11.4}} -\indexitem \texttt{inputenc} package, \@locref{hevea_default223}{B.17.4} -\indexitem \texttt{\char92inputencoding}, \defocc{\@locref{hevea_default225}{B.17.4}} -\indexspace -\indexitem \texttt{\char92label}, \@locref{hevea_default155}{B.4.1}, \defocc{\@locref{hevea_default180}{B.11.2}} -\indexitem \texttt{latexonly} environment, \defocc{\@locref{hevea_default7}{5.2.1}}, \@locref{hevea_default14}{5.2.2} -\indexitem \texttt{\char92let}, \@locref{hevea_default150}{B.2}, \defocc{\@locref{hevea_default200}{B.16.1.2}} -\indexitem \texttt{listings} package, \@locref{hevea_default239}{B.17.13} -\indexitem \texttt{\char92loadcssfile}, \defocc{\@locref{hevea_default126}{9.6.3}} -\indexitem \texttt{longtable} package, \@locref{hevea_default242}{B.17.14} -\indexitem \texttt{\char92lstavoidwhitepre}, \defocc{\@locref{hevea_default241}{B.17.13}} -\indexspace -\indexitem \texttt{\char92mailto}, \defocc{\@locref{hevea_default62}{8.1.1}} -\indexitem \texttt{\char92marginpar}, \defocc{\@locref{hevea_default176}{B.9}} -\indexitem math accents, \@locref{hevea_default170}{B.7.6} -\indexitem \texttt{mathpartir} package, \@locref{hevea_default244}{B.17.15} +\indexitem bitmap, \@locref{hevea_default71}{8.2} +\indexitem in Postscript, \defocc{\@locref{hevea_default28}{6.3}}, \@locref{hevea_default130}{10.4}, \@locref{hevea_default189}{B.14.1} +\indexitem output format, \@locref{hevea_default131}{10.5} +\end{indexenv} +\indexitem \texttt{\char92imageflush}, \defocc{\@locref{hevea_default26}{6.1}}, \@locref{hevea_default135}{10.5} +\indexitem \texttt{imagen} command, \@locref{hevea_default272}{C.1.5} +\indexitem \texttt{\char92imgsrc}, \@locref{hevea_default49}{7.3.4}, \defocc{\@locref{hevea_default65}{8.1.1}}, \@locref{hevea_default72}{8.2}, \@locref{hevea_default102}{8.5}, \@locref{hevea_default136}{10.5} +\indexitem \texttt{index} package, \@locref{hevea_default240}{B.17.7} +\indexitem \texttt{indexcols} counter, \@locref{hevea_default188}{B.11.5} +\indexitem \texttt{indexenv} environment, \defocc{\@locref{hevea_default187}{B.11.5}} +\indexitem inference rules, \@locref{hevea_default258}{B.17.15} +\indexitem \texttt{\char92input}, \defocc{\@locref{hevea_default184}{B.11.4}} +\indexitem \texttt{inputenc} package, \@locref{hevea_default236}{B.17.4} +\indexitem \texttt{\char92inputencoding}, \defocc{\@locref{hevea_default238}{B.17.4}} +\indexspace +\indexitem \texttt{\char92label}, \@locref{hevea_default157}{B.4.1}, \defocc{\@locref{hevea_default182}{B.11.2}} +\indexitem \texttt{latexonly} environment, \defocc{\@locref{hevea_default9}{5.2.1}}, \@locref{hevea_default16}{5.2.2} +\indexitem \texttt{\char92let}, \@locref{hevea_default152}{B.2}, \defocc{\@locref{hevea_default202}{B.16.1.2}} +\indexitem \texttt{listings} package, \@locref{hevea_default252}{B.17.13} +\indexitem \texttt{\char92loadcssfile}, \defocc{\@locref{hevea_default128}{9.6.3}} +\indexitem \texttt{longtable} package, \@locref{hevea_default255}{B.17.14} +\indexitem \texttt{\char92lstavoidwhitepre}, \defocc{\@locref{hevea_default254}{B.17.13}} +\indexspace +\indexitem \texttt{\char92mailto}, \defocc{\@locref{hevea_default64}{8.1.1}} +\indexitem \texttt{\char92marginpar}, \defocc{\@locref{hevea_default178}{B.9}} +\indexitem math accents, \@locref{hevea_default172}{B.7.6} +\indexitem \texttt{mathjax} environment, \defocc{\@locref{hevea_default229}{B.16.6.1}} +\indexitem \texttt{mathjax} package, \@locref{hevea_default220}{B.16.6} \begin{indexenv} -\indexitem derivation trees, \@locref{hevea_default248}{B.17.15.4} -\indexitem \verb+\inferrule+, \@locref{hevea_default247}{B.17.15.2} -\indexitem \texttt{mathpar} environment, \@locref{hevea_default246}{B.17.15.1} -\end{indexenv} -\indexitem \texttt{multibib} package, \@locref{hevea_default230}{B.17.9} -\indexitem \texttt{multind} package, \@locref{hevea_default228}{B.17.7} -\indexspace -\indexitem \texttt{natbib} package, \@locref{hevea_default229}{B.17.8} -\indexitem \texttt{\char92newcites}, \@locref{hevea_default231}{B.17.9} -\indexitem \texttt{\char92newcommand}, \@locref{hevea_default173}{B.8.1} -\indexitem \texttt{\char92newif}, \@locref{hevea_default203}{B.16.1.4} -\indexitem \texttt{\char92newstyle}, \defocc{\@locref{hevea_default114}{9.1}} -\indexitem \texttt{\char92normalmarginpar}, \defocc{\@locref{hevea_default178}{B.9}} -\indexitem \texttt{\char92notocnumber}, \@locref{hevea_default30}{7.2.2} -\indexspace -\indexitem \texttt{\char92oneurl}, \@locref{hevea_default66}{8.1.1} -\indexspace -\indexitem PDF, \@locref{hevea_default263}{C.1.5} -\indexitem PNG, \@locref{hevea_default130}{10.5}, \@locref{hevea_default260}{C.1.5} -\indexitem pdflatex, \@locref{hevea_default264}{C.1.5} -\indexitem \texttt{\char92purple}, \@locref{hevea_default95}{8.5} -\indexspace -\indexitem \texttt{raw} environment, \@locref{hevea_default91}{8.4} -\indexitem \texttt{rawhtml} environment, \defocc{\@locref{hevea_default9}{5.2.1}}, \@locref{hevea_default88}{8.4}, \@locref{hevea_default151}{B.2} -\indexitem \texttt{\char92rawhtmlinput}, \@locref{hevea_default89}{8.4} -\indexitem \texttt{\char92rawinput}, \@locref{hevea_default92}{8.4} -\indexitem \texttt{rawtext} environment, \@locref{hevea_default93}{8.4} -\indexitem \texttt{\char92rawtextinput}, \@locref{hevea_default94}{8.4} -\indexitem \texttt{\char92ref}, \defocc{\@locref{hevea_default181}{B.11.2}} -\indexitem \texttt{\char92renewcommand}, \@locref{hevea_default174}{B.8.1} -\indexitem \texttt{\char92reversemarginpar}, \defocc{\@locref{hevea_default177}{B.9}} -\indexspace -\indexitem SVG, \@locref{hevea_default132}{10.5}, \@locref{hevea_default262}{C.1.5} -\indexitem \texttt{\char92setenvclass}, \@locref{hevea_default98}{8.5}, \defocc{\@locref{hevea_default116}{9.3}} -\indexitem \texttt{\char92setlinkstext}, \defocc{\@locref{hevea_default46}{7.3.4}} -\indexitem spacing, \see{`` ''}{\@locref{hevea_default154}{B.3.1}} -\indexitem sqrt, \@locref{hevea_default163}{B.7.3} -\indexitem style-sheets, \@locref{hevea_default113}{9} +\indexitem \texttt{displayjax} environment, \@locref{hevea_default224}{B.16.6.1} +\indexitem \texttt{mathjax} environment, \@locref{hevea_default228}{B.16.6.1} +\indexitem \verb+\textjax+, \@locref{hevea_default226}{B.16.6.1} +\end{indexenv} +\indexitem \texttt{mathjax.sty} \LaTeX{} style file, \@locref{hevea_default223}{B.16.6} +\indexitem \texttt{mathjaxauto.hva} file, \@locref{hevea_default230}{B.16.6.2} +\indexitem \texttt{mathpartir} package, \@locref{hevea_default257}{B.17.15} \begin{indexenv} -\indexitem \verb+\divstyle+, \@locref{hevea_default121}{9.5.2} -\indexitem \verb+\loadcssfile+, \@locref{hevea_default127}{9.6.3} -\indexitem \verb+\newstyle+, \@locref{hevea_default115}{9.1} -\indexitem and \hacha, \@locref{hevea_default27}{7.1} +\indexitem derivation trees, \@locref{hevea_default261}{B.17.15.4} +\indexitem \verb+\inferrule+, \@locref{hevea_default260}{B.17.15.2} +\indexitem \texttt{mathpar} environment, \@locref{hevea_default259}{B.17.15.1} +\end{indexenv} +\indexitem \texttt{multibib} package, \@locref{hevea_default243}{B.17.9} +\indexitem \texttt{multind} package, \@locref{hevea_default241}{B.17.7} +\indexspace +\indexitem \texttt{natbib} package, \@locref{hevea_default242}{B.17.8} +\indexitem \texttt{\char92newcites}, \@locref{hevea_default244}{B.17.9} +\indexitem \texttt{\char92newcommand}, \@locref{hevea_default175}{B.8.1} +\indexitem \texttt{\char92newif}, \@locref{hevea_default205}{B.16.1.4} +\indexitem \texttt{\char92newstyle}, \defocc{\@locref{hevea_default116}{9.1}} +\indexitem \texttt{\char92normalmarginpar}, \defocc{\@locref{hevea_default180}{B.9}} +\indexitem \texttt{\char92notocnumber}, \@locref{hevea_default32}{7.2.2} +\indexspace +\indexitem \texttt{\char92oneurl}, \@locref{hevea_default68}{8.1.1} +\indexspace +\indexitem PDF, \@locref{hevea_default276}{C.1.5} +\indexitem PNG, \@locref{hevea_default132}{10.5}, \@locref{hevea_default273}{C.1.5} +\indexitem pdflatex, \@locref{hevea_default277}{C.1.5} +\indexitem \texttt{\char92purple}, \@locref{hevea_default97}{8.5} +\indexspace +\indexitem \texttt{raw} environment, \@locref{hevea_default93}{8.4} +\indexitem \texttt{rawhtml} environment, \defocc{\@locref{hevea_default11}{5.2.1}}, \@locref{hevea_default90}{8.4}, \@locref{hevea_default153}{B.2} +\indexitem \texttt{\char92rawhtmlinput}, \@locref{hevea_default91}{8.4} +\indexitem \texttt{\char92rawinput}, \@locref{hevea_default94}{8.4} +\indexitem \texttt{rawtext} environment, \@locref{hevea_default95}{8.4} +\indexitem \texttt{\char92rawtextinput}, \@locref{hevea_default96}{8.4} +\indexitem \texttt{\char92ref}, \defocc{\@locref{hevea_default183}{B.11.2}} +\indexitem \texttt{\char92renewcommand}, \@locref{hevea_default176}{B.8.1} +\indexitem \texttt{\char92reversemarginpar}, \defocc{\@locref{hevea_default179}{B.9}} +\indexspace +\indexitem SVG, \@locref{hevea_default134}{10.5}, \@locref{hevea_default275}{C.1.5} +\indexitem \texttt{\char92setenvclass}, \@locref{hevea_default100}{8.5}, \defocc{\@locref{hevea_default118}{9.3}} +\indexitem \texttt{\char92setlinkstext}, \defocc{\@locref{hevea_default48}{7.3.4}} +\indexitem spacing, \see{`` ''}{\@locref{hevea_default156}{B.3.1}} +\indexitem sqrt, \@locref{hevea_default165}{B.7.3} +\indexitem style-sheets, \@locref{hevea_default115}{9} +\begin{indexenv} +\indexitem \verb+\divstyle+, \@locref{hevea_default123}{9.5.2} +\indexitem \verb+\loadcssfile+, \@locref{hevea_default129}{9.6.3} +\indexitem \verb+\newstyle+, \@locref{hevea_default117}{9.1} +\indexitem and \hacha, \@locref{hevea_default29}{7.1} \end{indexenv} \indexitem styles for\begin{indexenv} -\indexitem lists, \@locref{hevea_default123}{9.5.3} -\indexitem miscellaneous objects, \@locref{hevea_default120}{9.5.2} -\indexitem title, \@locref{hevea_default119}{9.5.1} -\end{indexenv} -\indexitem \texttt{supertabular} package, \@locref{hevea_default243}{B.17.14} -\indexspace -\indexitem \texttt{\char92tableofcontents}, \defocc{\@locref{hevea_default156}{B.4.3}} -\indexitem \texttt{tabularx} package, \@locref{hevea_default221}{B.17.2} -\indexitem tabulation, \@locref{hevea_default2}{3.1.2} -\indexitem text-level elements, \@locref{hevea_default85}{8.3} +\indexitem lists, \@locref{hevea_default125}{9.5.3} +\indexitem miscellaneous objects, \@locref{hevea_default122}{9.5.2} +\indexitem title, \@locref{hevea_default121}{9.5.1} +\end{indexenv} +\indexitem \texttt{supertabular} package, \@locref{hevea_default256}{B.17.14} +\indexspace +\indexitem \texttt{\char92tableofcontents}, \defocc{\@locref{hevea_default158}{B.4.3}} +\indexitem \texttt{tabularx} package, \@locref{hevea_default234}{B.17.2} +\indexitem tabulation, \@locref{hevea_default3}{3.1.2} +\indexitem text-level elements, \@locref{hevea_default87}{8.3} \begin{indexenv} -\indexitem span, \@locref{hevea_default86}{8.3} +\indexitem span, \@locref{hevea_default88}{8.3} \end{indexenv} -\indexitem \texttt{\char92textcolor}, \@locref{hevea_default192}{B.14.2} -\indexitem \texttt{\char92textoverline}, \@locref{hevea_default167}{B.7.5} -\indexitem \texttt{\char92textstackrel}, \@locref{hevea_default165}{B.7.5} -\indexitem \texttt{\char92textunderline}, \@locref{hevea_default166}{B.7.5} -\indexitem Thai, \@locref{hevea_default251}{B.17.17} -\indexitem \texttt{\char92title}, \@locref{hevea_default160}{B.5.3} -\indexitem \texttt{\char92tocnumber}, \@locref{hevea_default29}{7.2.2} -\indexitem \texttt{\char92today}, \@locref{hevea_default161}{B.5.3}, \@locref{hevea_default209}{B.16.3} -\indexitem \texttt{toimage} environment, \defocc{\@locref{hevea_default10}{5.2.1}}, \@locref{hevea_default16}{5.2.2}, \@locref{hevea_default23}{6.1} -\indexitem \texttt{\char92toplinks}, \defocc{\@locref{hevea_default45}{7.3.3}} -\indexspace -\indexitem \texttt{undersection} package, \@locref{hevea_default215}{B.16.4} -\indexitem unicode, \@locref{hevea_default164}{B.7.4} -\indexitem \texttt{\char92url}, \@locref{hevea_default65}{8.1.1}, \defocc{\@locref{hevea_default235}{B.17.11}} -\indexitem \texttt{url} package, \@locref{hevea_default237}{B.17.11} -\indexitem \texttt{\char92urldef}, \@locref{hevea_default238}{B.17.11} -\indexitem \texttt{\char92usepackage}, \@locref{hevea_default159}{B.5.2} +\indexitem \texttt{\char92textcolor}, \@locref{hevea_default194}{B.14.2} +\indexitem \texttt{\char92textjax}, \defocc{\@locref{hevea_default222}{B.16.6}}, \defocc{\@locref{hevea_default227}{B.16.6.1}} +\indexitem \texttt{\char92textoverline}, \@locref{hevea_default169}{B.7.5} +\indexitem \texttt{\char92textstackrel}, \@locref{hevea_default167}{B.7.5} +\indexitem \texttt{\char92textunderline}, \@locref{hevea_default168}{B.7.5} +\indexitem Thai, \@locref{hevea_default264}{B.17.17} +\indexitem \texttt{\char92title}, \@locref{hevea_default162}{B.5.3} +\indexitem \texttt{\char92tocnumber}, \@locref{hevea_default31}{7.2.2} +\indexitem \texttt{\char92today}, \@locref{hevea_default163}{B.5.3}, \@locref{hevea_default211}{B.16.3} +\indexitem \texttt{toimage} environment, \defocc{\@locref{hevea_default12}{5.2.1}}, \@locref{hevea_default18}{5.2.2}, \@locref{hevea_default25}{6.1} +\indexitem \texttt{\char92toplinks}, \defocc{\@locref{hevea_default47}{7.3.3}} +\indexspace +\indexitem \texttt{undersection} package, \@locref{hevea_default217}{B.16.4} +\indexitem unicode, \@locref{hevea_default166}{B.7.4} +\indexitem \texttt{\char92url}, \@locref{hevea_default67}{8.1.1}, \defocc{\@locref{hevea_default248}{B.17.11}} +\indexitem \texttt{url} package, \@locref{hevea_default250}{B.17.11} +\indexitem \texttt{\char92urldef}, \@locref{hevea_default251}{B.17.11} +\indexitem \texttt{\char92usepackage}, \@locref{hevea_default0}{2.3.2}, \@locref{hevea_default161}{B.5.2} \indexspace -\indexitem \texttt{verbimage} environment, \defocc{\@locref{hevea_default11}{5.2.1}}, \@locref{hevea_default15}{5.2.2} -\indexitem \texttt{verblatex} environment, \defocc{\@locref{hevea_default12}{5.2.1}}, \@locref{hevea_default13}{5.2.2} +\indexitem \texttt{verbimage} environment, \defocc{\@locref{hevea_default13}{5.2.1}}, \@locref{hevea_default17}{5.2.2} +\indexitem \texttt{verblatex} environment, \defocc{\@locref{hevea_default14}{5.2.1}}, \@locref{hevea_default15}{5.2.2} \indexspace -\indexitem \texttt{winfonts} package, \@locref{hevea_default217}{B.16.5} +\indexitem \texttt{winfonts} package, \@locref{hevea_default219}{B.16.5} \indexspace -\indexitem \texttt{xxcharset.exe} script, \@locref{hevea_default112}{8.6} -\indexitem \texttt{xxdate.exe} script, \@locref{hevea_default210}{B.16.3} +\indexitem \texttt{xxcharset.exe} script, \@locref{hevea_default114}{8.6} +\indexitem \texttt{xxdate.exe} script, \@locref{hevea_default212}{B.16.3} \end{indexenv} diff -pruN 2.29-2/manual.html 2.32-1/manual.html --- 2.29-2/manual.html 2016-07-26 12:07:27.000000000 +0000 +++ 2.32-1/manual.html 2018-07-04 13:20:49.000000000 +0000 @@ -2,7 +2,7 @@ - + + HEVEA User Documentation -Version 2.29 +Version 2.32 - - +

                    HEVEA User Documentation
                    -Version 2.29

                    Luc Maranget*

                    July 26, 2016

                    HEVEA User Documentation
                    +Version 2.32

                    Luc Maranget*

                    July 4, 2018


                    This manual also exists in -compressed Postscript, -PDF, and as -a bundle of HTML files. -


                    Abstract: -HEVEA is a LATEX to +compressed Postscript, +PDF, and as +a bundle of HTML files. +


                    Abstract: +HEVEA is a LATEX to html translator. The input language is a fairly complete subset of LATEX 2є (old LATEX style is also accepted) and the output language is html that is (hopefully) correct with respect to -version 5 [HTML-5a, HTML-5b]

                    HEVEA understands LATEX macro definitions. Simple user style +version 5 [HTML-5a, HTML-5b]

                    HEVEA understands LATEX macro definitions. Simple user style files are understood with little or no modifications. -Furthermore, HEVEA customisation is done by writing LATEX code.

                    HEVEA is written in Objective Caml, as many lexers. It is -quite fast and flexible. Using HEVEA it is possible to translate +Furthermore, HEVEA customisation is done by writing LATEX code.

                    HEVEA is written in Objective Caml, as many lexers. It is +quite fast and flexible. Using HEVEA it is possible to translate large documents such as manuals, books, etc. very quickly. All documents are translated as one single html file. Then, the output -file can be cut into smaller files, using the companion program HACHA.

                    HEVEA can also be instructed to output plain text or info files.

                    Information on HEVEA is available at http://hevea.inria.fr/. +file can be cut into smaller files, using the companion program HACHA.

                    HEVEA can also be instructed to output plain text or info files.

                    Information on HEVEA is available at http://hevea.inria.fr/.

                    Contents

                  • 4  How to detect and correct errors -
                  • 5  Making HEVEA and LATEX both happy +
                  • 5  Making HEVEA and LATEX both happy
                  • 6  With a little help from LATEX -
                  • 7  Cutting your document into pieces with HACHA +
                  • 7  Cutting your document into pieces with HACHA -
                  • 10  Customising HEVEA +
                  • 10  Customising HEVEA
                  • B.5  Classes, Packages and Page Styles -
                  • B.17  Implemented Packages +
                  • B.17  Implemented Packages
                • Part C  Practical information @@ -418,20 +421,22 @@ Assume that you have a file,
                  # hevea a.tex
                  -

                  Probably, you will get some warnings. If -HEVEA does not crash, just ignore them for the moment +

                  +Probably, you will get some warnings. If +HEVEA does not crash, just ignore them for the moment (Section 4 explains how to correct errors).

                  If everything goes fine, this will produce a new file, -a.html, which you can visualise through a html browser.

                  If you wish to experiment HEVEA on small LATEX source fragments, -then launch HEVEA without arguments. HEVEA will read its +a.html, which you can visualise through a html browser.

                  If you wish to experiment HEVEA on small LATEX source fragments, +then launch HEVEA without arguments. HEVEA will read its standard input and print the translation on its standard output. For instance:

                  # hevea
                   $x \in \mathcal{E}$
                   ^D
                   <span style="font-style:italic">x</span> &#X2208; <span style="color:red"><span style="font-style:italic">E</span></span>
                  -

                  Incidentally, notice that the symbol “∈” translates to the +

                  +Incidentally, notice that the symbol “∈” translates to the appropriate numerical character reference and that the calligraphic -letter “E” renders as a red “E”. You can find some +letter “E” renders as a red “E”. You can find some more elaborate examples in the on-line documentation.

                  @@ -442,60 +447,61 @@ define document layout parameters, comma

                  2.1  Standard base styles

                  The base style of a LATEX document is the argument to the \documentclass command (\documentstyle in old style). Normally, the base style of a document defines the structure and -appearance of the whole document.

                  HEVEA really knows about two LATEX base styles, +appearance of the whole document.

                  HEVEA really knows about two LATEX base styles, article and book. Additionally, the report base style is recognized and considered equivalent to book and the seminar base style for making slides is recognized and -implemented by small additions on the article style.

                  Base style style is implemented by an HEVEA specific +implemented by small additions on the article style.

                  Base style style is implemented by an HEVEA specific style file style.hva. -More precisely, HEVEA interprets +More precisely, HEVEA interprets \documentclass{style} by attempting to load the file style.hva (see section C.1.1.1 on where -HEVEA searches for files). -Thus, at the moment, HEVEA distribution includes the files, +HEVEA searches for files). +Thus, at the moment, HEVEA distribution includes the files, article.hva, book.hva, etc.

                  2.2  Other base styles

                  -Documents whose base style is not recognized by HEVEA can be +Documents whose base style is not recognized by HEVEA can be processed when the unknown base style is a derivation of a recognized base style.

                  Let us assume that doc.tex uses an exotic base style such as acmconf. Then, typing hevea doc.tex will yield an error, since -HEVEA cannot find the acmconf.hva file: +HEVEA cannot find the acmconf.hva file:

                  # hevea.opt doc.tex
                   doc.tex:1: Warning: Cannot find file: acmconf.hva
                   doc.tex:1: Error while reading LaTeX: No base style
                   Adios
                  -

                  This situation is avoided by invoking HEVEA with the known +

                  This situation is avoided by invoking HEVEA with the known base style file article.hva as an extra argument:

                  # hevea article.hva doc.tex
                  -

                  The extra argument instructs -HEVEA to load its article.hva +

                  +The extra argument instructs +HEVEA to load its article.hva style file before processing doc.tex. It will then ignore the document base style specified by \documentclass (or \documentstyle).

                  Observe that the fix above works because the acmconf and article base styles look the same to the document (i.e. they define the same macros). More generally, most base styles that are neither -article nor book are in fact variations +article nor book are in fact variations on either two of them. However, such styles usually provides extra macros. If users documents use these macros, then users should also instruct -HEVEA about them (see section 4.1).

                  Finally, it is important to notice that +HEVEA about them (see section 4.1).

                  Finally, it is important to notice that renaming a base style file style.cls into style.hva will not work in general. As a matter of fact, base style files are TEX and not LATEX source and -HEVEA will almost surely fail on TEX-ish input.

                  +HEVEA will almost surely fail on TEX-ish input.

                  2.3  Other style files

                  A LATEX document usually loads additional style files, by using the commands \input or \usepackage or \input.

                  2.3.1  Files loaded with \input

                  -Just like LATEX, HEVEA reacts to the construct -\input{file} by loading the file -file. (if I got it right, HEVEA even follows TEX’s crazy +Just like LATEX, HEVEA reacts to the construct +\input{file} by loading the file +file. (if I got it right, HEVEA even follows TEX’s crazy conventions on .tex extensions).

                  As it is often the case, assume that the document doc.tex has a \input{mymacros.tex} instruction in its preamble, where mymacros.tex gathers custom definitions. @@ -507,33 +513,35 @@ The new definitions are best collected i mymacros.hva for instance. Then, doc.tex is to be translated by issuing the command:

                  # hevea mymacros.hva doc.tex
                  -

                  The file mymacros.hva is processed before +

                  +The file mymacros.hva is processed before doc.tex (and thus before mymacros.tex). -As a consequence of HEVEA behaviour with respect to +As a consequence of HEVEA behaviour with respect to definition and redefinition (see section B.8.1), the macro definitions in mymacros.hva take precedence over the ones in mymacros.tex, provided the document original definitions (the ones in mymacros.tex) are performed by \newcommand -(or \newenvironment).

                  Another situation is when HEVEA fails to process a whole -style file. Usually, this means that HEVEA crashes on that style +(or \newenvironment).

                  Another situation is when HEVEA fails to process a whole +style file. Usually, this means that HEVEA crashes on that style file. The basic idea is then to write a mymacros.hva style file that contains alternative definitions for all the commands defined in mymacros.sty. -Then, HEVEA should be instructed +Then, HEVEA should be instructed to load mymacros.hva and not to load mymacros.tex. This is done by invoking hevea as follows:

                  # hevea mymacros.hva -e mymacros.tex doc.tex
                   

                  Of course, mymacros.hva must now contain replacements for all the useful macros of mymacro.tex.

                  - -

                  2.3.2  Files loaded with \usepackage

                  + +

                  2.3.2  Files loaded with \usepackage

                  + As far as I know, LATEX reacts to the construct -\usepackage{name} by loading the file -name.sty. -HEVEA reacts in a similar, but different, manner, by -loading the file name.hva.

                  HEVEA distributions already includes quite a few .hva +\usepackage{name} by loading the file +name.sty. +HEVEA reacts in a similar, but different, manner, by +loading the file name.hva.

                  HEVEA distributions already includes quite a few .hva implementations of famous packages (see section B.17). When a given package (say zorglub) is not implemented, the situation may not be as bad as it may seem first. @@ -541,7 +549,7 @@ Hopefully, you are only using a few comm zorglub, and you feel confident enough to implement them yourself. Then, it suffices to put your definitions in file zorglub.hva -and HEVEA will react to \usepackage{zorglub} by loading +and HEVEA will react to \usepackage{zorglub} by loading zorglub.hva.

                  See section B.5.2 for the full story on \usepackage.

                  3  A note on style

                  @@ -551,8 +559,8 @@ Sequence of spaces normally are translat Newlines in the input document undergo a special treatement. A newline triggers a special scanning mode that reads all following spaces and newlines. In case at least one additional newline character -is read, then HEVEA executes the \par command. -Otherwise, HEVEA outputs a single newline character. +is read, then HEVEA executes the \par command. +Otherwise, HEVEA outputs a single newline character. This process approximates TEX process for introducting paragraph breaks and, as a result, empty lines produce paragraph breaks.

                  Space after commands with no argument is skipped (as in LATEX) — however this is not true in math mode, as explained in @@ -562,27 +570,29 @@ They can be skipped in first reading.

                  3.1.1  Spurious Paragraphs

                  Paragraphs are rendered by the means of p elements. -HEVEA is a bit simplistic in breaking paragraphs and spurious paragraphs +HEVEA is a bit simplistic in breaking paragraphs and spurious paragraphs may be present in the final html document. -Normally, as HEVEA never outputs p elements whose contents is +Normally, as HEVEA never outputs p elements whose contents is made of spaces only, this should not happen very often. Unfortunately, some commands do not produce any output in LATEX, -while they do produce output in HEVEA: those commands +while they do produce output in HEVEA: those commands are \label, \index etc. -HEVEA translates -\label{name} into the anchor -<a id="name"></a>. As a result, the following +HEVEA translates +\label{name} into the anchor +<a id="name"></a>. As a result, the following source fragment will introduce a spurious paragraph.

                  This a first paragraph.
                   
                   \label{label}
                   
                   This is another paragraph.
                  -

                  Indeed, whe have the following translation: +

                  +Indeed, whe have the following translation:

                  <p>This a first paragraph.</p>
                   <p><a id="label"></a></p>
                   <p>This is another paragraph.</p>
                  -

                  Which your browser renders as follows — with additional borders +

                  +Which your browser renders as follows — with additional borders emphasizing p elements.

                  This a first paragraph.

                  @@ -600,11 +610,13 @@ This is another paragraph.

                  \section*{A section}\label{section:label}
                   
                   First paragraph. 
                  -

                  Produced html is, after a few cosmetic simplifications: +

                  +Produced html is, after a few cosmetic simplifications:

                  <h2 class="section">A section</h2>
                   <p><a id="section:label"></a></p>
                   <p>First paragraph.</p>
                  -

                  Output is so, because closing the element h2 implies re-opening +

                  +Output is so, because closing the element h2 implies re-opening a new paragraph. Your browser renders the above html fragment as follows:

                  @@ -613,30 +625,32 @@ Your browser renders the above html frag

                  First paragraph.

                  Here, two possible re-writing of source are:

                  -
                  \section*{A\label{section:label} section}
                  +
                  +
                  +
                  \section*{A\label{section:label} section}
                   
                   First paragraph.
                  -
                  \section*{A section}
                  +
                  \section*{A section}
                   
                   \label{section:label}First paragraph.
                  -

                  In all cases, this amounts to avoiding a paragraph whose contents consists in a sole \label command.

                  Spurious paragraphs are more easily seen by running hevea -with the command-line option -dv, which instructs +with the command-line option -dv, which instructs hevea to add border on some of the elements it produces, including p elements.

                  3.1.2  Spaces after Commands

                  - + Space after commands with no argument is skipped. Consider the following example:

                  \newcommand{\open}{(}
                   \newcommand{\close}{)}
                   \open text opened by ``\verb+\open+''
                   and closed by ``\verb+\close+''\close.
                  -

                  We get: +

                  +We get:

                  @@ -645,7 +659,7 @@ and closed by ``\verb+\close+''\close.

                  In the output above, the space after \open does not find its way to the output.

                  More generally, -HEVEA tries to emulate LATEX behaviour in all situations, but +HEVEA tries to emulate LATEX behaviour in all situations, but discrepancies probably exist. Thus, users are invited to make explicit what they want. This is good practice anyway, because LATEX is mysterious @@ -656,74 +670,75 @@ macro is first applied and then expansed Some space: \tryspace{\bfsymbol}\\ No space: \bfsymbol XXX -

                  Spacing is a bit chaotic here, -the space after symbol remains when #1 is substituted for it -by LATEX (or HEVEA).

                  +

                  +Spacing is a bit chaotic here, +the space after symbol remains when #1 is substituted for it +by LATEX (or HEVEA).

                  - -
                  Some space : symbol XXX
                  No space : symbolXXX + +
                  Some space : symbol XXX
                  No space : symbolXXX

                  Note that, if a space before “XXX” is wanted, then one should probably write:

                  \newcommand{\tryspace}[1]{#1{} XXX}
                  -

                  Finally, whether the tabulation character is a space or not +

                  Finally, whether the tabulation character is a space or not is random, so avoid tabs in your source document.

                  3.2  Math mode

                  -HEVEA math mode is not very far from normal text mode, except that +HEVEA math mode is not very far from normal text mode, except that all letters are shown in italics and that space after macros is echoed.

                  However, typesetting math formulas in html rises two difficulties. First, formulas contain symbols, such as Greek letters; second, even simple formulas do not follow the simple basic typesetting model of html.

                  3.2.1  Spacing in math mode

                  - + By contrast with LATEX, spaces from the input are significant in math mode, this -feature allows users to instruct HEVEA +feature allows users to instruct HEVEA on how to put space in their formulas. For instance, \alpha\rightarrow\beta is typeset without spaces between symbols, whereas \alpha \rightarrow \beta produces these spaces. -

                  - +

                  \alpha\rightarrow\beta : α→β
                  \alpha \rightarrow \beta : α → β
                  +
                  \alpha\rightarrow\beta : α→β
                  \alpha \rightarrow \beta : α → β

                  Note that LATEX ignores spaces in math mode, so that users can -freely adjust HEVEA output without changing anything to LATEX +freely adjust HEVEA output without changing anything to LATEX output.

                  3.2.2  Symbols

                  -


                  -
                  +


                  +
                  Figure 1: Some symbols
                  Figure 1: Some symbols
                  - - - - - - - +
                  \in:      \notin:  
                  \int:      \prod:  
                  \preceq:      \prec:  
                  \leq:      \geq:  
                  \cup:      \cap:  
                  \supset:      \subset:  
                  \supseteq:      \subseteq:  
                  + + + + + +
                  \in:      \notin:  
                  \int:      \prod:  
                  \preceq:      \prec:  
                  \leq:      \geq:  
                  \cup:      \cap:  
                  \supset:      \subset:  
                  \supseteq:      \subseteq:  
                  -

                  -With respect to previous versions of HEVEA since the begining, the +


                  +With respect to previous versions of HEVEA since the begining, the treatment of symbols has significantly evolved. Outputting symbols is now performed by using Unicode character references, an option that much more complies whith standards than the previous option of selecting a “symbol” font. Observe that this choice is now possible, because more and more browsers correctly display such references. See Figure 1 for a few such symbols.

                  However, this means that ancient or purposely limited browsers (such as -text-oriented browsers) cannot display maths, as translated by HEVEA. +text-oriented browsers) cannot display maths, as translated by HEVEA. For authors that insist on avoiding symbols that cannot be shown -by any browser, HEVEA offers a degraded mode that outputs text +by any browser, HEVEA offers a degraded mode that outputs text in place of symbols. -HEVEA operates in this mode when given the -textsymbols +HEVEA operates in this mode when given the -textsymbols command-line option. Replacement text is in English. For instance. the “∈” symbol is replace by “in”. This is far from being satisfactory, but degraded mode may be @@ -734,7 +749,7 @@ Apart from containing symbols, formulas constraints: sub-elements must be combined together following patterns that departs from normal text typesetting. For instance, fractions numerators and denominators must be placed one above the other. -HEVEA handles such constraints in display mode only.

                  The main two operating modes of HEVEA are text mode and +HEVEA handles such constraints in display mode only.

                  The main two operating modes of HEVEA are text mode and display mode. Text mode is the mode for typesetting normal text, when in this mode, text items are echoed one following the other and @@ -747,7 +762,7 @@ html block-level elements start a new li Conversly, since opening a html block-level elements means starting a new line, any text that sould appear inside a paragraph must be translated using only html text-level elements. -HEVEA chooses to translate in-text formulas that way.

                  HEVEA display mode allows more control on text placement, since +HEVEA chooses to translate in-text formulas that way.

                  HEVEA display mode allows more control on text placement, since entering display mode means opening a html table element and that tables allow to control the relative position of their sub-elements. @@ -765,56 +780,56 @@ For instance, a displayed fraction ($\int_1^2 xdx = \frac{3}{2}$ appears as: -∫12 xdx =3/2, +∫12 xdx =3/2, while the same formula has a better aspect in display mode: -

                  -
                  2

                  +

                  + - -
                  2


                  1
                  xdx =  + +
                  3
                  1
                  xdx =  - +
                  3
                  2
                  2

                  -As a consequence, HEVEA is more powerful in display mode and +As a consequence, HEVEA is more powerful in display mode and formulas should be displayed as soon as they get a bit complicated. -This rule is also true in LATEX but it is more strict in HEVEA, +This rule is also true in LATEX but it is more strict in HEVEA, since html capabilities to typeset formulas inside text are quite poor. In particular, it is not possible to get in-text “real” fractions or -in-text limit-like subscripts.

                  Users should remember that HEVEA is not TEX or LATEX and that -HEVEA author neither is D. E. Knuth nor L. Lamport. +in-text limit-like subscripts.

                  Users should remember that HEVEA is not TEX or LATEX and that +HEVEA author neither is D. E. Knuth nor L. Lamport. Thus, some formulas may be rendered poorly. For instance, two fractions with different denominator and numerator height look strange. -

                  +

                  1
                  - -
                  1
                  -
                  - - -
                  N
                  i=0
                  Ui
                   = 
                  + +
                  - - -
                  N
                  i=0
                  Ui
                  +
                  + + +
                  N
                  i=0
                  Ui
                   =  - +
                  + + +
                  N
                  i=0
                  Ui
                  1
                  1

                  The reason is that vertical displays in an horizontal display are html tables that always get centered in the vertical direction. -Such a crude model cannot faithfully emulate any TEX box placement.

                  Users can get an idea on how HEVEA combines elements in display mode -by giving the -dv command-line option, which -instructs HEVEA to add +Such a crude model cannot faithfully emulate any TEX box placement.

                  Users can get an idea on how HEVEA combines elements in display mode +by giving the -dv command-line option, which +instructs HEVEA to add borders to the table elements introduced by displays.

                  -

                  3.2.4  Arrays and display mode

                  By contrast with formulas, which HEVEA attempts to render with +

                  3.2.4  Arrays and display mode

                  By contrast with formulas, which HEVEA attempts to render with text-level elements only when they appear inside paragraphs, LATEX arrays always translate to the block-level element table, thereby introducing non-desired line @@ -826,10 +841,11 @@ Consider the following source: \begin{tabular}{|cc|} \hline item-1 & item-2 \\ \hline\end{tabular}. Next sentence. -

                  We get: +

                  +We get:

                  This is a small array: -
                  item-1item-2 +
                  item-1item-2
                  . Next sentence.

                  However, since in some sense, all html tables are displayed, the @@ -840,34 +856,36 @@ specification is l, c mode (see section B.10.2).

                  3.3  Warnings

                  -When HEVEA thinks it cannot translate a symbol or construct +When HEVEA thinks it cannot translate a symbol or construct properly, it issues a warning. This draws user attention onto a potential problem. However, rendering may be correct.

                  -In the following (silly) example, HEVEA gets nervous because of +In the following (silly) example, HEVEA gets nervous because of the complicated length given as argument to \hspace:

                  \newlength{\mylength}\setlength{\mylength}{5pt}
                   \begin{tabular}{c@{\hspace{\mylength}}c}
                   Before & After
                   \end{tabular}
                  -

                  Running HEVEA on this input produces a warning: +

                  +Running HEVEA on this input produces a warning:

                  # hevea manual.tex
                   ...
                   manual.tex:507: Warning: \hspace with arg '\mylength'
                   ...
                  -

                  However the final rendering is correct: +

                  +However the final rendering is correct:

                  -
                  BeforeAfter +
                  BeforeAfter

                  Note that all warnings can be suppressed with the -s (silent) option. When a warning reveals a real problem, it can often be cured by -writing a specific macro. The next two sections introduce HEVEA +writing a specific macro. The next two sections introduce HEVEA macros, then section 4 describes how to proceed with greater detail.

                  3.4  Commands

                  -Just like LATEX, HEVEA can be seen as a macro language, macros +Just like LATEX, HEVEA can be seen as a macro language, macros are rewritten until no more expansion is possible. Then, either some characters (such as letters, integers…) are outputed or some internal operation (such as changing font attributes, or arranging @@ -875,10 +893,10 @@ text items in a certain manner) are perf by users. However, predicting program behaviour and correcting errors may prove difficult, since final output or errors may occur after several levels of macro expansion. -As a consequence, users can tailor HEVEA to their needs, but it +As a consequence, users can tailor HEVEA to their needs, but it remains a subtle task. Nevertheless, happy LATEX users should enjoy customizing -HEVEA, since this is done by writing LATEX code.

                  +HEVEA, since this is done by writing LATEX code.

                  3.5  Style choices

                  LATEX and html differ in many aspects. For instance, LATEX allows @@ -886,20 +904,21 @@ fine control over text placement, wherea html does not. More symbols and font attributes are available in LATEX than in html. Conversely, html has font attributes, such as color, which -standard LATEX has not.

                  Therefore, there are many situations where HEVEA just cannot +standard LATEX has not.

                  Therefore, there are many situations where HEVEA just cannot render the visual effect of LATEX constructions. Here some choices have to be made. For instance, calligraphic letters (\mathcal) -are rendered in red.

                  If you are not satisfied with HEVEA rendering of text style +are rendered in red.

                  If you are not satisfied with HEVEA rendering of text style declarations, then you can choose your own, by redefining the \cal macros, using \renewcommand, the macro redefinition operator of -LATEX. The key point is that you need not worry about HEVEA +LATEX. The key point is that you need not worry about HEVEA internals: just redefine the old-LATEX style text-style declarations (i.e. \it, \sc, etc.) and everything should get fine:

                  \renewcommand{\sc}{\Huge}
                   \renewcommand{\cal}{\em}
                  -

                  (See sections 4 and 5 on how to make such +

                  +(See sections 4 and 5 on how to make such changes while leaving your file processable by LATEX, and section 10.2 for a more thorough descripton of customizing type styles).

                  @@ -907,15 +926,15 @@ With such redefinitions, we get:

                  -This is small caps and this is CALLIGRAPHIC LETTERS +This is small caps and this is CALLIGRAPHIC LETTERS

                  Note that many of LATEX commands and environments are defined in the -hevea.hva file that HEVEA loads before processing any +hevea.hva file that HEVEA loads before processing any input. These constructs are written using LATEX source code, in the end they -invoke HEVEA internal commands.

                  Other LATEX constructs, such as -LATEX key constructs or HEVEA internal commands (see section 8.3), +invoke HEVEA internal commands.

                  Other LATEX constructs, such as +LATEX key constructs or HEVEA internal commands (see section 8.3), that require special processing are defined -in HEVEA source code. +in HEVEA source code. However, the vast majority of these definitions can be overridden by a redefinition. This may prove useless, since there is little point in @@ -927,39 +946,41 @@ the macro-level. That is, most problems and can be solved by writing a few macros. The best place for these macros is an user style file (say trouble.hva) given as -argument to HEVEA. +argument to HEVEA.

                  # hevea trouble.hva trouble.tex
                  -

                  By doing so, the macros written specially for HEVEA are not +

                  +By doing so, the macros written specially for HEVEA are not seen by LATEX. Even better, trouble.tex is not changed at all.

                  A worth-mentiong alternative is inserting \usepackage{trouble} -in the document preamble. Then, given HEVEA semantics for +in the document preamble. Then, given HEVEA semantics for \usepackage (see Section B.5.2), -HEVEA-specific commands should be placed in +HEVEA-specific commands should be placed in the file “trouble.hva” file, while LATEX-specific commands -should be placed in teh file “trouble.sty”.

                  Of course, adapting a document to HEVEA processing +should be placed in teh file “trouble.sty”.

                  Of course, adapting a document to HEVEA processing will be easier if the LATEX source is written in a generic style, using macros. Note that this style is recommended anyway, since it facilitates document maintenance.

                  - -

                  4.1  HEVEA does not know a macro

                  + +

                  4.1  HEVEA does not know a macro

                  Consider the following LATEX source excerpt:

                  You can \raisebox{.6ex}{\em raise} text.
                   

                  LATEX typesets this as follows:

                  -

                  Since HEVEA does not know about \raisebox, +

                  Since HEVEA does not know about \raisebox, it incorrectly processes this input. More precisely, it first prints a warning message:

                  trouble.tex:34: Unknown macro: \raisebox
                  -

                  Then, it goes on by translating the arguments of \raisebox as if +

                  +Then, it goes on by translating the arguments of \raisebox as if they were normal text. As a consequence some .6ex is finally found in the html output:

                  You can .6exraise text.

                  To correct this, you should provide a macro that has more or less the effect of \raisebox. It is impossible to write a generic -\raisebox macro for HEVEA, because of html limitations. +\raisebox macro for HEVEA, because of html limitations. However, in this case, the effect of \raisebox is to raise the box a little. Thus, the first, numerical, argument to \raisebox can be @@ -974,20 +995,23 @@ example, where text is both raised a lowered a little:

                  You can \raisebox{.6ex}{\em raise}
                   or \raisebox{-.6ex}{\em lower} text.
                  -

                  Which LATEX renders as follows: +

                  +Which LATEX renders as follows:

                  -Whereas, with the above definition of \raisebox, HEVEA produces: +Whereas, with the above definition of \raisebox, HEVEA produces:

                  You can raise or lower text.

                  A solution is to add a new macro definition in the trouble.hva file:

                  \newcommand{\lowerbox}[2]{$_{\mbox{#2}}$}
                  -

                  Then, trouble.tex itself has to be modified a little. +

                  +Then, trouble.tex itself has to be modified a little.

                  You can \raisebox{.6ex}{\em raise}
                   or \lowerbox{-.6ex}{\em lower} text.
                  -

                  HEVEA now produces a satisfying output: +

                  +HEVEA now produces a satisfying output:

                  You can raise @@ -996,24 +1020,26 @@ or lower text. it should also contain the following definition for \lowerbox:

                  \newcommand{\lowerbox}[2]{\raisebox{#1}{#2}}
                  -

                  This definition can safely be placed anywhere in trouble.tex, -since by HEVEA semantics for \newcommand (see +

                  +This definition can safely be placed anywhere in trouble.tex, +since by HEVEA semantics for \newcommand (see section B.8.1) the new definition will not overwrite the old one.

                  - -

                  4.2  HEVEA incorrectly interprets a macro

                  Sometimes HEVEA knows about a macro, but the produced html + +

                  4.2  HEVEA incorrectly interprets a macro

                  Sometimes HEVEA knows about a macro, but the produced html does not look good when seen through a browser. This kind of errors is detected while visually checking the output. -However, HEVEA does its best to issue warnings when such situations +However, HEVEA does its best to issue warnings when such situations are likely to occur.

                  Consider, for instance, this definition of \blob as a small black square.

                  \newcommand{\blob}{\rule[.2ex]{1ex}{1ex}}
                   \blob\ Blob \blob
                  -

                  Which LATEX typesets as follows: +

                  +Which LATEX typesets as follows:

                  -HEVEA always translates \rule as <hr>, ignoring size +HEVEA always translates \rule as <hr>, ignoring size arguments. Hence, it produces the following, wrong, output:

                  @@ -1025,10 +1051,11 @@ of \blob, such as a bullet Thus, you may choose to give \blob a definition in trouble.hva:

                  \newcommand{\blob}{\bullet}
                  -

                  This new definition yields the following, more satisfying output: +

                  +This new definition yields the following, more satisfying output:

                  • Blob •

                  -In case we do want a square blob, there are two alternatives. +In case we do want a square blob, there are two alternatives. We can have LATEX typeset some subparts of the document and then to include them as images, section 6 explains how to proceed. @@ -1041,8 +1068,8 @@ seems ok.

                  █ Blob █

                  However, beware that not all browsers display all of Unicode…

                  - -

                  4.3  HEVEA crashes

                  HEVEA failure may have many causes, including a bug. + +

                  4.3  HEVEA crashes

                  HEVEA failure may have many causes, including a bug. However, it may also stem from a wrong LATEX input. Thus, this section is to be read before reporting a bug…

                  @@ -1053,16 +1080,18 @@ In the following source, environments ar This is right-flushed quoted text. \end{flushright} \end{quote} -

                  Such a source will make both LATEX and HEVEA choke. -HEVEA issues the following error message that shows the LATEX +

                  +Such a source will make both LATEX and HEVEA choke. +HEVEA issues the following error message that shows the LATEX environment that is not closed properly:

                  ./trouble.tex:6: Environment nesting error: html: 'DIV' closes 'BLOCKQUOTE'
                   ./trouble.tex:4: Latex environment 'quote' is pending
                   Adios
                  -

                  Thus, when HEVEA crashes, it is a good idea to check that the +

                  +Thus, when HEVEA crashes, it is a good idea to check that the input is correct by running LATEX on it.

                  -

                  4.3.2  Complicated cases

                  Unfortunately, HEVEA may crash on input that does not affect +

                  4.3.2  Complicated cases

                  Unfortunately, HEVEA may crash on input that does not affect LATEX. Such errors usually relate to environment or group nesting.

                  Consider for instance the following “optimized” version of a quoteright environment: @@ -1077,13 +1106,13 @@ are intended to replace while \endquote stands for \end{quote}. Note that the closing \endflushright is omitted, since it does nothing. -LATEX accepts such an input and produces a right-flushed quotation.

                  However, HEVEA usually translates LATEX environments to html +LATEX accepts such an input and produces a right-flushed quotation.

                  However, HEVEA usually translates LATEX environments to html block-level elements and it requires those elements to be nested properly. Here, \quote translates to <blockquote>, \flushright translates to <div class="flushright"> and \endquote translates to </blockquote>. -At that point, HEVEA refuses to generate obviously +At that point, HEVEA refuses to generate obviously non-correct html and it crashes:

                  Giving up command: \@close
                   Giving up command: \endquote
                  @@ -1092,13 +1121,15 @@ Giving up command: \end
                   ./trouble.tex:7: Environment nesting error: html: 'BLOCKQUOTE' closes 'DIV'
                   ./trouble.tex:5: Latex environment 'quoteright' is pending
                   Adios
                  -

                  Also notice that the error message above includes a backtrace showing +

                  +Also notice that the error message above includes a backtrace showing the call-chain of commands.

                  In this case, the solution is easy: environments must be opened and closed consistently. LATEX style being recommended, one should write:

                  \newenvironment{quoteright}
                     {\begin{quote}\begin{flushright}}
                     {\end{flushright}\end{quote}}
                  -

                  And we get: +

                  +And we get:

                  @@ -1106,21 +1137,22 @@ This is a right-flushed quotation

                  Unclosed LATEX groups ({…) are another source -of nuisance to HEVEA. +of nuisance to HEVEA. Consider the following horreur.tex file:

                  \documentclass{article}
                   
                   \begin{document}
                   In this sentence, a group is opened now {\em and never closed.
                   \end{document}
                  -

                  LATEX accepts this file, although it produces a warning: +

                  +LATEX accepts this file, although it produces a warning:

                  # latex horreur.tex 
                   This is TeX, Version 3.14159 (Web2C 7.2)
                     ...
                   (\end occurred inside a group at level 1)
                   Output written on horreur.dvi (1 page, 280 bytes).
                   
                  -

                  By contrast, running HEVEA on horreur.tex yields a fatal error: +

                  By contrast, running HEVEA on horreur.tex yields a fatal error:

                  # hevea horreur.tex 
                   Giving up command: \@raise@enddocument
                   Giving up command: \enddocument
                  @@ -1128,38 +1160,39 @@ Giving up command: \end
                   ./horreur.tex:4: Environment nesting error: Latex env error: 'document' closes ''
                   ./horreur.tex:3: Latex environment '' is pending
                   Adios
                  -

                  Thus, users should close opening braces where it belongs. -Note that HEVEA error message “Latex environment -’env’ is pending” helps a lot in locating +

                  +Thus, users should close opening braces where it belongs. +Note that HEVEA error message “Latex environment +’env’ is pending” helps a lot in locating the brace that hurts.

                  -

                  4.3.3  Desperate cases

                  If HEVEA crashes on LATEX source (not on TEX source), +

                  4.3.3  Desperate cases

                  If HEVEA crashes on LATEX source (not on TEX source), then you may have discovered a bug, or this manual is not as complete as it should. In any case, please report to Luc.Maranget@inria.fr.

                  To be useful, your bug report should include LATEX code that triggers the bug (the shorter, the better) and mention -HEVEA version number.

                  - -

                  5  Making HEVEA and LATEX both happy

                  +HEVEA version number.

                  + +

                  5  Making HEVEA and LATEX both happy

                  A satisfactory translation from LATEX to html often requires -giving instructions to HEVEA. +giving instructions to HEVEA. Typically, these instructions are macro definitions and these instructions should not be seen by LATEX. Conversely, some source that LATEX needs should not be processed -by HEVEA. +by HEVEA. Basically, there are three ways to make input vary according to the processor, file loading, the hevea package and comments.

                  -

                  5.1  File loading

                  HEVEA and LATEX treat files differently. Here is a summary of the main +

                  5.1  File loading

                  HEVEA and LATEX treat files differently. Here is a summary of the main differences:

                  • -LATEX and HEVEA both load files given as arguments to +LATEX and HEVEA both load files given as arguments to \input, however when given the option -e filename, -HEVEA does not load filename. -
                  • HEVEA loads all files given as command-line arguments. -
                  • Both LATEX and HEVEA load style files given as optional +HEVEA does not load filename. +
                  • HEVEA loads all files given as command-line arguments. +
                  • Both LATEX and HEVEA load style files given as optional arguments to \documentstyle and as arguments to \usepackage, but the files are searched by following different methods and @@ -1167,85 +1200,85 @@ considering different file extensions.

                  As a consequence, for having a file latexonly loaded by LATEX only, it suffices to use \input{latexonly} -in the source and to invoke HEVEA as follows: +in the source and to invoke HEVEA as follows:

                  -# hevea -e latexonly

                  Having heveaonly loaded by HEVEA only is more -simple: it suffices to invoke HEVEA as follows: +# hevea -e latexonly

                  Having heveaonly loaded by HEVEA only is more +simple: it suffices to invoke HEVEA as follows:

                  -# hevea heveaonly

                  Finally, if one has an HEVEA equivalent style.hva -for a LATEX style file style.sty, +# hevea heveaonly

                  Finally, if one has an HEVEA equivalent style.hva +for a LATEX style file style.sty, then one should load the file as follows:

                  -\usepackage{style} +\usepackage{style}

                  -This will result in, LATEX loading style.sty, -while HEVEA loads style.hva. -As HEVEA will not fail in case style.hva does not +This will result in, LATEX loading style.sty, +while HEVEA loads style.hva. +As HEVEA will not fail in case style.hva does not exist, this is another method for having a style file loaded by -LATEX only.

                  Writing an HEVEA-specific file file.hva +LATEX only.

                  Writing an HEVEA-specific file file.hva is the method of choice for supplying command definitions -to HEVEA only. Users can then be sure that these definitions are -not seen by LATEX and will not get echoed to the image -file (see section 6).

                  The file file.hva can be loaded by either +to HEVEA only. Users can then be sure that these definitions are +not seen by LATEX and will not get echoed to the image +file (see section 6).

                  The file file.hva can be loaded by either supplying the command-line argument -file.hva, or by -\usepackage{file} from inside the document. +file.hva, or by +\usepackage{file} from inside the document. Which method is better depends on whether you choose to override or to replace the document definition. In the command-line case, -definitions from file.hva are processed before the +definitions from file.hva are processed before the ones from the document and will override them, provided the document definitions are made using \newcommand (or \newenvironment). -In the \usepackage case, HEVEA loads file.hva -at the place where LATEX loads file.sty, hence -the definitions from file.hva replace -the definitions from file.sty in the strict sense.

                  +In the \usepackage case, HEVEA loads file.hva +at the place where LATEX loads file.sty, hence +the definitions from file.hva replace +the definitions from file.sty in the strict sense.

                  5.2  The hevea package

                  -The hevea.sty style file is intended to be loaded by LATEX -and not by HEVEA. +The hevea.sty style file is intended to be loaded by LATEX +and not by HEVEA. It provides LATEX with means to ignore or process some parts of the document. -Note that HEVEA copes with the constructs defined in +Note that HEVEA copes with the constructs defined in the hevea.sty file by default. It is important to notice that the hevea.sty style file from the distribution is a package in LATEX 2є terms and that it is not compatible with old LATEX. Moreover, the hevea package loads the comment package which must be present. Also notice that, for compatibility, -HEVEA reacts to +HEVEA reacts to \usepackage{hevea} by loading its own version of the comment package (Section B.17.6).

                  5.2.1  Environments for selecting a translator

                  -HEVEA and LATEX perform the following actions on source inside +HEVEA and LATEX perform the following actions on source inside the latexonly, verblatex, htmlonly, rawhtml, toimage and verbimage environments: - - + +

                  - - - - - - - + + + + + +
                  environment HEVEALATEX +
                  environment HEVEALATEX
                  latexonly ignore, \end{env} -constructs are processed (see section 5.2.2)  process
                  verblatex ignore  process
                  htmlonly process  ignore
                  rawhtml echo verbatim (see section 8.4)  ignore
                  toimage send to the image file, \end{env} -constructs and macro characters are processed (see section 6)  process
                  verbimage send to the image file (see section 6)  process
                  latexonly ignore, \end{env} +constructs are processed (see section 5.2.2)  process
                  verblatex ignore  process
                  htmlonly process  ignore
                  rawhtml echo verbatim (see section 8.4)  ignore
                  toimage send to the image file, \end{env} +constructs and macro characters are processed (see section 6)  process
                  verbimage send to the image file (see section 6)  process

                  As an example, this is how some text can be typeset in purple by -HEVEA and left alone by LATEX: +HEVEA and left alone by LATEX:

                  We get:
                   \begin{htmlonly}%
                   \purple purple rain, purple rain%
                  @@ -1254,9 +1287,10 @@ HEV
                   purple rain, purple rain%
                   \end{latexonly}%
                   \ldots
                  -

                  We get: +

                  +We get: purple rain, purple rain -…

                  It is impossible to avoid the spurious space in HEVEA output +…

                  It is impossible to avoid the spurious space in HEVEA output for the source above. This extra spaces comes from the newline character that follows \end{htmlonly}. Namely this @@ -1270,22 +1304,22 @@ and 5.3.

                  image and verbimage do not create scope. -It takes a little practice of HEVEA to understand why this is +It takes a little practice of HEVEA to understand why this is convenient.

                  5.2.2  Why are there two environments for ignoring input?

                  - + Some scanning and analysis of source is performed -by HEVEA inside the latexonly environment, in order to -allow latexonly to dynamically occur inside other environments.

                  More specifically, \end{env} macros -are recognized and their env argument is tested against -the name of the environment whose opening macro \env +by HEVEA inside the latexonly environment, in order to +allow latexonly to dynamically occur inside other environments.

                  More specifically, \end{env} macros +are recognized and their env argument is tested against +the name of the environment whose opening macro \env opened the latexonly environment. -In that case, macro expansion of \endenv is performed and -any further occurrence of \end{env’} is tested +In that case, macro expansion of \endenv is performed and +any further occurrence of \end{env’} is tested and may get expanded if it matches a pending -\begin{env’} +\begin{env’} construct.

                  This enables playing tricks such as:

                  \newenvironment{latexhuge}
                     {\begin{latexonly}\huge}
                  @@ -1294,11 +1328,12 @@ construct.

                  This enables playing tr \begin{latexhuge} This will appear in huge font in \LaTeX{} output only. \end{latexhuge} -

                  LATEX output will be: +

                  +LATEX output will be:

                  -While there is no HEVEA output.

                  Since HEVEA somehow analyses input that is enclosed in the +While there is no HEVEA output.

                  Since HEVEA somehow analyses input that is enclosed in the latexonly environment, it may choke. However, this environment is intended to select processing by @@ -1306,36 +1341,38 @@ LATEX only and mig Fortunately, it remains possible to have input processed by LATEX only, regardless of what it is, by enclosing it in the verblatex environment. -Inside this environment, HEVEA performs no other action +Inside this environment, HEVEA performs no other action than looking for \end{verblatex}. As a consequence, the \begin{verblatex} and \end{verblatex} constructs may only appear in the main flow of text or inside the same macro body, a bit like LATEX verbatim environment.

                  Relations between toimage and verbimage are similar. -Additionally, formal parameters #i are replaced by +Additionally, formal parameters #i are replaced by actual arguments inside the toimage environment (see end of section 6.3 for an example of this feature).

                  5.2.3  The hevea boolean register

                  Boolean registers are provided by the ifthen package (see [LATEX, Section C.8.5] and section B.8.5 in this document). -Both the hevea.sty style file -and HEVEA define the boolean register hevea. -However, this register initial value is false for LATEX -and true for HEVEA.

                  Thus, provided, both the hevea.sty style file and the +Both the hevea.sty style file +and HEVEA define the boolean register hevea. +However, this register initial value is false for LATEX +and true for HEVEA.

                  Thus, provided, both the hevea.sty style file and the ifthen packages are loaded, the “purple rain” example can be rephrased as follows:

                  We get:
                   {\ifthenelse{\boolean{hevea}}{\purple}{}purple rain, purple rain}\ldots
                  -

                  We get: +

                  +We get: purple rain, purple rain

                  Another choice is using the TEX-style conditional macro \ifhevea (see Section B.16.1.4):

                  We get:
                   {\ifhevea\purple\fi purple rain, purple rain}\ldots
                  -

                  We get: purple rain, purple rain

                  +

                  +We get: purple rain, purple rain

                  5.3  Comments

                  -HEVEA processes all lines that start with %HEVEA, while +HEVEA processes all lines that start with %HEVEA, while LATEX treats these lines as comments. Thus, this is a last variation on the “purple rain” example:

                  We get
                  @@ -1343,31 +1380,32 @@ Thus, this is a last variation on the &#
                   purple rain, purple rain%
                   %HEVEA}%
                   \ldots
                  -

                  (Note how comments are placed at the end of some lines to avoid spurious spaces +

                  +(Note how comments are placed at the end of some lines to avoid spurious spaces in the final output.)

                  We get: purple rain, purple rain

                  Comments thus provide an alternative to loading the hevea package. For user convenience, comment equivalents to the latexonly and toimage environment are also provided: - - + +

                  - -
                  environmentcomment +
                  environmentcomment equivalent
                  \begin{latexonly}\end{latexonly} - - - + -
                  %BEGIN LATEX
                  %END LATEX +
                  \begin{latexonly}\end{latexonly} + +
                  %BEGIN LATEX
                  %END LATEX
                    
                    
                  \begin{toimage}\end{toimage} - - @@ -1380,39 +1418,39 @@ created while using comment equivalents.

                  6  With a little help from LATEX

                  Sometimes, -HEVEA just cannot process its input, but it remains acceptable to +HEVEA just cannot process its input, but it remains acceptable to have LATEX process it, to produce an image from -LATEX output and to include a link to this image into HEVEA +LATEX output and to include a link to this image into HEVEA output. -HEVEA provides a limited support for doing this.

                  - -

                  6.1  The image file

                  While outputting doc.html, HEVEA echoes some +HEVEA provides a limited support for doing this.

                  + +

                  6.1  The image file

                  While outputting doc.html, HEVEA echoes some of its input to the image file, doc.image.tex. - + Part of this process is done at the user’s request. More precisely, the following two constructs -send text to the image file: +send text to the image file:

                  \begin{toimage}
                  -text
                  +text
                  \end{toimage}
                   
                  %BEGIN IMAGE
                  -text
                  +text
                  %END IMAGE

                  Additionally, \usepackage commands, top-level and global definitions are automatically echoed to the image file. This enables using -document-specific commands in text above.

                  +document-specific commands in text above.

                  Output to the image file builds up a current page, which is flushed by the \imageflush command. This command has the following effect: it outputs a strict page break in the image file, increments the image counter and -output a <img src="pagename.png"> tag in HEVEA -output file, where pagename is build from the image counter -and HEVEA output file name. +output a <img src="pagename.png"> tag in HEVEA +output file, where pagename is build from the image counter +and HEVEA output file name. Then the imagen script has to be run by:

                  # imagen doc @@ -1421,11 +1459,11 @@ This will process the docATEX, dvips, ghostscript and a few others tools, which must all be present (see section C.4.1), finally producing one -pagename.png file per page in the image +pagename.png file per page in the image file.

                  The usage of imagen is described at section C.1.5. Note that imagen is a simple shell script. Unix users can pass hevea the command-line option --fix. Then hevea will +-fix. Then hevea will itself call imagen, when appropriate.

                  6.2  A toy example

                  @@ -1433,7 +1471,8 @@ Consider the “blob” exampl Here is the active part of a blob.tex file:

                   \newcommand{\blob}{\rule[.2ex]{1ex}{1ex}}
                    \blob\ Blob \blob
                  -

                  This time, we would like \blob to produce a small black square, which +

                  +This time, we would like \blob to produce a small black square, which \rule[.2ex]{1ex}{1ex} indeed does in LATEX. Thus we can write:

                   \newcommand{\blob}{%
                  @@ -1441,10 +1480,12 @@ Thus we can write:
                    \end{toimage}%
                    \imageflush}
                    \blob\ Blob \blob
                  -

                  Now we issue the following two commands: +

                  +Now we issue the following two commands:

                   # hevea blob.tex
                    # imagen blob
                  -

                  And we get: +

                  +And we get:

                  @@ -1457,10 +1498,10 @@ problematic. Cost can be lowered using \savebox, but the other problems remain.

                  6.3  Including Postscript images

                  - + In this section, a technique to transform included Postscript images into included bitmap images is described. -Note that this technique is used by HEVEA implementation of the +Note that this technique is used by HEVEA implementation of the graphics package (see section B.14.1), which provides a more standard manner to include Postscript images in LATEX documents.

                  Included images are easy to manage: it suffices to let LATEX do the @@ -1471,7 +1512,8 @@ image in the source file \begin{center} \epsfbox{round.ps} \end{center} -

                  Then, HEVEA can have this image translated into a inlined (and +

                  +Then, HEVEA can have this image translated into a inlined (and centered) .png image by modifying source as follows:

                   \begin{center}
                    %BEGIN IMAGE
                  @@ -1479,11 +1521,12 @@ centered) .png
                    %END IMAGE
                    %HEVEA\imageflush
                    \end{center}
                  -

                  (Note that the round.tex file +

                  +(Note that the round.tex file still can be processed by LATEX, since comment equivalents of the toimage environment are used and that the \imageflush command is inside -a %HEVEA comment — see section 5.3.)

                  Then, processing round.tex through HEVEA and +a %HEVEA comment — see section 5.3.)

                  Then, processing round.tex through HEVEA and imagen yields:

                  @@ -1496,22 +1539,23 @@ on the image file because it do packages or define the right macros.

                  However, the above solution implies modifying the original LATEX source code. A better solution is to define the \epsfbox -command, so that HEVEA echoes \epsfbox and its argument to +command, so that HEVEA echoes \epsfbox and its argument to the image file and performs \imageflush:

                   \newcommand{\epsfbox}[1]{%
                    \begin{toimage}
                    \epsfbox{#1}
                    \end{toimage}
                    \imageflush}
                  -

                  Such a definition must be seen by HEVEA only. So, it is best put +

                  +Such a definition must be seen by HEVEA only. So, it is best put in a separate file whose name is given as an extra argument on -HEVEA command-line (see section 5.1). +HEVEA command-line (see section 5.1). Putting it in the document source -protected inside an %HEVEA comment is a bad idea, because it might then get echoed to the image file +protected inside an %HEVEA comment is a bad idea, because it might then get echoed to the image file and generate trouble when LATEX is later run by imagen.

                  Observe that the above definition of \epsfbox is a definition and not a redefinition (i.e. \newcommand is used and not \renewcommand), -because HEVEA does not know about \epsfbox by default. +because HEVEA does not know about \epsfbox by default. Also observe that this not a recursive definition, since commands do not get expanded inside the toimage environment.

                  Finally, if the Postscript image is produced from a bitmap, it is a pity to translate it back into a bitmap. @@ -1525,8 +1569,8 @@ In such a scheme, the document contains A first run of the program on LATEX source changes these fragments into constructs that LATEX (or a subsequent stage in the paper document production chain, such as dvips) can handle. -Here again, the rule of the game is keeping HEVEA away from the -normal process: first applying the filter, then making HEVEA send +Here again, the rule of the game is keeping HEVEA away from the +normal process: first applying the filter, then making HEVEA send the filter output to the image file, and then having imagen do the job.

                  Consider the gpic filter, for making drawings. Source for gpic is enclosed in .PS.PE, @@ -1541,7 +1585,8 @@ paragraph: \begin{center} ~\box\graph~ \end{center} -

                  Both the image description (.PS.PE) and usage (\box\graph) +

                  +Both the image description (.PS.PE) and usage (\box\graph) are for the image file, and they should be enclosed by %BEGIN IMAGE%END IMAGE comments. Additionally, the image link is put where it belongs by an @@ -1557,33 +1602,38 @@ Additionally, the image link is put wher %END IMAGE %HEVEA\imageflush \end{center} -

                  The gpic filter is applied first, then come hevea +

                  +The gpic filter is applied first, then come hevea and imagen:

                   # gpic -t < smile.tex > tmp.tex
                    # hevea tmp.tex -o smile.html
                    # imagen smile
                  -

                  And we get: +

                  +And we get:

                  -Observe how the -o argument to HEVEA is used and that -imagen argument is HEVEA output basename (see -section C.1.1.2 for the full definition of HEVEA output basename).

                  In the gpic example, modifying user source cannot be totally avoided. +Observe how the -o argument to HEVEA is used and that +imagen argument is HEVEA output basename (see +section C.1.1.2 for the full definition of HEVEA output basename).

                  In the gpic example, modifying user source cannot be totally avoided. However, writing in a generic style saves typing. For instance, users may define the following environment for centered gpic pictures in LATEX:

                   \newenvironment{centergpic}{}{\begin{center}~\box\graph~\end{center}}
                  -

                  Source code will now be as follows: +

                  +Source code will now be as follows:

                   \begin{centergpic}
                    .PS
                    ellipse "{\Large\bf Smile!}"
                    .PE
                    \end{centergpic}
                  -

                  HEVEA will process this source correctly, provided it is given its +

                  +HEVEA will process this source correctly, provided it is given its own definition for the centergpic environment beforehand:

                   \newenvironment{centergpic}
                      {\begin{toimage}}
                      {\box\graph\end{toimage}\begin{center}\imageflush\end{center}}
                  -

                  Assuming that the definition above is in a smile.hva file, +

                  +Assuming that the definition above is in a smile.hva file, the command sequence for translating smile.tex now is:

                   # gpic -t < smile.tex > tmp.tex
                  @@ -1591,18 +1641,19 @@ the command sequence for translating
                    tmp.tex:5: Warning: ignoring definition of \centergpic
                    tmp.tex:5: Warning: not defining environment centergpic
                    # imagen smile
                  -

                  The warnings above are normal: they are issued when HEVEA runs +

                  +The warnings above are normal: they are issued when HEVEA runs across the LATEX-intended definition of the centergpic environment and refuses to override its own definition for that environment.

                  - -

                  7  Cutting your document into pieces with HACHA

                  + +

                  7  Cutting your document into pieces with HACHA

                  -HEVEA outputs a single .html file. This file can be -cut into pieces at various sectional units by HACHA

                  +HEVEA outputs a single .html file. This file can be +cut into pieces at various sectional units by HACHA

                  7.1  Simple usage

                  -First generate your html document by applying HEVEA: +First generate your html document by applying HEVEA:

                  # hevea doc.tex

                  @@ -1628,45 +1679,45 @@ Sectional units above the cutting sectio article and book styles) close the current table of contents and open a new one. Cross-references are properly handled, that is, the local links generated by -HEVEA are changed into remote links.

                  The name of the root file can be changed using the +HEVEA are changed into remote links.

                  The name of the root file can be changed using the -o option:

                  # hacha -o root.html doc.html -

                  Some of HEVEA output get replicated in all the files generated by -HACHA. +

                  Some of HEVEA output get replicated in all the files generated by +HACHA. Users can supply a header and a footer, which will appear at the -begining and end of every page generated by HACHA. It suffices to +begining and end of every page generated by HACHA. It suffices to include the following commands in the document preamble:

                  -  \htmlhead{header}
                  -  \htmlfoot{footer} -

                  HACHA also makes every page it generates a clone of its input as +  \htmlhead{header}
                  +  \htmlfoot{footer} +

                  HACHA also makes every page it generates a clone of its input as regards attributes to the <body ...> opening tag and meta-information from the <head><\head> block. See section B.2 for examples of this replication -feature.

                  By contrast, style information specified in the style elements +feature.

                  By contrast, style information specified in the style elements from rom the <head><\head> block is not replicated. Instead, all style definitions are collected into an external style sheet file whose name is doc.css, and all generated html files adopt doc.css as an external style sheet. -It is important to notice that, since version 1.08, HEVEA produces +It is important to notice that, since version 1.08, HEVEA produces a style element by itself, even if users do not explicitely use styles. As a consequence, -HACHA normally produces a +HACHA normally produces a file doc.css, which should not be forgotten while -copying files to their final destination after a run of HACHA.

                  +copying files to their final destination after a run of HACHA.

                  -

                  7.2  Advanced usage

                  HACHA behaviour can be altered from the document source, by using +

                  7.2  Advanced usage

                  HACHA behaviour can be altered from the document source, by using a counter and a few macros.

                  A document that explicitly includes cutting macros still can be typeset by LATEX, provided it loads the -hevea.sty style file from the HEVEA distribution. +hevea.sty style file from the HEVEA distribution. (See section 5 for details on this style file). An alternative to loading the hevea package is to put all cutting instructions in comments starting with %HEVEA.

                  7.2.1  Principle

                  -HACHA recognizes all sectional units, ordered as follows, from +HACHA recognizes all sectional units, ordered as follows, from top to bottom: part, chapter, section, subsection, subsubsection, paragraph and subparagraph.

                  At any point between \begin{document} and @@ -1677,7 +1728,7 @@ Table of contents output goes to the roo the output file. Cutting units start a new output file, whereas units comprised between the cutting unit and the cutting units plus the cutting depth add new -entries in the table of contents.

                  At document start, the root file and the output file are HACHA +entries in the table of contents.

                  At document start, the root file and the output file are HACHA output file (i.e. index.html). The cutting unit and the cutting depth are set to default values that depend on the document style.

                  @@ -1685,51 +1736,51 @@ depend on the document style.

                  7.2.2  Cutting macros

                  The following cutting instructions are for use in the document preamble. They command the cutting scheme of the whole document: -

                  +

                  \cuttingunit
                  This is a macro that holds the document cutting unit. You can change the default (which is section in the article style and chapter in the book style) by doing:
                  -\renewcommand{\cuttingunit}{secname}. +\renewcommand{\cuttingunit}{secname}.
                  -
                  \tocnumber
                  Instruct HEVEA to put section numbers +
                  \tocnumber
                  Instruct HEVEA to put section numbers into table of content entries. -
                  \notocnumber
                  Instruct HEVEA not to put +
                  \notocnumber
                  Instruct HEVEA not to put section numbers into table of content entries. This is the default.
                  cuttingdepth
                  This is a counter that holds the document cutting depth. You can change the default value of 1 by doing -\setcounter{cuttingdepth}{numvalue}. +\setcounter{cuttingdepth}{numvalue}. A cutting depth of zero means no other entries than the cutting units in the table of contents.

                  Other cutting instructions are to be used after -\begin{document}. They all generate html comments in HEVEA +\begin{document}. They all generate html comments in HEVEA output. -These comments then act as instructions to HACHA. - - +These comments then act as instructions to HACHA. + +

                  -\cuthere{secname}{itemtitle}
                  +\cuthere{secname}{itemtitle}
                  Attempt a cut.
                  • -If secname is the current cutting unit or +If secname is the current cutting unit or the keyword now, then a new output file is started and an entry in the current table of contents -is generated, with title itemtitle. This entry holds a link +is generated, with title itemtitle. This entry holds a link to the new output file. -
                  • If secname is above the cutting unit, then the +
                  • If secname is above the cutting unit, then the current table of contents is closed. The output file is set to the current root file. -
                  • If secname is below the cutting unit and less than the +
                  • If secname is below the cutting unit and less than the cutting depth away from it, then an entry is added in the table of contents. This entry contains itemtitle and a link to the point where \cuthere appears.
                  • Otherwise, no action is performed. -
                  \cutdef[depth]{secname}
                  +
                  \cutdef[depth]{secname}
                  Open a new table of contents, with cutting depth depth and cutting unit secname. If the optional depth is absent, the cutting depth does not change. @@ -1748,7 +1799,8 @@ Commands \cuthere and 7.3.6).

                  Default settings work as follows: \begin{document} performs

                  \cutdef*[\value{cuttingdepth}]{\cuttingunit}
                  -

                  and \end{document} performs \cutend*. +

                  +and \end{document} performs \cutend*. All sectioning commands perform \cuthere, with the sectional unit name as first argument and the (optional, if present) sectioning @@ -1757,40 +1809,40 @@ Note that starred versions of the sectio cutting instructions.

                  7.2.3  Table of links organisation

                  -A table of links generated by HACHA is a list +A table of links generated by HACHA is a list of links to generated files. Additionally, some sublists may be present, up to a certain depth. The items in those sublists are links inside generated files, they point to sectional unit titles -below the cutting unit, up to a certain depth.

                  More precisely, let A be a certain sectional unit (e.g. -“part”), let B be just below A +below the cutting unit, up to a certain depth.

                  More precisely, let A be a certain sectional unit (e.g. +“part”), let B be just below A (e.g. “section”), -and let C be just below C (e.g. “subsection”). -Further assume that cutting is performed at level B with a depth of +and let C be just below C (e.g. “subsection”). +Further assume that cutting is performed at level B with a depth of more than one. -Then, every unit A holds a one or several tables of links -to generated files, and each generated file normally holds a B unit. -Sublists with links to C units inside B units normally appear in the -tables of links of level A. -The command-line options -tocbis -and -tocter instruct hacha +Then, every unit A holds a one or several tables of links +to generated files, and each generated file normally holds a B unit. +Sublists with links to C units inside B units normally appear in the +tables of links of level A. +The command-line options -tocbis +and -tocter instruct hacha to put sublists at other places. With -tocbis sublists are duplicated at the beginning -of the B level files; while with -tocter sublist only +of the B level files; while with -tocter sublist only appear at the beginning -of the B level files.

                  In my opinion, -default style is appropriate for documents with short B units; +of the B level files.

                  In my opinion, +default style is appropriate for documents with short B units; while -tocbis style -is appropriate for documents with long B units with +is appropriate for documents with long B units with a few sub-units; and -tocter style is appropriate -for documents with long B units with +for documents with long B units with a lot of sub-units. As you may have noticed, this manual is cut by following the --tocbis style.

                  Whatever the style is, if a B unit is cut +-tocbis style.

                  Whatever the style is, if a B unit is cut (e.g. because its text is enclosed in -\cutdef{C}\cutend), -then every C unit goes into its own file and there is no sublist -after the relevant B level entry in the A level table of links.

                  +\cutdef{C}\cutend), +then every C unit goes into its own file and there is no sublist +after the relevant B level entry in the A level table of links.

                  7.2.4  Examples

                  Consider, for instance, a book document with a long chapter that you want to cut at the section level, showing subsections: @@ -1798,7 +1850,8 @@ that you want to cut at the section leve ..... \chapter{The next chapter} -

                  +

                  + Then, you should insert a \cutdef at chapter start and a \cutend at chapter end:

                  \chapter{A long chapter}
                  @@ -1806,15 +1859,16 @@ Then, you should insert a \cutdef<
                   .....
                   %HEVEA\cutend
                   \chapter{The next chapter}
                  -

                  Then, the file +

                  +Then, the file that would otherwise contain the long chapter now contains the chapter title and a table of sections. No other change is needed, since the command \section already performs the appropriate \cuthere{section}{...} commands, which were ignored by default. (Also note that cutting macros are placed inside %HEVEA comments, -for LATEX not to be disturbed).

                  - +for LATEX not to be disturbed).

                  + The \cuthere macro can be used to put some document parts into their own file. This may prove appropriate for long cover pages or abstracts that would @@ -1826,7 +1880,8 @@ Consider the following document: \begin{abstract} A big abstract \end{abstract} ... -

                  Then, you make the abstract go to its own file as it was a cutting +

                  +Then, you make the abstract go to its own file as it was a cutting unit by typing:

                  \documentclass{article}
                   \usepackage{hevea}
                  @@ -1835,111 +1890,116 @@ unit by typing:
                   \cuthere{\cuttingunit}{Abstract}
                   \begin{abstract} A big abstract \end{abstract}
                   ...
                  -

                  (Note that, this time, cutting macros appear unprotected in the +

                  +(Note that, this time, cutting macros appear unprotected in the source. However, LATEX still can process the document, since the hevea package is loaded).

                  7.2.5  More and More Pages in Output

                  -In some situations it may be appropriate to produce many +In some situations it may be appropriate to produce many pages from one source files. More specifically, loading the deepcut package will put all sectioning units of your document (from \part to \subsection in their own file.

                  Similarly, loading the figcut package will make all figures and tables go into their own file. The figcut package accepts two options, show and -noshow. The former, which is the default, instructs HEVEA +noshow. The former, which is the default, instructs HEVEA to repeat the caption into the main flow of text, with a link to the figure. The latter option disables the feature.

                  7.3  More Advanced Usage

                  -In this section we show how to alter some details of HACHA +In this section we show how to alter some details of HACHA behaviour. This includes controlling output file names and the title of generated web pages and introducing arbitrary cuts.

                  7.3.1  Controlling output file names

                  -

                  When invoked as hacha doc.html, -HACHA produces a index.html table of links file that +

                  When invoked as hacha doc.html, +HACHA produces a index.html table of links file that points into doc001.html, doc002.html, etc. content files. This is not very convenient when one wishes to point inside the document from outside. -However, the \cutname{name} command -sets the name of the current output file name as name.

                  Consider a document cut at the section level, which contains the +However, the \cutname{name} command +sets the name of the current output file name as name.

                  Consider a document cut at the section level, which contains the following important section:

                  \section{Important\label{important} section}
                   ...
                  -

                  To make the important section goes into file important.html, +

                  +To make the important section goes into file important.html, one writes:

                  \section{Important\label{important} section}\cutname{important.html}
                   ...
                  -

                  Then, section “Important section” can be referenced from -an HEVEA unaware html page by: +

                  +Then, section “Important section” can be referenced from +an HEVEA unaware html page by:

                  In this document, there is a very
                   <a href="important.html#important">important section</a>.
                  -

                  If you are reading the html version of this manual, you may check +

                  +If you are reading the html version of this manual, you may check that you are now reading file cutname.html. This particular file name has been specified from the source using \cutname{cutname.html}.

                  7.3.2  Controlling page titles

                  - -When HACHA creates a web page from a given sectional unit, + +When HACHA creates a web page from a given sectional unit, the title of this page normally is the name of the sectional unit. For instance, the title of this very page should be -“Cutting your document into pieces with HACHA”. +“Cutting your document into pieces with HACHA”. It is possible to insert some text at the beginning of all page titles, by using the \htmlprefix command. Hence, by writing \htmlprefix{\hevea{} Manual: } in the document, the title of this page would become: -“HEVEA Manual: Cutting your document into pieces with HACHA” +“HEVEA Manual: Cutting your document into pieces with HACHA” and the title of all other pages would show the same prefix.

                  7.3.3  Links for the root file

                  - -The command \toplinks{prev}{up}{next} instructs HACHA to put links to a + +The command \toplinks{prev}{up}{next} instructs HACHA to put links to a “previous”, “up” and “next” page in the root file. The following points are worth noticing:

                  • The \toplink command must appear in the document preamble (i.e. before \begin{document}).
                  • The arguments -prev, up and next should expand to urls, +prev, up and next should expand to urls, notice that these argument are processed (see section 8.1.1).
                  • When one of the expected argument is left empty, the corresponding link is not generated.

                  This feature can prove useful to relate documents that are generated independently by -HEVEA and HACHA.

                  +HEVEA and HACHA.

                  7.3.4  Controlling link aspect from the document

                  -By default the links to the previous, up and next pages show a small +By default the links to the previous, up and next pages show a small icon (an appropriate arrow). This can be changed with the command -\setlinkstext{prev}{up}{next}, -where prev, up and next are some LATEX +\setlinkstext{prev}{up}{next}, +where prev, up and next are some LATEX source. - + For instance the default behaviour is equivalent to:

                  \setlinkstext
                  -  {\imgsrc[alt="Previous"]{previous_motif.gif}}
                  -  {\imgsrc[alt="Up"]{contents_motif.gif}}
                  -  {\imgsrc[alt="Next"]{next_motif.gif}}
                  -

                  Command \setlinkstext behaves as \toplinks does. + {\imgsrc[alt="Previous"]{previous_motif.svg}} + {\imgsrc[alt="Up"]{contents_motif.svg}} + {\imgsrc[alt="Next"]{next_motif.svg}} +

                  +Command \setlinkstext behaves as \toplinks does. That is, it must occur in document preamble, arguments are processed and empty arguments yield no effect (i.e. defaults apply).

                  7.3.5  Cutting a document anywhere

                  - + Part of a document goes to a separate file when enclosed in a cutflow environment:

                  -\begin{cutflow}{title}\end{cutflow} +\begin{cutflow}{title}\end{cutflow}

                  The content “…” will go into a file of its own, while -the argument title is used as the title of the introduced +the argument title is used as the title of the introduced html page.

                  The html page introduced here does not belong to the normal flow of text. Consequently, one needs an explicit reference from the normal flow of text @@ -1962,7 +2022,8 @@ Answers in section~\ref{answers}. \item Dylan is Dylan. \end{enumerate} \end{cutflow} -

                  The example yields: +

                  +The example yields:

                  A small quiz

                  1. @@ -1981,37 +2042,37 @@ Black is black.
                  2. Dylan is Dylan.

                  - + However,introducing html hyperlink targets and references with the \aname and \ahrefloc commands (see section 8.1.1) -will be more practical most of the time.

                  The starred variant environment +will be more practical most of the time.

                  The starred variant environment cutflow* is the same as cutflow, save for the html header and footer (see Section 7.1) which are not replicated in the introduced page.

                  7.3.6  Footnotes

                  -Footnote texts (given as arguments either to \footnote or +Footnote texts (given as arguments either to \footnote or \footnotetext) do not go directly to output. Instead, footnote texts accumulate internally in a buffer, awaiting to be flushed. The flushing of notes is controlled by the means of a current flushing unit, which is a sectional unit name or -document — a fictional unit above all units. +document — a fictional unit above all units. At any point, the current flushing unit is the value of the -command \@footnotelevel. +command \@footnotelevel. In practice, the flushing of footnote texts is performed by two commands:

                  • -\flushdef{secname} simply sets -the flushing unit to secname. -
                  • \footnoteflush{secname} acts +\flushdef{secname} simply sets +the flushing unit to secname. +
                  • \footnoteflush{secname} acts as follows:
                    • -If argument secname is equal to or above the +If argument secname is equal to or above the current flushing unit, then footnote texts are flushed (if any). In the output, the texts themselves are surrounded by special comments -that tag them as footnote texts and record secname. +that tag them as footnote texts and record secname.
                    • Otherwise, no action is performed.

                  @@ -2020,38 +2081,38 @@ while the book style file perfo At the end of processing, \end{document} performs \footnoteflush{\@footnotelevel}, so as to flush any pending notes.

                  Cutting commands interact with footnote flushing as follows:

                  • -\cuthere{secname} -executes \footnoteflush{secname}. +\cuthere{secname} +executes \footnoteflush{secname}. Remember that all sectioning commands perform \cuthere with their sectional unit name as argument. -
                  • \cutdef{secname} +
                  • \cutdef{secname} saves the current flushing unit and buffer on some internal stack, starts a new buffer for footnote texts, and -sets the current flushing unit to secname -(by performing \flushdef{secname}). +sets the current flushing unit to secname +(by performing \flushdef{secname}).
                  • \cutend first flushes any pending texts (by performing \footnoteflush with the current flushing unit as argument), and restores the flushing unit and footnote text buffer saved by the matching \cutdef.
                  • The starred variants \cutdef* and \cutend* perform no operation that is related to footnotes. -

                  Later, when running across footnote texts in its input file, HACHA +

                  Later, when running across footnote texts in its input file, HACHA sometimes put notes in a separate file. -More precisely, HACHA has knowledge of the +More precisely, HACHA has knowledge of the current cutting level, the current sectional unit where cuts occur — as given by the relevant \cutdef. -Moreover, HACHA knows the current section level — +Moreover, HACHA knows the current section level — that is, the last sectional command processed. -Besides, HACHA extracts the note level from the comments +Besides, HACHA extracts the note level from the comments that surround the notes (as given by the command \footnoteflush that produced the notes). -Then, HACHA creates a separate file for notes +Then, HACHA creates a separate file for notes when the cutting level and the note level differ, or when the current level is above the cutting level (e.g. the current level is document while the cutting level is chapter). As a result, notes should stay where they are when they occur at the end of -HACHA output file and otherwise go to a separate file.

                  To make a complicated story even more complicated, +HACHA output file and otherwise go to a separate file.

                  To make a complicated story even more complicated, footnotes in minipage environments or in the arguments to \title or \author have a different, I guess satisfactory, behaviour.

                  Given the above description, footnotes are managed by default as follows. @@ -2064,7 +2125,7 @@ chapters. A later run of  

                  -In case you wish to adopt a book-like behaviour for +In case you wish to adopt a book-like behaviour for an article (footnotes at the end of sections), it suffices to insert \flushdef{section} in the document preamble.

                  We now give a few example of interaction between notes and cutting. @@ -2141,49 +2202,49 @@ the end of cutname.ht

                  8  Generating html constructs

                  -HEVEA output language being html, it is normal for users to insert +HEVEA output language being html, it is normal for users to insert hypertext constructs their documents, or to control colours.

                  8.1  High-Level Commands

                  -HEVEA provides high-level commands for generating +HEVEA provides high-level commands for generating hypertext constructs. Users are advised to use these commands in the first place, because it is easy to write incorrect html and that writing -html directly may interfere in nasty ways with HEVEA internals.

                  +html directly may interfere in nasty ways with HEVEA internals.

                  -

                  +

                  A few commands for hyperlink management and included images are provided, all these commands have appropriate equivalents defined by the hevea package (see section 5.2). Hence, a document that relies on these high-level commands still can be typeset by LATEX, provided it loads the hevea -package.

                  %BEGIN IMAGE
                  %END IMAGE +
                  \begin{toimage}\end{toimage} + +
                  %BEGIN IMAGE
                  %END IMAGE
                  +package.

                  MacroHEVEALATEX
                  - + - + - + - + - + - - + -
                  MacroHEVEALATEX
                  -\ahref{url}{text}    make text an hyperlink to url    echo text
                  +\ahref{url}{text}    make text an hyperlink to url    echo text
                  -\footahref{url}{text}    make text an hyperlink to url    make url a footnote to text, -url is shown in typewriter font
                  +\footahref{url}{text}    make text an hyperlink to url    make url a footnote to text, +url is shown in typewriter font
                  -\ahrefurl{url}    make url an hyperlink to url.    typeset url in typewriter font
                  +\ahrefurl{url}    make url an hyperlink to url.    typeset url in typewriter font
                  -\ahrefloc{label}{text}    make text an hyperlink to label inside the document    echo text
                  +\ahrefloc{label}{text}    make text an hyperlink to label inside the document    echo text
                  -\aname{label}{text}    make text an hyperlink target with label label    echo text
                  +\aname{label}{text}    make text an hyperlink target with label label    echo text
                  -\mailto{address}    make address a “mailto” link to address    typeset address in typewriter font +
                  +\mailto{address}    make address a “mailto” link to address    typeset address in typewriter font
                  \imgsrc[attr]{url}    insert url as an image, attr are attributes in the -html sense    do nothing
                  \imgsrc[attr]{url}    insert url as an image, attr are attributes in the +html sense    do nothing
                  \home{text}    produce a home-dir url both for output and links, output aspect is: “~text” +
                  \home{text}    produce a home-dir url both for output and links, output aspect is: “~text

                  It is important to notice that all arguments are processed. @@ -2195,7 +2256,7 @@ you should do something like this: this is annoying. Moreover, the immediate solution, using \verb, \ahref{\verb" ... /~maranget/..."}{his home page} does not work, since LATEX forbids verbatim formatting -inside command arguments.

                  +inside command arguments.

                  Fortunately, the url package provides a very convenient \url command that acts like \verb and can appear in other command arguments @@ -2203,37 +2264,39 @@ other command arguments Hence, provided the url package is loaded, a more convenient reformulation of the example above is:

                  \ahref{\url{http://pauillac.inria.fr/~maranget/index.html}}{his home page}
                  -

                  Or even better: +

                  +Or even better:

                  \urldef{\lucpage}{\url}{http://pauillac.inria.fr/~maranget/index.html}
                   \ahref{\lucpage}{his home page}
                  -

                  It may seem complicated, but this is a safe way to have a -document processed both by LATEX and HEVEA. +

                  +It may seem complicated, but this is a safe way to have a +document processed both by LATEX and HEVEA. Drawing a line between url typesetting and hyperlinks is correct, because users may sometime want urls to be processed and some other times not. -Moreover, HEVEA (optionally) depends on only one third party package: -url, which is as correct as it can be and well-written.

                  - +Moreover, HEVEA (optionally) depends on only one third party package: +url, which is as correct as it can be and well-written.

                  + In case the \url command is undefined at the time \begin{document} is processed, the commands \url, \oneurl and \footurl are defined as synonymous for \ahref, \ahrefurl and \footahref, thereby ensuring -some compatibility with older versions of HEVEA. +some compatibility with older versions of HEVEA. Note that this usage of \url is deprecated.

                  8.1.2  html style colours

                  Specifying colours both for LATEX and -HEVEA should be done using the color package (see +HEVEA should be done using the color package (see section B.14.2). However,one can also specify text color using special type style declarations. The hevea.sty style file define no equivalent for these declarations, which therefore are for -HEVEA consumption only.

                  Those declarations follow html conventions for colours. +HEVEA consumption only.

                  Those declarations follow html conventions for colours. There are sixteen predefined colours:

                  -
                  \black, +
                  \black, \silver, \gray, \white, @@ -2252,15 +2315,15 @@ There are sixteen predefined colours:

                  -Additionally, the current text color can be -changed by the declaration \htmlcolor{number}, -where number is a six digit hexadecimal number specifying a +Additionally, the current text color can be +changed by the declaration \htmlcolor{number}, +where number is a six digit hexadecimal number specifying a color in the RGB space. For instance, the declaration \htmlcolor{404040} changes font color to dark gray,

                  8.2  More on included images

                  - + The \imgsrc command becomes handy when one has images both in Postscript and GIF (or PNG or JPG) format. As explained in section 6.3, Postscript images can be included in @@ -2269,27 +2332,31 @@ LATEX documents by encapsulated Postscript file, then a doc.tex document can include it by:

                  \epsfbox{screenshot.ps}
                  -

                  We may very well also have a GIF version of the screenshot image +

                  +We may very well also have a GIF version of the screenshot image (or be able to produce one easily using image converting tools), let us store it in a screenshot.ps.gif file. -Then, for HEVEA to include a link to the GIF image in its +Then, for HEVEA to include a link to the GIF image in its output, it suffices to define the \epsfbox command in the macro.hva file as follows:

                  \newcommand{\epsfbox}[1]{\imgsrc{#1.gif}}
                  -

                  Then HEVEA has to be run as: +

                  +Then HEVEA has to be run as:

                  # hevea macros.hva doc.tex
                  -

                  Since it has its own definition of \epsfbox, HEVEA will +

                  +Since it has its own definition of \epsfbox, HEVEA will silently include a link the GIF image and not to the Postscript image.

                  If another naming scheme for image files is preferred, there are alternatives. For instance, assume that Postscript files are of the kind -name.ps, while GIF files are of the kind -name.gif. +name.ps, while GIF files are of the kind +name.gif. Then, images can be included using -\includeimage{name}, where +\includeimage{name}, where \includeimage is a specific user-defined command:

                  \newcommand{\includeimage}[1]{\ifhevea\imgsrc{#1.gif}\else\epsfbox{#1.ps}\fi}
                  -

                  Note that this method uses the hevea boolean register (see +

                  +Note that this method uses the hevea boolean register (see section 5.2.3). If one does not wish to load the hevea.sty file, one can adopt the slightly more verbose definition: @@ -2299,23 +2366,24 @@ one can adopt the slightly more verbose \epsfbox{#1.ps} %END LATEX } -

                  When the Postscript file has been produced by +

                  +When the Postscript file has been produced by translating a bitmap file, this simple method of making a bitmap image and using the \imgsrc command is the most adequate. -It should be preferred over using the more automated image file +It should be preferred over using the more automated image file mechanism (see section 6), which will translate the image back from Postscript to bitmap format and will thus degrade it.

                  8.3  Internal macros

                  -In this section a few of HEVEA internal macros are +In this section a few of HEVEA internal macros are described. -Internal macros occur at the final expansion stage of HEVEA and +Internal macros occur at the final expansion stage of HEVEA and invoke Objective Caml code.

                  Normally, user source code should not use them, since -their behaviour may change from one version of HEVEA to another and +their behaviour may change from one version of HEVEA to another and because using them incorrectly easily -crashes HEVEA. +crashes HEVEA. However:

                  • Internal macros @@ -2323,13 +2391,13 @@ are almost mandatory for writing supplem
                  • Casual usage is a convenient (but dangerous) way to finely control output (cf. the examples in the next section).
                  • Knowing a little about internal macros helps in understanding how -HEVEA works. -

                  -The general principle of HEVEA is that LATEX environments -\begin{env}… -\end{env} get -translated into html block-level elements <block -attributes></block>. +HEVEA works. +

                  +The general principle of HEVEA is that LATEX environments +\begin{env}… +\end{env} get +translated into html block-level elements <block +attributes></block>. More specifically, such block level elements are opened by the internal macro \@open and closed by the internal macro \@close. @@ -2351,12 +2419,12 @@ are discarded silently.

                  Following elements cannot occur inside p; more precisely, block-level opening tags implicitly close any active p. As a consequence, -HEVEA closes the active p element when it processes +HEVEA closes the active p element when it processes \@open and opens a new p when it processes the matching \@close. Generally, no p element is opened by default inside block-level -elements, that is, HEVEA does not immediately open p after having +elements, that is, HEVEA does not immediately open p after having processed \@open. However, if a paragraph break occurs later, then a new p element is opened, and will be closed automatically @@ -2373,16 +2441,14 @@ Opening a block-level element inside a g involves closing the active p and opening a new p when the matching \@close is processed.

                  Finally, display mode (as introduced by $$) is also complicated. Displays basically are table elements with one row -(tr), and HEVEA manages to introduce table cells (td) +(tr), and HEVEA manages to introduce table cells (td) where appropriate. Processing \@open inside a display means closing the current cell, starting a new cell, opening the specified block, and then immediately opening a new display. Processing the matching \@close closes the internal display, then the specified block, then the cell and finally opens a new cell. In many occasions (in particular for groups), either cell -break or the internal display may get cancelled.

                  - - +break or the internal display may get cancelled.

                  @@ -2393,45 +2459,47 @@ break or the internal display may get ca + + It is important to notice that primitive arguments are processed (except for the \@print primitive, and for some of the basic style primitives). Thus, some characters cannot be given directly (e.g. # and % must be given as \# and \%).

                  -\@print{text}
                  -Echo text verbatim. As a consequence use only ascii -in text. -
                  \@getprint{text}
                  -Process text using a special output mode that strips off +\@print{text}
                  +Echo text verbatim. As a consequence use only ascii +in text. +
                  \@getprint{text}
                  +Process text using a special output mode that strips off html tags. This macro is the one to use for processed attributes of html tags. -
                  \@hr[attr]{width}{height}
                  -Output an html horizontal rule, attr is attributes given -directly (e.g. SIZE=3 HOSHADE), while width and -height are length arguments given in the LATEX style +
                  \@hr[attr]{width}{height}
                  +Output an html horizontal rule, attr is attributes given +directly (e.g. SIZE=3 HOSHADE), while width and +height are length arguments given in the LATEX style (e.g. 2pt or .5\linewidth). -
                  \@print@u{n}
                  -Output the (Unicode) character “n”, which can +
                  \@print@u{n}
                  +Output the (Unicode) character “n”, which can be given either as a decimal number or an hexadecimal number prefixed -by “X”.
                  \@open{block}{attributes}
                  -Open html block-level element block with attributes -attributes. The block name block must be +by “X”.
                  \@open{block}{attributes}
                  +Open html block-level element block with attributes +attributes. The block name block must be lowercase. -As a special case block may be the empty string, then a html +As a special case block may be the empty string, then a html group is opened. -
                  \@close{block}
                  -Close html block-level element block. +
                  \@close{block}
                  +Close html block-level element block. Note that \@open and \@close must be properly balanced. -
                  \@out@par{arg}
                  +
                  \@out@par{arg}
                  If occurring inside a p element, that is if a <p> opening tag is active, \@out@par first closes it (by emitting </p>), -then formats arg, and then re-open a p element. -Otherwise \@out@par simply formats arg. +then formats arg, and then re-open a p element. +Otherwise \@out@par simply formats arg. This command is adequate when -formatting arg produces block-level elements. -

                  +formatting arg produces block-level elements. +

                  Text-level elements are managed differently. They are not seen as blocks that must be closed explicitly. Instead they follow a “declaration” style, similar @@ -2440,8 +2508,8 @@ to the one of LATE Block-level elements (and html groups) delimit the effect of such declarations.

                  -\@span{attr}
                  - +\@span{attr}
                  + Declare the text-level element span (with given attributes) as active. The text-level element span will get opened as soon as @@ -2451,29 +2519,29 @@ Enclosed block-level elements are treate before them, and re-opening span (with given attributes) inside them. The following text-level constructs exhibit similar behaviour with respect -to block-level elements.
                  \@style{shape}
                  Declare the -text shape shape (which must be lowercase) as active. Text +to block-level elements.
                  \@style{shape}
                  Declare the +text shape shape (which must be lowercase) as active. Text shapes are known as font style elements (i, tt, etc.; -warning:most of font style elements are depreciated in html5, +warning:most of font style elements are depreciated in html5, and some of them are no longer valid, prefer CSS in span tags) -or phrase elements (em, etc.) in the html terminology.
                  \@styleattr{name}{attr}
                  +or phrase elements (em, etc.) in the html terminology.
                  \@styleattr{name}{attr}
                  This command generalises both \@span and \@style, -as both a text-level element name name and attributes are specified. +as both a text-level element name name and attributes are specified. More specifically, -\@span{attr} can be seen as a shorthand for -\@styleattr{span}{attr}; +\@span{attr} can be seen as a shorthand for +\@styleattr{span}{attr}; while -\@style{name} can be seen as +\@style{name} can be seen as a shorthand for -\@styleattr{name}{}.
                  \@fontsize{int}
                  Declare +\@styleattr{name}{}.
                  \@fontsize{int}
                  Declare the text-level element span with attribute -style="font-size:font-size" as active. +style="font-size:font-size" as active. The argument -int must be a small integer in the range +int must be a small integer in the range 1,2, … , 7. -hevea computes font-size, a CSS fontsize value, -from int. -More specifically, font-size will +hevea computes font-size, a CSS fontsize value, +from int. +More specifically, font-size will range from x-small to 120% included in a xx-large, 3 being the default size medium. Notice that \@fontsize is deprecated in favour of @@ -2481,16 +2549,16 @@ Notice that \@fontsize is d \@span{style="font-size=xx-small"}, \@span{style="font-size=x-small"}, \@span{style="font-size=small"}, -etc.
                  \@fontcolor{color}
                  +etc.
                  \@fontcolor{color}
                  Declare the text-level element span with attribute -"style=color" as active. -The argument color must be a color attribute value in the html +"style=color" as active. +The argument color must be a color attribute value in the html style. That is either one of the sixteen conventional colours black, silver etc, or a RGB hexadecimal color specification of the form -#XXXXXX. -Note that the argument color is processed, as a consequence -numerical color arguments should be given as \#XXXXXX.
                  \@nostyle
                  +#XXXXXX. +Note that the argument color is processed, as a consequence +numerical color arguments should be given as \#XXXXXX.
                  \@nostyle
                  Close active text-level declarations and ignore further text-level declarations. The effect stops when the enclosing block-level element is closed. @@ -2509,7 +2577,7 @@ italics one may write: An indeed hevea styles text in that manner, starting from version 2.00. Such (verbose) declarations are then abstracted into style class declarations -by HEVEA optimiser esponja, which is invoked by hevea +by HEVEA optimiser esponja, which is invoked by hevea when given option “-O”.

                  Notice that style attributes can be given to elements other than span. However, combining style attributes requires a little care as only one style attribute is allowed. @@ -2517,14 +2585,14 @@ Namely <cite style="font-weight is illegal and should be written <cite style="font-weight:bold;color:red">. For instance: -Das Kapital. -

                  +Das Kapital. +

                  The command \@addtyle can be handy for adding style to already style elements:

                  -\@addstyle{name:val}{attrs}
                  -Echo the space-separated attributes attrs of a tag with the -name:val style declaration added to these attributes. The +\@addstyle{name:val}{attrs}
                  +Echo the space-separated attributes attrs of a tag with the +name:val style declaration added to these attributes. The style attribute is added if necessary. Examples: \@addstyle{color:red}{href="#"} will produce href="#" style="color:red", and @@ -2536,31 +2604,34 @@ As an example, consider the following de for typesetting citation in bold, written directly in html:

                  \newcommand{\styledcite}[2][]
                   {{\@styleattr{cite}{\@addstyle{#1}{style="font-weight:bold"}}#2}}
                  -

                  The purpose of the optional argument is to add style to specific citations, +

                  +The purpose of the optional argument is to add style to specific citations, as in:

                  Two fundamental works: \styledcite{The Holy Bible} and
                   \styledcite[color:red]{Das Kapital}.
                  -

                  We get: Two fundamental works: The Holy Bible and -Das Kapital.

                  Notice that the example is given for illustrating the usage of the +

                  +We get: Two fundamental works: The Holy Bible and +Das Kapital.

                  Notice that the example is given for illustrating the usage of the \@addstyle macros, which is intended for package writers. A probably simpler way to proceed would be to use LATEX text-style declarations:

                  \newcommand{styledcite}[2][]{{\@style{cite}#1\bf{}#2}}
                   Two fundamental works: \styledcite{The Holy Bible} and
                   \styledcite[\color{red}]{Das Kapital}.
                  -

                  We get: -Two fundamental works: The Holy Bible and -Das Kapital.

                  +

                  +We get: +Two fundamental works: The Holy Bible and +Das Kapital.

                  8.4  The rawhtml environment

                  - + Any text enclosed between \begin{rawhtml} and \end{rawhtml} is echoed verbatim into the html output file. -Similarly, \rawhtmlinput{file} echoes the -contents of file file. +Similarly, \rawhtmlinput{file} echoes the +contents of file file. In fact, rawhtml is the environment counterpart of the \@print command, but experience showed it to be much more -error prone.

                  When HEVEA was less sophisticated then it is now, +error prone.

                  When HEVEA was less sophisticated then it is now, rawhtml was quite convenient. But, as time went by, numerous pitfalls around rawhtml showed up. Here are a few: @@ -2575,14 +2646,14 @@ environment should contain only html For instance, writing \begin{rawhtml}<table>\end{rawhtml}\begin{rawhtml}</table>\end{rawhtml} is -dangerous, because HEVEA is not informed about opening and closing +dangerous, because HEVEA is not informed about opening and closing the block-level element table. In that case, one should use -the internal macros \@open and \@close.

                • \begin{rawhtml}text\end{rawhtml} fragments that +the internal macros \@open and \@close.
                • \begin{rawhtml}text\end{rawhtml} fragments that contain block-level elements will almost certainly mix poorly with p elements (introduced by paragraph breaks) and with active style declaration (introduced by, for instance, \it). Safe usage will most of the time means using the internal macros -\@nostyle and \@out@par.
                • When HEVEA is given the command-line option -O, +\@nostyle and \@out@par.
                • When HEVEA is given the command-line option -O, checking and optimisation of text-level elements in the whole document takes place. As a consequence, incorrect html introduced by using the rawhtml environment may be detected at a later stage, @@ -2598,7 +2669,8 @@ A list of links: <li><a href="http://www.sun.com/">Sun</a>. </ul> \end{rawhtml} -

                  One can write: +

                  +One can write:

                  \begin{htmlonly}
                   A list of links:
                   \begin{itemize}
                  @@ -2607,40 +2679,43 @@ A list of links:
                   \end{itemize}
                   \end{htmlonly}
                   

                  + A list of links:

                  - -If HEVEA is targeted to text or info files (see +

                • + +If HEVEA is targeted to text or info files (see Section 11). The text inside rawhtml environments is ignored. However there exists a rawtext environment (and a \rawtextinput command) to echo text verbatim in text or info output mode. Additionally, the raw environment and a \rawinput -command echo their contents verbatim, regardless of HEVEA output -mode. Of course, when HEVEA produces html, +command echo their contents verbatim, regardless of HEVEA output +mode. Of course, when HEVEA produces html, the latter environment and command suffer from the same drawbacks as rawhtml.

                  8.5  Examples

                  - + As a first example of using internal macros, consider the following excerpt from the hevea.hva file that defines the center environment:

                  \newenvironment{center}{\@open{div}{style="text-align:center"}}{\@close{div}}
                  -

                  Notice that the code above is no longer present and is given here +

                  +Notice that the code above is no longer present and is given here for explanatory purpose only. -Now HEVEA uses style-sheets and the actual definition of the +Now HEVEA uses style-sheets and the actual definition of the center environment is as follows:

                  \newstyle{.center}{text-align:center;margin-left:auto;margin-right:auto;}%
                   \setenvclass{center}{center}%
                   \newenvironment{center}
                     {\@open{div}{\@getprint{class="\getenvclass{center}"}}
                     {\@close{div}}%
                  -

                  Basically environments \begin{center}\end{center} will, by +

                  +Basically environments \begin{center}\end{center} will, by default, be translated into blocks <div class="center"></div>. Additionally, the style class associated to center environments @@ -2649,34 +2724,37 @@ commands \setenvclass and < See section 9.3 for more explanations.

                  Another example is the definition of the \purple color declaration (see section 8.1.2):

                  \newcommand{\purple}{\@fontcolor{purple}}
                  -

                  HEVEA does not feature all text-level elements by default. +

                  HEVEA does not feature all text-level elements by default. However one can easily use them with internal macros. For instance this is how you can make all emphasised text blink:

                  \renewcommand{\em}{\@styleattr{em}{style="text-decoration:blink"}}
                   

                  + Here is an example of this questionable blinking feature:

                  Hello!

                  -

                  - - +

                  + + Then, here is the definition of a simplified \imgsrc command (see section 8.1.1), without its optional argument:

                  \newcommand{\imgsrc}[1]
                     {\@print{<img src="}\@getprint{#1}\@print{">}}
                  -

                  Here, \@print and \@getprint are used to output +

                  +Here, \@print and \@getprint are used to output html text, depending upon whether this text requires processing or not. Note that \@open{img}{src="#1"} is not correct, because the element img consists in a single tag, without a -closing tag.

                  +closing tag.

                  Another interesting example is the definition of the command \@doaelement, -which HEVEA uses internally to output A elements. +which HEVEA uses internally to output A elements.

                  \newcommand{\@doaelement}[2]
                     {{\@nostyle\@print{<a }\@getprint{#1}\@print{>}}{#2}{\@nostyle\@print{</a>}}
                  -

                  The command \@doaelement takes two arguments: the first +

                  +The command \@doaelement takes two arguments: the first argument contains the opening tag attributes; while the second element is the textual content of the A element. By contrast with the \imgsrc example above, @@ -2684,9 +2762,9 @@ tags are emitted inside groups where sty \@nostyle declaration. Such a complication is needed, so as to avoid breaking proper nesting of text-level elements.

                  - - + + Here is another example of direct block opening. The bgcolor environment from the color package locally changes background color (see section B.14.2.1). @@ -2695,13 +2773,14 @@ This environment is defined as follows: {\@open{table}{}\@open{tr}{}% \@open{td}{\@addstyle{background-color:\@getcolor{#2}}{#1}}} {\@close{td}\@close{tr}\@close{table}} -

                  The bgcolor environment operates by opening a html table +

                  +The bgcolor environment operates by opening a html table (table) with only one row (tr) and cell (td) in its opening command, and closing all these elements in its closing command. In my opinion, such a style of opening block-level elements in environment opening commands and closing them in environment closing commands is good style. -The one cell background color is forced with a background-color +The one cell background color is forced with a background-color property in a style attribute. Note that the mandatory argument to \begin{bgcolor} is the background color expressed as a high-level color, which therefore @@ -2709,84 +2788,87 @@ needs to be translated into a low-level \@getcolor internal macro from the color package. Additionally, \begin{bgcolor} takes html attributes as an optional argument. These attributes are the ones of the -table element.

                  If you wish to output a given Unicode character whose value you know, +table element.

                  If you wish to output a given Unicode character whose value you know, the recommended technique is to define an ad-hoc command that simply call the \@print@u command. For instance, “blackboard sigma” is Unicode U+02140 (hexa). Hence you can define the command \bbsigma as follows:

                  \newcommand{\bbsigma}{\@print@u{X2140}}
                  -

                  Then, “\bbsigma” will output “⅀”

                  +

                  +Then, “\bbsigma” will output “⅀”

                  8.6  The document charset

                  According to standards, as far as I understand them, html pages are made of Unicode (ISO 10646) characters. By contrast, a file in any operating system is usually considered as -being made of bytes.

                  To account for that fact, html pages usually specify a document +being made of bytes.

                  To account for that fact, html pages usually specify a document charset that defines a translation from a flow of bytes to a flow of characters. For instance, the byte 0xA4 means Unicode 0x00A4 (¤) in the ISO-8859-1 (or latin1) encoding, and 0x20AC (€) in the ISO-8859-15 (or latin9) encoding. -Notice that HEVEA has no difficulty to output both symbols, in fact +Notice that HEVEA has no difficulty to output both symbols, in fact they are defined as Unicode characters:

                  \newcommand{\textcurrency}{\@print@u{XA4}}
                   \newcommand{\texteuro}{\@print@u{X20AC}}
                  -

                  But the \@print@u command may output the specified character as +

                  +But the \@print@u command may output the specified character as a byte, when possible, by the means of the output translator. If not possible, \@print@u outputs a numerical character -references (for instance &#X20AC;).

                  Of course, the document charset and the output translator +references (for instance &#X20AC;).

                  Of course, the document charset and the output translator must be synchronised. The command \@def@charset takes a charset name as argument and performs the operation of specifying the document character set and the output translator. It should occur in the document preamble. -Valid charset names are ISO-8859-n where n is a +Valid charset names are ISO-8859-n where n is a number in 115, KOI8-R, US-ASCII (the default), -windows-n where n is +windows-n where n is 1250, 1251, 1252 or 1257, or macintosh, or UTF-8. In case those charsets do not suffice, you may ask the author for other document charsets. Notice however that document charset is not that important, the default US-ASCII works everywhere! Input encoding of source files is another, although -related, issue — see Section B.17.4.

                  If wished so, the charset can be extracted from the current -locale environment, provided this yields a valid (to HEVEA) charset name. +related, issue — see Section B.17.4.

                  If wished so, the charset can be extracted from the current +locale environment, provided this yields a valid (to HEVEA) charset name. This operation is performed by a companion script: xxcharset.exe. -It thus suffices to launch HEVEA as: +It thus suffices to launch HEVEA as:

                  -# hevea -exec xxcharset.exe other arguments +# hevea -exec xxcharset.exe other arguments
                  -

                  9  Support for style sheets

                  +

                  9  Support for style sheets

                  9.1  Overview

                  -Starting with version 1.08, HEVEA offers support for style sheets +Starting with version 1.08, HEVEA offers support for style sheets (of the CSS variant see [CSS-2]).

                  Style sheets provide enhanced expressiveness. For instance, it is now possible to get “real” (whatever real means here) small caps in html, and in a relatively standard manner. There are other, discrete, maybe unnoticeable, similar enhancements.

                  However, style sheets mostly offer an additional mechanism to -customise their documents to HEVEA users. To do so, users should -probably get familiar with how HEVEA uses style sheets in the first -place.

                  HEVEA interest for style sheets is at the moment confined to -block-level elements (div, table, H<n>, +customise their documents to HEVEA users. To do so, users should +probably get familiar with how HEVEA uses style sheets in the first +place.

                  HEVEA interest for style sheets is at the moment confined to +block-level elements (div, table, H<n>, etc.). The general principle is as follows: when a command or an environment gets translated into a block-level element, the opening tag of the block level element has a -class="name" attribute, where name is the +class="name" attribute, where name is the command or environment name.

                  As an example the LATEX command \subsection is implemented with the element h3, resulting in html output of the form:

                      <h3 class="subsection">
                       ...
                       </h3>
                  -

                  By default, most styles are undefined, and default rendering of +

                  +By default, most styles are undefined, and default rendering of block-level elements applies. However, some packages (such as, for instance fancysection, see Section B.16.4) may define them. -If you wish to change the style of section headers, loading the +If you wish to change the style of section headers, loading the fancysection package may prove appropriate (see B.16.4). However, one can also proceed more directly, by appending new definitions to the document style @@ -2804,7 +2886,8 @@ These specification will normally affect Given the previous style definition, the sectioning command

                  \subsection*{A styled subsection heading}
                  -

                  should yield: +

                  +should yield:

                  A styled subsection heading

                  The following points are worth noticing: @@ -2824,18 +2907,19 @@ a light green background, with small lef This has been performed by simply issuing the following command in the document preamble.

                  \newstyle{.verbatim}{margin:1ex 1ex;padding:1ex;background:\#ccffcc;}
                  -

                  Observe that, in the explicit numerical color argument above, the +

                  +Observe that, in the explicit numerical color argument above, the hash character “#” has to be escaped.

                  9.3  Changing the style of some instances of an environment

                  -One can also change the style class attached to a given instance of +One can also change the style class attached to a given instance of an environment and thus control styling of environments more precisely.

                  As a matter of fact, the name of the class attribute of -environment env is referred to through an indirection, by -using the command \getenvclass{env}. +environment env is referred to through an indirection, by +using the command \getenvclass{env}. The class attribute can be changed with the command -\setenvclass{env}{class}. +\setenvclass{env}{class}. The \setenvclass command internally defines a command -\env@class, whose content is read +\env@class, whose content is read by the \getenvclass command. As a consequence, the class attribute of environments follows normal scoping rules. @@ -2855,7 +2939,7 @@ its default value to the new value myverbatim. The change remains active until the end of the current group (here, the “}” at the end). Then, the class of environment verbatim is restored to its default value -— which happen to be verbatim.

                  +— which happen to be verbatim.

                  This example also shows two new ways to specify colours in style definition, with a conventional html color name (here maroon) or as @@ -2866,7 +2950,8 @@ new environments.

                  \newenvironment{flashyverbatim}
                     {\setenvclass{verbatim}{myverbatim}\verbatim}
                     {\endverbatim}
                  -

                  Then, we can use \begin{flashyverbatim}… +

                  +Then, we can use \begin{flashyverbatim}\end{flashyverbatim} to get verbatim environments style with the intended myverbatim style class.

                  This text is typeset inside the environment
                  @@ -2874,12 +2959,12 @@ the intended myverbat
                   style.
                   
                  -

                  9.4  Which class affects what

                  Generally, the styling of environment env is performed through +

                  9.4  Which class affects what

                  Generally, the styling of environment env is performed through the commands -\getenvclass{env} -and \setenvclass{env}{}, -with \getenvclass{env} producing the -default value of env.

                  Concretely, this means that most of the environments are styled through +\getenvclass{env} +and \setenvclass{env}{}, +with \getenvclass{env} producing the +default value of env.

                  Concretely, this means that most of the environments are styled through an homonymous style class. Here is a non-exhaustive list of such environments

                  @@ -2889,31 +2974,32 @@ quotation, verbatim, abstract, mathpar ( Section B.17.15), lstlisting (cf. Section B.17.13), etc.

                  All sectioning commands (\part, \section etc.) -output H<n> block-level elements, which are styled +output H<n> block-level elements, which are styled through style classes named part, section, etc.

                  List making-environment introduce extra style classes for items. More specifically, for list-making environments itemize and enumerate, li elements are styled as follows:

                  -
                  <ul class="itemize">
                  +
                  +
                  +
                  <ul class="itemize">
                   <li class="li-itemize"> ...
                   </ul>
                  -
                  <ol class="enumerate">
                  +
                  <ol class="enumerate">
                   <li class="li-enumerate"> ...
                   </ol>
                  -

                  That is, li elements are styled as environments, the key name -being li-env.

                  The description, trivlist and list environments +being li-env.

                  The description, trivlist and list environments (which all get translated into DL elements) are styled in a similar way, internal DT and DD elements being -styles through names dt-env and -dd-env respectively.

                  +styles through names dt-env and +dd-env respectively.

                  9.5  A few examples

                  -

                  9.5.1  The title of the document

                  +

                  9.5.1  The title of the document

                  The command \maketitle formats the document title within a table element, with class title, for display. The name of the title is displayed @@ -2929,13 +3015,15 @@ information (author, date) are displayed </td> </tr> </table> -

                  Users can impact on title formatting by adding style in the +

                  +Users can impact on title formatting by adding style in the appropriate style classes. For instance the following style class definitions:

                  \newstyle{.title}
                     {text-align:center;margin:1ex auto;color:navy;border:solid navy;}
                   \newstyle{.titlerest}{font-variant:small-caps;}
                  -

                  will normally produce a title in dark blue, centered in a box, with +

                  +will normally produce a title in dark blue, centered in a box, with author and date in small-caps.

                  @@ -2946,23 +3034,24 @@ author and date in small-caps.

                  9.5.2  Enclosing things in a styled div

                  -At the moment, due to the complexity of the task, environments +At the moment, due to the complexity of the task, environments tabular and array cannot be styled as others environments can be, by defining an appropriate class in the preamble. However, even for such constructs, limited styling can be performed, by using the divstyle environment. -The opening command \begin{divstyle}{class} +The opening command \begin{divstyle}{class} takes the name of a class as -an argument, and translates to <div class="class">. +an argument, and translates to <div class="class">. Of course the closing command \end{divstyle} translates to </div>. The limitation is that the enclosed part may generate more html blocks, and that not all style attribute defined in class class -class will apply to those inner blocks.

                  As an example consider the style class definition below. +class will apply to those inner blocks.

                  As an example consider the style class definition below.

                  \newstyle{.ruled}{border:solid black;padding:1ex;background:\#eeddbb;color:maroon}
                  -

                  The intended behaviour is to add a black border around the inner block +

                  +The intended behaviour is to add a black border around the inner block (with some padding), and to have maroon text over a light brown background.

                  If we, for instance, enclose an itemize environment, the resulting effect is more or less what we have expected: @@ -2987,10 +3076,10 @@ Good Morning & Bonjour\\ Thank You & \end{tabular}\end{center} \end{divstyle}

                  -
                  - - - +
                  EnglishFrench
                  Good MorningBonjour
                  Thank YouMerci
                  Good ByeAu Revoir
                  + + +
                  EnglishFrench
                  Good MorningBonjour
                  Thank YouMerci
                  Good ByeAu Revoir

                  @@ -3008,17 +3097,18 @@ Good Morning & Bonjour\\ Thank You & \end{tabular} \end{divstyle} \end{tabular}\end{center} -

                  This works because of the rules that +

                  +This works because of the rules that govern the width of html table elements, which yield minimal width. This trick is used in -numerous places by HEVEA, for instance in document titles, and looks +numerous places by HEVEA, for instance in document titles, and looks quite safe. -

                  - - - - +

                  EnglishFrench
                  Good MorningBonjour
                  Thank YouMerci
                  Good ByeAu Revoir
                  @@ -3028,16 +3118,16 @@ of the styling div
                  -
                  + + + +
                  EnglishFrench
                  Good MorningBonjour
                  Thank YouMerci
                  Good ByeAu Revoir
                  - - - +
                  EnglishFrench
                  Good MorningBonjour
                  Thank YouMerci
                  Good ByeAu Revoir
                  + + +
                  EnglishFrench
                  Good MorningBonjour
                  Thank YouMerci
                  Good ByeAu Revoir

                  9.5.3  Styling the itemize environment

                  - + Our idea is highlight lists with a left border whose color fades @@ -3087,7 +3177,8 @@ The text above is typeset from the follo ... \end{toc} \end{toc} -

                  For simplicity, we assume a limit of four over the nesting depth of +

                  +For simplicity, we assume a limit of four over the nesting depth of toc environment. We first define four style classes toc1, toc2, toc3 and toc4 in the document preamble. @@ -3099,14 +3190,16 @@ designed. \newtocstyle{2}{\@getstylecolor{Brown}} \newtocstyle{3}{\@getstylecolor{Tan}} \newtocstyle{4}{\@getstylecolor{Melon}} -

                  The toc environment uses a counter to record nesting depth. +

                  +The toc environment uses a counter to record nesting depth. Notice how the style class of the itemize environment is redefined before \begin{itemize}.

                  \newcounter{toc}
                   \newenvironment{toc}
                   {\stepcounter{toc}\setenvclass{itemize}{toc\thetoc}\begin{itemize}}
                   {\addtocounter{toc}{-1}\end{itemize}}
                  -

                  The outputted html is: +

                  +The outputted html is:

                  <ul class="toc1"><li class="li-itemize">
                   Part&nbsp;A
                   <ul class="toc2"><li class="li-itemize">
                  @@ -3120,36 +3213,38 @@ Section&nbsp;I.1
                   

                  9.6  Miscellaneous

                  - -

                  9.6.1  HACHA and style sheets

                  -HACHA now produces an additional file: a style sheet, which is -shared by all the html files produced by HACHA. + +

                  9.6.1  HACHA and style sheets

                  +HACHA now produces an additional file: a style sheet, which is +shared by all the html files produced by HACHA. Please refer to section 7.1 for details.

                  9.6.2  Producing an external style sheet

                  -By default, style declarations defined with +By default, style declarations defined with \newstyle go into the header of the html document doc.html. However, one can send those declaration into an external style file, whose name is doc.css. -Then, HEVEA automatically relates doc.html to +Then, HEVEA automatically relates doc.html to its style sheet doc.css. To achieve this behaviour, it suffices to set the value of the boolean -register externalcss to true, by issuing the command +register externalcss to true, by issuing the command \externalcsstrue in the preamble of the source document. -Notice that HEVEA output still can be processed by HACHA, with +Notice that HEVEA output still can be processed by HACHA, with correct behaviour.

                  9.6.3  Linking to external style sheets

                  -The HEVEA command \loadcssfile{url} allows the +The HEVEA command \loadcssfile{url} allows the user to link to an external style sheet (like the link option for -HTML). The command takes an url of the external +HTML). The command takes an url of the external sheet as argument and emits the HTML text to link to the given external style sheet. As an example, the command

                  \loadcssfile{../abc.css}
                  -

                  produces the following html text in the head of the document. +

                  +produces the following html text in the head of the document.

                    <link rel="stylesheet" type="text/css" href="../abc.css">
                  -

                  To yield some effect, \loadcssfile must appear in the document +

                  +To yield some effect, \loadcssfile must appear in the document preamble. Several \loadcssfile commands can be issued. Then the given external style sheets appear in the output, following source order.

                  Notice that the argument to \loadcssfile is processed. Thus, if it @@ -3163,7 +3258,7 @@ package (see Section EVEA before it starts to process the +definitions performed by HEVEA before it starts to process the user’s document. Additionally, external style sheets specified with \loadcssfile appear before style classes defined with \newstyle. @@ -3173,17 +3268,18 @@ external style sheets. Thus, using exter if they alter the styling of elements, may produce awkward results.

                  Those limitations do not apply of course to style classes whose names are new, since there cannot be default definitions for them. Then, linking with external style sheets can prove useful to -promote uniform styling of several documents produced by HEVEA.

                  - -

                  10  Customising HEVEA

                  +promote uniform styling of several documents produced by HEVEA.

                  + +

                  10  Customising HEVEA

                  -HEVEA can be controlled by writing LATEX code. In this section, -we examine how users can change HEVEA default behaviour or add +HEVEA can be controlled by writing LATEX code. In this section, +we examine how users can change HEVEA default behaviour or add functionalities. In all this section we assume that a document doc.tex is processed, using a private command file -macros.hva. That is, HEVEA is invoked as: +macros.hva. That is, HEVEA is invoked as:

                  # hevea macros.hva doc.tex
                  -

                  The general idea is as follows: one redefines LATEX constructs in +

                  +The general idea is as follows: one redefines LATEX constructs in macros.hva, using internal commands. This requires a good working knowledge of both LATEX and html. Usually, one can avoid internal commands, but then, all command @@ -3202,34 +3298,37 @@ commands:

                  \let\oldquote\quote
                   \let\oldendquote\endquote
                   \renewenvironment{quote}{\oldquote\em}{\oldendquote}
                  -

                  In some sense, this second +

                  +In some sense, this second solution is easier, when one already knows how to customise LATEX. However, this is less safe, since the definition of \em can be changed elsewhere.

                  There is yet another solution that takes advantage of style sheets. One can also add this line to the macros.hva file:

                  \newstyle{.quote}{font-style:oblique;}
                  -

                  This works because the environment quote is styled through +

                  +This works because the environment quote is styled through style class quote (see Section 9.2). Notice that this solution has very little to do with “emphasising” in the proper sense, since here we short-circuit the implicit path from \em to oblique fonts.

                  10.2  Changing defaults for type-styles

                  -HEVEA default rendering of type style changes is described in +HEVEA default rendering of type style changes is described in section B.15.1. For instance, the following example shows the default rendering for the font shapes:

                  \itshape italic shape \slshape slanted shape
                   \scshape small caps shape \upshape upright shape
                  -

                  By default, \itshape is italics, \slshape is oblique +

                  +By default, \itshape is italics, \slshape is oblique italics, \scshape is small-caps (thanks to style sheets) and \upshape is no style at all. All shapes are mutually exclusive, this means that each shape declaration cancels the effect of other active shape declarations. For instance, in the example, small caps shapes is small caps (no italics here).

                  -italic shape slanted shape -small caps shape upright shape +italic shape slanted shape +small caps shape upright shape

                  If one wishes to change the rendering of some of the shapes (say slanted caps), then one should redefine the old-style \sl declaration. For instance, to render slanted as Helvetica (why so?), one should @@ -3237,15 +3336,15 @@ redefine \sl by \rene macros.hva.

                  And now, the shape example above gets rendered as follows:

                  -italic shape slanted shape -small caps shape upright shape +italic shape slanted shape +small caps shape upright shape

                  Redefining the old-style \sl is compatible with the cancellation mechanism, redefining \slshape is not. Thus, redefining directly LATEX 2є \slshape with \renewcommand{\slshape}{} would yield:

                  -italic shape slanted shape -small caps shape upright shape +italic shape slanted shape +small caps shape upright shape

                  Hence, redefining old-style declarations using internal commands should yield satisfactory output. However, since cancellation is done at the html @@ -3255,31 +3354,32 @@ Anyway, you might have not noticed it if

                  10.3  Changing the interface of a command

                  Assume for instance that the base style of doc.tex is -jsc (the +jsc (the Journal of Symbolic Computation style for articles). -For running HEVEA, the jsc style can be replaced by -article +For running HEVEA, the jsc style can be replaced by +article style, but for a few commands whose calling interface is changed. In particular, the \title command -takes an extra optional argument (which HEVEA should ignore +takes an extra optional argument (which HEVEA should ignore anyway). -However, HEVEA can process the document as it stands. +However, HEVEA can process the document as it stands. One solution to insert the following lines into macros.hva:

                  \input{article.hva}% Force document class 'article'
                   \let\oldtitle=\title
                   \renewcommand{\title}[2][]{\oldtitle{#2}}
                  -

                  The effect is to replace \title by a new command which -calls HEVEA \title with the appropriate argument. +

                  +The effect is to replace \title by a new command which +calls HEVEA \title with the appropriate argument.

                  10.4  Checking the optional argument within a command

                  - -HEVEA fully implements LATEX 2є \newcommand. + +HEVEA fully implements LATEX 2є \newcommand. That is, users can define commands with an optional argument. Such a feature permits to write a \epsfbox command that has the same interface as the LATEX command and -echoes itself as it is invoked to the image file. -To do this, the HEVEA \epsfbox command has to check +echoes itself as it is invoked to the image file. +To do this, the HEVEA \epsfbox command has to check whether it is invoked with an optional argument or not. This can be achieved as follows:

                  \newcommand{\epsfbox}[2][!*!]{%
                  @@ -3290,39 +3390,40 @@ This can be achieved as follows:
                   

                  10.5  Changing the format of images

                  - - - - + + + + Semi-automatic generation of included images is described in section 6. Links to included images are generated by the \imageflush command, which calls the \imgsrc command:

                  \newcommand{\imageflush}[1][]
                   {\@imageflush\stepcounter{image}\imgsrc[#1]{\hevaimagedir\jobname\theimage\heveaimageext}}
                  -

                  That is, you may supply a html-style attribute to the included image, +

                  +That is, you may supply a html-style attribute to the included image, as an optional argument to the \imageflush command.

                  By default, images are PNG images stored in .png files. -HEVEA provides support for the alternative GIF image file format. +HEVEA provides support for the alternative GIF image file format. It suffices to invoke hevea as:

                  -# hevea gif.hva doc.tex +# hevea gif.hva doc.tex

                  -Then imagen must be run with option -gif: +Then imagen must be run with option -gif:

                  # imagen -gif doc

                  A convenient alternative is to invoke hevea as:

                  -# hevea -fix gif.hva doc.tex +# hevea -fix gif.hva doc.tex

                  Then hevea will invoke imagen with the appropriate option when it thinks images need to be rebuild. An even more convenient alternative is to load gif.hva from within document source, for instance with the \usepackage -command.

                  HEVEA also provides support for the alternative SVG image file format. +command.

                  HEVEA also provides support for the alternative SVG image file format. As for GIF images, it is more convenient to use option -fix to combine hevea and imagen invocations:

                  -# hevea -fix svg.hva doc.tex +# hevea -fix svg.hva doc.tex

                  Notice that imagen production chain of SVG images always call pdflatex, even when not given @@ -3336,31 +3437,31 @@ letting client browser select the most a teh srcset attribute of the img element.

                  10.6  Storing images in a separate directory

                  - + By redefining the \heveaimagedir command, users can specify a directory for images. More precisely, if the following redefinition occurs in the document preamble.

                  -\renewcommand{\heveaimagedir}{dir} +\renewcommand{\heveaimagedir}{dir}

                  Then, all links to images in the produced html file will be as -“dir/…”. -Then imagen must be invoked with option - +“dir/…”. +Then imagen must be invoked with option - todir:

                  -# imagen -todir dir doc +# imagen -todir dir doc

                  As usual, hevea will invoke imagen with the appropriate option, provided it is passed the -fix option.

                  10.7  Controlling imagen from document source

                  - + The internal command -\@addimagenopt{option} add -the text option to imagen command-line options, when +\@addimagenopt{option} add +the text option to imagen command-line options, when launched automatically by hevea (i.e. when -hevea is given the -fix command-line option).

                  For instance, to instruct hevea/imagen to +hevea is given the -fix command-line option).

                  For instance, to instruct hevea/imagen to reduce all images by a factor of √2, it suffices to state:

                  %HEVEA\@addimagenopt{-mag 707} @@ -3380,9 +3481,10 @@ html, plain text and info manuals from o

                  11.1  Text

                  The LATEX file is processed and converted into a plain text -formatted file. It allows some pretty-printing in plain text.

                  To translate into text, invoke HEVEA as follow: +formatted file. It allows some pretty-printing in plain text.

                  To translate into text, invoke HEVEA as follow:

                  # hevea -text [-w <width>] myfile.tex
                  -

                  Then, HEVEA produces myfiles.txt a plain text translation +

                  +Then, HEVEA produces myfiles.txt a plain text translation of myfile.tex.

                  Additionally, the optional argument -w <number> sets the width of the output for text formatting. By default, The text will be 72 characters wide.

                  Nearly every environment has been translated, included lists and tables. @@ -3397,10 +3499,10 @@ columns only. Table rendering can be poor in case of line overflow. The only way to correct this (apart from changing the tables themselves) is to adjust the formatting width, using the -the -w command-line option.

                  For now, maths are not supported at all in text mode. You can get very weird +the -w command-line option.

                  For now, maths are not supported at all in text mode. You can get very weird results with in-text mathematical formulas. Of course, simple expressions such as subscripts remains readable. -For instance, x2 will be rendered as x^2, but ∫01f(x)dx will +For instance, x2 will be rendered as x^2, but ∫01f(x)dx will yield something like : int01f(x)dx.

                  11.2  Info

                  @@ -3408,10 +3510,11 @@ The file format info is also supported. Info files are text files with limited hypertext links, they can be read by using emacs info mode or the info program. -Please note that HEVEA translates plain LATEX to info, and not +Please note that HEVEA translates plain LATEX to info, and not TeXinfo.

                  You can translate your LATEX files into info file(s) as follows:

                  # hevea -info [-w <width>] myfile.tex
                  -

                  Then, HEVEA produces the file myfile.info, an info +

                  +Then, HEVEA produces the file myfile.info, an info translation of myfile.tex. However, if the resulting file is too large, it is cut into pieces automatically, @@ -3423,7 +3526,7 @@ commands. Menus are created to navigate References, indexes and footnotes are supported, as they are in html mode. However, the info format only allows pointers to info nodes, -i.e. in HEVEA case, to sectional units. +i.e. in HEVEA case, to sectional units. As a consequence all cross references lead to sectional unit headers.

                  @@ -3438,15 +3541,15 @@ manual [LAB.1  Commands and Environments

                  B.1.1  Command Names and Arguments

                  LATEX comments that start with “%” and end at end of line are ignored and produce no output. -Usually, HEVEA ignore such comments. However, HEVEA processes +Usually, HEVEA ignore such comments. However, HEVEA processes text that follows “%HEVEA” and some other comments have a specific meaning to it (see -section 5.3).

                  +section 5.3).

                  Command names follow strict LATEX syntax. That is, apart from #, $, ~, _ and ^, they either are “\” followed by a single non-letter character or “\” followed by a sequence of letters. Additionally, the letter sequence may be preceded by “@” -(and this is the case of many of HEVEA internal commands), or +(and this is the case of many of HEVEA internal commands), or terminated by “*” (starred variants are implemented as plain commands).

                  Users are strongly advised to follow strict LATEX syntax for arguments. That is, mandatory arguments are enclosed in curly braces @@ -3454,61 +3557,63 @@ arguments. That is, mandatory arguments balanced. Optional arguments are enclosed in square brackets []. -However, HEVEA does its best to read arguments even when they are +However, HEVEA does its best to read arguments even when they are not enclosed in curly braces. Such arguments are a single, different from “\”, “{” and “ ”, character or a command name. Thus, constructs such as \'ecole, $a_1$ or $a_\Gamma$ are -recognized and processed as école a1 and aΓ. +recognized and processed as école a1 and aΓ. By contrast, a^\mbox{...} is not recognized and must be written a^{\mbox{...}}.

                  Also note that, by contrast with LATEX, comments are parsed during argument scanning, as an important consequence brace nesting is also -checked inside comments.

                  - +checked inside comments.

                  + With respect to previous versions, -HEVEA has been improved as regards emulation of complicated +HEVEA has been improved as regards emulation of complicated argument passing. That is, commands and their arguments can now appear in different static text bodies. As a consequence, -HEVEA correctly processes the following source: +HEVEA correctly processes the following source:

                  \newcommand{\boite}{\textbf}
                   \boite{In bold}
                  -

                  The definition of \boite makes it reduces as -\textbf and HEVEA succeeds in fetching the argument +

                  +The definition of \boite makes it reduces as +\textbf and HEVEA succeeds in fetching the argument “{In bold}”. We get

                  -In bold +In bold

                  The above example arguably is no “legal” LATEX, -but HEVEA handles it. +but HEVEA handles it. Of course, there remains numerous “clever” LATEX tricks that exploits TEX internal -behaviour, which HEVEA does not handle. +behaviour, which HEVEA does not handle. For instance consider the following source:

                  \newcommand{\boite}[1]{\textbf#1}
                   \boite{{In bold}, Not in Bold.}
                  -

                  LATEX typesets the text “In bold” using bold font, leaving -the rest of the text alone. While HEVEA typesets everything using -bold font. Here is HEVEA output: +

                  +LATEX typesets the text “In bold” using bold font, leaving +the rest of the text alone. While HEVEA typesets everything using +bold font. Here is HEVEA output:

                  -In bold, Not in Bold. +In bold, Not in Bold.

                  -Note that, in most similar situations, HEVEA will likely crash.

                  As a conclusion of this important section, +Note that, in most similar situations, HEVEA will likely crash.

                  As a conclusion of this important section, Users are strongly advised to use ordinary command names and curly braces and not to think too much the TEX way.

                  B.1.2  Environments

                  Environment opening and closing is performed like in LATEX, with -\begin{env} and -\end{env}. -The *-form of an environment is a plain environment.

                  It is not advised to use \env and -\endenv in place of \begin{env} and -\end{env}.

                  +\begin{env} and +\end{env}. +The *-form of an environment is a plain environment.

                  It is not advised to use \env and +\endenv in place of \begin{env} and +\end{env}.

                  B.1.3  Fragile Commands

                  -Fragile commands are not relevant to HEVEA and \protect is +Fragile commands are not relevant to HEVEA and \protect is defined as a null command.

                  B.1.4  Declarations

                  @@ -3516,7 +3621,7 @@ Scope rules are the same as in LA

                  B.1.5  Invisible Commands

                  I am a bit lost here. However spaces in the output should correspond -to users expectations. Note that, to HEVEA being +to users expectations. Note that, to HEVEA being invisible commands is a static property attached to command name.

                  B.1.6  The \\ Command

                  The \\ and \\* commands are the same, they perform a @@ -3526,45 +3631,46 @@ Optional arguments to \\ an

                  B.2  The Structure of the Document

                  Document structure is a bit simplified with respect to LATEX, since documents consist of only two parts. -The preamble starts as soon as HEVEA starts to operate and +The preamble starts as soon as HEVEA starts to operate and ends with the \begin{document} construct. Then, any input occurring before \end{document} is translated to html. However, the preamble is processed and the preamble comprises the content of the files given as command-line -arguments to HEVEA, see section C.1.1.1). +arguments to HEVEA, see section C.1.1.1). As a consequence, command and environment definitions that occur before \begin{document} are performed. and they remain -valid during all the processing.

                  - +valid during all the processing.

                  + In particular one can define a header and a footer, by using the \htmlhead and \htmlfoot commands in the preamble. Those commands register their argument as the header and the footer of the final html document. The header appears first while the footer appears last in (visible) html output. -This is mostly useful when HEVEA output is later cut into pieces by -HACHA, since both header and footer are replicated -at the start and end of any file generated by HACHA. +This is mostly useful when HEVEA output is later cut into pieces by +HACHA, since both header and footer are replicated +at the start and end of any file generated by HACHA. For instance, to append a copyright notice at the end of all the html pages, it suffices to invoke the \htmlfoot command as follows in the document preamble:

                  \htmlfoot{\copyright to me}
                  -

                  - - - +

                  + + + The \htmlhead command cannot be used for changing anything outside of the html document body, there are specific commands for doing this. Those command must be used in the document preamble. One can -change HEVEA default (empty) attribute of +change HEVEA default (empty) attribute of the opening <body ...> tag by redefining \@bodyargs. For instance, you get black text on a white background, when the following declaration occurs before \begin{document}:

                  \renewcommand{\@bodyargs}{style="color:black;background:white"}
                  -

                  Since version 1.08, a recommended alternative is to use style sheets: +

                  +Since version 1.08, a recommended alternative is to use style sheets:

                  \newstyle{body}{color:black; background:white;}
                   

                  One can also change the default (empty) attribute of the opening <html ...> tag by redefining @@ -3572,7 +3678,7 @@ following declaration occurs before

                  \renewcommand{\@htmlargs}{lang=en}
                  -

                  +

                  Similarly, some elements can be inserted into the output file head element by redefining the \@meta command (Such elements typically are meta, link, etc.). @@ -3585,14 +3691,15 @@ author information as follows: \begin{rawhtml} <meta name="Author" content="Luc Maranget"> \end{rawhtml}} -

                  Note how \@meta is first bound to +

                  +Note how \@meta is first bound to \oldmeta before being redefined and how \oldmeta is invoked in the new definition of \@meta. Namely, simply overriding the old definition of \@meta would -imply not outputting default meta-information.

                  +imply not outputting default meta-information.

                  The \@charset command holds the value of the (html) document character set. By default, this value is US-ASCII. -In previous versions of HEVEA, one could change the +In previous versions of HEVEA, one could change the value of the document character set by simply redefining \@charset. Then, it was users responsability to provide a (LATEX) document in the correspounding encoding. @@ -3602,8 +3709,8 @@ This is no longer so, and users should <

                  B.3  Sentences and Paragraphs

                  B.3.1  Spacing

                  - - + + Generally speaking, spaces (and single newline characters) in the source are echoed in the output. Browser then manage with spaces and line-breaks. Following LATEX behaviour, spaces after commands are @@ -3634,10 +3741,10 @@ at chapters end in the book sty See section 7.3.6 for a description of how footnotes are flushed.

                  B.3.4  Accents and special symbols

                  -Thanks to Unicode character references, HEVEA can virtually output +Thanks to Unicode character references, HEVEA can virtually output any symbol. -It may happen that HEVEA does not known about a particular symbol, -that is, most of the time, HEVEA does not known about a particular +It may happen that HEVEA does not known about a particular symbol, +that is, most of the time, HEVEA does not known about a particular command. In that case a warning is issued to draw user attention. Users can then choose a particular symbol amongst the recognized ones, or as an explicit Unicode character reference (see @@ -3651,7 +3758,8 @@ For instance, consider the following sou legitimate use of acute accents, one attempt to put an accute accent over the letter “h”:

                  ``\'Ecole'' works as in \LaTeX, while ``\'h'' does not.
                  -

                  HEVEA output will be “École” works as in LATEX, while “h” does not. +

                  +HEVEA output will be “École” works as in LATEX, while “h” does not. And a warning will be issued.

                  ./tmp.tex:3741: Warning: Application of '\'' on 'h' failed
                  @@ -3667,39 +3775,42 @@ Sectioning commands from \part\subparagraph are defined in base style files.
                   They accept an optional argument and have starred versions.

                  The non-starred sectioning commands from \part down to \subsubsection show section numbers in sectional unit headings, -provided their level is greater than or equal to the current +provided their level is greater than or equal to the current value of the secnumdepth counter. Sectional unit levels and the default value of the secnumdepth counter are the same as in LATEX. -Furthermore, given a sectional unit secname, the -counter secname exists and the appearance of sectional units -numbers can be changed by redefining \thesecname. +Furthermore, given a sectional unit secname, the +counter secname exists and the appearance of sectional units +numbers can be changed by redefining \thesecname. For instance, the following redefinition turn the numbering of chapters into alphabetic (uppercase) style:

                  \renewcommand{\thechapter}{\Alph{chapter}}
                  -

                  When jumping to anchors, browsers put the targeted line on top +

                  When jumping to anchors, browsers put the targeted line on top of display. As a consequence, in the following code:

                  \section{A section}
                   \label{section:section}
                    ...
                   See Section~\ref{section:section}
                  -

                  Clicking on the link produced by +

                  +Clicking on the link produced by \ref{section:section} will result in not displaying the targeted section title. A fix is writing:

                  \section{\label{section:section}A section}
                    ...
                   See Section~\ref{section:section}
                  -

                  Starting with version 2.04, HEVEA and HACHA will use the label name +

                  Starting with version 2.04, HEVEA and HACHA will use the label name (section:section above) for the table of contents they generate. For instance, the source code for the next sectioning command just below is:

                  \subsection{The \label{appendix}Appendix}
                  -

                  As a consequence, the link to the next section on top +

                  +As a consequence, the link to the next section on top of this page should read as:

                  <a href="sectioning.html#appendix">The Appendix</a>
                  -

                  That is, HEVEA used the label name given in source as +

                  +That is, HEVEA used the label name given in source as an anchor. Notice that this behaviour applies to the \label command @@ -3709,26 +3820,26 @@ that occurs first in the sectioning comm The \appendix command exists and should work as in LATEX.

                  B.4.3  Table of Contents

                  -HEVEA now generates a table of contents, using a procedure similar +HEVEA now generates a table of contents, using a procedure similar to the one of LATEX(a .htoc file is involved). One inserts this table of contents in the main document by issuing the command \tableofcontents. Table of contents is controlled by the counter tocdepth. By default, the table of contents shows sectioning units down to the -subsubsection level in article style and down to the subsection level -in book (or report) style. To include more or less +subsubsection level in article style and down to the subsection level +in book (or report) style. To include more or less sectioning units in the table of contents, one should increase or decrease the tocdepth counter. -It is important to notice that HEVEA produces such a table of +It is important to notice that HEVEA produces such a table of contents, only when it has total control over cross-references. -More precisely, HEVEA cannot produce the table of contents when it +More precisely, HEVEA cannot produce the table of contents when it reads LATEX-produced .aux files. Instead, it should read its own .haux files. This will naturally occur if no .aux files are present, -otherwise these .aux files should be deleted, or HEVEA +otherwise these .aux files should be deleted, or HEVEA should be instructed not to read them with the command-line option --fix +-fix (see Sections B.11.1 and  C.1.1.4).

                  One can also add extra entries in the table of contents by using the command \addcontentslines, in a way similar to LATEX homonymous command. @@ -3738,12 +3849,13 @@ an anchor is defined in the section titl argument to \addcontentsline:

                  \subsection*{\aname{no:number}{Use \hacha{}}}
                   \addcontentsline{toc}{subsection}{\ahrefloc{no:number}{Use \hacha{}}}
                  -

                  (See Section 8.1.1 for details on commands related to hyperlinks.)

                  There is no list of figures nor list of tables.

                  -

                  Use HACHA

                  +

                  +(See Section 8.1.1 for details on commands related to hyperlinks.)

                  There is no list of figures nor list of tables.

                  +

                  Use HACHA

                  -However, HEVEA has a more sophisticated way of producing +However, HEVEA has a more sophisticated way of producing a kind of map w.r.t. the sectioning of the document. -A later run of HACHA on HEVEA output file splits it +A later run of HACHA on HEVEA output file splits it in smaller files organized in a tree whose nodes are tables of links. By contrast with LATEX, starred sectioning commands generate @@ -3751,7 +3863,7 @@ entries in these tables of contents. Table of contents entries hold the optional argument to sectioning commands or their argument when there is no optional argument. Section 7 explains how to -control HACHA.

                  +control HACHA.

                  B.5  Classes, Packages and Page Styles

                  @@ -3766,27 +3878,27 @@ being equivalent.

                  If one of the re \documentclass or \documentstyle is executed, then no attempt to load a style file is made. This allows to override the document style file by -giving one of the four recognized style files of HEVEA as a command -line argument (see 2.2).

                  Conversely, if HEVEA attempt to load style.hva +giving one of the four recognized style files of HEVEA as a command +line argument (see 2.2).

                  Conversely, if HEVEA attempt to load style.hva fails, then a fatal error is flagged, since it can be sure that the document cannot be processed.

                  B.5.2  Packages and Page Styles

                  - -HEVEA reacts to -\usepackage[options]{pkg} in + +HEVEA reacts to +\usepackage[options]{pkg} in the following way:

                  1. The whole \usepackage command with its arguments gets echoed to the image file (see 6). -
                  2. HEVEA attempt to load file pkg.hva, -(see section C.1.1.1 on where HEVEA searches for files). +
                  3. HEVEA attempt to load file pkg.hva, +(see section C.1.1.1 on where HEVEA searches for files).

                  -Note that HEVEA will not fail if it cannot load -pkg.hva and that no warning is issued in that case.

                  The HEVEA distribution contains implementations of some packages, -such as verbatim, colors, graphics, etc.

                  In some situations it may not hurt at all if HEVEA does not -implement a package, for instance HEVEA does not provide an +Note that HEVEA will not fail if it cannot load +pkg.hva and that no warning is issued in that case.

                  The HEVEA distribution contains implementations of some packages, +such as verbatim, colors, graphics, etc.

                  In some situations it may not hurt at all if HEVEA does not +implement a package, for instance HEVEA does not provide an implementation for the fullpage package.

                  Users needing an implementation of a package that is widely used and available are encouraged to contact the author. @@ -3796,18 +3908,18 @@ implementations by themselves.

                  B.5.3  The Title Page and Abstract

                  All title related commands exist, with the following peculiarities:

                  • -The argument to the \title command appears +The argument to the \title command appears in the html document header. As a consequence, titles should -remain simple. Normal design (as regards HEVEA) is for +remain simple. Normal design (as regards HEVEA) is for \title to occur in the document preamble, so that the title is known at the time when the document header is emitted (while processing \begin{document}). However, there are two subtleties.

                    If no \title command occurs in document preamble and that one \title command appears in the document, then the title is saved into the -.haux file for a next run of HEVEA to put it in the +.haux file for a next run of HEVEA to put it in the html document header.

                    If \title commands are present both in preamble and after \begin{document}, then the former takes precedence.

                  • When not present the date is left empty. The -\today command generates will work properly +\today command generates will work properly only if hevea is invoked with the -exec xxdate.exe option. Otherwise \today generates nothing and a warning is issued. @@ -3818,9 +3930,9 @@ The titlepage environment d

                    B.6  Displayed Paragraphs

                    Displayed-paragraph environments translate to block-level elements.

                    In addition to the environments described in this section, -HEVEA implements the center, flushleft and +HEVEA implements the center, flushleft and flushright environments. -HEVEA also implements the corespondant TEX style declaration +HEVEA also implements the corespondant TEX style declaration \centering \raggedright and \raggedleft, but these declarations may not work as expected, when they do not appear directly inside a displayed-paragraph environment or inside an array @@ -3847,24 +3959,24 @@ environments

                    The list environment translates to the DL element. Arguments to \begin{list} are handled as follows:

                    -  \begin{list}{default_label}{decls} -

                    The first argument default_label is the label generated by an +  \begin{list}{default_label}{decls} +

                  The first argument default_label is the label generated by an \item command with no argument. -The second argument, decls is a sequence of declarations. +The second argument, decls is a sequence of declarations. In practice, the following declarations are relevant:

                  -\usecounter{counter}
                  -The counter counter is incremented by \refstepcounter +\usecounter{counter}
                  +The counter counter is incremented by \refstepcounter by every \item command with no argument, before it does anything else.
                  \renewcommand{\makelabel}[1]{}
                  The command \item executes -\makelabel{label}, where label is the item +\makelabel{label}, where label is the item label, to print its label. Thus, users can change label formatting by redefining \makelabel. -The default definition of \makelabel simply echoes label. +The default definition of \makelabel simply echoes label.

                  As an example, a list with an user-defined counter can be defined as follows:

                  \newcounter{coucou}
                  @@ -3873,12 +3985,13 @@ follows:
                   \renewcommand{\makelabel}[1]{\textbf{#1}.}}
                   ...
                   \end{list}
                  -

                  This yields: +

                  +This yields:

                  -1.
                  First item. -
                  2.
                  Second item. +1.
                  First item. +
                  2.
                  Second item.

                  The trivlist environment is also supported. It is equivalent to the description environment.

                  @@ -3902,36 +4015,36 @@ are supported. Equation labelling and numbering is performed in the first two environments, using the equation counter. Additionally, numbering can be suppressed in one row of an -eqnarray, using the \nonumber command.

                  Math mode is not as powerful in HEVEA as in LATEX. The +eqnarray, using the \nonumber command.

                  Math mode is not as powerful in HEVEA as in LATEX. The limitations of math mode can often be surpassed by using math display mode. As a matter of fact, math mode is for in-text formulas. From the html point of view, this means that math mode does not close the current flow of text and that formulas in math mode must be rendered using text-level elements only. By contrast, displayed formulas can be rendered using block-level elements. This means that -HEVEA have much more possibilities in display context than inside +HEVEA have much more possibilities in display context than inside normal flow of text. In particular, stacking text elements one above the over is possible only in display context. -For instance compare how HEVEA renders +For instance compare how HEVEA renders $\frac{1}{\sum_{i=1}^{\infty} i$ -as: 1/∑i=1 i, and +as: 1/∑i=1 i, and $$\frac{1}{\sum_{i=1}^{\infty} i$$ as: -

                  +

                  1
                  -
                  1
                  +
                  - - -
                  i=1
                   i
                  + + +
                  i=1
                   i
                  -

                  B.7.2  Common Structures

                  HEVEA admits, subscript (_), superscripts (^) and -fractions (\frac{numer}{denom}). +

                  B.7.2  Common Structures

                  HEVEA admits, subscript (_), superscripts (^) and +fractions (\frac{numer}{denom}). The best effect is obtained in display mode, where html table element is extensively used. -By contrast, when not in display mode, HEVEA uses only +By contrast, when not in display mode, HEVEA uses only SUB and SUP text-level elements to render superscrits and subscript, and the result may not be very satisfying.

                  However, simple subscripts and superscripts, such as x_i or x^2, @@ -3944,48 +4057,49 @@ is issued.

                  An attempt is made to r strange for the latter two.

                  B.7.3  Square Root

                  - + The nth root command \sqrt is supported only for n=3,4, thanks to the existence of Unicode characters for the same. For the others, we shift to fractional exponents, in which case, the \sqrt command is defined as follows:

                  \newcommand{\sqrt}[3][2]{\left(#2\right)^{1/#1}}
                   

                  + Then, the source fragment: $$\sqrt[5]{\frac{1}{n!}} + \sqrt[3]{\pi} + \sqrt{\pi}$$ gets rendered as follows: -


                  +




                  -⎝
                  +⎝
                  1
                  - +
                  1
                  n!
                  n!



                  -⎠
                  +⎠ -
                  1
                  - - +
                  - +
                  1
                  5
                  5

                  +



                   
                   
                   +  - -
                  π
                   +  - +
                  π
                   +  + +
                  π
                   +  +
                  π
                  -

                  B.7.4  Unicode and mathematical symbols

                  The support for unicode symbols offered by modern browsers allows to +

                  B.7.4  Unicode and mathematical symbols

                  The support for unicode symbols offered by modern browsers allows to translate almost all math symbols correctly.

                  Log-like functions and variable sized-symbols are recognized and their subscripts and superscripts are put where they should in display mode. Subscript and superscript placement can be changed using the \limits and \nolimits commands. Big delimiters are also handled.

                  -

                  B.7.5  Putting one thing above/below/inside

                  +

                  B.7.5  Putting one thing above/below/inside

                  The commands \stackrel, \underline and \overline are recognized. They produce sensible output in display mode. @@ -3997,16 +4111,16 @@ These macros perform the following defau

                  \textunderline
                  Underlines its argument, using the U text-level element.
                  \textoverline
                  Overlines using style-sheets (used <SPAN> with a top border). -

                  The command \boxed works well both in display and normal math mode. Input of the form \boxed{\frac{\pi}{2}} produces π/2 in normal math, and -

                  +

                  The command \boxed works well both in display and normal math mode. Input of the form \boxed{\frac{\pi}{2}} produces π/2 in normal math, and +

                  π
                  - +
                  π
                  2
                  2

                  -in display-math mode. The commands \bigl,\bigr etc. are also rendered well. Some examples can be found here.

                  +in display-math mode. The commands \bigl,\bigr etc. are also rendered well. Some examples can be found here.

                  -

                  B.7.6  Math accents

                  +

                  B.7.6  Math accents

                  Math accents that have coresponding text accents (\hat, \tilde, etc.) are handled by default. They in fact act as the @@ -4014,7 +4128,7 @@ corresponding text-mode accents (Section As a consequence, they work properly only on ascii letters. This may be quite cumbersome, but at least some warnings draw user’s attention on the problem. -If accents are critical to your document and that HEVEA issues +If accents are critical to your document and that HEVEA issues a lot of warnings, a solution is to redefine the math accent command. A suggested replacement is using limit superscripts. That way accents are positioned above symbols in display mode and @@ -4025,15 +4139,16 @@ $$ \hat{\mu} = \hat{\Delta}. $$ In text: $\hat{\mu} = \hat{\delta}$ -

                  An you get, +

                  +An you get, displayed: -

                  - - -
                  ^
                  µ
                   
                   =  - - +

                  ^
                  Δ
                   
                  + + +
                  ^
                  µ
                   
                   =  + +
                  ^
                  Δ
                   
                  .

                  @@ -4045,45 +4160,45 @@ you get “µ = δ” command is rendered differently in display and non-display mode. In display mode, the arrow appears in normal position, while in non-display the arrow appears as an ordinary superscript. -

                  \vec{u} in text mode: u,   -\vec{u} in display mode:  - - +

                  u
                   
                  \vec{u} in text mode: u,   +\vec{u} in display mode:  + +
                  u
                   

                  Most “extensible accents” (\widetilde, \widehat, etc.) are not even defined. There are a few exceptions: line “accents”: -

                  -
                       +

                  abc
                  +
                  -
                      
                  abc
                    \underline
                       - +
                  abc
                       +
                  abc
                    \overline