html.sty
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:15k
源码类别:

通讯编程

开发平台:

Visual C++

  1. % LaTeX2HTML Version 96.1 : html.sty
  2. %
  3. % This file contains definitions of LaTeX commands which are
  4. % processed in a special way by the translator. 
  5. % For example, there are commands for embedding external hypertext links,
  6. % for cross-references between documents or for including raw HTML.
  7. % This file includes the comments.sty file v2.0 by Victor Eijkhout
  8. % In most cases these commands do nothing when processed by LaTeX.
  9. %
  10. % Place this file in a directory accessible to LaTeX (i.e., somewhere
  11. % in the TEXINPUTS path.)
  12. %
  13. % NOTE: This file works with LaTeX 2.09 or (the newer) LaTeX2e.
  14. %       If you only have LaTeX 2.09, some complex LaTeX2HTML features
  15. %       like support for segmented documents are not available.
  16. % Modifications:
  17. %
  18. % (The listing of Initiales see Changes)
  19. % jcl 30-SEP-96
  20. %  - Stuck the commands commonly used by both LaTeX versions to the top,
  21. %    added a check which stops input or reads further if the document
  22. %    makes use of LaTeX2e.
  23. %  - Introduced rrm's dumpcurrentcolor and bodytext
  24. % hws 31-JAN-96 - Added support for document segmentation
  25. % hws 10-OCT-95 - Added htmlrule command
  26. % jz 22-APR-94 - Added support for htmlref
  27. % nd  - Created
  28. % Exit if the style file is already loaded
  29. % (suggested by Lee Shombert <las@potomac.wash.inmet.com>
  30. ifx htmlstyloadedrelax endinputelselethtmlstyloadedrelaxfi
  31. %%% LINKS TO EXTERNAL DOCUMENTS
  32. %
  33. % This can be used to provide links to arbitrary documents.
  34. % The first argumment should be the text that is going to be
  35. % highlighted and the second argument a URL.
  36. % The hyperlink will appear as a hyperlink in the HTML 
  37. % document and as a footnote in the dvi or ps files.
  38. %
  39. newcommand{htmladdnormallinkfoot}[2]{#1footnote{#2}} 
  40. % This is an alternative definition of the command above which
  41. % will ignore the URL in the dvi or ps files.
  42. newcommand{htmladdnormallink}[2]{#1}
  43. % This command takes as argument a URL pointing to an image.
  44. % The image will be embedded in the HTML document but will
  45. % be ignored in the dvi and ps files.
  46. %
  47. newcommand{htmladdimg}[1]{}
  48. %%% CROSS-REFERENCES BETWEEN (LOCAL OR REMOTE) DOCUMENTS
  49. %
  50. % This can be used to refer to symbolic labels in other Latex 
  51. % documents that have already been processed by the translator.
  52. % The arguments should be:
  53. % #1 : the URL to the directory containing the external document
  54. % #2 : the path to the labels.pl file of the external document.
  55. % If the external document lives on a remote machine then labels.pl 
  56. % must be copied on the local machine.
  57. %
  58. %e.g. externallabels{http://cbl.leeds.ac.uk/nikos/WWW/doc/tex2html/latex2html}
  59. %                    {/usr/cblelca/nikos/tmp/labels.pl}
  60. % The arguments are ignored in the dvi and ps files.
  61. %
  62. newcommand{externallabels}[2]{}
  63. %
  64. % This complements the externallabels command above. The argument
  65. % should be a label defined in another latex document and will be
  66. % ignored in the dvi and ps files.
  67. %
  68. newcommand{externalref}[1]{}
  69. % This command adds a horizontal rule and is valid even within
  70. % a figure caption.
  71. %
  72. newcommand{htmlrule}{}
  73. % This command adds information within the <BODY> ... </BODY> tag
  74. %
  75. newcommand{bodytext}[1]{}
  76. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  77. % Comment.sty   version 2.0, 19 June 1992
  78. % selectively in/exclude pieces of text: the user can define new
  79. % comment versions, and each is controlled separately.
  80. % This style can be used with plain TeX or LaTeX, and probably
  81. % most other packages too.
  82. %
  83. % Examples of use in LaTeX and TeX follow endinput
  84. %
  85. % Author
  86. %    Victor Eijkhout
  87. %    Department of Computer Science
  88. %    University Tennessee at Knoxville
  89. %    104 Ayres Hall
  90. %    Knoxville, TN 37996
  91. %    USA
  92. %
  93. %    eijkhout@cs.utk.edu
  94. %
  95. % Usage: all text included in between
  96. %    comment ... endcomment
  97. % or begin{comment} ... end{comment}
  98. % is discarded. The closing command should appear on a line
  99. % of its own. No starting spaces, nothing after it.
  100. % This environment should work with arbitrary amounts
  101. % of comment.
  102. %
  103. % Other 'comment' environments are defined by
  104. % and are selected/deselected with
  105. % includecomment{versiona}
  106. % excludecoment{versionb}
  107. %
  108. % These environments are used as
  109. % versiona ... endversiona
  110. % or begin{versiona} ... end{versiona}
  111. % with the closing command again on a line of its own.
  112. %
  113. % Basic approach:
  114. % to comment something out, scoop up  every line in verbatim mode
  115. % as macro argument, then throw it away.
  116. % For inclusions, both the opening and closing comands
  117. % are defined as noop
  118. %
  119. % Changed next to html@next to prevent clashes with other sty files
  120. % (mike@emn.fr)
  121. % Changed html@next to htmlnext so the makeatletter and
  122. % makeatother commands could be removed (they were causing other
  123. % style files - changebar.sty - to crash) (nikos@cbl.leeds.ac.uk)
  124. % Changed htmlnext back to html@next...
  125. makeatletter
  126. defmakeinnocent#1{catcode`#1=12 }
  127. defcsarg#1#2{expandafter#1csname#2endcsname}
  128. defThrowAwayComment#1{begingroup
  129.     defCurrentComment{#1}%
  130.     letdomakeinnocent dospecials
  131.     makeinnocent^^L% and whatever other special cases
  132.     endlinechar`^^M catcode`^^M=12 xComment}
  133. {catcode`^^M=12 endlinechar=-1 %
  134.  gdefxComment#1^^M{deftest{#1}
  135.       csargifx{PlainEndCurrentComment Test}test
  136.           lethtml@nextendgroup
  137.       else csargifx{LaLaEndCurrentComment Test}test
  138.             edefhtml@next{endgroupnoexpandend{CurrentComment}}
  139.       else lethtml@nextxComment
  140.       fi fi html@next}
  141. }
  142. makeatother
  143. defincludecomment
  144.  #1{expandafterdefcsname#1endcsname{}%
  145.     expandafterdefcsname end#1endcsname{}}
  146. defexcludecomment
  147.  #1{expandafterdefcsname#1endcsname{ThrowAwayComment{#1}}%
  148.     {escapechar=-1relax
  149.      csargxdef{PlainEnd#1Test}{string\end#1}%
  150.      csargxdef{LaLaEnd#1Test}{string\endstring{#1string}}%
  151.     }}
  152. excludecomment{comment}
  153. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  154. %%% RAW HTML 
  155. % Enclose raw HTML between a begin{rawhtml} and end{rawhtml}.
  156. % The html environment ignores its body
  157. %
  158. excludecomment{rawhtml}
  159. %%% HTML ONLY
  160. %
  161. % Enclose LaTeX constructs which will only appear in the 
  162. % HTML output and will be ignored by LaTeX with 
  163. % begin{htmlonly} and end{htmlonly}
  164. %
  165. excludecomment{htmlonly}
  166. % Shorter version
  167. newcommand{html}[1]{}
  168. %%% LaTeX ONLY
  169. % Enclose LaTeX constructs which will only appear in the 
  170. % DVI output and will be ignored by latex2html with 
  171. %begin{latexonly} and end{latexonly}
  172. %
  173. newenvironment{latexonly}{}{}
  174. % Shorter version
  175. newcommand{latex}[1]{#1}
  176. %%% HYPERREF 
  177. % Suggested by Eric M. Carol <eric@ca.utoronto.utcc.enfm>
  178. % Similar to ref but accepts conditional text. 
  179. % The first argument is HTML text which will become ``hyperized''
  180. % (underlined).
  181. % The second and third arguments are text which will appear only in the paper
  182. % version (DVI file), enclosing the fourth argument which is a reference to a label.
  183. %
  184. %e.g. hyperref{using the tracer}{using the tracer (see Section}{)}{trace}
  185. % where there is a corresponding label{trace}
  186. %
  187. newcommand{hyperref}[4]{#2ref{#4}#3}
  188. %%% HTMLREF
  189. % Reference in HTML version only.
  190. % Mix between htmladdnormallink and hyperref.
  191. % First arg is text for in both versions, second is label for use in HTML
  192. % version.
  193. newcommand{htmlref}[2]{#1}
  194. %%% HTMLIMAGE
  195. % This command can be used inside any environment that is converted
  196. % into an inlined image (eg a "figure" environment) in order to change
  197. % the way the image will be translated. The argument of htmlimage
  198. % is really a string of options separated by commas ie 
  199. % [scale=<scale factor>],[external],[thumbnail=<reduction factor>
  200. % The scale option allows control over the size of the final image.
  201. % The ``external'' option will cause the image not to be inlined 
  202. % (images are inlined by default). External images will be accessible
  203. % via a hypertext link. 
  204. % The ``thumbnail'' option will cause a small inlined image to be 
  205. % placed in the caption. The size of the thumbnail depends on the
  206. % reduction factor. The use of the ``thumbnail'' option implies
  207. % the ``external'' option.
  208. %
  209. % Example:
  210. % htmlimage{scale=1.5,external,thumbnail=0.2}
  211. % will cause a small thumbnail image 1/5th of the original size to be
  212. % placed in the final document, pointing to an external image 1.5
  213. % times bigger than the original.
  214. newcommand{htmlimage}[1]{}
  215. %%% HTMLADDTONAVIGATION
  216. % This command appends its argument to the buttons in the navigation
  217. % panel. It is ignored by LaTeX.
  218. %
  219. % Example:
  220. % htmladdtonavigation{htmladdnormallink
  221. %              {htmladdimg{http://server/path/to/gif}}
  222. %              {http://server/path}}
  223. newcommand{htmladdtonavigation}[1]{}
  224. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  225. %%% JCL - stop input here if LaTeX2e is not present
  226. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  227. makeatletter
  228. ifxif@compatibilityundefined
  229.   %LaTeX209
  230.   makeatotherrelaxexpandafterendinput
  231. fi
  232. if@compatibility
  233.   %LaTeX2e in LaTeX209 compatibility mode
  234.   makeatotherrelaxexpandafterendinput
  235. fi
  236. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  237. %
  238. % Start providing LaTeX2e extension:
  239. % This is currently:
  240. %  - additional optional argument for htmladdimg
  241. %  - support for segmented documents
  242. %
  243. ProvidesPackage{html}
  244.           [1996/02/01 v1.0 hypertext commands for latex2html (nd, hws)]
  245. %%%%MG
  246. % This command takes as argument a URL pointing to an image.
  247. % The image will be embedded in the HTML document but will
  248. % be ignored in the dvi and ps files.  The optional argument
  249. % denotes additional HTML tags.
  250. %
  251. % Example:  htmladdimg[ALT="portrait" ALIGN=CENTER]{portrait.gif}
  252. %
  253. renewcommand{htmladdimg}[2][]{}
  254. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  255. %
  256. % The following commands pertain to document segmentation, and
  257. % were added by Herbert Swan <dprhws@edp.Arco.com> (with help from
  258. % Michel Goossens <goossens@cern.ch>):
  259. %
  260. %
  261. % This command inputs internal latex2html tables so that large
  262. % documents can to partitioned into smaller (more manageable)
  263. % segments.
  264. %
  265. newcommand{internal}[2][internals]{}
  266. %
  267. %  Define a dummy stub htmlhead{}.  This command causes latex2html
  268. %  to define the title of the start of a new segment.  It is not
  269. %  normally placed in the user's document.  Rather, it is passed to
  270. %  latex2html via a .ptr file written by segment.
  271. %
  272. newcommand{htmlhead}[2]{}
  273. %
  274. %  The dummy command endpreamble is needed by latex2html to
  275. %  mark the end of the preamble in document segments that do
  276. %  not contain a begin{document}
  277. %
  278. newcommand{startdocument}{}
  279. %
  280. %  Allocate a new set of section counters, which will get incremented
  281. %  for "*" forms of sectioning commands, and for a few miscellaneous
  282. %  commands.
  283. %
  284. makeatletter
  285. newcounter{lpart}
  286. newcounter{lchapter}[part]
  287. @ifundefined{chapter}{newcounter{lsection}[part]}{newcounter{lsection}[chapter]}
  288. newcounter{lsubsection}[section]
  289. newcounter{lsubsubsection}[subsection]
  290. newcounter{lparagraph}[subsubsection]
  291. newcounter{lsubparagraph}[paragraph]
  292. newcounter{lsubsubparagraph}[subparagraph]
  293. newcounter{lequation}
  294. %
  295. %  Redefine "*" forms of sectioning commands to increment their
  296. %  respective counters.
  297. %
  298. letHpart=part
  299. letHchapter=chapter
  300. letHsection=section
  301. letHsubsection=subsection
  302. letHsubsubsection=subsubsection
  303. letHparagraph=paragraph
  304. letHsubparagraph=subparagraph
  305. letHsubsubparagraph=subsubparagraph
  306. %
  307. %  The following definitions are specific to LaTeX2e:
  308. %  (They must be commented out for LaTeX 2.09)
  309. %
  310. defpart{@ifstar{stepcounter{lpart}Hpart*}{Hpart}}
  311. ifxHchapterrelaxelse@ifundefined{chapter}{}{%
  312.   defchapter{resetsubsections @ifstar{stepcounter{lchapter}Hchapter*}{Hchapter}}}
  313. fi
  314. defsection{resetsubsubsections @ifstar{stepcounter{lsection}Hsection*}{Hsection}}
  315. defsubsection{resetparagraphs 
  316.  @ifstar{stepcounter{lsubsection}Hsubsection*}{Hsubsection}}
  317. defsubsubsection{resetsubparagraphs
  318.  @ifstar{stepcounter{lsubsubsection}Hsubsubsection*}{Hsubsubsection}}
  319. defparagraph{resetsubsubparagraphs
  320.  @ifstar{stepcounter{lparagraph}Hparagraph*}{Hparagraph}}
  321. defsubparagraph{%
  322.  @ifstar{stepcounter{lsubparagraph}Hsubparagraph*}{Hsubparagraph}}
  323. defsubsubparagraph{%
  324.  @ifstar{stepcounter{lsubsubparagraph}Hsubsubparagraph*}{Hsubsubparagraph}}
  325. %
  326. defresetsections{setcounter{section}{0}setcounter{lsection}{0}%
  327.  reset@dependents{section}resetsubsections }
  328. defresetsubsections{setcounter{subsection}{0}setcounter{lsubsection}{0}%
  329.  reset@dependents{subsection}resetsubsubsections }
  330. defresetsubsubsections{setcounter{subsubsection}{0}setcounter{lsubsubsection}{0}%
  331.  reset@dependents{subsubsection}resetparagraphs }
  332. %
  333. defresetparagraphs{setcounter{lparagraph}{0}setcounter{lparagraph}{0}%
  334.  reset@dependents{paragraph}resetsubparagraphs }
  335. defresetsubparagraphs{setcounter{subparagraph}{0}setcounter{lsubparagraph}{0}%
  336.  reset@dependents{subparagraph}resetsubsubparagraphs }
  337. defresetsubsubparagraphs{%setcounter{subsubparagraph}{0}%
  338.  setcounter{lsubsubparagraph}{0}}
  339. %
  340. defreset@dependents#1{begingrouplet @elt @stpelt csname cl@#1endcsnameendgroup}
  341. %
  342. %
  343. %  Define a helper macro to dump a single secounter command to a file.
  344. %
  345. newcommand{DumpPtr}[2]{%
  346. count255=arabic{#1}advancecount255 by arabic{#2}%
  347. immediatewriteptrfile{%
  348. noexpandsetcounter{#1}{numbercount255}}}
  349. %
  350. %  Define a helper macro to dump all counters to the file.
  351. %  The value for each counter will be the sum of the l-counter
  352. %      actual LaTeX section counter.
  353. %  Also dump an htmlhead{section-command}{section title} command
  354. %      to the file.
  355. %
  356. newwriteptrfile
  357. defDumpCounters#1#2#3{%
  358. begingroupletprotect=noexpand
  359. immediateopenoutptrfile = #1.ptr
  360. DumpPtr{part}{lpart}%
  361. ifxHchapterrelaxelseDumpPtr{chapter}{lchapter}fi
  362. DumpPtr{section}{lsection}%
  363. DumpPtr{subsection}{lsubsection}%
  364. DumpPtr{subsubsection}{lsubsubsection}%
  365. DumpPtr{paragraph}{lparagraph}%
  366. DumpPtr{subparagraph}{lsubparagraph}%
  367. DumpPtr{equation}{lequation}%
  368. immediatewriteptrfile{noexpandhtmlhead{#2}{#3}}%
  369. ifxundefinedciteindextrueelseexpandafterdumpcitestatusfi
  370. ifxundefinedcurrent@colorelseexpandafterdumpcurrentcolorfi
  371. immediatecloseoutptrfile
  372. endgroup }
  373. defdumpcitestatus{%
  374.  ifciteindeximmediatewriteptrfile{noexpandciteindextrue}%
  375.  elseimmediatewriteptrfile{noexpandciteindexfalse}fi }
  376. defdumpcurrentcolor{%
  377. immediatewriteptrfile{noexpandsegmentcolor{current@color}}}
  378. %
  379. %  Define the segment{file}{section-command}{section-title} command,
  380. %  and its helper macros.  This command does four things:
  381. % 1)  Begins a new LaTeX section;
  382. % 2)  Writes a list of section counters to file.ptr, each
  383. %     of which represents the sum of the LaTeX section
  384. %     counters, and the l-counters, defined above;
  385. % 3)  Write an htmlhead{section-title} command to file.ptr;
  386. % 4)  Inputs file.tex.
  387. %
  388. %%%%MG changed
  389. defsegment{@ifstar{@@htmls}{@@html}}
  390. def@@htmls#1#2#3{csname #2endcsname* {#3}%
  391.                    DumpCounters{#1}{#2*}{#3}input{#1}}
  392. def@@html#1#2#3{csname #2endcsname {#3}%
  393.                    DumpCounters{#1}{#2}{#3}input{#1}}
  394. %%%%MG 
  395. makeatother
  396. endinput