svn-gvsig-desktop / trunk / build / distribution / IzPack / src / doc / html.sty @ 21757
History | View | Annotate | Download (42.2 KB)
1 |
% |
---|---|
2 |
% $Id: html.sty 5819 2006-06-14 07:29:09Z cesar $ |
3 |
% LaTeX2HTML Version 2K.1 : 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 |
% ignore optional *-version of \tableofcontents |
845 |
\let\ltx@tableofcontents\tableofcontents |
846 |
\renewcommand{\tableofcontents}{% |
847 |
\@ifstar\ltx@tableofcontents\ltx@tableofcontents} |
848 |
% |
849 |
% |
850 |
% Define a helper macro to dump a single \secounter command to a file. |
851 |
% |
852 |
\newcommand{\DumpPtr}[2]{% |
853 |
\count255=\csname c@#1\endcsname\relax\def\dummy{dummy}\def\tmp{#2}% |
854 |
\ifx\tmp\dummy\def\ctr{#1}\else |
855 |
\def\ctr{#2}\advance\count255 by \csname c@#2\endcsname\relax\fi |
856 |
\immediate\write\ptrfile{% |
857 |
\noexpand\setcounter{\ctr}{\number\count255}}} |
858 |
%\expandafter\noexpand\expandafter\setcounter\expandafter{\ctr}{\number\count255}}} |
859 |
|
860 |
% |
861 |
% Define a helper macro to dump all counters to the file. |
862 |
% The value for each counter will be the sum of the l-counter |
863 |
% actual LaTeX section counter. |
864 |
% Also dump an \htmlhead{section-command}{section title} command |
865 |
% to the file. |
866 |
% |
867 |
\newwrite\ptrfile |
868 |
\def\DumpCounters#1#2#3#4{% |
869 |
\begingroup\let\protect=\noexpand |
870 |
\immediate\openout\ptrfile = #1.ptr |
871 |
\DumpPtr{part}{lpart}% |
872 |
\ifx\Hchapter\relax\else\DumpPtr{chapter}{lchapter}\fi |
873 |
\DumpPtr{section}{lsection}% |
874 |
\DumpPtr{subsection}{lsubsection}% |
875 |
\DumpPtr{subsubsection}{lsubsubsection}% |
876 |
\DumpPtr{paragraph}{lparagraph}% |
877 |
\DumpPtr{subparagraph}{lsubparagraph}% |
878 |
\DumpPtr{equation}{dummy}% |
879 |
\DumpPtr{footnote}{dummy}% |
880 |
\def\tmp{#4}\ifx\tmp\@empty |
881 |
\immediate\write\ptrfile{\noexpand\htmlhead{#2}{#3}}\else |
882 |
\immediate\write\ptrfile{\noexpand\htmlhead[#4]{#2}{#3}}\fi |
883 |
\dumpcitestatus \dumpcurrentcolor |
884 |
\immediate\closeout\ptrfile |
885 |
\endgroup } |
886 |
|
887 |
|
888 |
%% interface to natbib.sty |
889 |
|
890 |
\def\dumpcitestatus{} |
891 |
\def\loadcitestatus{\def\dumpcitestatus{% |
892 |
\ifciteindex\immediate\write\ptrfile{\noexpand\citeindextrue}% |
893 |
\else\immediate\write\ptrfile{\noexpand\citeindexfalse}\fi }% |
894 |
} |
895 |
\@ifpackageloaded{natbib}{\loadcitestatus}{% |
896 |
\AtBeginDocument{\@ifpackageloaded{natbib}{\loadcitestatus}{}}} |
897 |
|
898 |
|
899 |
%% interface to color.sty |
900 |
|
901 |
\def\dumpcurrentcolor{} |
902 |
\def\loadsegmentcolors{% |
903 |
\let\real@pagecolor=\pagecolor |
904 |
\let\pagecolor\segmentpagecolor |
905 |
\let\segmentcolor\color |
906 |
\ifx\current@page@color\undefined \def\current@page@color{{}}\fi |
907 |
\def\dumpcurrentcolor{\bgroup\def\@empty@{{}}% |
908 |
\expandafter\def\expandafter\tmp\space####1@{\def\thiscol{####1}}% |
909 |
\ifx\current@color\@empty@\def\thiscol{}\else |
910 |
\expandafter\tmp\current@color @\fi |
911 |
\immediate\write\ptrfile{\noexpand\segmentcolor{\thiscol}}% |
912 |
\ifx\current@page@color\@empty@\def\thiscol{}\else |
913 |
\expandafter\tmp\current@page@color @\fi |
914 |
\immediate\write\ptrfile{\noexpand\segmentpagecolor{\thiscol}}% |
915 |
\egroup}% |
916 |
\global\let\loadsegmentcolors=\relax |
917 |
} |
918 |
|
919 |
% These macros are needed within images.tex since this inputs |
920 |
% the <segment>.ptr files for a segment, so that counters are |
921 |
% colors are synchronised. |
922 |
% |
923 |
\newcommand{\segmentpagecolor}[1][]{% |
924 |
\@ifpackageloaded{color}{\loadsegmentcolors\bgroup |
925 |
\def\tmp{#1}\ifx\@empty\tmp\def\next{[]}\else\def\next{[#1]}\fi |
926 |
\expandafter\segmentpagecolor@\next}% |
927 |
{\@gobble}} |
928 |
\def\segmentpagecolor@[#1]#2{\def\tmp{#1}\def\tmpB{#2}% |
929 |
\ifx\tmpB\@empty\let\next=\egroup |
930 |
\else |
931 |
\let\realendgroup=\endgroup |
932 |
\def\endgroup{\edef\next{\noexpand\realendgroup |
933 |
\def\noexpand\current@page@color{\current@color}}\next}% |
934 |
\ifx\tmp\@empty\real@pagecolor{#2}\def\model{}% |
935 |
\else\real@pagecolor[#1]{#2}\def\model{[#1]}% |
936 |
\fi |
937 |
\edef\next{\egroup\def\noexpand\current@page@color{\current@page@color}% |
938 |
\noexpand\real@pagecolor\model{#2}}% |
939 |
\fi\next} |
940 |
% |
941 |
\newcommand{\segmentcolor}[2][named]{\@ifpackageloaded{color}% |
942 |
{\loadsegmentcolors\segmentcolor[#1]{#2}}{}} |
943 |
|
944 |
\@ifpackageloaded{color}{\loadsegmentcolors}{\let\real@pagecolor=\@gobble |
945 |
\AtBeginDocument{\@ifpackageloaded{color}{\loadsegmentcolors}{}}} |
946 |
|
947 |
|
948 |
% Define the \segment[align]{file}{section-command}{section-title} command, |
949 |
% and its helper macros. This command does four things: |
950 |
% 1) Begins a new LaTeX section; |
951 |
% 2) Writes a list of section counters to file.ptr, each |
952 |
% of which represents the sum of the LaTeX section |
953 |
% counters, and the l-counters, defined above; |
954 |
% 3) Write an \htmlhead{section-title} command to file.ptr; |
955 |
% 4) Inputs file.tex. |
956 |
|
957 |
\newcommand{\segment}{\@ifstar{\@@htmls}{\@@html}} |
958 |
%\tracingall |
959 |
\newcommand{\@endsegment}[1][]{} |
960 |
\let\endsegment\@endsegment |
961 |
\newcommand{\@@htmls}[1][]{\@@htmlsx{#1}} |
962 |
\newcommand{\@@html}[1][]{\@@htmlx{#1}} |
963 |
\def\@@htmlsx#1#2#3#4{\csname #3\endcsname* {#4}% |
964 |
\DumpCounters{#2}{#3*}{#4}{#1}\input{#2}} |
965 |
\def\@@htmlx#1#2#3#4{\csname #3\endcsname {#4}% |
966 |
\DumpCounters{#2}{#3}{#4}{#1}\input{#2}} |
967 |
|
968 |
\makeatother |
969 |
\endinput |
970 |
|
971 |
|
972 |
% Modifications: |
973 |
% |
974 |
% (The listing of Initiales see Changes) |
975 |
|
976 |
% $Log$ |
977 |
% Revision 1.1 2006-06-14 07:29:07 cesar |
978 |
% Upload Izpack to install directory |
979 |
% |
980 |
% Revision 1.1 2003/08/04 08:44:53 tschwarze |
981 |
% make HTML generation work again |
982 |
% |
983 |
% Revision 1.39 2001/10/01 22:47:06 RRM |
984 |
% -- somehow revision 1.39 was not committed earlier |
985 |
% -- it allows a * version of \tableofcontents (used with frames) to be |
986 |
% treated as un-starred by LaTeX |
987 |
% |
988 |
% Revision 1.39 2000/09/10 12:23:20 RRM |
989 |
% -- added *-argument for \tableofcontents in frames.perl |
990 |
% LaTeX should just ignore it |
991 |
% |
992 |
% Revision 1.38 1999/07/19 13:23:20 RRM |
993 |
% -- compatibility with pdflatex and hyperref.sty |
994 |
% citations are not complete yet, I think |
995 |
% -- ensure that \thechapter remains undefined; some packages use it |
996 |
% as a test for the type of documentclass being used. |
997 |
% |
998 |
% Revision 1.37 1999/03/12 07:02:38 RRM |
999 |
% -- change macro name from \addTOCsection to \htmladdTOClink |
1000 |
% -- it has 3 + 1 optional argument, to allow a local path to a labels.pl |
1001 |
% file for the external document, for cross-references |
1002 |
% |
1003 |
% Revision 1.36 1999/03/10 05:46:00 RRM |
1004 |
% -- extended the code for compatibilty with comment.sty |
1005 |
% -- allow excluded environments to work within tables, |
1006 |
% with the excluded material spanning headers and several cells |
1007 |
% thanks Avinash Chopde for recognising the need for this. |
1008 |
% -- added LaTeX support (ignores it) for \htmladdTOCsection |
1009 |
% thanks to Steffen Klupsch and Uli Wortmann for this idea. |
1010 |
% |
1011 |
% Revision 1.35 1999/03/08 11:16:16 RRM |
1012 |
% html.sty for LaTeX2HTML V99.1 |
1013 |
% |
1014 |
% -- ensure that html.sty can be loaded *after* hyperref.sty |
1015 |
% -- support new command \htmlclear for <BR> in HTML, ignored by LaTeX |
1016 |
% -- ensure {part} and {chapter} counters are defined, even if not used |
1017 |
% |
1018 |
% Revision 1.34 1998/09/19 10:37:29 RRM |
1019 |
% -- fixed typo with \next{\hyperref}{....} |
1020 |
% |
1021 |
% Revision 1.33 1998/09/08 12:47:51 RRM |
1022 |
% -- changed macro-names for the \hyperref and \hypercite options |
1023 |
% allows easier compatibility with other packages |
1024 |
% |
1025 |
% Revision 1.32 1998/08/24 12:15:14 RRM |
1026 |
% -- new command \htmllanguagestyle to associate a style class |
1027 |
% with text declared as a particular language |
1028 |
% |
1029 |
% Revision 1.31 1998/07/07 14:15:41 RRM |
1030 |
% -- new commands \htmlsetstyle and \htmladdtostyle |
1031 |
% |
1032 |
% Revision 1.30 1998/07/04 02:42:22 RRM |
1033 |
% -- cope with catcodes of % { } in rawhtml/comment/htmlonly environments |
1034 |
% |
1035 |
% Revision 1.29 1998/06/23 13:33:23 RRM |
1036 |
% -- use \begin{small} with the default for URLs |
1037 |
% |
1038 |
% Revision 1.28 1998/06/21 09:38:39 RRM |
1039 |
% -- implement \htmlurl to agree with \url if already defined |
1040 |
% or loaded subsequently (LaTeX-2e only) |
1041 |
% -- get LaTeX to print the revision number when loading |
1042 |
% |
1043 |
% Revision 1.27 1998/06/20 15:13:10 RRM |
1044 |
% -- \TeX is already protected in recent versions of LaTeX |
1045 |
% so \DeclareRobust doesn't work --- causes looping |
1046 |
% -- \part and \subparagraph need not be defined in some styles |
1047 |
% |
1048 |
% Revision 1.26 1998/06/01 08:36:49 latex2html |
1049 |
% -- implement optional argument for \endsegment |
1050 |
% -- made the counter value output from \DumpPtr more robust |
1051 |
% |
1052 |
% Revision 1.25 1998/05/09 05:43:35 latex2html |
1053 |
% -- conditionals for avoiding undefined counters |
1054 |
% |
1055 |
% Revision 1.23 1998/02/26 10:32:24 latex2html |
1056 |
% -- use \providecommand for \latextohtml |
1057 |
% -- implemented \HTMLcode to do what \HTML did previously |
1058 |
% \HTML still works, unless already defined by another package |
1059 |
% -- fixed problems remaining with undefined \chapter |
1060 |
% -- defined \endsegment |
1061 |
% |
1062 |
% Revision 1.22 1997/12/05 11:38:18 RRM |
1063 |
% -- implemented an optional argument to \begin for style-sheet info. |
1064 |
% -- modified use of an optional argument with sectioning-commands |
1065 |
% |
1066 |
% Revision 1.21 1997/11/05 10:28:56 RRM |
1067 |
% -- replaced redefinition of \@htmlrule with \htmlrulestar |
1068 |
% |
1069 |
% Revision 1.20 1997/10/28 02:15:58 RRM |
1070 |
% -- altered the way some special html-macros are defined, so that |
1071 |
% star-variants are explicitly defined for LaTeX |
1072 |
% -- it is possible for these to occur within images.tex |
1073 |
% e.g. \htmlinfostar \htmlrulestar \tableofchildlinksstar |
1074 |
% |
1075 |
% Revision 1.19 1997/10/11 05:47:48 RRM |
1076 |
% -- allow the dummy {tex2html_nowrap} environment in LaTeX |
1077 |
% use it to make its contents be evaluated in environment order |
1078 |
% |
1079 |
% Revision 1.18 1997/10/04 06:56:50 RRM |
1080 |
% -- uses Robin Fairbairns' code for ignored environments, |
1081 |
% replacing the previous comment.sty stuff. |
1082 |
% -- extensions to the \tableofchildlinks command |
1083 |
% -- extensions to the \htmlinfo command |
1084 |
% |
1085 |
% Revision 1.17 1997/07/08 11:23:39 RRM |
1086 |
% include value of footnote counter in .ptr files for segments |
1087 |
% |
1088 |
% Revision 1.16 1997/07/03 08:56:34 RRM |
1089 |
% use \textup within the \latextohtml macro |
1090 |
% |
1091 |
% Revision 1.15 1997/06/15 10:24:58 RRM |
1092 |
% new command \htmltracenv as environment-ordered \htmltracing |
1093 |
% |
1094 |
% Revision 1.14 1997/06/06 10:30:37 RRM |
1095 |
% - new command: \htmlborder puts environment into a <TABLE> cell |
1096 |
% with a border of specified width, + other attributes. |
1097 |
% - new commands: \HTML for setting arbitrary HTML tags, with attributes |
1098 |
% \HTMLset for setting Perl variables, while processing |
1099 |
% \HTMLsetenv same as \HTMLset , but it gets processed |
1100 |
% as if it were an environment. |
1101 |
% - new command: \latextohtml --- to set the LaTeX2HTML name/logo |
1102 |
% - fixed some remaining problems with \segmentcolor & \segmentpagecolor |
1103 |
% |
1104 |
% Revision 1.13 1997/05/19 13:55:46 RRM |
1105 |
% alterations and extra options to \hypercite |
1106 |
% |
1107 |
% Revision 1.12 1997/05/09 12:28:39 RRM |
1108 |
% - Added the optional argument to \htmlhead, also in \DumpCounters |
1109 |
% - Implemented \HTMLset as a no-op in LaTeX. |
1110 |
% - Fixed a bug in accessing the page@color settings. |
1111 |
% |
1112 |
% Revision 1.11 1997/03/26 09:32:40 RRM |
1113 |
% - Implements LaTeX versions of \externalcite and \hypercite commands. |
1114 |
% Thanks to Uffe Engberg and Stephen Simpson for the suggestions. |
1115 |
% |
1116 |
% Revision 1.10 1997/03/06 07:37:58 RRM |
1117 |
% Added the \htmltracing command, for altering $VERBOSITY . |
1118 |
% |
1119 |
% Revision 1.9 1997/02/17 02:26:26 RRM |
1120 |
% - changes to counter handling (RRM) |
1121 |
% - shuffled around some definitions |
1122 |
% - changed \htmlrule of 209 mode |
1123 |
% |
1124 |
% Revision 1.8 1997/01/26 09:04:12 RRM |
1125 |
% RRM: added optional argument to sectioning commands |
1126 |
% \htmlbase sets the <BASE HREF=...> tag |
1127 |
% \htmlinfo and \htmlinfo* allow the document info to be positioned |
1128 |
% |
1129 |
% Revision 1.7 1997/01/03 12:15:44 L2HADMIN |
1130 |
% % - fixes to the color and natbib interfaces |
1131 |
% % - extended usage of \hyperref, via an optional argument. |
1132 |
% % - extended use comment environments to allow shifting expansions |
1133 |
% % e.g. within \multicolumn (`bug' reported by Luc De Coninck). |
1134 |
% % - allow optional argument to: \htmlimage, \htmlhead, |
1135 |
% % \htmladdimg, \htmladdnormallink, \htmladdnormallinkfoot |
1136 |
% % - added new commands: \htmlbody, \htmlnohead |
1137 |
% % - added new command: \tableofchildlinks |
1138 |
% |
1139 |
% Revision 1.6 1996/12/25 03:04:54 JCL |
1140 |
% added patches to segment feature from Martin Wilck |
1141 |
% |
1142 |
% Revision 1.5 1996/12/23 01:48:06 JCL |
1143 |
% o introduced the environment makeimage, which may be used to force |
1144 |
% LaTeX2HTML to generate an image from the contents. |
1145 |
% There's no magic, all what we have now is a defined empty environment |
1146 |
% which LaTeX2HTML will not recognize and thus pass it to images.tex. |
1147 |
% o provided \protect to the \htmlrule commands to allow for usage |
1148 |
% within captions. |
1149 |
% |
1150 |
% Revision 1.4 1996/12/21 19:59:22 JCL |
1151 |
% - shuffled some entries |
1152 |
% - added \latexhtml command |
1153 |
% |
1154 |
% Revision 1.3 1996/12/21 12:22:59 JCL |
1155 |
% removed duplicate \htmlrule, changed \htmlrule back not to create a \hrule |
1156 |
% to allow occurrence in caption |
1157 |
% |
1158 |
% Revision 1.2 1996/12/20 04:03:41 JCL |
1159 |
% changed occurrence of \makeatletter, \makeatother |
1160 |
% added new \htmlrule command both for the LaTeX2.09 and LaTeX2e |
1161 |
% sections |
1162 |
% |
1163 |
% |
1164 |
% jcl 30-SEP-96 |
1165 |
% - Stuck the commands commonly used by both LaTeX versions to the top, |
1166 |
% added a check which stops input or reads further if the document |
1167 |
% makes use of LaTeX2e. |
1168 |
% - Introduced rrm's \dumpcurrentcolor and \bodytext |
1169 |
% hws 31-JAN-96 - Added support for document segmentation |
1170 |
% hws 10-OCT-95 - Added \htmlrule command |
1171 |
% jz 22-APR-94 - Added support for htmlref |
1172 |
% nd - Created |