mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-31 17:12:34 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			360 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			360 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| % 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 <nikos@cbl.leeds.ac.uk>
 | |
| %  jz = Jelle van Zeijl <jvzeijl@isou17.estec.esa.nl>
 | |
| %  hs = Herb Swan <dprhws@edp.Arco.com>
 | |
| 
 | |
| % 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 <las@potomac.wash.inmet.com>
 | |
| \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 <dprhws@edp.Arco.com> (with help from
 | |
| % Michel Goossens <goossens@cern.ch>):
 | |
| %
 | |
| %
 | |
| % 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
 | |
| %
 | |
| %    eijkhout@cs.utk.edu
 | |
| %
 | |
| % 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
 | |
| % (mike@emn.fr)
 | |
| % Changed \html@next to \htmlnext so the \makeatletter and
 | |
| % \makeatother commands could be removed (they were causing other
 | |
| % style files - changebar.sty - to crash) (nikos@cbl.leeds.ac.uk)
 | |
| % 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 <eric@ca.utoronto.utcc.enfm>
 | |
| % 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 | 
