|
@@ -0,0 +1,360 @@
|
|
|
+% LaTeX2HTML Version 95.1 : html.sty
|
|
|
+%
|
|
|
+% WARNING: This file requires LaTeX2e. A LaTeX 2.09 version
|
|
|
+% is also provided, but with restricted functionality.
|
|
|
+%
|
|
|
+% This file contains definitions of LaTeX commands which are
|
|
|
+% processed in a special way by the translator.
|
|
|
+% For example, there are commands for embedding external hypertext links,
|
|
|
+% for cross-references between documents or for including
|
|
|
+% raw HTML.
|
|
|
+% This file includes the comments.sty file v2.0 by Victor Eijkhout
|
|
|
+% In most cases these commands do nothing when processed by LaTeX.
|
|
|
+
|
|
|
+% Modifications:
|
|
|
+%
|
|
|
+% nd = Nikos Drakos <[email protected]>
|
|
|
+% jz = Jelle van Zeijl <[email protected]>
|
|
|
+% hs = Herb Swan <[email protected]>
|
|
|
+
|
|
|
+% hs 31-JAN-96 - Added support for document segmentation
|
|
|
+% hs 10-OCT-95 - Added \htmlrule command
|
|
|
+% jz 22-APR-94 - Added support for htmlref
|
|
|
+% nd - Created
|
|
|
+%%%%MG added
|
|
|
+\NeedsTeXFormat{LaTeX2e}
|
|
|
+\ProvidesPackage{html}
|
|
|
+ [1996/02/01 v1.0 hypertext commands for latex2html (nd, hs)]
|
|
|
+%%%%MG
|
|
|
+% Exit if the style file is already loaded
|
|
|
+% (suggested by Lee Shombert <[email protected]>
|
|
|
+\ifx \htmlstyloaded\relax \endinput\else\let\htmlstyloaded\relax\fi
|
|
|
+
|
|
|
+%%% LINKS TO EXTERNAL DOCUMENTS
|
|
|
+%
|
|
|
+% This can be used to provide links to arbitrary documents.
|
|
|
+% The first argumment should be the text that is going to be
|
|
|
+% highlighted and the second argument a URL.
|
|
|
+% The hyperlink will appear as a hyperlink in the HTML
|
|
|
+% document and as a footnote in the dvi or ps files.
|
|
|
+%
|
|
|
+\newcommand{\htmladdnormallinkfoot}[2]{#1\footnote{#2}}
|
|
|
+
|
|
|
+% This is an alternative definition of the command above which
|
|
|
+% will ignore the URL in the dvi or ps files.
|
|
|
+\newcommand{\htmladdnormallink}[2]{#1}
|
|
|
+
|
|
|
+% This command takes as argument a URL pointing to an image.
|
|
|
+% The image will be embedded in the HTML document but will
|
|
|
+% be ignored in the dvi and ps files.
|
|
|
+%
|
|
|
+\newcommand{\htmladdimg}[1]{}
|
|
|
+
|
|
|
+%%% CROSS-REFERENCES BETWEEN (LOCAL OR REMOTE) DOCUMENTS
|
|
|
+%
|
|
|
+% This can be used to refer to symbolic labels in other Latex
|
|
|
+% documents that have already been processed by the translator.
|
|
|
+% The arguments should be:
|
|
|
+% #1 : the URL to the directory containing the external document
|
|
|
+% #2 : the path to the labels.pl file of the external document.
|
|
|
+% If the external document lives on a remote machine then labels.pl
|
|
|
+% must be copied on the local machine.
|
|
|
+%
|
|
|
+%e.g. \externallabels{http://cbl.leeds.ac.uk/nikos/WWW/doc/tex2html/latex2html}
|
|
|
+% {/usr/cblelca/nikos/tmp/labels.pl}
|
|
|
+% The arguments are ignored in the dvi and ps files.
|
|
|
+%
|
|
|
+\newcommand{\externallabels}[2]{}
|
|
|
+
|
|
|
+%
|
|
|
+% This complements the \externallabels command above. The argument
|
|
|
+% should be a label defined in another latex document and will be
|
|
|
+% ignored in the dvi and ps files.
|
|
|
+%
|
|
|
+\newcommand{\externalref}[1]{}
|
|
|
+
|
|
|
+% This command adds a horizontal rule and is valid even within
|
|
|
+% a figure caption.
|
|
|
+%
|
|
|
+\newcommand{\htmlrule}{}
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+%
|
|
|
+% The following commands pertain to document segmentation, and
|
|
|
+% were added by Herbert Swan <[email protected]> (with help from
|
|
|
+% Michel Goossens <[email protected]>):
|
|
|
+%
|
|
|
+%
|
|
|
+% This command inputs internal latex2html tables so that large
|
|
|
+% documents can to partitioned into smaller (more manageable)
|
|
|
+% segments.
|
|
|
+%
|
|
|
+\newcommand{\internal}[2][internals]{}
|
|
|
+
|
|
|
+%
|
|
|
+% Define a dummy stub \htmlhead{}. This command causes latex2html
|
|
|
+% to define the title of the start of a new segment. It is not
|
|
|
+% normally placed in the user's document. Rather, it is passed to
|
|
|
+% latex2html via a .ptr file written by \segment.
|
|
|
+%
|
|
|
+\newcommand{\htmlhead}[2]{}
|
|
|
+
|
|
|
+%
|
|
|
+% The dummy command \endpreamble is needed by latex2html to
|
|
|
+% mark the end of the preamble in document segments that do
|
|
|
+% not contain a \begin{document}
|
|
|
+%
|
|
|
+\newcommand{\startdocument}{}
|
|
|
+
|
|
|
+%
|
|
|
+% Allocate a new set of section counters, which will get incremented
|
|
|
+% for "*" forms of sectioning commands, and for a few miscellaneous
|
|
|
+% commands.
|
|
|
+%
|
|
|
+
|
|
|
+\newcounter{lpart}
|
|
|
+\newcounter{lchapter}[part]
|
|
|
+\ifx\chapter\undefined\newcounter{lsection}[part]\else\newcounter{lsection}[chapter]\fi
|
|
|
+\newcounter{lsubsection}[section]
|
|
|
+\newcounter{lsubsubsection}[subsection]
|
|
|
+\newcounter{lparagraph}[subsubsection]
|
|
|
+\newcounter{lsubparagraph}[paragraph]
|
|
|
+\newcounter{lsubsubparagraph}[subparagraph]
|
|
|
+\newcounter{lequation}
|
|
|
+%
|
|
|
+% Redefine "*" forms of sectioning commands to increment their
|
|
|
+% respective counters.
|
|
|
+%
|
|
|
+\let\Hpart=\part
|
|
|
+\let\Hchapter=\chapter
|
|
|
+\let\Hsection=\section
|
|
|
+\let\Hsubsection=\subsection
|
|
|
+\let\Hsubsubsection=\subsubsection
|
|
|
+\let\Hparagraph=\paragraph
|
|
|
+\let\Hsubparagraph=\subparagraph
|
|
|
+\let\Hsubsubparagraph=\subsubparagraph
|
|
|
+
|
|
|
+%
|
|
|
+% The following definitions are specific to LaTeX2e:
|
|
|
+% (They must be commented out for LaTeX 2.09)
|
|
|
+%
|
|
|
+\def\part{\@ifstar{\stepcounter{lpart}\Hpart*}{\Hpart}}
|
|
|
+\def\chapter{\@ifstar{\stepcounter{lchapter}\Hchapter*}{\Hchapter}}
|
|
|
+\def\section{\@ifstar{\stepcounter{lsection}\Hsection*}{\Hsection}}
|
|
|
+\def\subsection{\@ifstar{\stepcounter{lsubsection}\Hsubsection*}{\Hsubsection}}
|
|
|
+\def\subsubsection{\@ifstar{\stepcounter{lsubsubsection}\Hsubsubsection*}{\Hsubsubsection}}
|
|
|
+\def\paragraph{\@ifstar{\stepcounter{lparagraph}\Hparagraph*}{\Hparagraph}}
|
|
|
+\def\subparagraph{\@ifstar{\stepcounter{lsubparagraph}\Hsubparagraph*}{\Hsubparagraph}}
|
|
|
+\def\subsubparagraph{\@ifstar{\stepcounter{lsubsubparagraph}\Hsubsubparagraph*}{\Hsubsubparagraph}}
|
|
|
+%
|
|
|
+% Define a helper macro to dump a single \secounter command to a file.
|
|
|
+%
|
|
|
+\newcommand{\DumpPtr}[2]{%
|
|
|
+\count255=\arabic{#1} \advance\count255 by \arabic{#2}
|
|
|
+\immediate\write\ptrfile{%
|
|
|
+\noexpand\setcounter{#1}{\number\count255}}}
|
|
|
+
|
|
|
+%
|
|
|
+% Define a helper macro to dump all counters to the file.
|
|
|
+% The value for each counter will be the sum of the l-counter
|
|
|
+% actual LaTeX section counter.
|
|
|
+% Also dump an \htmlhead{section-command}{section title} command
|
|
|
+% to the file.
|
|
|
+%
|
|
|
+
|
|
|
+\def\DumpCounters#1#2#3{\newwrite\ptrfile
|
|
|
+\immediate\openout\ptrfile = #1.ptr
|
|
|
+\DumpPtr{part}{lpart}
|
|
|
+\ifx\Hchapter\undefined\relax\else\DumpPtr{chapter}{lchapter}\fi
|
|
|
+\DumpPtr{section}{lsection}
|
|
|
+\DumpPtr{subsection}{lsubsection}
|
|
|
+\DumpPtr{subsubsection}{lsubsubsection}
|
|
|
+\DumpPtr{paragraph}{lparagraph}
|
|
|
+\DumpPtr{subparagraph}{lsubparagraph}
|
|
|
+\DumpPtr{equation}{lequation}
|
|
|
+\immediate\write\ptrfile{\noexpand\htmlhead{#2}{#3}}
|
|
|
+\immediate\closeout\ptrfile}
|
|
|
+
|
|
|
+%
|
|
|
+% Define the \segment{file}{section-command}{section-title} command,
|
|
|
+% and its helper macros. This command does four things:
|
|
|
+% 1) Begins a new LaTeX section;
|
|
|
+% 2) Writes a list of section counters to file.ptr, each
|
|
|
+% of which represents the sum of the LaTeX section
|
|
|
+% counters, and the l-counters, defined above;
|
|
|
+% 3) Write an \htmlhead{section-title} command to file.ptr;
|
|
|
+% 4) Inputs file.tex.
|
|
|
+%
|
|
|
+
|
|
|
+%%%%MG changed
|
|
|
+\def\segment{\@ifstar{\@@htmls}{\@@html}}
|
|
|
+\def\@@htmls#1#2#3{\csname #2\endcsname* {#3}%
|
|
|
+ \DumpCounters{#1}{#2*}{#3}\input{#1}}
|
|
|
+\def\@@html#1#2#3{\csname #2\endcsname {#3}%
|
|
|
+ \DumpCounters{#1}{#2}{#3}\input{#1}}
|
|
|
+%%%%MG
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% Comment.sty version 2.0, 19 June 1992
|
|
|
+% selectively in/exclude pieces of text: the user can define new
|
|
|
+% comment versions, and each is controlled separately.
|
|
|
+% This style can be used with plain TeX or LaTeX, and probably
|
|
|
+% most other packages too.
|
|
|
+%
|
|
|
+% Examples of use in LaTeX and TeX follow \endinput
|
|
|
+%
|
|
|
+% Author
|
|
|
+% Victor Eijkhout
|
|
|
+% Department of Computer Science
|
|
|
+% University Tennessee at Knoxville
|
|
|
+% 104 Ayres Hall
|
|
|
+% Knoxville, TN 37996
|
|
|
+% USA
|
|
|
+%
|
|
|
+% [email protected]
|
|
|
+%
|
|
|
+% Usage: all text included in between
|
|
|
+% \comment ... \endcomment
|
|
|
+% or \begin{comment} ... \end{comment}
|
|
|
+% is discarded. The closing command should appear on a line
|
|
|
+% of its own. No starting spaces, nothing after it.
|
|
|
+% This environment should work with arbitrary amounts
|
|
|
+% of comment.
|
|
|
+%
|
|
|
+% Other 'comment' environments are defined by
|
|
|
+% and are selected/deselected with
|
|
|
+% \includecomment{versiona}
|
|
|
+% \excludecoment{versionb}
|
|
|
+%
|
|
|
+% These environments are used as
|
|
|
+% \versiona ... \endversiona
|
|
|
+% or \begin{versiona} ... \end{versiona}
|
|
|
+% with the closing command again on a line of its own.
|
|
|
+%
|
|
|
+% Basic approach:
|
|
|
+% to comment something out, scoop up every line in verbatim mode
|
|
|
+% as macro argument, then throw it away.
|
|
|
+% For inclusions, both the opening and closing comands
|
|
|
+% are defined as noop
|
|
|
+%
|
|
|
+% Changed \next to \html@next to prevent clashes with other sty files
|
|
|
+% ([email protected])
|
|
|
+% Changed \html@next to \htmlnext so the \makeatletter and
|
|
|
+% \makeatother commands could be removed (they were causing other
|
|
|
+% style files - changebar.sty - to crash) ([email protected])
|
|
|
+% Changed \htmlnext back to \html@next...
|
|
|
+
|
|
|
+\makeatletter
|
|
|
+\def\makeinnocent#1{\catcode`#1=12 }
|
|
|
+\def\csarg#1#2{\expandafter#1\csname#2\endcsname}
|
|
|
+
|
|
|
+\def\ThrowAwayComment#1{\begingroup
|
|
|
+ \def\CurrentComment{#1}%
|
|
|
+ \let\do\makeinnocent \dospecials
|
|
|
+ \makeinnocent\^^L% and whatever other special cases
|
|
|
+ \endlinechar`\^^M \catcode`\^^M=12 \xComment}
|
|
|
+{\catcode`\^^M=12 \endlinechar=-1 %
|
|
|
+ \gdef\xComment#1^^M{\def\test{#1}
|
|
|
+ \csarg\ifx{PlainEnd\CurrentComment Test}\test
|
|
|
+ \let\html@next\endgroup
|
|
|
+ \else \csarg\ifx{LaLaEnd\CurrentComment Test}\test
|
|
|
+ \edef\html@next{\endgroup\noexpand\end{\CurrentComment}}
|
|
|
+ \else \let\html@next\xComment
|
|
|
+ \fi \fi \html@next}
|
|
|
+}
|
|
|
+\makeatother
|
|
|
+
|
|
|
+\def\includecomment
|
|
|
+ #1{\expandafter\def\csname#1\endcsname{}%
|
|
|
+ \expandafter\def\csname end#1\endcsname{}}
|
|
|
+\def\excludecomment
|
|
|
+ #1{\expandafter\def\csname#1\endcsname{\ThrowAwayComment{#1}}%
|
|
|
+ {\escapechar=-1\relax
|
|
|
+ \csarg\xdef{PlainEnd#1Test}{\string\\end#1}%
|
|
|
+ \csarg\xdef{LaLaEnd#1Test}{\string\\end\string\{#1\string\}}%
|
|
|
+ }}
|
|
|
+
|
|
|
+\excludecomment{comment}
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+
|
|
|
+%%% RAW HTML
|
|
|
+%
|
|
|
+% Enclose raw HTML between a \begin{rawhtml} and \end{rawhtml}.
|
|
|
+% The html environment ignores its body
|
|
|
+%
|
|
|
+\excludecomment{rawhtml}
|
|
|
+
|
|
|
+%%% HTML ONLY
|
|
|
+%
|
|
|
+% Enclose LaTeX constructs which will only appear in the
|
|
|
+% HTML output and will be ignored by LaTeX with
|
|
|
+% \begin{htmlonly} and \end{htmlonly}
|
|
|
+%
|
|
|
+\excludecomment{htmlonly}
|
|
|
+% Shorter version
|
|
|
+\newcommand{\html}[1]{}
|
|
|
+
|
|
|
+
|
|
|
+%%% LaTeX ONLY
|
|
|
+% Enclose LaTeX constructs which will only appear in the
|
|
|
+% DVI output and will be ignored by latex2html with
|
|
|
+%\begin{latexonly} and \end{latexonly}
|
|
|
+%
|
|
|
+\newenvironment{latexonly}{}{}
|
|
|
+% Shorter version
|
|
|
+\newcommand{\latex}[1]{#1}
|
|
|
+
|
|
|
+%%% HYPERREF
|
|
|
+% Suggested by Eric M. Carol <[email protected]>
|
|
|
+% Similar to \ref but accepts conditional text.
|
|
|
+% The first argument is HTML text which will become ``hyperized''
|
|
|
+% (underlined).
|
|
|
+% The second and third arguments are text which will appear only in the paper
|
|
|
+% version (DVI file), enclosing the fourth argument which is a reference to a label.
|
|
|
+%
|
|
|
+%e.g. \hyperref{using the tracer}{using the tracer (see Section}{)}{trace}
|
|
|
+% where there is a corresponding \label{trace}
|
|
|
+%
|
|
|
+\newcommand{\hyperref}[4]{#2\ref{#4}#3}
|
|
|
+
|
|
|
+%%% HTMLREF
|
|
|
+% Reference in HTML version only.
|
|
|
+% Mix between \htmladdnormallink and \hyperref.
|
|
|
+% First arg is text for in both versions, second is label for use in HTML
|
|
|
+% version.
|
|
|
+\newcommand{\htmlref}[2]{#1}
|
|
|
+
|
|
|
+%%% HTMLIMAGE
|
|
|
+% This command can be used inside any environment that is converted
|
|
|
+% into an inlined image (eg a "figure" environment) in order to change
|
|
|
+% the way the image will be translated. The argument of \htmlimage
|
|
|
+% is really a string of options separated by commas ie
|
|
|
+% [scale=<scale factor>],[external],[thumbnail=<reduction factor>
|
|
|
+% The scale option allows control over the size of the final image.
|
|
|
+% The ``external'' option will cause the image not to be inlined
|
|
|
+% (images are inlined by default). External images will be accessible
|
|
|
+% via a hypertext link.
|
|
|
+% The ``thumbnail'' option will cause a small inlined image to be
|
|
|
+% placed in the caption. The size of the thumbnail depends on the
|
|
|
+% reduction factor. The use of the ``thumbnail'' option implies
|
|
|
+% the ``external'' option.
|
|
|
+%
|
|
|
+% Example:
|
|
|
+% \htmlimage{scale=1.5,external,thumbnail=0.2}
|
|
|
+% will cause a small thumbnail image 1/5th of the original size to be
|
|
|
+% placed in the final document, pointing to an external image 1.5
|
|
|
+% times bigger than the original.
|
|
|
+%
|
|
|
+\newcommand{\htmlimage}[1]{}
|
|
|
+
|
|
|
+%%% HTMLADDTONAVIGATION
|
|
|
+% This command appends its argument to the buttons in the navigation
|
|
|
+% panel. It is ignored by LaTeX.
|
|
|
+%
|
|
|
+% Example:
|
|
|
+% \htmladdtonavigation{\htmladdnormallink
|
|
|
+% {\htmladdimg{http://server/path/to/gif}}
|
|
|
+% {http://server/path}}
|
|
|
+\newcommand{\htmladdtonavigation}[1]{}
|
|
|
+
|
|
|
+\endinput
|