summaryrefslogtreecommitdiff
path: root/info/examples/tex-in-practice/pm-4.tip
diff options
context:
space:
mode:
Diffstat (limited to 'info/examples/tex-in-practice/pm-4.tip')
-rw-r--r--info/examples/tex-in-practice/pm-4.tip122
1 files changed, 122 insertions, 0 deletions
diff --git a/info/examples/tex-in-practice/pm-4.tip b/info/examples/tex-in-practice/pm-4.tip
new file mode 100644
index 0000000000..86721bf4f7
--- /dev/null
+++ b/info/examples/tex-in-practice/pm-4.tip
@@ -0,0 +1,122 @@
+% This macro source file is from the four volume series
+% "TeX in Practice" by Stephan von Bechtolsheim, published
+% 1993 by Springer-Verlag, New York.
+% Copyright 1993 Stephan von Bechtolsheim.
+% No warranty or liability is assumed.
+% This macro may be copied freely if no fees other than
+% media cost or shipping charges are charged and as long
+% as this copyright and the following source code itself
+% is not changed. Please see the series for further information.
+%
+% Version: 1.0
+% Date: May 1, 1993
+%
+%
+% This source code is documented in 30.7.5, p. III-555.
+% Original source in file "pp1.TEX", starting line 1123.
+\wlog{L: "pm-4.tip" ["pp1.TEX," l. 1123, p. III-555]}%
+% This file DOES NOT belong to format "texip."
+\InputD{robust.tip}
+\InputD{input-at.tip}
+\InputD{mspaces.tip}
+\catcode`\@ = 11
+\let\@ex = \expandafter
+\def\WriteToAuxSpecial #1#2#3#4#5{%
+ {%
+ \@MakeRobustMacros
+ \edef\@WriteTemp{%
+ \string\@ForSpecialFile{#1}{#2}{#3}%
+ }%
+ \@ex\@ex\@ex\@p@write\@ex{\@WriteTemp}%
+ \edef\@WriteTemp{\EightSpaces{#4}}%
+ \@ex\@ex\@ex\@p@write\@ex{\@WriteTemp}%
+ \@p@write{\EightSpaces{#5}}%
+ }%
+}
+\def\TableOfContents #1{%
+ \@TableOrListOfSomething{\TocFileNameExtension}{#1}%
+}
+\def\ListOfFigures #1{%
+ \@TableOrListOfSomething{\LofFileNameExtension}{#1}%
+}
+\def\ListOfTables #1{%
+ \@TableOrListOfSomething{\LotFileNameExtension}{#1}%
+}
+\def\@TableOrListOfSomething #1#2{%
+ \wlog{\string\@TableOrListOfSomething (#1: "#2")}%
+ \def\@SomethingFileList{}%
+ \if\EmptyStringConditional{#2}%
+ \wlog{\EightSpaces (whole document)}%
+ \edef\@SpecialFileBaseName{\jobname}%
+ \i@write\@TmpFileStream{%
+ \string\@BuildSpecialFile
+ {#1}%
+ {\@SpecialFileBaseName.#1}%
+ }%
+ {%
+ \def\\##1{%
+ \i@write\@TmpFileStream
+ {\string\InputC{##1.\AuxFileNameExtension}}}%
+ \@AllPartsOfDocumentList
+ }%
+ \else
+ \wlog{\EightSpaces (some parts only)}%
+ \edef\@SpecialFileBaseName{\CurrentPartName}%
+ \i@write\@TmpFileStream{%
+ \noexpand\@BuildSpecialFile
+ {#1}%
+ {\@SpecialFileBaseName.#1}%
+ }
+ \ConvertArgsToListAndAppend{\@SomethingFileList}{#2}%
+ {%
+ \def\\##1{%
+ \i@write\@TmpFileStream
+ {\string\InputC{##1.\AuxFileNameExtension}}%
+ \if\MemberOfListConditional
+ {\@AllPartsOfDocumentList}{##1}%
+ \else
+ \wlog{\string\@TableOrListOfSomething:
+ WARNING: part "##1" does NOT
+ belong to this document!}%
+ \fi
+ }%
+ \@SomethingFileList
+ }%
+ \fi
+ \i@write\@TmpFileStream{\string\@EndBuildSpecialFile}%
+ \InputCWithAt{\@SpecialFileBaseName.#1}%
+}
+\def\@BuildNewSpecialFiles{%
+ \wlog{\string\@BuildNewSpecialFiles: started.}%
+ \InputAt{\jobname.\TmpFileNameExtension}%
+ \wlog{\string\@BuildNewSpecialFiles: done.}%
+}
+\def\@BuildSpecialFile #1#2{%
+ \begingroup
+ \@MakeRobustMacros
+ \wlog{\string\@BuildSpecialFile: working on "#2".}%
+ \@IgnoreAuxStuff
+ \let\@ForSpecialFile = \@ForSpecialFileSave
+ \def\@ForSpecialFileExtension{#1}%
+ \OpenGenericOStream{#2}%
+}
+\def\@ForSpecialFileSave #1#2#3#4#5{%
+ \if\StringsEqualConditional{#1}{\@ForSpecialFileExtension}%
+ \i@write\GenericOStream{%
+ \string\EntryInto#1%
+ {#2}{#3}%
+ }%
+ \i@write\GenericOStream{%
+ \EightSpaces{#4}%
+ }%
+ \i@write\GenericOStream{%
+ \EightSpaces{#5}%
+ }%
+ \fi
+}%
+\def\@EndBuildSpecialFile{%
+ \CloseGenericOStream
+ \wlog{\string\@EndBuildSpecialFile: closed file}%
+ \endgroup
+}
+\catcode`\@ = 12