| 1 | % | 
| 2 | % $Id: html.sty,v 1.38 1999/07/19 13:23:20 RRM Exp $ | 
| 3 | % LaTeX2HTML Version 99.2 : html.sty | 
| 4 | % | 
| 5 | % This file contains definitions of LaTeX commands which are | 
| 6 | % processed in a special way by the translator. | 
| 7 | % For example, there are commands for embedding external hypertext links, | 
| 8 | % for cross-references between documents or for including raw HTML. | 
| 9 | % This file includes the comments.sty file v2.0 by Victor Eijkhout | 
| 10 | % In most cases these commands do nothing when processed by LaTeX. | 
| 11 | % | 
| 12 | % Place this file in a directory accessible to LaTeX (i.e., somewhere | 
| 13 | % in the TEXINPUTS path.) | 
| 14 | % | 
| 15 | % NOTE: This file works with LaTeX 2.09 or (the newer) LaTeX2e. | 
| 16 | %       If you only have LaTeX 2.09, some complex LaTeX2HTML features | 
| 17 | %       like support for segmented documents are not available. | 
| 18 |  | 
| 19 | % Changes: | 
| 20 | % See the change log at end of file. | 
| 21 |  | 
| 22 |  | 
| 23 | % Exit if the style file is already loaded | 
| 24 | % (suggested by Lee Shombert <las@potomac.wash.inmet.com> | 
| 25 | \ifx \htmlstyloaded\relax \endinput\else\let\htmlstyloaded\relax\fi | 
| 26 | \makeatletter | 
| 27 |  | 
| 28 | % allow for the hyperref package to be cleanly loaded | 
| 29 | % either before or after this package, | 
| 30 | % and ensure it is already loaded, when using pdf-TeX | 
| 31 |  | 
| 32 | \ifx\undefined\hyperref | 
| 33 | \ifx\pdfoutput\undefined \let\pdfunknown\relax | 
| 34 | \let\html@new=\newcommand | 
| 35 | \else | 
| 36 | \ifx\pdfoutput\relax \let\pdfunknown\relax | 
| 37 | \RequirePackage{hyperref}\let\html@new=\renewcommand | 
| 38 | \else | 
| 39 | \RequirePackage{hyperref}\let\html@new=\newcommand | 
| 40 | \fi | 
| 41 | \fi | 
| 42 | \else | 
| 43 | \let\html@new=\renewcommand | 
| 44 | \fi | 
| 45 |  | 
| 46 | \providecommand{\latextohtml}{\LaTeX2\texttt{HTML}} | 
| 47 |  | 
| 48 | %%% LINKS TO EXTERNAL DOCUMENTS | 
| 49 | % | 
| 50 | % This can be used to provide links to arbitrary documents. | 
| 51 | % The first argumment should be the text that is going to be | 
| 52 | % highlighted and the second argument a URL. | 
| 53 | % The hyperlink will appear as a hyperlink in the HTML | 
| 54 | % document and as a footnote in the dvi or ps files. | 
| 55 | % | 
| 56 | \ifx\pdfunknown\relax | 
| 57 | \html@new{\htmladdnormallinkfoot}[2]{#1\footnote{#2}} | 
| 58 | \else | 
| 59 | \def\htmladdnormallinkfoot#1#2{\footnote{\href{#2}{#1}}} | 
| 60 | \fi | 
| 61 |  | 
| 62 | % This is an alternative definition of the command above which | 
| 63 | % will ignore the URL in the dvi or ps files. | 
| 64 | \ifx\pdfunknown\relax | 
| 65 | \html@new{\htmladdnormallink}[2]{#1} | 
| 66 | \else | 
| 67 | \def\htmladdnormallink#1#2{\href{#2}{#1}} | 
| 68 | \fi | 
| 69 |  | 
| 70 | % This command takes as argument a URL pointing to an image. | 
| 71 | % The image will be embedded in the HTML document but will | 
| 72 | % be ignored in the dvi and ps files. | 
| 73 | % | 
| 74 | \ifx\pdfunknown\relax | 
| 75 | \html@new{\htmladdimg}[1]{} | 
| 76 | \else | 
| 77 | \def\htmladdimg#1{\hyperimage{#1}} | 
| 78 | \fi | 
| 79 |  | 
| 80 |  | 
| 81 | %%% CROSS-REFERENCES BETWEEN (LOCAL OR REMOTE) DOCUMENTS | 
| 82 | % | 
| 83 | % This can be used to refer to symbolic labels in other Latex | 
| 84 | % documents that have already been processed by the translator. | 
| 85 | % The arguments should be: | 
| 86 | % #1 : the URL to the directory containing the external document | 
| 87 | % #2 : the path to the labels.pl file of the external document. | 
| 88 | % If the external document lives on a remote machine then labels.pl | 
| 89 | % must be copied on the local machine. | 
| 90 | % | 
| 91 | %e.g. \externallabels{http://cbl.leeds.ac.uk/nikos/WWW/doc/tex2html/latex2html} | 
| 92 | %                    {/usr/cblelca/nikos/tmp/labels.pl} | 
| 93 | % The arguments are ignored in the dvi and ps files. | 
| 94 | % | 
| 95 | \newcommand{\externallabels}[2]{} | 
| 96 |  | 
| 97 |  | 
| 98 | % This complements the \externallabels command above. The argument | 
| 99 | % should be a label defined in another latex document and will be | 
| 100 | % ignored in the dvi and ps files. | 
| 101 | % | 
| 102 | \newcommand{\externalref}[1]{} | 
| 103 |  | 
| 104 |  | 
| 105 | % Suggested by  Uffe Engberg (http://www.brics.dk/~engberg/) | 
| 106 | % This allows the same effect for citations in external bibliographies. | 
| 107 | % An  \externallabels  command must be given, locating a labels.pl file | 
| 108 | % which defines the location and keys used in the external .html file. | 
| 109 | % | 
| 110 | \newcommand{\externalcite}{\nocite} | 
| 111 |  | 
| 112 | % This allows a section-heading in the TOC or mini-TOC to be just | 
| 113 | % a hyperlink to an external document. | 
| 114 | % | 
| 115 | %   \htmladdTOClink[<path_to_labels>]{<section-level>}{<title>}{<URL>} | 
| 116 | % where <section-level> is  'chapter' , 'section' , 'subsection' etc. | 
| 117 | % and <path_to_labels> is the path to find a  labels.pl  file, | 
| 118 | % so that external cross-referencing may work, as with \externallabels | 
| 119 | % | 
| 120 | %\ifx\pdfunknown\relax | 
| 121 | \newcommand{\htmladdTOClink}[4][]{} | 
| 122 | % | 
| 123 | % can do something here, using the \pdfoutline primitive | 
| 124 | %\else | 
| 125 | % \def\htmladdTOClink#1#2#3#4{\pdfoutline user {/S /URI /URI #4} | 
| 126 | %   name{#2} count{#1}{#3}} | 
| 127 | %\fi | 
| 128 |  | 
| 129 |  | 
| 130 | %%% HTMLRULE | 
| 131 | % This command adds a horizontal rule and is valid even within | 
| 132 | % a figure caption. | 
| 133 | % Here we introduce a stub for compatibility. | 
| 134 | \newcommand{\htmlrule}{\protect\HTMLrule} | 
| 135 | \newcommand{\HTMLrule}{\@ifstar\htmlrulestar\htmlrulestar} | 
| 136 | \newcommand{\htmlrulestar}[1]{} | 
| 137 |  | 
| 138 | %%% HTMLCLEAR | 
| 139 | % This command puts in a <BR> tag, with CLEAR="ALL" | 
| 140 | \newcommand{\htmlclear}{} | 
| 141 |  | 
| 142 | % This command adds information within the <BODY> ... </BODY> tag | 
| 143 | % | 
| 144 | \newcommand{\bodytext}[1]{} | 
| 145 | \newcommand{\htmlbody}{} | 
| 146 |  | 
| 147 |  | 
| 148 | %%% HYPERREF | 
| 149 | % Suggested by Eric M. Carol <eric@ca.utoronto.utcc.enfm> | 
| 150 | % Similar to \ref but accepts conditional text. | 
| 151 | % The first argument is HTML text which will become ``hyperized'' | 
| 152 | % (underlined). | 
| 153 | % The second and third arguments are text which will appear only in the paper | 
| 154 | % version (DVI file), enclosing the fourth argument which is a reference to a label. | 
| 155 | % | 
| 156 | %e.g. \hyperref{using the tracer}{using the tracer (see Section}{)}{trace} | 
| 157 | % where there is a corresponding \label{trace} | 
| 158 | % | 
| 159 | % avoid possible confict with  hyperref  package | 
| 160 | \ifx\undefined\hyperref | 
| 161 | \newcommand{\hyperrefhyper}[4]{#4}% | 
| 162 | \def\next{\newcommand}% | 
| 163 | \else | 
| 164 | \let\hyperrefhyper\hyperref | 
| 165 | \def\next{\renewcommand}% | 
| 166 | \fi | 
| 167 | \next{\hyperref}{\hyperrefi[]}\let\next=\relax | 
| 168 |  | 
| 169 | \def\hyperrefi[#1]{{\def\next{#1}\def\tmp{}% | 
| 170 | \ifx\next\tmp\aftergroup\hyperrefdef | 
| 171 | \else\def\tmp{ref}\ifx\next\tmp\aftergroup\hyperrefref | 
| 172 | \else\def\tmp{pageref}\ifx\next\tmp\aftergroup\hyperrefpageref | 
| 173 | \else\def\tmp{page}\ifx\next\tmp\aftergroup\hyperrefpage | 
| 174 | \else\def\tmp{noref}\ifx\next\tmp\aftergroup\hyperrefnoref | 
| 175 | \else\def\tmp{no}\ifx\next\tmp\aftergroup\hyperrefno | 
| 176 | \else\def\tmp{hyper}\ifx\next\tmp\aftergroup\hyperrefhyper | 
| 177 | \else\def\tmp{html}\ifx\next\tmp\aftergroup\hyperrefhtml | 
| 178 | \else\typeout{*** unknown option \next\space to  hyperref ***}% | 
| 179 | \fi\fi\fi\fi\fi\fi\fi\fi}} | 
| 180 | \newcommand{\hyperrefdef}[4]{#2\ref{#4}#3} | 
| 181 | \newcommand{\hyperrefpageref}[4]{#2\pageref{#4}#3} | 
| 182 | \newcommand{\hyperrefnoref}[3]{#2} | 
| 183 | \let\hyperrefref=\hyperrefdef | 
| 184 | \let\hyperrefpage=\hyperrefpageref | 
| 185 | \let\hyperrefno=\hyperrefnoref | 
| 186 | \ifx\undefined\hyperrefhyper\newcommand{\hyperrefhyper}[4]{#4}\fi | 
| 187 | \let\hyperrefhtml=\hyperrefdef | 
| 188 |  | 
| 189 | %%% HYPERCITE --- added by RRM | 
| 190 | % Suggested by Stephen Simpson <simpson@math.psu.edu> | 
| 191 | % effects the same ideas as in  \hyperref, but for citations. | 
| 192 | % It does not allow an optional argument to the \cite, in LaTeX. | 
| 193 | % | 
| 194 | %   \hypercite{<html-text>}{<LaTeX-text>}{<opt-text>}{<key>} | 
| 195 | % | 
| 196 | % uses the pre/post-texts in LaTeX, with a  \cite{<key>} | 
| 197 | % | 
| 198 | %   \hypercite[ext]{<html-text>}{<LaTeX-text>}{<key>} | 
| 199 | %   \hypercite[ext]{<html-text>}{<LaTeX-text>}[<prefix>]{<key>} | 
| 200 | % | 
| 201 | % uses the pre/post-texts in LaTeX, with a  \nocite{<key>} | 
| 202 | % the actual reference comes from an \externallabels  file. | 
| 203 | % | 
| 204 | \newcommand{\hypercite}{\hypercitei[]} | 
| 205 | \def\hypercitei[#1]{{\def\next{#1}\def\tmp{}% | 
| 206 | \ifx\next\tmp\aftergroup\hypercitedef | 
| 207 | \else\def\tmp{int}\ifx\next\tmp\aftergroup\hyperciteint | 
| 208 | \else\def\tmp{cite}\ifx\next\tmp\aftergroup\hypercitecite | 
| 209 | \else\def\tmp{ext}\ifx\next\tmp\aftergroup\hyperciteext | 
| 210 | \else\def\tmp{nocite}\ifx\next\tmp\aftergroup\hypercitenocite | 
| 211 | \else\def\tmp{no}\ifx\next\tmp\aftergroup\hyperciteno | 
| 212 | \else\typeout{*** unknown option \next\space to  hypercite ***}% | 
| 213 | \fi\fi\fi\fi\fi\fi}} | 
| 214 | \newcommand{\hypercitedef}[4]{#2{\def\tmp{#3}\def\emptyopt{}% | 
| 215 | \ifx\tmp\emptyopt\cite{#4}\else\cite[#3]{#4}\fi}} | 
| 216 | \newcommand{\hypercitenocite}[2]{#2\hypercitenocitex[]} | 
| 217 | \def\hypercitenocitex[#1]#2{\nocite{#2}} | 
| 218 | \let\hypercitecite=\hypercitedef | 
| 219 | \let\hyperciteint=\hypercitedef | 
| 220 | \let\hyperciteext=\hypercitenocite | 
| 221 | \let\hyperciteno=\hypercitenocite | 
| 222 |  | 
| 223 | %%% HTMLREF | 
| 224 | % Reference in HTML version only. | 
| 225 | % Mix between \htmladdnormallink and \hyperref. | 
| 226 | % First arg is text for in both versions, second is label for use in HTML | 
| 227 | % version. | 
| 228 | \ifx\pdfunknown\relax | 
| 229 | \html@new{\htmlref}[2]{#1} | 
| 230 | \else | 
| 231 | \def\htmlref#1#2{\hyperefhyper[#2]{#1}} | 
| 232 | \fi | 
| 233 |  | 
| 234 | %%% HTMLCITE | 
| 235 | % Reference in HTML version only. | 
| 236 | % Mix between \htmladdnormallink and \hypercite. | 
| 237 | % First arg is text for both versions, second is citation for use in HTML | 
| 238 | % version. | 
| 239 | \newcommand{\htmlcite}[2]{#1} | 
| 240 |  | 
| 241 |  | 
| 242 | %%% HTMLIMAGE | 
| 243 | % This command can be used inside any environment that is converted | 
| 244 | % into an inlined image (eg a "figure" environment) in order to change | 
| 245 | % the way the image will be translated. The argument of \htmlimage | 
| 246 | % is really a string of options separated by commas ie | 
| 247 | % [scale=<scale factor>],[external],[thumbnail=<reduction factor> | 
| 248 | % The scale option allows control over the size of the final image. | 
| 249 | % The ``external'' option will cause the image not to be inlined | 
| 250 | % (images are inlined by default). External images will be accessible | 
| 251 | % via a hypertext link. | 
| 252 | % The ``thumbnail'' option will cause a small inlined image to be | 
| 253 | % placed in the caption. The size of the thumbnail depends on the | 
| 254 | % reduction factor. The use of the ``thumbnail'' option implies | 
| 255 | % the ``external'' option. | 
| 256 | % | 
| 257 | % Example: | 
| 258 | % \htmlimage{scale=1.5,external,thumbnail=0.2} | 
| 259 | % will cause a small thumbnail image 1/5th of the original size to be | 
| 260 | % placed in the final document, pointing to an external image 1.5 | 
| 261 | % times bigger than the original. | 
| 262 | % | 
| 263 | \newcommand{\htmlimage}[1]{} | 
| 264 |  | 
| 265 |  | 
| 266 | % \htmlborder causes a border to be placed around an image or table | 
| 267 | % when the image is placed within a <TABLE> cell. | 
| 268 | \newcommand{\htmlborder}[1]{} | 
| 269 |  | 
| 270 | % Put \begin{makeimage}, \end{makeimage} around LaTeX to ensure its | 
| 271 | % translation into an image. | 
| 272 | % This shields sensitive text from being translated. | 
| 273 | \newenvironment{makeimage}{}{} | 
| 274 |  | 
| 275 |  | 
| 276 | % A dummy environment that can be useful to alter the order | 
| 277 | % in which commands are processed, in LaTeX2HTML | 
| 278 | \newenvironment{tex2html_deferred}{}{} | 
| 279 |  | 
| 280 |  | 
| 281 | %%% HTMLADDTONAVIGATION | 
| 282 | % This command appends its argument to the buttons in the navigation | 
| 283 | % panel. It is ignored by LaTeX. | 
| 284 | % | 
| 285 | % Example: | 
| 286 | % \htmladdtonavigation{\htmladdnormallink | 
| 287 | %              {\htmladdimg{http://server/path/to/gif}} | 
| 288 | %              {http://server/path}} | 
| 289 | \newcommand{\htmladdtonavigation}[1]{} | 
| 290 |  | 
| 291 |  | 
| 292 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
| 293 | % based upon Eijkhout's  comment.sty v2.0 | 
| 294 | % with modifications to avoid conflicts with later versions | 
| 295 | % of this package, should a user be requiring it. | 
| 296 | %	Ross Moore,  10 March 1999 | 
| 297 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
| 298 | % Comment.sty   version 2.0, 19 June 1992 | 
| 299 | % selectively in/exclude pieces of text: the user can define new | 
| 300 | % comment versions, and each is controlled separately. | 
| 301 | % This style can be used with plain TeX or LaTeX, and probably | 
| 302 | % most other packages too. | 
| 303 | % | 
| 304 | % Examples of use in LaTeX and TeX follow \endinput | 
| 305 | % | 
| 306 | % Author | 
| 307 | %    Victor Eijkhout | 
| 308 | %    Department of Computer Science | 
| 309 | %    University Tennessee at Knoxville | 
| 310 | %    104 Ayres Hall | 
| 311 | %    Knoxville, TN 37996 | 
| 312 | %    USA | 
| 313 | % | 
| 314 | %    eijkhout@cs.utk.edu | 
| 315 | % | 
| 316 | % Usage: all text included in between | 
| 317 | %    \comment ... \endcomment | 
| 318 | % or \begin{comment} ... \end{comment} | 
| 319 | % is discarded. The closing command should appear on a line | 
| 320 | % of its own. No starting spaces, nothing after it. | 
| 321 | % This environment should work with arbitrary amounts | 
| 322 | % of comment. | 
| 323 | % | 
| 324 | % Other 'comment' environments are defined by | 
| 325 | % and are selected/deselected with | 
| 326 | % \includecomment{versiona} | 
| 327 | % \excludecoment{versionb} | 
| 328 | % | 
| 329 | % These environments are used as | 
| 330 | % \versiona ... \endversiona | 
| 331 | % or \begin{versiona} ... \end{versiona} | 
| 332 | % with the closing command again on a line of its own. | 
| 333 | % | 
| 334 | % Basic approach: | 
| 335 | % to comment something out, scoop up  every line in verbatim mode | 
| 336 | % as macro argument, then throw it away. | 
| 337 | % For inclusions, both the opening and closing comands | 
| 338 | % are defined as noop | 
| 339 | % | 
| 340 | % Changed \next to \html@next to prevent clashes with other sty files | 
| 341 | % (mike@emn.fr) | 
| 342 | % Changed \html@next to \htmlnext so the \makeatletter and | 
| 343 | % \makeatother commands could be removed (they were causing other | 
| 344 | % style files - changebar.sty - to crash) (nikos@cbl.leeds.ac.uk) | 
| 345 | % Changed \htmlnext back to \html@next... | 
| 346 |  | 
| 347 | \def\makeinnocent#1{\catcode`#1=12 } | 
| 348 | \def\csarg#1#2{\expandafter#1\csname#2\endcsname} | 
| 349 |  | 
| 350 | \def\ThrowAwayComment#1{\begingroup | 
| 351 | \def\CurrentComment{#1}% | 
| 352 | \let\do\makeinnocent \dospecials | 
| 353 | \makeinnocent\^^L% and whatever other special cases | 
| 354 | %%RRM | 
| 355 | %%  use \xhtmlComment for \xComment | 
| 356 | %%  use \html@next    for \next | 
| 357 | \endlinechar`\^^M \catcode`\^^M=12 \xhtmlComment} | 
| 358 | {\catcode`\^^M=12 \endlinechar=-1 % | 
| 359 | \gdef\xhtmlComment#1^^M{\def\test{#1}\edef\test{\meaning\test} | 
| 360 | \csarg\ifx{PlainEnd\CurrentComment Test}\test | 
| 361 | \let\html@next\endgroup | 
| 362 | \else \csarg\ifx{LaLaEnd\CurrentComment Test}\test | 
| 363 | \edef\html@next{\endgroup\noexpand\end{\CurrentComment}} | 
| 364 | \else \csarg\ifx{LaInnEnd\CurrentComment Test}\test | 
| 365 | \edef\html@next{\endgroup\noexpand\end{\CurrentComment}} | 
| 366 | \else \let\html@next\xhtmlComment | 
| 367 | \fi \fi \fi \html@next} | 
| 368 | } | 
| 369 |  | 
| 370 | %%\def\includecomment	%%RRM | 
| 371 | \def\htmlincludecomment | 
| 372 | #1{\expandafter\def\csname#1\endcsname{}% | 
| 373 | \expandafter\def\csname end#1\endcsname{}} | 
| 374 | %%\def\excludecomment	%%RRM | 
| 375 | \def\htmlexcludecomment | 
| 376 | #1{\expandafter\def\csname#1\endcsname{\ThrowAwayComment{#1}}% | 
| 377 | {\escapechar=-1\relax | 
| 378 | \edef\tmp{\string\\end#1}% | 
| 379 | \csarg\xdef{PlainEnd#1Test}{\meaning\tmp}% | 
| 380 | \edef\tmp{\string\\end\string\{#1\string\}}% | 
| 381 | \csarg\xdef{LaLaEnd#1Test}{\meaning\tmp}% | 
| 382 | \edef\tmp{\string\\end \string\{#1\string\}}% | 
| 383 | \csarg\xdef{LaInnEnd#1Test}{\meaning\tmp}% | 
| 384 | }} | 
| 385 |  | 
| 386 | %%\excludecomment{comment}	%%RRM | 
| 387 | \htmlexcludecomment{comment} | 
| 388 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
| 389 | % end Comment.sty | 
| 390 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
| 391 | \let\includecomment=\htmlincludecomment | 
| 392 | \let\excludecomment=\htmlexcludecomment | 
| 393 |  | 
| 394 | % | 
| 395 | % Alternative code by Robin Fairbairns, 22 September 1997 | 
| 396 | % revised to cope with % and unnested { }, by Ross Moore, 4 July 1998 | 
| 397 | % further revised to cope with & and # in tables, 10 March 1999 | 
| 398 | % | 
| 399 | \def\raw@catcodes{\catcode`\%=12 \catcode`\{=12 \catcode`\}=12 | 
| 400 | \catcode`\&=12 \catcode`\#=12 } | 
| 401 | \newcommand\@gobbleenv{\bgroup\raw@catcodes | 
| 402 | \let\reserved@a\@currenvir\@gobble@nv} | 
| 403 | \bgroup | 
| 404 | \def\expansionhead{\gdef\@gobble@nv@i##1} | 
| 405 | \def\expansiontail{{\def\reserved@b{##1}\@gobble@nv@ii}} | 
| 406 | \def\expansionheadii{\long\gdef\@gobble@nv##1\end} | 
| 407 | \def\expansiontailii{{\@gobble@nv@i}} | 
| 408 | \def\expansionmidii{##2} | 
| 409 | \raw@catcodes\relax | 
| 410 | \expandafter\expansionhead\expandafter}\expansiontail | 
| 411 | \egroup | 
| 412 | \long\gdef\@gobble@nv#1\end#2{\@gobble@nv@i} | 
| 413 | %\long\def\@gobble@nv#1\end#2{\def\reserved@b{#2}% | 
| 414 | \def\@gobble@nv@ii{% | 
| 415 | \ifx\reserved@a\reserved@b | 
| 416 | \edef\reserved@a{\egroup\noexpand\end{\reserved@a}}% | 
| 417 | \expandafter\reserved@a | 
| 418 | \else | 
| 419 | \expandafter\@gobble@nv | 
| 420 | \fi} | 
| 421 |  | 
| 422 | \renewcommand{\htmlexcludecomment}[1]{% | 
| 423 | \csname newenvironment\endcsname{#1}{\@gobbleenv}{}} | 
| 424 | \newcommand{\htmlreexcludecomment}[1]{% | 
| 425 | \csname renewenvironment\endcsname{#1}{\@gobbleenv}{}} | 
| 426 |  | 
| 427 | %%% RAW HTML | 
| 428 | % | 
| 429 | % Enclose raw HTML between a \begin{rawhtml} and \end{rawhtml}. | 
| 430 | % The html environment ignores its body | 
| 431 | % | 
| 432 | \htmlexcludecomment{rawhtml} | 
| 433 |  | 
| 434 |  | 
| 435 | %%% HTML ONLY | 
| 436 | % | 
| 437 | % Enclose LaTeX constructs which will only appear in the | 
| 438 | % HTML output and will be ignored by LaTeX with | 
| 439 | % \begin{htmlonly} and \end{htmlonly} | 
| 440 | % | 
| 441 | \htmlexcludecomment{htmlonly} | 
| 442 | % Shorter version | 
| 443 | \newcommand{\html}[1]{} | 
| 444 |  | 
| 445 | % for images.tex only | 
| 446 | \htmlexcludecomment{imagesonly} | 
| 447 |  | 
| 448 | %%% LaTeX ONLY | 
| 449 | % Enclose LaTeX constructs which will only appear in the | 
| 450 | % DVI output and will be ignored by latex2html with | 
| 451 | %\begin{latexonly} and \end{latexonly} | 
| 452 | % | 
| 453 | \newenvironment{latexonly}{}{} | 
| 454 | % Shorter version | 
| 455 | \newcommand{\latex}[1]{#1} | 
| 456 |  | 
| 457 |  | 
| 458 | %%% LaTeX or HTML | 
| 459 | % Combination of \latex and \html. | 
| 460 | % Say \latexhtml{this should be latex text}{this html text} | 
| 461 | % | 
| 462 | %\newcommand{\latexhtml}[2]{#1} | 
| 463 | \long\def\latexhtml#1#2{#1} | 
| 464 |  | 
| 465 |  | 
| 466 | %%% tracing the HTML conversions | 
| 467 | % This alters the tracing-level within the processing | 
| 468 | % performed by  latex2html  by adjusting  $VERBOSITY | 
| 469 | % (see  latex2html.config  for the appropriate values) | 
| 470 | % | 
| 471 | \newcommand{\htmltracing}[1]{} | 
| 472 | \newcommand{\htmltracenv}[1]{} | 
| 473 |  | 
| 474 |  | 
| 475 | %%%  \strikeout for HTML only | 
| 476 | % uses <STRIKE>...</STRIKE> tags on the argument | 
| 477 | % LaTeX just gobbles it up. | 
| 478 | \newcommand{\strikeout}[1]{} | 
| 479 |  | 
| 480 | %%%  \htmlurl  and  \url | 
| 481 | %  implement \url as the simplest thing, if not already defined | 
| 482 | %  let \htmlurl#1  be equivalent to it | 
| 483 | % | 
| 484 | \def\htmlurlx#1{\begin{small}\texttt{#1}\end{small}}% | 
| 485 | \expandafter\ifx\csname url\endcsname\relax | 
| 486 | \let\htmlurl=\htmlurlx \else \let\htmlurl=\url \fi | 
| 487 |  | 
| 488 |  | 
| 489 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
| 490 | %%% JCL - stop input here if LaTeX2e is not present | 
| 491 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
| 492 | \ifx\if@compatibility\undefined | 
| 493 | %LaTeX209 | 
| 494 | \makeatother\relax\expandafter\endinput | 
| 495 | \fi | 
| 496 | \if@compatibility | 
| 497 | %LaTeX2e in LaTeX209 compatibility mode | 
| 498 | \makeatother\relax\expandafter\endinput | 
| 499 | \fi | 
| 500 |  | 
| 501 | %\let\real@TeXlogo = \TeX | 
| 502 | %\DeclareRobustCommand{\TeX}{\relax\real@TeXlogo} | 
| 503 |  | 
| 504 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
| 505 | % | 
| 506 | % Start providing LaTeX2e extension: | 
| 507 | % This is currently: | 
| 508 | %  - additional optional argument for \htmladdimg | 
| 509 | %  - support for segmented documents | 
| 510 | % | 
| 511 |  | 
| 512 | \ProvidesPackage{html} | 
| 513 | [1999/07/19 v1.38 hypertext commands for latex2html (nd, hws, rrm)] | 
| 514 |  | 
| 515 | % | 
| 516 | % Ensure that \includecomment and \excludecomment are bound | 
| 517 | % to the version defined here. | 
| 518 | % | 
| 519 | \AtBeginDocument{% | 
| 520 | \let\includecomment=\htmlincludecomment | 
| 521 | \let\excludecomment=\htmlexcludecomment | 
| 522 | \htmlreexcludecomment{comment}} | 
| 523 |  | 
| 524 | %%%  bind \htmlurl to \url if that is later loaded | 
| 525 | % | 
| 526 | \expandafter\ifx\csname url\endcsname\relax | 
| 527 | \AtBeginDocument{\@ifundefined{url}{}{\let\htmlurl=\url}}\fi | 
| 528 |  | 
| 529 | %%%%MG | 
| 530 |  | 
| 531 | % This command takes as argument a URL pointing to an image. | 
| 532 | % The image will be embedded in the HTML document but will | 
| 533 | % be ignored in the dvi and ps files.  The optional argument | 
| 534 | % denotes additional HTML tags. | 
| 535 | % | 
| 536 | % Example:  \htmladdimg[ALT="portrait" ALIGN=CENTER]{portrait.gif} | 
| 537 | % | 
| 538 | \ifx\pdfunknown\relax | 
| 539 | \renewcommand{\htmladdimg}[2][]{} | 
| 540 | \else | 
| 541 | \renewcommand{\htmladdimg}[2][]{\hyperimage{#2}} | 
| 542 | \fi | 
| 543 |  | 
| 544 | %%% HTMLRULE for LaTeX2e | 
| 545 | % This command adds a horizontal rule and is valid even within | 
| 546 | % a figure caption. | 
| 547 | % | 
| 548 | % This command is best used with LaTeX2e and HTML 3.2 support. | 
| 549 | % It is like \hrule, but allows for options via key--value pairs | 
| 550 | % as follows:  \htmlrule[key1=value1, key2=value2, ...] . | 
| 551 | % Use \htmlrule* to suppress the <BR> tag. | 
| 552 | % Eg. \htmlrule[left, 15, 5pt, "none", NOSHADE] produces | 
| 553 | % <BR CLEAR="left"><HR NOSHADE SIZE="15">. | 
| 554 | % Renew the necessary part. | 
| 555 | \renewcommand{\htmlrulestar}[1][all]{} | 
| 556 |  | 
| 557 | %%% HTMLCLEAR for LaTeX2e | 
| 558 | % This command puts in a <BR> tag, with optional CLEAR="<attrib>" | 
| 559 | % | 
| 560 | \renewcommand{\htmlclear}[1][all]{} | 
| 561 |  | 
| 562 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
| 563 | % | 
| 564 | %  renew some definitions to allow optional arguments | 
| 565 | % | 
| 566 | % The description of the options is missing, as yet. | 
| 567 | % | 
| 568 | \renewcommand{\latextohtml}{\textup{\LaTeX2\texttt{HTML}}} | 
| 569 | \ifx\pdfunknown\relax | 
| 570 | \renewcommand{\htmladdnormallinkfoot}[3][]{#2\footnote{#3}} | 
| 571 | \renewcommand{\htmladdnormallink}[3][]{#2} | 
| 572 | \else | 
| 573 | \renewcommand{\htmladdnormallinkfoot}[1][]{\def\next{#1}% | 
| 574 | \ifx\next\@empty\def\next{\htmladdnonamedlinkfoot}% | 
| 575 | \else\def\next{\htmladdnamedlinkfoot{#1}}\fi \next} | 
| 576 | \newcommand{\htmladdnonamedlinkfoot}[2]{% | 
| 577 | #1\footnote{\href{#2}{#2}}} | 
| 578 | \newcommand{\htmladdnamedlinkfoot}[3]{% | 
| 579 | \hypertarget{#1}{#2}\footnote{\href{#3}{#3}}} | 
| 580 | \renewcommand{\htmladdnormallink}[1][]{\def\next{#1}% | 
| 581 | \ifx\next\@empty\def\next{\htmladdnonamedlink}% | 
| 582 | \else\def\next{\htmladdnamedlink{#1}}\fi \next} | 
| 583 | \newcommand{\htmladdnonamedlink}[2]{\href{#2}{#1}} | 
| 584 | \newcommand{\htmladdnamedlink}[3]{% | 
| 585 | \hypertarget{#1}{\hskip2bp}\href{#3}{#2}} | 
| 586 | \fi | 
| 587 |  | 
| 588 | \renewcommand{\htmlbody}[1][]{} | 
| 589 | \renewcommand{\htmlborder}[2][]{} | 
| 590 | \renewcommand{\externallabels}[3][]{} | 
| 591 | \renewcommand{\externalref}[2][]{} | 
| 592 | \renewcommand{\externalcite}[1][]{\nocite} | 
| 593 | \renewcommand{\hyperref}[1][]{\hyperrefi[#1]} | 
| 594 | \renewcommand{\hypercite}[1][]{\hypercitei[#1]} | 
| 595 | \renewcommand{\hypercitenocite}[2]{#2\hypercitenocitex} | 
| 596 | \renewcommand{\hypercitenocitex}[2][]{\nocite{#2}} | 
| 597 | \let\hyperciteno=\hypercitenocite | 
| 598 | \let\hyperciteext=\hypercitenocite | 
| 599 |  | 
| 600 | \ifx\pdfunknown\relax | 
| 601 | \renewcommand{\htmlimage}[2][]{} | 
| 602 | \renewcommand{\htmlref}[2][]{#2{\def\tmp{#1}\ifx\tmp\@empty | 
| 603 | \aftergroup\htmlrefdef\else\aftergroup\htmlrefext\fi}} | 
| 604 | \newcommand{\htmlrefdef}[1]{} | 
| 605 | \newcommand{\htmlrefext}[2][]{} | 
| 606 | \renewcommand{\htmlcite}[2][]{#2{\def\tmp{#1}\ifx\tmp\@empty | 
| 607 | \aftergroup\htmlcitedef\else\aftergroup\htmlciteext\fi}} | 
| 608 | \newcommand{\htmlciteext}[2][]{} | 
| 609 | \else | 
| 610 | \renewcommand{\htmlimage}[2][]{\hyperimage{#2}} | 
| 611 | \renewcommand{\htmlref}[1][]{\def\htmp@{#1}\ifx\htmp@\@empty | 
| 612 | \def\htmp@{\htmlrefdef}\else\def\htmp@{\htmlrefext{#1}}\fi\htmp@} | 
| 613 | \newcommand{\htmlrefdef}[2]{\hyperref[hyper][#2]{#1}} | 
| 614 | \newcommand{\htmlrefext}[3]{% | 
| 615 | \hypertarget{#1}{\hskip2bp}\hyperref[hyper][#3]{#2}} | 
| 616 | \renewcommand{\htmlcite}[2][]{#2{\def\htmp@{#1}\ifx\htmp@\@empty | 
| 617 | \aftergroup\htmlcitedef\else\aftergroup\htmlciteext\fi}} | 
| 618 | \newcommand{\htmlciteext}[1][]{\cite} | 
| 619 | \fi | 
| 620 | \newcommand{\htmlcitedef}[1]{ \nocite{#1}} | 
| 621 |  | 
| 622 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
| 623 | % | 
| 624 | %  HTML  HTMLset  HTMLsetenv | 
| 625 | % | 
| 626 | %  These commands do nothing in LaTeX, but can be used to place | 
| 627 | %  HTML tags or set Perl variables during the LaTeX2HTML processing; | 
| 628 | %  They are intended for expert use only. | 
| 629 |  | 
| 630 | \newcommand{\HTMLcode}[2][]{} | 
| 631 | \ifx\undefined\HTML\newcommand{\HTML}[2][]{}\else | 
| 632 | \typeout{*** Warning: \string\HTML\space had an incompatible definition ***}% | 
| 633 | \typeout{*** instead use \string\HTMLcode\space for raw HTML code ***}% | 
| 634 | \fi | 
| 635 | \newcommand{\HTMLset}[3][]{} | 
| 636 | \newcommand{\HTMLsetenv}[3][]{} | 
| 637 |  | 
| 638 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
| 639 | % | 
| 640 | % The following commands pertain to document segmentation, and | 
| 641 | % were added by Herbert Swan <dprhws@edp.Arco.com> (with help from | 
| 642 | % Michel Goossens <goossens@cern.ch>): | 
| 643 | % | 
| 644 | % | 
| 645 | % This command inputs internal latex2html tables so that large | 
| 646 | % documents can to partitioned into smaller (more manageable) | 
| 647 | % segments. | 
| 648 | % | 
| 649 | \newcommand{\internal}[2][internals]{} | 
| 650 |  | 
| 651 | % | 
| 652 | %  Define a dummy stub \htmlhead{}.  This command causes latex2html | 
| 653 | %  to define the title of the start of a new segment.  It is not | 
| 654 | %  normally placed in the user's document.  Rather, it is passed to | 
| 655 | %  latex2html via a .ptr file written by \segment. | 
| 656 | % | 
| 657 | \newcommand{\htmlhead}[3][]{} | 
| 658 |  | 
| 659 | %  In the LaTeX2HTML version this will eliminate the title line | 
| 660 | %  generated by a \segment command, but retains the title string | 
| 661 | %  for use in other places. | 
| 662 | % | 
| 663 | \newcommand{\htmlnohead}{} | 
| 664 |  | 
| 665 |  | 
| 666 | %  In the LaTeX2HTML version this put a URL into a <BASE> tag | 
| 667 | %  within the <HEAD>...</HEAD> portion of a document. | 
| 668 | % | 
| 669 | \ifx\pdfunknown\relax | 
| 670 | \newcommand{\htmlbase}[1]{} | 
| 671 | \else | 
| 672 | \let\htmlbase=\hyperbaseurl | 
| 673 | \fi | 
| 674 |  | 
| 675 |  | 
| 676 | %  Include style information into the stylesheet; e.g. CSS | 
| 677 | % | 
| 678 | \newcommand{\htmlsetstyle}[3][]{} | 
| 679 | \newcommand{\htmladdtostyle}[3][]{} | 
| 680 |  | 
| 681 | %  Define a style-class for information in a particular language | 
| 682 | % | 
| 683 | \newcommand{\htmllanguagestyle}[2][]{} | 
| 684 |  | 
| 685 |  | 
| 686 | % | 
| 687 | %  The dummy command \endpreamble is needed by latex2html to | 
| 688 | %  mark the end of the preamble in document segments that do | 
| 689 | %  not contain a \begin{document} | 
| 690 | % | 
| 691 | \newcommand{\startdocument}{} | 
| 692 |  | 
| 693 |  | 
| 694 | % \tableofchildlinks, \htmlinfo | 
| 695 | %     by Ross Moore  ---  extensions dated 27 September 1997 | 
| 696 | % | 
| 697 | %  These do nothing in LaTeX but for LaTeX2HTML they mark | 
| 698 | %  where the table of child-links and info-page should be placed, | 
| 699 | %  when the user wants other than the default. | 
| 700 | %	\tableofchildlinks	 % put mini-TOC at this location | 
| 701 | %	\tableofchildlinks[off]	 % not on current page | 
| 702 | %	\tableofchildlinks[none] % not on current and subsequent pages | 
| 703 | %	\tableofchildlinks[on]   % selectively on current page | 
| 704 | %	\tableofchildlinks[all]  % on current and all subsequent pages | 
| 705 | %	\htmlinfo	 	 % put info-page at this location | 
| 706 | %	\htmlinfo[off]		 % no info-page in current document | 
| 707 | %	\htmlinfo[none]		 % no info-page in current document | 
| 708 | %  *-versions omit the preceding <BR> tag. | 
| 709 | % | 
| 710 | \newcommand{\tableofchildlinks}{% | 
| 711 | \@ifstar\tableofchildlinksstar\tableofchildlinksstar} | 
| 712 | \newcommand{\tableofchildlinksstar}[1][]{} | 
| 713 |  | 
| 714 | \newcommand{\htmlinfo}{\@ifstar\htmlinfostar\htmlinfostar} | 
| 715 | \newcommand{\htmlinfostar}[1][]{} | 
| 716 |  | 
| 717 |  | 
| 718 | %  This redefines  \begin  to allow for an optional argument | 
| 719 | %  which is used by LaTeX2HTML to specify `style-sheet' information | 
| 720 |  | 
| 721 | \let\realLaTeX@begin=\begin | 
| 722 | \renewcommand{\begin}[1][]{\realLaTeX@begin} | 
| 723 |  | 
| 724 |  | 
| 725 | % | 
| 726 | %  Allocate a new set of section counters, which will get incremented | 
| 727 | %  for "*" forms of sectioning commands, and for a few miscellaneous | 
| 728 | %  commands. | 
| 729 | % | 
| 730 |  | 
| 731 | \@ifundefined{c@part}{\newcounter{part}}{}% | 
| 732 | \newcounter{lpart} | 
| 733 | \newcounter{lchapter}[part] | 
| 734 | \@ifundefined{c@chapter}% | 
| 735 | {\let\Hchapter\relax \newcounter{chapter}\let\thechapter\relax | 
| 736 | \newcounter{lsection}[part]}% | 
| 737 | {\let\Hchapter=\chapter \newcounter{lsection}[chapter]} | 
| 738 | \newcounter{lsubsection}[section] | 
| 739 | \newcounter{lsubsubsection}[subsection] | 
| 740 | \newcounter{lparagraph}[subsubsection] | 
| 741 | \newcounter{lsubparagraph}[paragraph] | 
| 742 | %\newcounter{lequation} | 
| 743 |  | 
| 744 | % | 
| 745 | %  Redefine "*" forms of sectioning commands to increment their | 
| 746 | %  respective counters. | 
| 747 | % | 
| 748 | \let\Hpart=\part | 
| 749 | %\let\Hchapter=\chapter | 
| 750 | \let\Hsection=\section | 
| 751 | \let\Hsubsection=\subsection | 
| 752 | \let\Hsubsubsection=\subsubsection | 
| 753 | \let\Hparagraph=\paragraph | 
| 754 | \let\Hsubparagraph=\subparagraph | 
| 755 | \let\Hsubsubparagraph=\subsubparagraph | 
| 756 |  | 
| 757 | \ifx\c@subparagraph\undefined | 
| 758 | \newcounter{lsubsubparagraph}[lsubparagraph] | 
| 759 | \else | 
| 760 | \newcounter{lsubsubparagraph}[subparagraph] | 
| 761 | \fi | 
| 762 |  | 
| 763 | % | 
| 764 | %  The following definitions are specific to LaTeX2e: | 
| 765 | %  (They must be commented out for LaTeX 2.09) | 
| 766 | % | 
| 767 | \expandafter\ifx\csname part\endcsname\relax\else | 
| 768 | \renewcommand{\part}{\@ifstar{\stepcounter{lpart}% | 
| 769 | \bgroup\def\tmp{*}\H@part}{\bgroup\def\tmp{}\H@part}}\fi | 
| 770 | \newcommand{\H@part}[1][]{\def\tmp@a{#1}\check@align | 
| 771 | \expandafter\egroup\expandafter\Hpart\tmp} | 
| 772 |  | 
| 773 | \ifx\Hchapter\relax\else | 
| 774 | \def\chapter{\resetsections \@ifstar{\stepcounter{lchapter}% | 
| 775 | \bgroup\def\tmp{*}\H@chapter}{\bgroup\def\tmp{}\H@chapter}}\fi | 
| 776 | \newcommand{\H@chapter}[1][]{\def\tmp@a{#1}\check@align | 
| 777 | \expandafter\egroup\expandafter\Hchapter\tmp} | 
| 778 |  | 
| 779 | \renewcommand{\section}{\resetsubsections | 
| 780 | \@ifstar{\stepcounter{lsection}\bgroup\def\tmp{*}% | 
| 781 | \H@section}{\bgroup\def\tmp{}\H@section}} | 
| 782 | \newcommand{\H@section}[1][]{\def\tmp@a{#1}\check@align | 
| 783 | \expandafter\egroup\expandafter\Hsection\tmp} | 
| 784 |  | 
| 785 | \renewcommand{\subsection}{\resetsubsubsections | 
| 786 | \@ifstar{\stepcounter{lsubsection}\bgroup\def\tmp{*}% | 
| 787 | \H@subsection}{\bgroup\def\tmp{}\H@subsection}} | 
| 788 | \newcommand{\H@subsection}[1][]{\def\tmp@a{#1}\check@align | 
| 789 | \expandafter\egroup\expandafter\Hsubsection\tmp} | 
| 790 |  | 
| 791 | \renewcommand{\subsubsection}{\resetparagraphs | 
| 792 | \@ifstar{\stepcounter{lsubsubsection}\bgroup\def\tmp{*}% | 
| 793 | \H@subsubsection}{\bgroup\def\tmp{}\H@subsubsection}} | 
| 794 | \newcommand{\H@subsubsection}[1][]{\def\tmp@a{#1}\check@align | 
| 795 | \expandafter\egroup\expandafter\Hsubsubsection\tmp} | 
| 796 |  | 
| 797 | \renewcommand{\paragraph}{\resetsubparagraphs | 
| 798 | \@ifstar{\stepcounter{lparagraph}\bgroup\def\tmp{*}% | 
| 799 | \H@paragraph}{\bgroup\def\tmp{}\H@paragraph}} | 
| 800 | \newcommand\H@paragraph[1][]{\def\tmp@a{#1}\check@align | 
| 801 | \expandafter\egroup\expandafter\Hparagraph\tmp} | 
| 802 |  | 
| 803 | \ifx\Hsubparagraph\relax\else\@ifundefined{subparagraph}{}{% | 
| 804 | \renewcommand{\subparagraph}{\resetsubsubparagraphs | 
| 805 | \@ifstar{\stepcounter{lsubparagraph}\bgroup\def\tmp{*}% | 
| 806 | \H@subparagraph}{\bgroup\def\tmp{}\H@subparagraph}}}\fi | 
| 807 | \newcommand\H@subparagraph[1][]{\def\tmp@a{#1}\check@align | 
| 808 | \expandafter\egroup\expandafter\Hsubparagraph\tmp} | 
| 809 |  | 
| 810 | \ifx\Hsubsubparagraph\relax\else\@ifundefined{subsubparagraph}{}{% | 
| 811 | \def\subsubparagraph{% | 
| 812 | \@ifstar{\stepcounter{lsubsubparagraph}\bgroup\def\tmp{*}% | 
| 813 | \H@subsubparagraph}{\bgroup\def\tmp{}\H@subsubparagraph}}}\fi | 
| 814 | \newcommand\H@subsubparagraph[1][]{\def\tmp@a{#1}\check@align | 
| 815 | \expandafter\egroup\expandafter\Hsubsubparagraph\tmp} | 
| 816 |  | 
| 817 | \def\check@align{\def\empty{}\ifx\tmp@a\empty | 
| 818 | \else\def\tmp@b{center}\ifx\tmp@a\tmp@b\let\tmp@a\empty | 
| 819 | \else\def\tmp@b{left}\ifx\tmp@a\tmp@b\let\tmp@a\empty | 
| 820 | \else\def\tmp@b{right}\ifx\tmp@a\tmp@b\let\tmp@a\empty | 
| 821 | \else\expandafter\def\expandafter\tmp@a\expandafter{\expandafter[\tmp@a]}% | 
| 822 | \fi\fi\fi \def\empty{}\ifx\tmp\empty\let\tmp=\tmp@a \else | 
| 823 | \expandafter\def\expandafter\tmp\expandafter{\expandafter*\tmp@a}% | 
| 824 | \fi\fi} | 
| 825 | % | 
| 826 | \def\resetsections{\setcounter{section}{0}\setcounter{lsection}{0}% | 
| 827 | \reset@dependents{section}\resetsubsections } | 
| 828 | \def\resetsubsections{\setcounter{subsection}{0}\setcounter{lsubsection}{0}% | 
| 829 | \reset@dependents{subsection}\resetsubsubsections } | 
| 830 | \def\resetsubsubsections{\setcounter{subsubsection}{0}\setcounter{lsubsubsection}{0}% | 
| 831 | \reset@dependents{subsubsection}\resetparagraphs } | 
| 832 | % | 
| 833 | \def\resetparagraphs{\setcounter{lparagraph}{0}\setcounter{lparagraph}{0}% | 
| 834 | \reset@dependents{paragraph}\resetsubparagraphs } | 
| 835 | \def\resetsubparagraphs{\ifx\c@subparagraph\undefined\else | 
| 836 | \setcounter{subparagraph}{0}\fi \setcounter{lsubparagraph}{0}% | 
| 837 | \reset@dependents{subparagraph}\resetsubsubparagraphs } | 
| 838 | \def\resetsubsubparagraphs{\ifx\c@subsubparagraph\undefined\else | 
| 839 | \setcounter{subsubparagraph}{0}\fi \setcounter{lsubsubparagraph}{0}} | 
| 840 | % | 
| 841 | \def\reset@dependents#1{\begingroup\let \@elt \@stpelt | 
| 842 | \csname cl@#1\endcsname\endgroup} | 
| 843 | % | 
| 844 | % | 
| 845 | %  Define a helper macro to dump a single \secounter command to a file. | 
| 846 | % | 
| 847 | \newcommand{\DumpPtr}[2]{% | 
| 848 | \count255=\csname c@#1\endcsname\relax\def\dummy{dummy}\def\tmp{#2}% | 
| 849 | \ifx\tmp\dummy\def\ctr{#1}\else | 
| 850 | \def\ctr{#2}\advance\count255 by \csname c@#2\endcsname\relax\fi | 
| 851 | \immediate\write\ptrfile{% | 
| 852 | \noexpand\setcounter{\ctr}{\number\count255}}} | 
| 853 | %\expandafter\noexpand\expandafter\setcounter\expandafter{\ctr}{\number\count255}}} | 
| 854 |  | 
| 855 | % | 
| 856 | %  Define a helper macro to dump all counters to the file. | 
| 857 | %  The value for each counter will be the sum of the l-counter | 
| 858 | %      actual LaTeX section counter. | 
| 859 | %  Also dump an \htmlhead{section-command}{section title} command | 
| 860 | %      to the file. | 
| 861 | % | 
| 862 | \newwrite\ptrfile | 
| 863 | \def\DumpCounters#1#2#3#4{% | 
| 864 | \begingroup\let\protect=\noexpand | 
| 865 | \immediate\openout\ptrfile = #1.ptr | 
| 866 | \DumpPtr{part}{lpart}% | 
| 867 | \ifx\Hchapter\relax\else\DumpPtr{chapter}{lchapter}\fi | 
| 868 | \DumpPtr{section}{lsection}% | 
| 869 | \DumpPtr{subsection}{lsubsection}% | 
| 870 | \DumpPtr{subsubsection}{lsubsubsection}% | 
| 871 | \DumpPtr{paragraph}{lparagraph}% | 
| 872 | \DumpPtr{subparagraph}{lsubparagraph}% | 
| 873 | \DumpPtr{equation}{dummy}% | 
| 874 | \DumpPtr{footnote}{dummy}% | 
| 875 | \def\tmp{#4}\ifx\tmp\@empty | 
| 876 | \immediate\write\ptrfile{\noexpand\htmlhead{#2}{#3}}\else | 
| 877 | \immediate\write\ptrfile{\noexpand\htmlhead[#4]{#2}{#3}}\fi | 
| 878 | \dumpcitestatus \dumpcurrentcolor | 
| 879 | \immediate\closeout\ptrfile | 
| 880 | \endgroup } | 
| 881 |  | 
| 882 |  | 
| 883 | %% interface to natbib.sty | 
| 884 |  | 
| 885 | \def\dumpcitestatus{} | 
| 886 | \def\loadcitestatus{\def\dumpcitestatus{% | 
| 887 | \ifciteindex\immediate\write\ptrfile{\noexpand\citeindextrue}% | 
| 888 | \else\immediate\write\ptrfile{\noexpand\citeindexfalse}\fi }% | 
| 889 | } | 
| 890 | \@ifpackageloaded{natbib}{\loadcitestatus}{% | 
| 891 | \AtBeginDocument{\@ifpackageloaded{natbib}{\loadcitestatus}{}}} | 
| 892 |  | 
| 893 |  | 
| 894 | %% interface to color.sty | 
| 895 |  | 
| 896 | \def\dumpcurrentcolor{} | 
| 897 | \def\loadsegmentcolors{% | 
| 898 | \let\real@pagecolor=\pagecolor | 
| 899 | \let\pagecolor\segmentpagecolor | 
| 900 | \let\segmentcolor\color | 
| 901 | \ifx\current@page@color\undefined \def\current@page@color{{}}\fi | 
| 902 | \def\dumpcurrentcolor{\bgroup\def\@empty@{{}}% | 
| 903 | \expandafter\def\expandafter\tmp\space####1@{\def\thiscol{####1}}% | 
| 904 | \ifx\current@color\@empty@\def\thiscol{}\else | 
| 905 | \expandafter\tmp\current@color @\fi | 
| 906 | \immediate\write\ptrfile{\noexpand\segmentcolor{\thiscol}}% | 
| 907 | \ifx\current@page@color\@empty@\def\thiscol{}\else | 
| 908 | \expandafter\tmp\current@page@color @\fi | 
| 909 | \immediate\write\ptrfile{\noexpand\segmentpagecolor{\thiscol}}% | 
| 910 | \egroup}% | 
| 911 | \global\let\loadsegmentcolors=\relax | 
| 912 | } | 
| 913 |  | 
| 914 | % These macros are needed within  images.tex  since this inputs | 
| 915 | % the <segment>.ptr files for a segment, so that counters are | 
| 916 | % colors are synchronised. | 
| 917 | % | 
| 918 | \newcommand{\segmentpagecolor}[1][]{% | 
| 919 | \@ifpackageloaded{color}{\loadsegmentcolors\bgroup | 
| 920 | \def\tmp{#1}\ifx\@empty\tmp\def\next{[]}\else\def\next{[#1]}\fi | 
| 921 | \expandafter\segmentpagecolor@\next}% | 
| 922 | {\@gobble}} | 
| 923 | \def\segmentpagecolor@[#1]#2{\def\tmp{#1}\def\tmpB{#2}% | 
| 924 | \ifx\tmpB\@empty\let\next=\egroup | 
| 925 | \else | 
| 926 | \let\realendgroup=\endgroup | 
| 927 | \def\endgroup{\edef\next{\noexpand\realendgroup | 
| 928 | \def\noexpand\current@page@color{\current@color}}\next}% | 
| 929 | \ifx\tmp\@empty\real@pagecolor{#2}\def\model{}% | 
| 930 | \else\real@pagecolor[#1]{#2}\def\model{[#1]}% | 
| 931 | \fi | 
| 932 | \edef\next{\egroup\def\noexpand\current@page@color{\current@page@color}% | 
| 933 | \noexpand\real@pagecolor\model{#2}}% | 
| 934 | \fi\next} | 
| 935 | % | 
| 936 | \newcommand{\segmentcolor}[2][named]{\@ifpackageloaded{color}% | 
| 937 | {\loadsegmentcolors\segmentcolor[#1]{#2}}{}} | 
| 938 |  | 
| 939 | \@ifpackageloaded{color}{\loadsegmentcolors}{\let\real@pagecolor=\@gobble | 
| 940 | \AtBeginDocument{\@ifpackageloaded{color}{\loadsegmentcolors}{}}} | 
| 941 |  | 
| 942 |  | 
| 943 | %  Define the \segment[align]{file}{section-command}{section-title} command, | 
| 944 | %  and its helper macros.  This command does four things: | 
| 945 | %       1)  Begins a new LaTeX section; | 
| 946 | %       2)  Writes a list of section counters to file.ptr, each | 
| 947 | %           of which represents the sum of the LaTeX section | 
| 948 | %           counters, and the l-counters, defined above; | 
| 949 | %       3)  Write an \htmlhead{section-title} command to file.ptr; | 
| 950 | %       4)  Inputs file.tex. | 
| 951 |  | 
| 952 | \newcommand{\segment}{\@ifstar{\@@htmls}{\@@html}} | 
| 953 | %\tracingall | 
| 954 | \newcommand{\@endsegment}[1][]{} | 
| 955 | \let\endsegment\@endsegment | 
| 956 | \newcommand{\@@htmls}[1][]{\@@htmlsx{#1}} | 
| 957 | \newcommand{\@@html}[1][]{\@@htmlx{#1}} | 
| 958 | \def\@@htmlsx#1#2#3#4{\csname #3\endcsname* {#4}% | 
| 959 | \DumpCounters{#2}{#3*}{#4}{#1}\input{#2}} | 
| 960 | \def\@@htmlx#1#2#3#4{\csname #3\endcsname {#4}% | 
| 961 | \DumpCounters{#2}{#3}{#4}{#1}\input{#2}} | 
| 962 |  | 
| 963 | \makeatother | 
| 964 | \endinput | 
| 965 |  | 
| 966 |  | 
| 967 | % Modifications: | 
| 968 | % | 
| 969 | % (The listing of Initiales see Changes) | 
| 970 |  | 
| 971 | % $Log: html.sty,v $ | 
| 972 | % Revision 1.38  1999/07/19 13:23:20  RRM | 
| 973 | %  --  compatibility with pdflatex and hyperref.sty | 
| 974 | %  	citations are not complete yet, I think | 
| 975 | %  --  ensure that \thechapter remains undefined; some packages use it | 
| 976 | %  	as a test for the type of documentclass being used. | 
| 977 | % | 
| 978 | % Revision 1.37  1999/03/12 07:02:38  RRM | 
| 979 | %  --  change macro name from \addTOCsection to \htmladdTOClink | 
| 980 | %  --  it has 3 + 1 optional argument, to allow a local path to a labels.pl | 
| 981 | %  	file for the external document, for cross-references | 
| 982 | % | 
| 983 | % Revision 1.36  1999/03/10 05:46:00  RRM | 
| 984 | %  --  extended the code for compatibilty with comment.sty | 
| 985 | %  --  allow excluded environments to work within tables, | 
| 986 | %  	with the excluded material spanning headers and several cells | 
| 987 | %  	thanks Avinash Chopde for recognising the need for this. | 
| 988 | %  --  added LaTeX support (ignores it) for  \htmladdTOCsection | 
| 989 | %  	thanks to Steffen Klupsch and Uli Wortmann for this idea. | 
| 990 | % | 
| 991 | % Revision 1.35  1999/03/08 11:16:16  RRM | 
| 992 | % 	html.sty  for LaTeX2HTML V99.1 | 
| 993 | % | 
| 994 | %  --  ensure that html.sty can be loaded *after* hyperref.sty | 
| 995 | %  --  support new command  \htmlclear for <BR> in HTML, ignored by LaTeX | 
| 996 | %  --  ensure {part} and {chapter} counters are defined, even if not used | 
| 997 | % | 
| 998 | % Revision 1.34  1998/09/19 10:37:29  RRM | 
| 999 | %  --  fixed typo with \next{\hyperref}{....} | 
| 1000 | % | 
| 1001 | % Revision 1.33  1998/09/08 12:47:51  RRM | 
| 1002 | %  --  changed macro-names for the \hyperref and \hypercite options | 
| 1003 | % 	allows easier compatibility with other packages | 
| 1004 | % | 
| 1005 | % Revision 1.32  1998/08/24 12:15:14  RRM | 
| 1006 | %  --  new command  \htmllanguagestyle  to associate a style class | 
| 1007 | %  	with text declared as a particular language | 
| 1008 | % | 
| 1009 | % Revision 1.31  1998/07/07 14:15:41  RRM | 
| 1010 | %  --  new commands  \htmlsetstyle  and  \htmladdtostyle | 
| 1011 | % | 
| 1012 | % Revision 1.30  1998/07/04 02:42:22  RRM | 
| 1013 | %  --  cope with catcodes of % { } in rawhtml/comment/htmlonly environments | 
| 1014 | % | 
| 1015 | % Revision 1.29  1998/06/23 13:33:23  RRM | 
| 1016 | %  --  use \begin{small} with the default for URLs | 
| 1017 | % | 
| 1018 | % Revision 1.28  1998/06/21 09:38:39  RRM | 
| 1019 | %  --  implement \htmlurl  to agree with \url if already defined | 
| 1020 | %     or loaded subsequently (LaTeX-2e only) | 
| 1021 | %  --  get LaTeX to print the revision number when loading | 
| 1022 | % | 
| 1023 | % Revision 1.27  1998/06/20 15:13:10  RRM | 
| 1024 | %  --  \TeX is already protected in recent versions of LaTeX | 
| 1025 | % 	so \DeclareRobust doesn't work --- causes looping | 
| 1026 | %  --  \part and \subparagraph need not be defined in some styles | 
| 1027 | % | 
| 1028 | % Revision 1.26  1998/06/01 08:36:49  latex2html | 
| 1029 | %  --  implement optional argument for \endsegment | 
| 1030 | %  --  made the counter value output from \DumpPtr more robust | 
| 1031 | % | 
| 1032 | % Revision 1.25  1998/05/09 05:43:35  latex2html | 
| 1033 | %  --   conditionals for avoiding undefined counters | 
| 1034 | % | 
| 1035 | % Revision 1.23  1998/02/26 10:32:24  latex2html | 
| 1036 | %  --  use \providecommand for  \latextohtml | 
| 1037 | %  --  implemented \HTMLcode to do what \HTML did previously | 
| 1038 | % 	\HTML still works, unless already defined by another package | 
| 1039 | %  --  fixed problems remaining with undefined \chapter | 
| 1040 | %  --  defined \endsegment | 
| 1041 | % | 
| 1042 | % Revision 1.22  1997/12/05 11:38:18  RRM | 
| 1043 | %  --  implemented an optional argument to \begin for style-sheet info. | 
| 1044 | %  --  modified use of an optional argument with sectioning-commands | 
| 1045 | % | 
| 1046 | % Revision 1.21  1997/11/05 10:28:56  RRM | 
| 1047 | %  --  replaced redefinition of \@htmlrule with \htmlrulestar | 
| 1048 | % | 
| 1049 | % Revision 1.20  1997/10/28 02:15:58  RRM | 
| 1050 | %  --  altered the way some special html-macros are defined, so that | 
| 1051 | % 	star-variants are explicitly defined for LaTeX | 
| 1052 | % 	 -- it is possible for these to occur within  images.tex | 
| 1053 | % 	e.g. \htmlinfostar \htmlrulestar \tableofchildlinksstar | 
| 1054 | % | 
| 1055 | % Revision 1.19  1997/10/11 05:47:48  RRM | 
| 1056 | %  --  allow the dummy {tex2html_nowrap} environment in LaTeX | 
| 1057 | % 	use it to make its contents be evaluated in environment order | 
| 1058 | % | 
| 1059 | % Revision 1.18  1997/10/04 06:56:50  RRM | 
| 1060 | %  --  uses Robin Fairbairns' code for ignored environments, | 
| 1061 | %      replacing the previous  comment.sty  stuff. | 
| 1062 | %  --  extensions to the \tableofchildlinks command | 
| 1063 | %  --  extensions to the \htmlinfo command | 
| 1064 | % | 
| 1065 | % Revision 1.17  1997/07/08 11:23:39  RRM | 
| 1066 | %     include value of footnote counter in .ptr files for segments | 
| 1067 | % | 
| 1068 | % Revision 1.16  1997/07/03 08:56:34  RRM | 
| 1069 | %     use \textup  within the \latextohtml macro | 
| 1070 | % | 
| 1071 | % Revision 1.15  1997/06/15 10:24:58  RRM | 
| 1072 | %      new command  \htmltracenv  as environment-ordered \htmltracing | 
| 1073 | % | 
| 1074 | % Revision 1.14  1997/06/06 10:30:37  RRM | 
| 1075 | %  -   new command:  \htmlborder  puts environment into a <TABLE> cell | 
| 1076 | %      with a border of specified width, + other attributes. | 
| 1077 | %  -   new commands: \HTML  for setting arbitrary HTML tags, with attributes | 
| 1078 | %                    \HTMLset  for setting Perl variables, while processing | 
| 1079 | %                    \HTMLsetenv  same as \HTMLset , but it gets processed | 
| 1080 | %                                 as if it were an environment. | 
| 1081 | %  -   new command:  \latextohtml  --- to set the LaTeX2HTML name/logo | 
| 1082 | %  -   fixed some remaining problems with \segmentcolor & \segmentpagecolor | 
| 1083 | % | 
| 1084 | % Revision 1.13  1997/05/19 13:55:46  RRM | 
| 1085 | %      alterations and extra options to  \hypercite | 
| 1086 | % | 
| 1087 | % Revision 1.12  1997/05/09 12:28:39  RRM | 
| 1088 | %  -  Added the optional argument to \htmlhead, also in \DumpCounters | 
| 1089 | %  -  Implemented \HTMLset as a no-op in LaTeX. | 
| 1090 | %  -  Fixed a bug in accessing the page@color settings. | 
| 1091 | % | 
| 1092 | % Revision 1.11  1997/03/26 09:32:40  RRM | 
| 1093 | %  -  Implements LaTeX versions of  \externalcite  and  \hypercite  commands. | 
| 1094 | %     Thanks to  Uffe Engberg  and  Stephen Simpson  for the suggestions. | 
| 1095 | % | 
| 1096 | % Revision 1.10  1997/03/06 07:37:58  RRM | 
| 1097 | % Added the  \htmltracing  command, for altering  $VERBOSITY . | 
| 1098 | % | 
| 1099 | % Revision 1.9  1997/02/17 02:26:26  RRM | 
| 1100 | % - changes to counter handling (RRM) | 
| 1101 | % - shuffled around some definitions | 
| 1102 | % - changed \htmlrule of 209 mode | 
| 1103 | % | 
| 1104 | % Revision 1.8  1997/01/26 09:04:12  RRM | 
| 1105 | % RRM: added optional argument to sectioning commands | 
| 1106 | %      \htmlbase  sets the <BASE HREF=...> tag | 
| 1107 | %      \htmlinfo  and  \htmlinfo* allow the document info to be positioned | 
| 1108 | % | 
| 1109 | % Revision 1.7  1997/01/03 12:15:44  L2HADMIN | 
| 1110 | % % - fixes to the  color  and  natbib  interfaces | 
| 1111 | % % - extended usage of  \hyperref, via an optional argument. | 
| 1112 | % % - extended use comment environments to allow shifting expansions | 
| 1113 | % %     e.g. within \multicolumn  (`bug' reported by Luc De Coninck). | 
| 1114 | % % - allow optional argument to: \htmlimage, \htmlhead, | 
| 1115 | % %     \htmladdimg, \htmladdnormallink, \htmladdnormallinkfoot | 
| 1116 | % % - added new commands: \htmlbody, \htmlnohead | 
| 1117 | % % - added new command: \tableofchildlinks | 
| 1118 | % | 
| 1119 | % Revision 1.6  1996/12/25 03:04:54  JCL | 
| 1120 | % added patches to segment feature from Martin Wilck | 
| 1121 | % | 
| 1122 | % Revision 1.5  1996/12/23 01:48:06  JCL | 
| 1123 | %  o introduced the environment makeimage, which may be used to force | 
| 1124 | %    LaTeX2HTML to generate an image from the contents. | 
| 1125 | %    There's no magic, all what we have now is a defined empty environment | 
| 1126 | %    which LaTeX2HTML will not recognize and thus pass it to images.tex. | 
| 1127 | %  o provided \protect to the \htmlrule commands to allow for usage | 
| 1128 | %    within captions. | 
| 1129 | % | 
| 1130 | % Revision 1.4  1996/12/21 19:59:22  JCL | 
| 1131 | % - shuffled some entries | 
| 1132 | % - added \latexhtml command | 
| 1133 | % | 
| 1134 | % Revision 1.3  1996/12/21 12:22:59  JCL | 
| 1135 | % removed duplicate \htmlrule, changed \htmlrule back not to create a \hrule | 
| 1136 | % to allow occurrence in caption | 
| 1137 | % | 
| 1138 | % Revision 1.2  1996/12/20 04:03:41  JCL | 
| 1139 | % changed occurrence of \makeatletter, \makeatother | 
| 1140 | % added new \htmlrule command both for the LaTeX2.09 and LaTeX2e | 
| 1141 | % sections | 
| 1142 | % | 
| 1143 | % | 
| 1144 | % jcl 30-SEP-96 | 
| 1145 | %  - Stuck the commands commonly used by both LaTeX versions to the top, | 
| 1146 | %    added a check which stops input or reads further if the document | 
| 1147 | %    makes use of LaTeX2e. | 
| 1148 | %  - Introduced rrm's \dumpcurrentcolor and \bodytext | 
| 1149 | % hws 31-JAN-96 - Added support for document segmentation | 
| 1150 | % hws 10-OCT-95 - Added \htmlrule command | 
| 1151 | % jz 22-APR-94 - Added support for htmlref | 
| 1152 | % nd  - Created |