diff options
Diffstat (limited to 'info/examples/tex-in-practice')
300 files changed, 28433 insertions, 1 deletions
diff --git a/info/examples/tex-in-practice b/info/examples/tex-in-practice deleted file mode 120000 index 71c9f5d5ab..0000000000 --- a/info/examples/tex-in-practice +++ /dev/null @@ -1 +0,0 @@ -tip
\ No newline at end of file diff --git a/info/examples/tex-in-practice/absdimen.tip b/info/examples/tex-in-practice/absdimen.tip new file mode 100644 index 0000000000..e2e5daf3bc --- /dev/null +++ b/info/examples/tex-in-practice/absdimen.tip @@ -0,0 +1,25 @@ +% 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 4.1.11, p. I-91. +% Original source in file "reg2.TEX", starting line 601. +\wlog{L: "absdimen.tip" ["reg2.TEX," l. 601, p. I-91]}% +% This file DOES belong to format "texip." +\def\AbsoluteDimension #1#2{% + \ifdim #1 < 0pt + #2 = -#1\relax + \else + #2 = #1\relax + \fi +} diff --git a/info/examples/tex-in-practice/absval.tip b/info/examples/tex-in-practice/absval.tip new file mode 100644 index 0000000000..f3809b9a0f --- /dev/null +++ b/info/examples/tex-in-practice/absval.tip @@ -0,0 +1,25 @@ +% 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 3.3.12, p. I-57. +% Original source in file "reg1.TEX", starting line 1523. +\wlog{L: "absval.tip" ["reg1.TEX," l. 1523, p. I-57]}% +% This file DOES belong to format "texip." +\def\AbsoluteValue #1#2{% + \ifnum #1<0 + #2 = -#1\relax + \else + #2 = #1\relax + \fi +} diff --git a/info/examples/tex-in-practice/acronym.tip b/info/examples/tex-in-practice/acronym.tip new file mode 100644 index 0000000000..18db6ef8f4 --- /dev/null +++ b/info/examples/tex-in-practice/acronym.tip @@ -0,0 +1,24 @@ +% 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 22.5.4, p. III-225. +% Original source in file "macros2.TEX", starting line 1045. +\wlog{L: "acronym.tip" ["macros2.TEX," l. 1045, p. III-225]}% +% This file DOES belong to format "texip." +\def\DefineAcronym #1#2#3{% + \def #1{% + #2 (#3)% + \gdef#1{#2}% + }% +} diff --git a/info/examples/tex-in-practice/advtabst.tip b/info/examples/tex-in-practice/advtabst.tip new file mode 100644 index 0000000000..25b5ce5b75 --- /dev/null +++ b/info/examples/tex-in-practice/advtabst.tip @@ -0,0 +1,28 @@ +% 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 40.2.1, p. IV-299. +% Original source in file "table3.TEX", starting line 192. +\wlog{L: "advtabst.tip" ["table3.TEX," l. 192, p. IV-299]}% +% This file DOES belong to format "texip." +\InputD{doloop.tip} +\catcode`\@ = 11 +\newcount\AdvanceByTabStopsCount +\def\AdvanceByTabStops #1{% + \def\@MakeTabChars{}% + \DoLoop{\AdvanceByTabStopsCount}{2}{1}{#1}% + {\edef\@MakeTabChars{\@MakeTabChars&}}% + \@MakeTabChars +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/aevpar.tip b/info/examples/tex-in-practice/aevpar.tip new file mode 100644 index 0000000000..215db1a4ba --- /dev/null +++ b/info/examples/tex-in-practice/aevpar.tip @@ -0,0 +1,33 @@ +% 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 25.1.23.2, p. III-349. +% Original source in file "macros5.TEX", starting line 1808. +\wlog{L: "aevpar.tip" ["macros5.TEX," l. 1808, p. III-349]}% +% This file DOES belong to format "texip." +\newtoks\AfterEveryPar +\AfterEveryPar = {} +\catcode`\@ = 11 +\def\SetUpAfterEveryPar{% + \def\par{% + \ifhmode + \ifinner + \else + \endgraf + \the\AfterEveryPar + \fi + \fi + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/alldate.tip b/info/examples/tex-in-practice/alldate.tip new file mode 100644 index 0000000000..471bcc3c94 --- /dev/null +++ b/info/examples/tex-in-practice/alldate.tip @@ -0,0 +1,38 @@ +% 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 26.23, p. III-395. +% Original source in file "macros6.TEX", starting line 1784. +\wlog{L: "alldate.tip" ["macros6.TEX," l. 1784, p. III-395]}% +% This file DOES belong to format "texip." +\InputD{earliest.tip} +\InputD{copydate.tip} +\InputD{dateofw.tip} +\InputD{prmonth.tip} +\InputD{legyear.tip} +\InputD{legmonth.tip} +\InputD{ndaysmo.tip} +\InputD{legdate.tip} +\InputD{isleapyr.tip} +\InputD{numdyr.tip} +\InputD{nextday.tip} +\InputD{prevday.tip} +\InputD{nextmon.tip} +\InputD{prevmon.tip} +\InputD{arbday.tip} +\InputD{todayx.tip} +\InputD{mocal.tip} +\InputD{mocal3.tip} +\InputD{yearcal.tip} +\InputD{weekofyr.tip} diff --git a/info/examples/tex-in-practice/allocat.tip b/info/examples/tex-in-practice/allocat.tip new file mode 100644 index 0000000000..5bb3055145 --- /dev/null +++ b/info/examples/tex-in-practice/allocat.tip @@ -0,0 +1,31 @@ +% 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 4.6.3, p. I-115. +% Original source in file "reg2.TEX", starting line 1720. +\wlog{L: "allocat.tip" ["reg2.TEX," l. 1720, p. I-115]}% +% This file DOES NOT belong to format "texip." +\catcode`\@ = 11 +\def\alloc@#1#2#3#4#5{% + \global\advance\count1#1by\@ne + \ch@ck#1#4#2% + \allocationnumber=\count1#1% + \ifx #5\@allocUndef + \else + \errmessage{\string\alloc@: \string#5 already defined}% + \fi + \global#3#5=\allocationnumber + \wlog{\string#5=\string#2\the\allocationnumber}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/alwbase.tip b/info/examples/tex-in-practice/alwbase.tip new file mode 100644 index 0000000000..f65a0b732c --- /dev/null +++ b/info/examples/tex-in-practice/alwbase.tip @@ -0,0 +1,21 @@ +% 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 7.3.13, p. I-233. +% Original source in file "vboxes1.TEX", starting line 1301. +\wlog{L: "alwbase.tip" ["vboxes1.TEX," l. 1301, p. I-233]}% +% This file DOES belong to format "texip." +\def\AlwaysBaselineskip{% + \lineskiplimit = -\maxdimen +} diff --git a/info/examples/tex-in-practice/angt.tip b/info/examples/tex-in-practice/angt.tip new file mode 100644 index 0000000000..6a85e0cac6 --- /dev/null +++ b/info/examples/tex-in-practice/angt.tip @@ -0,0 +1,24 @@ +% 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 13.2.8, p. II-168. +% Original source in file "math1.TEX", starting line 915. +\wlog{L: "angt.tip" ["math1.TEX," l. 915, p. II-168]}% +% This file DOES belong to format "texip." +\def\angt #1{% + \leavevmode + \hbox{$\langle$}% + {\rm #1}% + \hbox{$\rangle$}% +} diff --git a/info/examples/tex-in-practice/arbday.tip b/info/examples/tex-in-practice/arbday.tip new file mode 100644 index 0000000000..fa8921eb60 --- /dev/null +++ b/info/examples/tex-in-practice/arbday.tip @@ -0,0 +1,54 @@ +% 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 26.16, p. III-381. +% Original source in file "macros6.TEX", starting line 1098. +\wlog{L: "arbday.tip" ["macros6.TEX," l. 1098, p. III-381]}% +% This file DOES belong to format "texip." +\InputD{legdate.tip} +\InputD{dateofw.tip} +\InputD{imodn.tip} +\InputD{nextday.tip} +\InputD{numdyr.tip} +\InputD{prmonth.tip} +\InputD{earliest.tip} +\InputD{doloop.tip} +\catcode`\@ = 11 +\newcount\@YearTemp +\newcount\@YearTop +\newcount\@MonthTemp +\newcount\@MonthTop +\newcount\@TempAD +\def\ArbitraryDayOfWeek #1#2#3#4{% + \CheckDate{#1}{#2}{#3}% + #4 = \DayOfWeekOfEarliestDate + \@YearTop = #1\relax + \advance\@YearTop by -1 + \DoLoop{\@YearTemp}{\EarliestYearDate}{1}{\@YearTop}{% + \NumberOfDaysInYear{\@YearTemp}{\@TempAD}% + \advance #4 by \@TempAD + }% + \IModN{#4}{7}{#4}% + \@MonthTop = #2\relax + \advance\@MonthTop by -1 + \DoLoop{\@MonthTemp}{1}{1}{\@MonthTop}{% + \NumberOfDaysInMonth{#1}{\@MonthTemp}{\@TempAD}% + \advance #4 by \@TempAD + }% + \IModN{#4}{7}{#4}% + \advance #4 by #3\relax + \advance #4 by -1 + \IModN{#4}{7}{#4}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/arraymac.tip b/info/examples/tex-in-practice/arraymac.tip new file mode 100644 index 0000000000..cf2f26b02c --- /dev/null +++ b/info/examples/tex-in-practice/arraymac.tip @@ -0,0 +1,213 @@ +% 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 20.3, p. III-136. +% Original source in file "tokens3.TEX", starting line 1017. +\wlog{L: "arraymac.tip" ["tokens3.TEX," l. 1017, p. III-136]}% +% This file DOES belong to format "texip." +\InputD{list-mac.tip} +\InputD{rangetst.tip} +\InputD{doloop.tip} +\catcode`\@ = 11 +\def\IndexLastElement #1#2{% + \NumberOfListElements{#1}{#2}% + \advance #2 by -1 +} +\newcount\@ArrayIndexCheckCount +\def\ArrayIndexCheck #1#2{% + \IndexLastElement{#1}{\@ArrayIndexCheckCount}% + \ifnum\@ArrayIndexCheckCount = -1 + \errmessage{\string\ArrayIndexCheck: array \string#2 + is empty.}% + \else + \CheckRange{#2}{0}{\@ArrayIndexCheckCount}% + {\string\ArrayIndexCheck: index \number#2 out + of range in list \string#1}% + \fi +} +\newcount\@AccessArrayElementLimit +\newcount\@AccessArrayElementCount +\def\AccessArrayElement #1#2#3{% + \ArrayIndexCheck{#1}{#2}% + \let\@AccessArrayElementList = #1% + \@AccessArrayElementLimit = #2\relax + \DoLoop{\@AccessArrayElementCount}% + {1}{1}{\@AccessArrayElementLimit}% + {\DropFirstElementOfList{\@AccessArrayElementList}}% + \CarOfList{\@AccessArrayElementList}{#3}% +} +\newcount\@ModifyArrayElementCount +\newcount\@ModifyArrayElementLimit +\def\ModifyArrayElement #1#2#3{% + \ArrayIndexCheck{#1}{2}% + \IndexLastElement{#1}{\@ModifyArrayElementLimit}% + \let\@ModifyArrayList = #1% + \def\@ModifyArrayRet{}% + \DoLoop{\@ModifyArrayElementCount}% + {0}{1}{\@ModifyArrayElementLimit}% + {% + \CarOfList{\@ModifyArrayList}% + {\@ModifyArrayElement}% + \DropFirstElementOfList{\@ModifyArrayList}% + \ifnum\@ModifyArrayElementCount = #2\relax + \RightAppendElement{\@ModifyArrayRet}{#3}% + \else + \RightAppendElement + {\@ModifyArrayRet}% + {\@ModifyArrayElement}% + \fi + }% + \let #1 = \@ModifyArrayRet +} +\newcount\@InsertArrayElementCount +\newcount\@InsertArrayElementCountTwo +\def\InsertArrayElement #1#2#3{% + \ifnum\NumberOfListElementsNumConditional{#1}=0 + \errmessage{\string\InsertArrayElement: empty array}% + \fi + \ifnum\NumberOfListElementsNumConditional{#1}=#2 + \else + \ArrayIndexCheck{#1}{#2}% + \fi + \def\@InsertArrayElementListPre{}% + \ifnum #2>0 + \@InsertArrayElementCount = #2\relax + \advance\@InsertArrayElementCount by -1 + \ExtractSubArray{#1}{0}{\@InsertArrayElementCount}% + {\@InsertArrayElementListPre}% + \fi + \def\@InsertArrayElementListPost{}% + \IndexLastElement{#1}{\@InsertArrayElementCount}% + \ifnum #2 > \@InsertArrayElementCount + \else + \ExtractSubArray{#1}{#2}{\@InsertArrayElementCount}% + {\@InsertArrayElementListPost}% + \fi + \RightAppendElement{\@InsertArrayElementListPre}{#3}% + \CombineTwoLists + {\@InsertArrayElementListPre}% + {\@InsertArrayElementListPost}% + {\@InsertArrayElementListPre}% + \let #1 = \@InsertArrayElementListPre +} +\newcount\@DeleteArrayElementCount +\newcount\@DeleteArrayElementLimit +\def\DeleteArrayElement #1#2{% + \ArrayIndexCheck{#1}{#2}% + \let\@DeleteArrayElementList = #1% + \IndexLastElement{#1}{\@DeleteArrayElementLimit}% + \ifnum\@DeleteArrayElementLimit = -1 + \errmessage{\string\DeleteArrayElement: empty array.}% + \fi + \def\@DeleteArrayElementResultList{}% + \DoLoop{\@DeleteArrayElementCount}% + {0}{1}{\@DeleteArrayElementLimit}% + {% + \CarOfList{\@DeleteArrayElementList}% + {\@DeleteArrayElement}% + \DropFirstElementOfList{\@DeleteArrayElementList}% + \ifnum\@DeleteArrayElementCount = #2\relax + \else + \RightAppendElement + {\@DeleteArrayElementResultList}% + {\@DeleteArrayElement}% + \fi + }% + \let #1=\@DeleteArrayElementResultList +} +\newcount\@DeleteArrayElementRangeCount +\newcount\@DeleteArrayElementRangeLimit +\def\DeleteArrayElementRange #1#2#3{% + \ArrayIndexCheck{#1}{#2}% + \ArrayIndexCheck{#1}{#3}% + \ifnum #2>#3 + \errmessage{\string\DeleteArrayElementRange: + first index larger than second. Makes no + sense}% + \fi + \@DeleteArrayElementRangeLimit = #3\relax + \advance\@DeleteArrayElementRangeLimit by -#2% + \advance\@DeleteArrayElementRangeLimit by 1 + \DoLoop{\@DeleteArrayElementRangeCount}{1}{1}% + {\@DeleteArrayElementRangeLimit}% + {\DropArrayElement{#1}{#2}}% +} +\newcount\@ShowArrayCount +\newcount\@ShowArrayLimit +\def\ShowArray #1{% + \wlog{\string\ShowArray: begin}% + \IndexLastElement{#1}{\@ShowArrayLimit}% + \ifnum\@ShowArrayLimit = -1 + \wlog{** empty array **}% + \else + \DoLoop{\@ShowArrayCount}{0}{1}{\@ShowArrayLimit}{% + \AccessArrayElement{#1}{\@ShowArrayCount}% + {\@ShowArrayElement}% + \wlog{Index \the\@ShowArrayCount: + "\@ShowArrayElement"}% + }% + \fi + \wlog{\string\ShowArray: end}% + \wlog{}% +} +\def\@TokenToListDoneMacro{\@TokensToListDone}% +\def\TokensToTeXList #1#2{% + \def#1{}% + \def\@TokensToListName{#1}% + \@TokensToList #2\@TokensToListDone +} +\def\@TokensToList #1{% + \def\@TokensToListMacArgOne{#1}% + \ifx\@TokensToListMacArgOne\@TokenToListDoneMacro + \let\@TokensToListNext = \relax + \else + \expandafter\RightAppendElement\@TokensToListName{#1}% + \let\@TokensToListNext = \@TokensToList + \fi + \@TokensToListNext +} +\newcount\@ExtractArrayCount +\newcount\@ExtractArrayLimit +\newif\if@ExtractCopy +\def\ExtractSubArray #1#2#3#4{% + \ArrayIndexCheck{#1}{#2}% + \ArrayIndexCheck{#1}{#3}% + \ifnum #3<#2 + \errmessage{\string\ExtractSubArray: first index > + second index, error}% + \fi + \def\@ExtractSubArrayResult{}% + \IndexLastElement{#1}{\@ExtractArrayLimit}% + \DoLoop{\@ExtractArrayCount}{0}{1}{\@ExtractArrayLimit}% + {% + \@ExtractCopytrue + \ifnum\@ExtractArrayCount < #2\relax + \@ExtractCopyfalse + \fi + \ifnum\@ExtractArrayCount > #3\relax + \@ExtractCopyfalse + \fi + \if@ExtractCopy + \AccessArrayElement + {#1}% + {\@ExtractArrayCount}% + {\@SubArrayElement}% + \RightAppendElement + {\@ExtractSubArrayResult}% + {\@SubArrayElement}% + \fi + }% + \let #4 = \@ExtractSubArrayResult +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/atpos.tip b/info/examples/tex-in-practice/atpos.tip new file mode 100644 index 0000000000..036156eb91 --- /dev/null +++ b/info/examples/tex-in-practice/atpos.tip @@ -0,0 +1,37 @@ +% 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 34.6, p. IV-80. +% Original source in file "o1.TEX", starting line 830. +\wlog{L: "atpos.tip" ["o1.TEX," l. 830, p. IV-80]}% +% This file DOES belong to format "texip." +\InputD{box-zero.tip} +\catcode`\@ = 11 +\newbox\@PrintAtPositionBox +\def\PrintAtPosition #1#2#3#4{% + \setbox\@PrintAtPositionBox = \hbox{% + \hskip #1\relax + \lower #2\hbox{% + #3% + }% + }% + #4 = \dp\@PrintAtPositionBox + \ZeroBoxOut{\@PrintAtPositionBox}% +} +\catcode`\@ = 12 +\def\SetUpPrintAtPosition{% + \nopagenumbers + \topskip = 0pt + \offinterlineskip +} diff --git a/info/examples/tex-in-practice/be-env.tip b/info/examples/tex-in-practice/be-env.tip new file mode 100644 index 0000000000..1275f03f23 --- /dev/null +++ b/info/examples/tex-in-practice/be-env.tip @@ -0,0 +1,46 @@ +% 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 27.6.4, p. III-435. +% Original source in file "macros7.TEX", starting line 1860. +\wlog{L: "be-env.tip" ["macros7.TEX," l. 1860, p. III-435]}% +% This file DOES belong to format "texip." +\InputD{namedef.tip} +\InputD{compst.tip} +\catcode`\@ = 11 +\def\NewEnvironment #1{% + \wlog{\string\NewEnvironment: new environment #1.}% + \NameNewDef{@@B-#1}{% + \bgroup + \def\@CurEnvName{#1}% + \NameUse{@Begin#1}% + }% + \NameNewDef{@@E-#1}{% + \NameUse{@End#1}% + \if\StringsEqualConditional{#1}{\@CurEnvName}% + \else + \errmessage{Ending environment: mismatch in + environment names: specified: #1, + expected: \@CurEnvName}% + \fi + \egroup + }% +} +\def\B #1{% + \NameUse{@@B-#1}% +} +\def\E #1{% + \NameUse{@@E-#1}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/bletpar.tip b/info/examples/tex-in-practice/bletpar.tip new file mode 100644 index 0000000000..cde020150b --- /dev/null +++ b/info/examples/tex-in-practice/bletpar.tip @@ -0,0 +1,53 @@ +% 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 11.4.6, p. II-85. +% Original source in file "par2.TEX", starting line 1864. +\wlog{L: "bletpar.tip" ["par2.TEX," l. 1864, p. II-85]}% +% This file DOES belong to format "texip." +\InputD{box-mac.tip} +\catcode`\@ = 11 +\newdimen\@BigLetDown +\newdimen\@BigLetDimen +\newcount\@BigLetCount +\newbox\@BigLetBox +\newdimen\BigLetSep +\BigLetSep = 2pt +\newdimen\BigLetH +\BigLetH = 2pt +\def\BigLetPar #1{% + \par + \setbox\@BigLetBox = \hbox{#1\hskip\BigLetSep}% + \setbox\@BigLetBox = \vtop{% + \dimen0 = \baselineskip + \offinterlineskip + \hbox{} + \vskip -0.7\dimen0 + \box\@BigLetBox + \vbox to \BigLetH{} + }% + \@BigLetDimen = \dp\@BigLetBox + \advance\@BigLetDimen by 0.7\baselineskip + \advance\@BigLetDimen by 1.0\baselineskip + \divide\@BigLetDimen by \baselineskip + \@BigLetCount = \@BigLetDimen + \dp\@BigLetBox = 0pt + \hangafter = -\@BigLetCount + \hangindent = \wd\@BigLetBox + \noindent + \hskip -\hangindent + \box \@BigLetBox + \ignorespaces +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/box-bb.tip b/info/examples/tex-in-practice/box-bb.tip new file mode 100644 index 0000000000..67e2c0b7c9 --- /dev/null +++ b/info/examples/tex-in-practice/box-bb.tip @@ -0,0 +1,22 @@ +% 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 9.3.4.1, p. I-323. +% Original source in file "boxit.TEX", starting line 495. +\wlog{L: "box-bb.tip" ["boxit.TEX," l. 495, p. I-323]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newbox\@BoxingBox +\newbox\@BaseLineLeaders +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/box-bul.tip b/info/examples/tex-in-practice/box-bul.tip new file mode 100644 index 0000000000..562ebc1b9c --- /dev/null +++ b/info/examples/tex-in-practice/box-bul.tip @@ -0,0 +1,28 @@ +% 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 9.3.4.1, p. I-322. +% Original source in file "boxit.TEX", starting line 472. +\wlog{L: "box-bul.tip" ["boxit.TEX," l. 472, p. I-322]}% +% This file DOES belong to format "texip." +\InputD{box-zero.tip} +\catcode`\@ = 11 +\newbox\@BulletBox +\setbox\@BulletBox = + \hbox{% + \hskip -2.3pt + \lower 2.5pt \hbox{$\bullet$}% + } +\ZeroBox{\@BulletBox} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/box-larg.tip b/info/examples/tex-in-practice/box-larg.tip new file mode 100644 index 0000000000..44c14a2878 --- /dev/null +++ b/info/examples/tex-in-practice/box-larg.tip @@ -0,0 +1,29 @@ +% 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 8.3, p. I-298. +% Original source in file "vboxes2.TEX", starting line 1229. +\wlog{L: "box-larg.tip" ["vboxes2.TEX," l. 1229, p. I-298]}% +% This file DOES belong to format "texip." +\def\BoxLarger #1#2{% + \vbox{% + \vskip #2 + \hbox{% + \hskip #2% + \hbox{#1}% + \hskip #2% + }% + \vskip #2 + }% +} diff --git a/info/examples/tex-in-practice/box-mac.tip b/info/examples/tex-in-practice/box-mac.tip new file mode 100644 index 0000000000..c71b830e88 --- /dev/null +++ b/info/examples/tex-in-practice/box-mac.tip @@ -0,0 +1,24 @@ +% 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 9.3.14, p. I-343. +% Original source in file "boxit.TEX", starting line 1576. +\wlog{L: "box-mac.tip" ["boxit.TEX," l. 1576, p. I-343]}% +% This file DOES belong to format "texip." +\InputD{boxing7.tip} +\InputD{box-larg.tip} +\InputD{emptybox.tip} +\InputD{emprubox.tip} +\InputD{boxrelim.tip} +\InputD{linesr.tip} diff --git a/info/examples/tex-in-practice/box-thck.tip b/info/examples/tex-in-practice/box-thck.tip new file mode 100644 index 0000000000..d39a045484 --- /dev/null +++ b/info/examples/tex-in-practice/box-thck.tip @@ -0,0 +1,20 @@ +% 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 9.3.3, p. I-321. +% Original source in file "boxit.TEX", starting line 405. +\wlog{L: "box-thck.tip" ["boxit.TEX," l. 405, p. I-321]}% +% This file DOES belong to format "texip." +\newdimen\BoxRuleThickness +\BoxRuleThickness = 0.4pt diff --git a/info/examples/tex-in-practice/box-zero.tip b/info/examples/tex-in-practice/box-zero.tip new file mode 100644 index 0000000000..bd0d3930e8 --- /dev/null +++ b/info/examples/tex-in-practice/box-zero.tip @@ -0,0 +1,27 @@ +% 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 4.5.13, p. I-104. +% Original source in file "reg2.TEX", starting line 1348. +\wlog{L: "box-zero.tip" ["reg2.TEX," l. 1348, p. I-104]}% +% This file DOES belong to format "texip." +\def\ZeroBox #1{% + \wd#1 = 0pt + \ht#1 = 0pt + \dp#1 = 0pt +} +\def\ZeroBoxOut #1{% + \ZeroBox{#1}% + \box#1% +} diff --git a/info/examples/tex-in-practice/boxing1.tip b/info/examples/tex-in-practice/boxing1.tip new file mode 100644 index 0000000000..61ef24a8a4 --- /dev/null +++ b/info/examples/tex-in-practice/boxing1.tip @@ -0,0 +1,29 @@ +% 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 9.3.1, p. I-319. +% Original source in file "boxit.TEX", starting line 331. +\wlog{L: "boxing1.tip" ["boxit.TEX," l. 331, p. I-319]}% +% This file DOES belong to format "texip." +\def\BoxingA #1{% + \vbox{% + \hrule + \hbox{% + \vrule + #1% + \vrule + }% + \hrule + }% +} diff --git a/info/examples/tex-in-practice/boxing2.tip b/info/examples/tex-in-practice/boxing2.tip new file mode 100644 index 0000000000..7c14df8ded --- /dev/null +++ b/info/examples/tex-in-practice/boxing2.tip @@ -0,0 +1,31 @@ +% 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 9.3.3, p. I-321. +% Original source in file "boxit.TEX", starting line 419. +\wlog{L: "boxing2.tip" ["boxit.TEX," l. 419, p. I-321]}% +% This file DOES belong to format "texip." +\InputD{box-thck.tip} + +\def\BoxingB #1{% + \vbox{% + \hrule height \BoxRuleThickness + \hbox{% + \vrule width \BoxRuleThickness + #1% + \vrule width \BoxRuleThickness + }% + \hrule height \BoxRuleThickness + }% +} diff --git a/info/examples/tex-in-practice/boxing3.tip b/info/examples/tex-in-practice/boxing3.tip new file mode 100644 index 0000000000..5067c1b5f9 --- /dev/null +++ b/info/examples/tex-in-practice/boxing3.tip @@ -0,0 +1,34 @@ +% 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 9.3.4.2, p. I-323. +% Original source in file "boxit.TEX", starting line 510. +\wlog{L: "boxing3.tip" ["boxit.TEX," l. 510, p. I-323]}% +% This file DOES belong to format "texip." +\InputD{box-bul.tip} +\InputD{box-thck.tip} +\catcode`\@ = 11 +\def\BoxingC #1{% + \vbox{% + \hrule height \BoxRuleThickness + \hbox{% + \vrule width \BoxRuleThickness + \copy\@BulletBox + #1% + \vrule width \BoxRuleThickness + }% + \hrule height \BoxRuleThickness + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/boxing4.tip b/info/examples/tex-in-practice/boxing4.tip new file mode 100644 index 0000000000..ce1cd0be6d --- /dev/null +++ b/info/examples/tex-in-practice/boxing4.tip @@ -0,0 +1,47 @@ +% 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 9.3.4.3, p. I-324. +% Original source in file "boxit.TEX", starting line 555. +\wlog{L: "boxing4.tip" ["boxit.TEX," l. 555, p. I-324]}% +% This file DOES belong to format "texip." +\InputD{box-zero.tip} +\InputD{box-bul.tip} +\InputD{box-bb.tip} +\InputD{box-thck.tip} +\catcode`\@ = 11 +\def\BoxingD #1{% + \vbox{% + \setbox\@BoxingBox = #1% + \setbox\@BaseLineLeaders = \hbox to \wd\@BoxingBox{% + \xleaders\hbox to 4pt{% + \hskip 1pt + \vrule depth 0.4pt height 0.4pt width 2pt + \hfil + }% + \hfil + }% + \ZeroBox{\@BaseLineLeaders}% + \hrule height \BoxRuleThickness + \hbox{% + \vrule width \BoxRuleThickness + \copy\@BulletBox + \box\@BaseLineLeaders + \box\@BoxingBox + \vrule width \BoxRuleThickness + }% + \hrule height \BoxRuleThickness + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/boxing5.tip b/info/examples/tex-in-practice/boxing5.tip new file mode 100644 index 0000000000..8e099f7698 --- /dev/null +++ b/info/examples/tex-in-practice/boxing5.tip @@ -0,0 +1,105 @@ +% 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 9.3.6.1, p. I-327. +% Original source in file "boxit.TEX", starting line 719. +\wlog{L: "boxing5.tip" ["boxit.TEX," l. 719, p. I-327]}% +% This file DOES belong to format "texip." +\InputD{box-zero.tip} +\InputD{box-bul.tip} +\InputD{box-bb.tip} +\InputD{box-thck.tip} +\catcode`\@ = 11 +\newif\ifBulletAndBaseLine +\BulletAndBaseLinetrue +\def\RulesOutSide #1#2#3{% + {% + \setbox 0 = \hbox{% + \ifBulletAndBaseLine + \copy\@BulletBox + \fi + \hskip -\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip #3% + \vrule width \BoxRuleThickness height #1 depth #2% + \dimen0 = #3% + \advance \dimen0 by 2\BoxRuleThickness + \hskip -\dimen0 + \dimen2 = #1% + \advance\dimen2 by \BoxRuleThickness + \vrule width \dimen0 height \dimen2 depth -#1% + \hskip -\dimen0 + \dimen2 = #2% + \advance\dimen2 by \BoxRuleThickness + \vrule width \dimen0 height -#2 depth \dimen2 + }% + \ZeroBoxOut{0}% + }% +} +\def\RulesInSide #1#2#3{% + {% + \setbox 0 = \hbox{% + \ifBulletAndBaseLine + \copy\@BulletBox + \fi + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip #3% + \hskip -\BoxRuleThickness + \hskip -\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip -#3% + \dimen2 = #1% + \advance\dimen2 by -\BoxRuleThickness + \vrule width #3 height #1 depth -\dimen2 + \hskip -#3% + \dimen2 = #2% + \advance\dimen2 by -\BoxRuleThickness + \vrule width #3 height -\dimen2 depth #2% + }% + \ZeroBoxOut{0}% + }% +} +\def\RulesOnSide #1#2#3{% + {% + \setbox 0 = \hbox{% + \ifBulletAndBaseLine + \copy\@BulletBox + \fi + \hskip -0.5\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip #3% + \hskip -\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip -#3% + \hskip -\BoxRuleThickness + \dimen0 = #3% + \advance\dimen0 by \BoxRuleThickness + \dimen2 = #1% + \advance\dimen2 by 0.5\BoxRuleThickness + \dimen4 = #1% + \advance\dimen4 by -0.5\BoxRuleThickness + \dimen4 = -\dimen4 + \vrule width \dimen0 height \dimen2 depth \dimen4 + \hskip -\dimen0 + \dimen2 = #2% + \advance\dimen2 by -0.5\BoxRuleThickness + \dimen2 = -\dimen2 + \dimen4 = #2% + \advance\dimen4 by 0.5\BoxRuleThickness + \vrule width \dimen0 height \dimen2 depth \dimen4 + }% + \ZeroBoxOut{0}% + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/boxing6.tip b/info/examples/tex-in-practice/boxing6.tip new file mode 100644 index 0000000000..f361a2868d --- /dev/null +++ b/info/examples/tex-in-practice/boxing6.tip @@ -0,0 +1,44 @@ +% 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 9.3.7, p. I-332. +% Original source in file "boxit.TEX", starting line 996. +\wlog{L: "boxing6.tip" ["boxit.TEX," l. 996, p. I-332]}% +% This file DOES belong to format "texip." +\InputD{box-zero.tip} +\InputD{boxing5.tip} +\catcode`\@ = 11 +\def\BoxingE #1{% + \hbox{% + \setbox\@BoxingBox = #1% + \setbox\@BaseLineLeaders = \hbox to \wd\@BoxingBox{% + \xleaders\hbox to 4pt{% + \hskip 1pt + \vrule depth 0.4pt height 0.4pt width 2pt + \hfil + }% + \hfil + }% + \ZeroBox{\@BaseLineLeaders}% + \ifBulletAndBaseLine + \box\@BaseLineLeaders + \fi + \RulesOnSide + {\ht\@BoxingBox}% + {\dp\@BoxingBox}% + {\wd\@BoxingBox}% + \box\@BoxingBox + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/boxing7.tip b/info/examples/tex-in-practice/boxing7.tip new file mode 100644 index 0000000000..a231a4985e --- /dev/null +++ b/info/examples/tex-in-practice/boxing7.tip @@ -0,0 +1,113 @@ +% 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 9.3.9.1, p. I-335. +% Original source in file "boxit.TEX", starting line 1131. +\wlog{L: "boxing7.tip" ["boxit.TEX," l. 1131, p. I-335]}% +% This file DOES belong to format "texip." +\InputD{boxing6.tip} +\InputD{vcentx.tip} +\catcode`\@ = 11 +\newdimen\@BoxRDimen +\newbox\@BoxRBox +\newcount\@BoxRNumber +\def\HboxR{% + \hbox\bgroup + \def\@WhichBox{\hbox}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\VboxR{% + \vbox\bgroup + \def\@WhichBox{\vbox}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\VtopR{% + \vtop\bgroup + \def\@WhichBox{\vtop}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\VcenterXR{% + \hbox\bgroup + \def\@WhichBox{\VcenterX}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\BoxR{% + \hbox\bgroup + \def\@WhichBox{\hbox}% + \def\@WhichBoxDimen{}% + \afterassignment\@BoxRB + \@BoxRNumber = +} +\def\@BoxRB{% + \HboxR{\box\@BoxRNumber}% + \egroup +} +\def\CopyR{% + \hbox\bgroup + \def\@WhichBox{\hbox}% + \def\@WhichBoxDimen{}% + \afterassignment\@CopyRbb + \@BoxRNumber = +} +\def\@CopyRbb{% + \HboxR{\copy\@BoxRNumber}% + \egroup +} +\def\@BoxRaa{% + \futurelet\@BoxRSymbol\@BoxRA +} +\def\@BoxRA{% + \ifx\@BoxRSymbol\bgroup + \let\@BoxitNext = \@BoxRb + \else + \if\@BoxRSymbol t% + \let\@BoxitNext = \@BoxRbTo + \else + \let\@BoxitNext = \@BoxRbSpread + \fi + \fi + \@BoxitNext +} +\def\@BoxRb{% + \afterassignment\@BoxRbTwo + \let\@BoxDrop = +} +\def\@BoxRbTwo{% + \setbox\@BoxRBox = \expandafter\@WhichBox\@WhichBoxDimen\bgroup + \aftergroup\@BoxRbThree +} +\def\@BoxRbThree{% + \BoxingE{\box\@BoxRBox}% + \egroup +} +\def\@BoxRbTo to{% + \def\@WhichBoxDimen{to}% + \afterassignment\@BoxRbMoreSpreadTo + \@BoxRDimen = +} +\def\@BoxRbSpread spread{% + \def\@WhichBoxDimen{spread}% + \afterassignment\@BoxRbMoreSpreadTo + \@BoxRDimen = +} +\def\@BoxRbMoreSpreadTo{% + \edef\@WhichBoxDimen{\@WhichBoxDimen \the\@BoxRDimen}% + \afterassignment\@BoxRbTwo + \let\@BoxDrop = +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/boxrelim.tip b/info/examples/tex-in-practice/boxrelim.tip new file mode 100644 index 0000000000..e767fcde85 --- /dev/null +++ b/info/examples/tex-in-practice/boxrelim.tip @@ -0,0 +1,27 @@ +% 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 9.3.12, p. I-342. +% Original source in file "boxit.TEX", starting line 1535. +\wlog{L: "boxrelim.tip" ["boxit.TEX," l. 1535, p. I-342]}% +% This file DOES belong to format "texip." +\InputD{vcentx.tip} +\def\EliminateRuledBoxes{% + \let\HboxR = \hbox + \let\VboxR = \vbox + \let\VtopR = \vtop + \let\VcenterXR = \VcenterX + \let\BoxR = \box + \let\CopyR = \copy +} diff --git a/info/examples/tex-in-practice/boxrqu.tip b/info/examples/tex-in-practice/boxrqu.tip new file mode 100644 index 0000000000..62aaadd22a --- /dev/null +++ b/info/examples/tex-in-practice/boxrqu.tip @@ -0,0 +1,118 @@ +% 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 27.3.2, p. III-424. +% Original source in file "macros7.TEX", starting line 1362. +\wlog{L: "boxrqu.tip" ["macros7.TEX," l. 1362, p. III-424]}% +% This file DOES belong to format "texip." +\InputD{namedef.tip} +\InputD{doloop.tip} +\InputD{newoutfr.tip} +\InputD{mspaces.tip} +\catcode`\@ = 11 +\newcount\@BoxRQStart +\newcount\@BoxRQEnd +\newcount\@BoxRQLength +\newcount\@BoxRQCount +\newcount\@BoxRQLast +\newcount\@BoxRQFirst +\def\@LoadBRQCounters #1{% + \if\NameDefinedConditional{@BoxRQ-Start-#1}% + \@BoxRQStart = \NameUse{@BoxRQ-Start-#1}% + \@BoxRQEnd = \NameUse{@BoxRQ-End-#1}% + \@BoxRQLength= \NameUse{@BoxRQ-Length-#1}% + \@BoxRQCount = \NameUse{@BoxRQ-Count-#1}% + \@BoxRQLast = \NameUse{@BoxRQ-Last-#1}% + \@BoxRQFirst = \NameUse{@BoxRQ-First-#1}% + \else + \errmessage{\string\@LoadBRQCounters: no queue "#1".}% + \fi +} +\def\@RestoreBRQCounters #1{% + \NameXdef{@BoxRQ-Start-#1}{\the\@BoxRQStart}% + \NameXdef{@BoxRQ-End-#1}{\the\@BoxRQEnd}% + \NameXdef{@BoxRQ-Length-#1}{\the\@BoxRQLength}% + \NameXdef{@BoxRQ-Count-#1}{\the\@BoxRQCount}% + \NameXdef{@BoxRQ-Last-#1}{\the\@BoxRQLast}% + \NameXdef{@BoxRQ-First-#1}{\the\@BoxRQFirst}% +} +\newcount\@BoxRQTempA \newcount\@BoxRQTempB +\def\SetUpBoxRegisterQueue #1#2{% + \@BoxRQStart = \count14 + \advance\@BoxRQStart by 1 + \@BoxRQTempA = \@BoxRQStart + \DoLoop{\@BoxRQTempB}{1}{1}{#2}% + {\newboxOF\@WhoCaresBoxRegisterIndexA + \advance\@BoxRQTempA by 1 } + \advance\@BoxRQTempA by -1 + \@BoxRQEnd = \@BoxRQTempA + \wlog{\string\SetUpBoxRegisterQueue: queue "#1."}% + \wlog{\EightSpaces Box registers + \the\@BoxRQStart\space through + \the\@BoxRQEnd\space allocated.}% + \wlog{\EightSpaces (#2 registers).}% + \@BoxRQCount = 0 + \@BoxRQLength = #2 + \@RestoreBRQCounters{#1}% +} +\def\AddBoxToQueue #1#2{% + \@LoadBRQCounters{#1}% + \wlog{\string\AddBoxToQueue: length: \the\@BoxRQLength, + count: \the\@BoxRQCount}% + \ifnum\@BoxRQCount = \@BoxRQLength + \errmessage{\string\AddBoxToQueue: Queue "#1" is full.}% + \else + \ifnum\@BoxRQCount = 0 + \@BoxRQLast = \@BoxRQStart + \@BoxRQFirst = \@BoxRQStart + \fi + \global\setbox\@BoxRQLast = #2% + \advance\@BoxRQLast by 1 + \ifnum\@BoxRQLast > \@BoxRQEnd + \@BoxRQLast = \@BoxRQStart + \fi + \advance\@BoxRQCount by 1 + \@RestoreBRQCounters{#1}% + \fi +} +\def\CopyFirstElementFromQueue #1#2{% + \@LoadBRQCounters{#1}% + \ifnum\@BoxRQCount = 0 + \errmessage{\string\CopyFirstElementFromQueue: empty "#1"}% + \else + \setbox #2 = \copy\@BoxRQFirst + \fi +} +\def\DropFirstBoxOfQueue #1{% + \@LoadBRQCounters{#1}% + \ifnum\@BoxRQCount = 0 + \errmessage{\string\DropFirstBoxOfQueue: "#1" is empty.}% + \else + \advance\@BoxRQCount by -1 + \ifnum\@BoxRQCount = 0 + \else + \advance\@BoxRQFirst by 1 + \ifnum\@BoxRQFirst > \@BoxRQEnd + \@BoxRQFirst = \@BoxRQStart + \fi + \fi + \fi + \@RestoreBRQCounters{#1}% +} +\def\EmptyBoxRegisterQueueConditional #1{% + TT\fi + \@LoadBRQCounters{#1}% + \ifnum\@BoxRQCount = 0 +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/centerlp.tip b/info/examples/tex-in-practice/centerlp.tip new file mode 100644 index 0000000000..af0acc93ab --- /dev/null +++ b/info/examples/tex-in-practice/centerlp.tip @@ -0,0 +1,21 @@ +% 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 6.7.4, p. I-191. +% Original source in file "boxes.TEX", starting line 1884. +\wlog{L: "centerlp.tip" ["boxes.TEX," l. 1884, p. I-191]}% +% This file DOES belong to format "texip." +\def\CenterlineP #1{% + \centerline{#1\unskip .} +} diff --git a/info/examples/tex-in-practice/centerng.tip b/info/examples/tex-in-practice/centerng.tip new file mode 100644 index 0000000000..a96676e60f --- /dev/null +++ b/info/examples/tex-in-practice/centerng.tip @@ -0,0 +1,32 @@ +% 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 11.6.3, p. II-101. +% Original source in file "par2.TEX", starting line 2697. +\wlog{L: "centerng.tip" ["par2.TEX," l. 2697, p. II-101]}% +% This file DOES belong to format "texip." +\def\BeginCenter{% + \par + \begingroup + \rightskip = 1in plus 4em + \leftskip = \rightskip + \spaceskip = .3333em + \xspaceskip = .5em + \parfillskip = 0pt + \noindent +} +\def\EndCenter{% + \par + \endgroup +} diff --git a/info/examples/tex-in-practice/centpar.tip b/info/examples/tex-in-practice/centpar.tip new file mode 100644 index 0000000000..de0dfd8f03 --- /dev/null +++ b/info/examples/tex-in-practice/centpar.tip @@ -0,0 +1,29 @@ +% 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 25.1.15, p. III-333. +% Original source in file "macros5.TEX", starting line 945. +\wlog{L: "centpar.tip" ["macros5.TEX," l. 945, p. III-333]}% +% This file DOES belong to format "texip." +\def\CenterOrParagraph #1{% + {% + \par + \setbox 0 = \hbox{#1}% + \ifdim\wd0 > \hsize + \noindent #1\par + \else + \centerline{\box0}% + \fi + }% +} diff --git a/info/examples/tex-in-practice/charbo.tip b/info/examples/tex-in-practice/charbo.tip new file mode 100644 index 0000000000..246031c5b0 --- /dev/null +++ b/info/examples/tex-in-practice/charbo.tip @@ -0,0 +1,29 @@ +% 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 15.2.3, p. II-231. +% Original source in file "fonts1.TEX", starting line 290. +\wlog{L: "charbo.tip" ["fonts1.TEX," l. 290, p. II-231]}% +% This file DOES belong to format "texip." +\InputD{box-mac.tip} +\def\hboxE #1{% + {% + \setbox0 = \hbox{#1}% + \setbox1 = \hbox{}% + \wd1 = \wd0 + \ht1 = \ht0 + \dp1 = \dp0 + \HboxR{\box 1}% + }% +} diff --git a/info/examples/tex-in-practice/chboxd.tip b/info/examples/tex-in-practice/chboxd.tip new file mode 100644 index 0000000000..57d987414c --- /dev/null +++ b/info/examples/tex-in-practice/chboxd.tip @@ -0,0 +1,26 @@ +% 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 4.5.10, p. I-102. +% Original source in file "reg2.TEX", starting line 1222. +\wlog{L: "chboxd.tip" ["reg2.TEX," l. 1222, p. I-102]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newdimen\@AdvanceBoxD +\def\AdvanceBoxDimension #1#2{% + \@AdvanceBoxD = #1\relax + \advance\@AdvanceBoxD by #2\relax + #1 = \@AdvanceBoxD +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/clearb.tip b/info/examples/tex-in-practice/clearb.tip new file mode 100644 index 0000000000..b4e2028384 --- /dev/null +++ b/info/examples/tex-in-practice/clearb.tip @@ -0,0 +1,23 @@ +% 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 4.5.6, p. I-98. +% Original source in file "reg2.TEX", starting line 1022. +\wlog{L: "clearb.tip" ["reg2.TEX," l. 1022, p. I-98]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\ClearBoxReg #1{% + \setbox #1 = \box\voidb@x +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/collect.tip b/info/examples/tex-in-practice/collect.tip new file mode 100644 index 0000000000..6953f89e62 --- /dev/null +++ b/info/examples/tex-in-practice/collect.tip @@ -0,0 +1,25 @@ +% 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 22.1.8, p. III-210. +% Original source in file "macros2.TEX", starting line 228. +\wlog{L: "collect.tip" ["macros2.TEX," l. 228, p. III-210]}% +% This file DOES belong to format "texip." +\def\InitialCollectInfo{% + \gdef\Collect{}% +} +\InitialCollectInfo +\long\def\AddInfo #1{% + \xdef\Collect{\Collect #1}% +} diff --git a/info/examples/tex-in-practice/coltok.tip b/info/examples/tex-in-practice/coltok.tip new file mode 100644 index 0000000000..a86f430876 --- /dev/null +++ b/info/examples/tex-in-practice/coltok.tip @@ -0,0 +1,25 @@ +% 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 20.1.4, p. III-118. +% Original source in file "tokens3.TEX", starting line 96. +\wlog{L: "coltok.tip" ["tokens3.TEX," l. 96, p. III-118]}% +% This file DOES belong to format "texip." +\newtoks\CollectTokens +\CollectTokens = {} +\def\AddInfo #1{% + \expandafter\expandafter\expandafter + \CollectTokens\expandafter{% + \the\CollectTokens #1} +} diff --git a/info/examples/tex-in-practice/comfiles.tip b/info/examples/tex-in-practice/comfiles.tip new file mode 100644 index 0000000000..02853596c1 --- /dev/null +++ b/info/examples/tex-in-practice/comfiles.tip @@ -0,0 +1,76 @@ +% 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 29.7.1, p. III-528. +% Original source in file "io2.TEX", starting line 1941. +\wlog{L: "comfiles.tip" ["io2.TEX," l. 1941, p. III-528]}% +% This file DOES belong to format "texip." +\InputD{compst.tip} +\InputD{verb-bas.tip} +\InputD{fexist.tip} +\InputD{endrec.tip} +\catcode`\@ = 11 +\newcount\@CompareFilesResult +\newread\@ReadCompareOne +\newread\@ReadCompareTwo +\def\CompareFilesConditional #1#2{% + TT\fi + \if\FileExistsConditional{#1}% + \else + \errmessage{\string\CompareFilesConditional: first file "#1" + does not exist.}% + \fi + \if\FileExistsConditional{#2}% + \else + \errmessage{\string\CompareFilesConditional: second file "#2" + does not exist.}% + \fi + \global\@CompareFilesResult = 0 + \begingroup + \MkOthers + \openin\@ReadCompareOne = #1 + \openin\@ReadCompareTwo = #2 + \@CompareFiles +} + +\def\@CompareFiles{% + \read\@ReadCompareOne to \@CompareOneString + \read\@ReadCompareTwo to \@CompareTwoString + \ifeof\@ReadCompareOne + \ifeof\@ReadCompareOne + \global\@CompareFilesResult = 1 + \else + \global\@CompareFilesResult = 2 + \fi + \else + \ifeof\@ReadCompareOne + \global\@CompareFilesResult = 2 + \else + \ifx\@CompareOneString\@CompareTwoString + \else + \global\@CompareFilesResult = 2 + \fi + \fi + \fi + \RecursionMacroEnd + {\ifnum \@CompareFilesResult = 0\relax}% + {\@CompareFiles}{\@EndCompareFiles}% +} +\def\@EndCompareFiles{% + \endgroup + \closein\@ReadCompareOne + \closein\@ReadCompareTwo + \ifnum\@CompareFilesResult = 1 +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/compst.tip b/info/examples/tex-in-practice/compst.tip new file mode 100644 index 0000000000..5137722769 --- /dev/null +++ b/info/examples/tex-in-practice/compst.tip @@ -0,0 +1,38 @@ +% 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 25.1.17.1, p. III-334. +% Original source in file "macros5.TEX", starting line 1018. +\wlog{L: "compst.tip" ["macros5.TEX," l. 1018, p. III-334]}% +% This file DOES belong to format "texip." +\InputD{restring.tip} +\catcode`\@ = 11 +\def\StringsEqualConditional #1#2{% + TT\fi + \edef\@StringsEqualOneConditional{#1}% + \edef\@StringsEqualTwoConditional{#2}% + \ifx\@StringsEqualOneConditional\@StringsEqualTwoConditional +} +\def\EmptyStringConditional #1{% + TT\fi + \if\StringsEqualConditional{#1}{}% +} +\def\EmptyStringConditionalISpaces #1{% + TT\fi + \ReplaceSubStrings{\@EmptyStringConditionalISpaces}{#1}% + { }{}% + \if\EmptyStringConditional + {\@EmptyStringConditionalISpaces}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/compstca.tip b/info/examples/tex-in-practice/compstca.tip new file mode 100644 index 0000000000..df5a770e63 --- /dev/null +++ b/info/examples/tex-in-practice/compstca.tip @@ -0,0 +1,44 @@ +% 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 25.1.17.6, p. III-337. +% Original source in file "macros5.TEX", starting line 1203. +\wlog{L: "compstca.tip" ["macros5.TEX," l. 1203, p. III-337]}% +% This file DOES belong to format "texip." +\InputD{genostr.tip} +\catcode`\@ = 11 +\newread\@StringsEqualConditionalCatInput +\def\StringsEqualConditionalCat #1#2{% + TT\fi + \edef\@StringsEqualOneConditionalCat{#1}% + \edef\@StringsEqualTwoConditionalCat{#2}% + \OpenGenericOStream{compst.tmp}% + \immediate\write\GenericOStream{% + \@StringsEqualOneConditionalCat{#1}% + }% + \immediate\write\GenericOStream{% + \@StringsEqualTwoConditionalCat{#1}% + }% + \CloseGenericOStream + \openin\@StringsEqualConditionalCatInput = compst.tmp + \read\@StringsEqualConditionalCatInput to + \@StringsEqualOneConditionalCatR + \read\@StringsEqualConditionalCatInput to + \@StringsEqualTwoConditionalCatR + \closein\@StringsEqualConditionalCatInput + \ifx + \@StringsEqualOneConditionalCatR + \@StringsEqualTwoConditionalCatR +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/condltr.tip b/info/examples/tex-in-practice/condltr.tip new file mode 100644 index 0000000000..cc6fff7d49 --- /dev/null +++ b/info/examples/tex-in-practice/condltr.tip @@ -0,0 +1,38 @@ +% 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 25.2.4, p. III-354. +% Original source in file "macros5.TEX", starting line 2056. +\wlog{L: "condltr.tip" ["macros5.TEX," l. 2056, p. III-354]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newif\if@LetterConditional +\newcount\@LetterConditionalCounter +\def\@LetterConditional #1#2;{% + \@LetterConditionalCounter = `#1\relax +} +\def\LetterConditional #1{% + TT\fi + \@LetterConditionalfalse + \edef\@LetterConditionalString{#1}% + \expandafter\@LetterConditional\@LetterConditionalString ; + \if\InRangeConditional{\@LetterConditionalCounter}{`\a}{`\z}% + \@LetterConditionaltrue + \fi + \if\InRangeConditional{\@LetterConditionalCounter}{`\A}{`\Z}% + \@LetterConditionaltrue + \fi + \if@LetterConditional +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/conval.tip b/info/examples/tex-in-practice/conval.tip new file mode 100644 index 0000000000..28638f5ece --- /dev/null +++ b/info/examples/tex-in-practice/conval.tip @@ -0,0 +1,38 @@ +% 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 20.2.16, p. III-131. +% Original source in file "tokens3.TEX", starting line 790. +\wlog{L: "conval.tip" ["tokens3.TEX," l. 790, p. III-131]}% +% This file DOES belong to format "texip." +\InputD{list-mac.tip} +\InputD{remtlsp.tip} +\InputD{strleng.tip} +\InputD{endrec.tip} +\catcode`\@ = 11 +\def\ConvertArgsToListAndAppend #1#2{% + \def\@Co{#1}% + \@ItemRec #2,\@Delimiter +} +\def\@ItemRec #1,{% + \RemLsp{\@ItemTemp}{#1}% + \expandafter\RightAppendElement\@Co{\@ItemTemp}% + \futurelet\@ItemRecTok\@ItemRecOne +} +\def\@ItemRecOne{% + \RecursionMacroEnd{\ifx\@ItemRecTok\@Delimiter}% + {\@ItemRecEnd}{\@ItemRec}% +} +\def\@ItemRecEnd\@Delimiter{} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/copydate.tip b/info/examples/tex-in-practice/copydate.tip new file mode 100644 index 0000000000..fd90867ec1 --- /dev/null +++ b/info/examples/tex-in-practice/copydate.tip @@ -0,0 +1,23 @@ +% 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 26.2, p. III-360. +% Original source in file "macros6.TEX", starting line 116. +\wlog{L: "copydate.tip" ["macros6.TEX," l. 116, p. III-360]}% +% This file DOES belong to format "texip." +\def\CopyDate #1#2#3#4#5#6{% + #4 = #1\relax + #5 = #2\relax + #6 = #3\relax +} diff --git a/info/examples/tex-in-practice/counters.tip b/info/examples/tex-in-practice/counters.tip new file mode 100644 index 0000000000..735e86d62e --- /dev/null +++ b/info/examples/tex-in-practice/counters.tip @@ -0,0 +1,87 @@ +% 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 3.4.2, p. I-71. +% Original source in file "reg1.TEX", starting line 2216. +\wlog{L: "counters.tip" ["reg1.TEX," l. 2216, p. I-71]}% +% This file DOES belong to format "texip." +\InputD{newoutfr.tip} +\InputD{printco.tip} +\InputD{namedef.tip} +\catcode`\@ = 11 +\def\NewCounter #1#2#3#4{% + \wlog{\string\NewCounter: allocating new counter "#1."}% + \if\NameDefinedConditional{@C-#1}% + \errmessage{\string\NewCounter: counter "#1" was + allocated previously.}% + \fi + \expandafter\newcountOF\csname @C-#1\endcsname + \ReassignCounter{#1}{#2}{#3}{#4}% + \NameDef{@ResetC-#1}{}% +} +\def\ReassignCounter #1#2#3#4{% + \if\NameDefinedConditional{@C-#1}% + \else + \errmessage{\string\ReassignCounter: counter "#1" + not defined before.}% + \fi + \NameDef{@TheC-#1}{% + \expandafter\expandafter\expandafter#2% + \expandafter{\csname @C-#1\endcsname}% + }% + \NameDef{@TheArabicC-#1}{% + \expandafter\the\csname @C-#1\endcsname + }% + \NameDef{@PriC-#1}{#3}% + \NameDef{@RefC-#1}{#4}% +} +\def\TheCounter #1{% + \NameUse{@TheC-#1}% +} +\def\TheArabicCounter #1{% + \NameUse{@TheArabicC-#1}% +} +\def\PrintCounter #1{% + \NameUse{@PriC-#1}% +} +\def\RefCounter #1{% + \NameUse{@RefC-#1}% +} +\let\RefCounterTwo = \RefCounter +\def\CounterToRegister #1#2{% + #1 = \csname @C-#2\endcsname\relax +} +\def\AddCounterToResetList #1#2{% + {% + \def\@ResetCounter{\noexpand\@ResetCounter}% + \expandafter\xdef\csname @ResetC-#2\endcsname{% + \csname @ResetC-#2\endcsname\@ResetCounter{#1}% + }% + }% +} +\def\StepCounter #1{% + \global\expandafter\advance\csname @C-#1\endcsname by 1 + \NameUse{@ResetC-#1}% +} +\def\SetCounter #1#2{% + \global\expandafter\csname @C-#1\endcsname = #2\relax +} +\def\AssignCounterToReg #1#2{% + #2 = \expandafter\csname @C-#1\endcsname + \relax +} +\def\@ResetCounter #1{% + \global\csname @C-#1\endcsname = 0 +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/countl.tip b/info/examples/tex-in-practice/countl.tip new file mode 100644 index 0000000000..2bd0e49e10 --- /dev/null +++ b/info/examples/tex-in-practice/countl.tip @@ -0,0 +1,46 @@ +% 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 18.2.8, p. III-21. +% Original source in file "tokens1.TEX", starting line 1295. +\wlog{L: "countl.tip" ["tokens1.TEX," l. 1295, p. III-21]}% +% This file DOES belong to format "texip." +\InputD{doloop.tip} +\InputD{comfiles.tip} +\newcount\ReturnNumberOfLinesInFile +\catcode`\@ = 11 +\newcount\@CharCodeNumberOfLines +{ + \catcode`\^^M = \active % + \gdef\@SetUpLineCounting{% + \gdef + {\global\advance\ReturnNumberOfLinesInFile by 1 }% + }% +} +\def\NumberOfLinesInFile #1{% + \begingroup + \global\ReturnNumberOfLinesInFile = 0 + \DoLoop{\@CharCodeNumberOfLines}{0}{1}{127}% + {\catcode\@CharCodeNumberOfLines = 9 } + \@SetUpLineCounting + \catcode`\^^M = \active + \input #1 + \endgroup + \ifnum\ReturnNumberOfLinesInFile = 1 + \if\CompareFilesConditional{#1}{nul}% + \ReturnNumberOfLinesInFile = 0 + \fi + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/cref-1.tip b/info/examples/tex-in-practice/cref-1.tip new file mode 100644 index 0000000000..9fdfc729a0 --- /dev/null +++ b/info/examples/tex-in-practice/cref-1.tip @@ -0,0 +1,31 @@ +% 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 19.3.3.1, p. III-87. +% Original source in file "tokens2.TEX", starting line 1063. +\wlog{L: "cref-1.tip" ["tokens2.TEX," l. 1063, p. III-87]}% +% This file DOES NOT belong to format "texip." +\InputD{inputc.tip} +\catcode`\@ = 11 +\newwrite\@LabStream +\def\@WriteLab{\write\@LabStream} +\def\SetUpLabels{% + \InputCWithAt{\jobname.lab}% + \immediate\openout\@LabStream = \jobname.lab +} +\def\EndLabels{% + \vfill\supereject + \immediate\closeout\@LabStream +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/cref-2.tip b/info/examples/tex-in-practice/cref-2.tip new file mode 100644 index 0000000000..636c678f00 --- /dev/null +++ b/info/examples/tex-in-practice/cref-2.tip @@ -0,0 +1,24 @@ +% 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 19.3.4, p. III-88. +% Original source in file "tokens2.TEX", starting line 1127. +\wlog{L: "cref-2.tip" ["tokens2.TEX," l. 1127, p. III-88]}% +% This file DOES NOT belong to format "texip." +\InputD{namedef.tip} +\catcode`\@ = 11 +\def\@NewLabel #1#2#3{% + \NameDef{@REF-#1}{{#2}{#3}}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/cref-2a.tip b/info/examples/tex-in-practice/cref-2a.tip new file mode 100644 index 0000000000..787197a68f --- /dev/null +++ b/info/examples/tex-in-practice/cref-2a.tip @@ -0,0 +1,27 @@ +% 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 19.3.9, p. III-96. +% Original source in file "tokens2.TEX", starting line 1430. +\wlog{L: "cref-2a.tip" ["tokens2.TEX," l. 1430, p. III-96]}% +% This file DOES NOT belong to format "texip." +\InputD{namedef.tip} +\catcode`\@ = 11 +\def\@NewLabel #1#2#3{% + \if\NameDefinedConditional{@REF-#1}% + \message{\string\@NewLabel: Label "#1" already defined.}% + \fi + \NameDef{@REF-#1}{{#2}{#3}}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/cref-3.tip b/info/examples/tex-in-practice/cref-3.tip new file mode 100644 index 0000000000..02c35030a0 --- /dev/null +++ b/info/examples/tex-in-practice/cref-3.tip @@ -0,0 +1,38 @@ +% 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 19.3.5, p. III-89. +% Original source in file "tokens2.TEX", starting line 1185. +\wlog{L: "cref-3.tip" ["tokens2.TEX," l. 1185, p. III-89]}% +% This file DOES NOT belong to format "texip." +\InputD{pickfs.tip} +\InputD{namedef.tip} +\InputD{nlm.tip} +\catcode`\@ = 11 +\def\Ref #1{\@ref{0}{#1}} +\def\PageRef #1{\@ref{1}{#1}} +\def\@ref #1#2{% + \if\NameDefinedConditional{@REF-#2}% + \edef\@CrefTemp{\NameUse{@REF-#2}}% + \ifcase #1\relax + \expandafter\PickFirstOfTwo\@CrefTemp % #1 = 0 + \or + \expandafter\PickSecondOfTwo\@CrefTemp % #1 = 1 + \fi + \else + {\bf ??}% + \NewLineMessage{Label #2 undefined.}% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/cref-3a.tip b/info/examples/tex-in-practice/cref-3a.tip new file mode 100644 index 0000000000..9f01c3cff6 --- /dev/null +++ b/info/examples/tex-in-practice/cref-3a.tip @@ -0,0 +1,44 @@ +% 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 19.3.8, p. III-95. +% Original source in file "tokens2.TEX", starting line 1371. +\wlog{L: "cref-3a.tip" ["tokens2.TEX," l. 1371, p. III-95]}% +% This file DOES NOT belong to format "texip." +\InputD{pickfs.tip} +\InputD{namedef.tip} +\InputD{defauarg.tip} +\catcode`\@ = 11 +\def\Ref #1{\@ref{0}{#1}} +\def\PageRef #1{\@ref{1}{#1}} +\def\@MostRecentLabel{} +\def\@ref #1#2{% + \DefaultArg + {\@ThisLabel}% + {#2}% + {\@MostRecentLabel}% + \xdef\@MostRecentLabel{\@ThisLabel}% + \if\NameDefinedConditional{@REF-\@ThisLabel}% + \edef\@CrefTemp{\NameUse{@REF-\@ThisLabel}}% + \ifcase #1\relax + \expandafter\PickFirstOfTwo\@CrefTemp + \or + \expandafter\PickSecondOfTwo\@CrefTemp + \fi + \else + {\bf ??}% + \wlog{Label \@ThisLabel\space undefined.}% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/cref-4.tip b/info/examples/tex-in-practice/cref-4.tip new file mode 100644 index 0000000000..d7171921fb --- /dev/null +++ b/info/examples/tex-in-practice/cref-4.tip @@ -0,0 +1,27 @@ +% 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 19.3.6, p. III-91. +% Original source in file "tokens2.TEX", starting line 1246. +\wlog{L: "cref-4.tip" ["tokens2.TEX," l. 1246, p. III-91]}% +% This file DOES NOT belong to format "texip." +\catcode`\@ = 11 +\def\Label #1#2{% + {% + \edef\@LabelTemp{\@WriteLab{\string\@NewLabel {#1}{#2}% + {\noexpand\the\noexpand\pageno}}}% + \@LabelTemp + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/cref-5.tip b/info/examples/tex-in-practice/cref-5.tip new file mode 100644 index 0000000000..68ee426f6c --- /dev/null +++ b/info/examples/tex-in-practice/cref-5.tip @@ -0,0 +1,52 @@ +% 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 19.3.10, p. III-96. +% Original source in file "tokens2.TEX", starting line 1462. +\wlog{L: "cref-5.tip" ["tokens2.TEX," l. 1462, p. III-96]}% +% This file DOES NOT belong to format "texip." +\InputD{gobble.tip} +\InputD{input-at.tip} +\catcode`\@ = 11 +\newif\if@LabelOk +\def\CheckLabels{% + \@LabelOktrue + \def\@NewLabel ##1##2##3{% + \def\@CrefTemp{{##2}{##3}}% + \if\NameDefinedConditional{@REF-##1}% + \edef\@@CrefTemp{\NameUse{@REF-##1}}% + \ifx\@CrefTemp\@@CrefTemp + \let\@CrefNext = \relax + \else + \let\@CrefNext = \@StopCheckingLabels + \fi + \else + \let\@CrefNext = \@StopCheckingLabels + \fi + \@CrefNext + }% + \InputAt{\jobname.lab}% + \if@LabelOk + \wlog{\string\CheckLabels: labels are ok.}% + \else + \wlog{\string\CheckLabels: labels CHANGED between + preceding and this run.}% + \wlog{Reprocess document.}% + \fi +} +\def\@StopCheckingLabels{% + \@LabelOkfalse + \let\@NewLabel = \GobbleThree +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/crline.tip b/info/examples/tex-in-practice/crline.tip new file mode 100644 index 0000000000..48d8c5d814 --- /dev/null +++ b/info/examples/tex-in-practice/crline.tip @@ -0,0 +1,26 @@ +% 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 6.10.4, p. I-203. +% Original source in file "boxes.TEX", starting line 2550. +\wlog{L: "crline.tip" ["boxes.TEX," l. 2550, p. I-203]}% +% This file DOES belong to format "texip." +\def\CenterRightLines #1#2{ + \setbox 0 = \hbox{#1} + \dimen0 = \hsize + \advance\dimen0 by -\wd0 + \divide\dimen0 by 2 + \rightline{#1\hskip\dimen0} + \rightline{#2\hskip\dimen0} +} diff --git a/info/examples/tex-in-practice/csar.tip b/info/examples/tex-in-practice/csar.tip new file mode 100644 index 0000000000..9a451407b7 --- /dev/null +++ b/info/examples/tex-in-practice/csar.tip @@ -0,0 +1,114 @@ +% 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 19.2.2, p. III-78. +% Original source in file "tokens2.TEX", starting line 640. +\wlog{L: "csar.tip" ["tokens2.TEX," l. 640, p. III-78]}% +% This file DOES belong to format "texip." +\InputD{doloop.tip} +\InputD{rangetst.tip} +\InputD{compst.tip} +\InputD{strleng.tip} +\catcode`\@ = 11 +\newcount\@CreateArrayCount +\def\CCreateArray #1#2#3{% + \NameEdef{#1-low}{\number#2}% + \NameEdef{#1-high}{#3}% + \ifnum #3<#2 + \errmessage{\string\CCreateArray: low array boundary + \number#2 is larger than upper array boundary + \number#3}% + \fi + \DoLoop{\@CreateArrayCount}{#2}{1}{#3}{% + \NameDef{#1-\the\@CreateArrayCount}{}% + } +} +\newcount\@ConvertStringIntoArrayLength +\newcount\@ConvertStringIntoArrayCount +\def\ConvertStringIntoArray #1#2{% + \def\@ConvertArrayName{#1}% + \edef\@ConvertArrayString{#2}% + \StringLength{\@ConvertArrayString}% + \@ConvertStringIntoArrayLength = \StringLengthResult + \advance\@ConvertStringIntoArrayLength by -1 + \CCreateArray{\@ConvertArrayName}% + {0}{\the\@ConvertStringIntoArrayLength}% + \@ConvertStringIntoArrayCount = 0 + \expandafter\@ConvertStringIntoArray + \@ConvertArrayString\@ConvertEnd +} +\def\@ConvertStringIntoArray #1#2\@ConvertEnd{% + \CLoadArrayElementEdef{\@ConvertArrayName}% + {\the\@ConvertStringIntoArrayCount}{#1}% + \if\EmptyStringConditional{#2}% + \def\@ConvertStringIntoArrayNext{}% + \else + \advance\@ConvertStringIntoArrayCount by 1\relax + \def\@ConvertStringIntoArrayNext{% + \@ConvertStringIntoArray #2\@ConvertEnd% + }% + \fi + \@ConvertStringIntoArrayNext +} +\def\CCheckIndex #1#2{% + \expandafter\ifx\csname #1-low\endcsname\relax + \errmessage{\string\CCheckIndex: no array #1.}% + \fi + \ifnum #2<\NameUse{#1-low}% + \errmessage{Index #2 for array #1 too small.}% + \fi + \ifnum #2>\NameUse{#1-high}% + \errmessage{Index #2 for array #1 too large.}% + \fi +} +\def\CArrayAccess #1#2#3{% + \CCheckIndex{#1}{#2}% + \edef#3{\NameUse{#1-#2}}% +} +\newcount\@CArrayAccessIntervalCount +\def\CArrayAccessInterval #1#2#3#4{% + \CCheckIndex{#1}{#2}% + \CCheckIndex{#1}{#3}% + \ifnum #2>#3\relax + \errmessage{\string\CArrayAccessInterval: low index + (\PoundSignText 2) > high index + (PoundSignText 3).}% + \fi + \def#4{}% + \DoLoop + {\@CArrayAccessIntervalCount}{#2}{1}{#3}{% + \CArrayAccess{#1}{\the\@CArrayAccessIntervalCount}% + {\@CArrayAccessInterval}% + \edef#4{#4\@CArrayAccessInterval}% + }% +} +\def\CLoadArrayElement #1#2#3{% + \CCheckIndex{#1}{#2}% + \NameDef{#1-#2}{#3}% +} +\def\CLoadArrayElementEdef #1#2#3{% + \CCheckIndex{#1}{#2}% + \NameEdef{#1-#2}{#3}% +} +\newcount\@CShowArrayCount +\def\CShowArray #1{% + \DoLoop + {\@CShowArrayCount}% + {\NameUse{#1-low}}% + {1}% + {\NameUse{#1-high}}% + {\wlog{Index \the\@CShowArrayCount: + \NameUse{#1-\the\@CShowArrayCount}}}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/cssprint.tip b/info/examples/tex-in-practice/cssprint.tip new file mode 100644 index 0000000000..47faa8e2cc --- /dev/null +++ b/info/examples/tex-in-practice/cssprint.tip @@ -0,0 +1,27 @@ +% 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 21.4.8, p. III-166. +% Original source in file "macros1.TEX", starting line 812. +\wlog{L: "cssprint.tip" ["macros1.TEX," l. 812, p. III-166]}% +% This file DOES belong to format "texip." +\newcount\BackslashCharCode +\BackslashCharCode = `\\ +\edef\mac #1{% + {% + \noexpand\tt + \char\the\BackslashCharCode\space + #1% + }% +} diff --git a/info/examples/tex-in-practice/cstostr.tip b/info/examples/tex-in-practice/cstostr.tip new file mode 100644 index 0000000000..b7b0e58749 --- /dev/null +++ b/info/examples/tex-in-practice/cstostr.tip @@ -0,0 +1,24 @@ +% 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 19.1.2, p. III-66. +% Original source in file "tokens2.TEX", starting line 109. +\wlog{L: "cstostr.tip" ["tokens2.TEX," l. 109, p. III-66]}% +% This file DOES belong to format "texip." +\def\CSToString #1#2{% + {% + \escapechar = -1 + \xdef#1{\string #2}% + }% +} diff --git a/info/examples/tex-in-practice/cstostrc.tip b/info/examples/tex-in-practice/cstostrc.tip new file mode 100644 index 0000000000..08b2e70db6 --- /dev/null +++ b/info/examples/tex-in-practice/cstostrc.tip @@ -0,0 +1,34 @@ +% 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 19.1.2, p. III-67. +% Original source in file "tokens2.TEX", starting line 146. +\wlog{L: "cstostrc.tip" ["tokens2.TEX," l. 146, p. III-67]}% +% This file DOES belong to format "texip." +\InputD{remtlsp.tip} +\InputD{genostr.tip} +\catcode`\@ = 11 +\newread\@CatIn +\def\CSToStringCat #1#2{% + {% + \escapechar = -1 + \OpenGenericOStream{cstostrc.tmp}% + \immediate\write\GenericOStream{\string#2\%}% + \CloseGenericOStream + \openin\@CatIn = cstostrc.tmp + \global\read\@CatIn to #1% + \closein\@CatIn + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ctestcs.tip b/info/examples/tex-in-practice/ctestcs.tip new file mode 100644 index 0000000000..ba0c0ba537 --- /dev/null +++ b/info/examples/tex-in-practice/ctestcs.tip @@ -0,0 +1,37 @@ +% 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 25.1.18, p. III-339. +% Original source in file "macros5.TEX", starting line 1300. +\wlog{L: "ctestcs.tip" ["macros5.TEX," l. 1300, p. III-339]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newif\if@ControlSequenceConditional +\def\ControlSequenceConditional #1{% + TT\fi + {% + \escapechar = -1 + \xdef\@ControlSequenceConditionalOne{\string#1}% + \escapechar = `:\relax + \xdef\@ControlSequenceConditionalTwo{\string#1}% + }% + \ifx\@ControlSequenceConditionalOne + \@ControlSequenceConditionalTwo + \@ControlSequenceConditionalfalse + \else + \@ControlSequenceConditionaltrue + \fi + \if@ControlSequenceConditional +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/dateofw.tip b/info/examples/tex-in-practice/dateofw.tip new file mode 100644 index 0000000000..eb2306c6cb --- /dev/null +++ b/info/examples/tex-in-practice/dateofw.tip @@ -0,0 +1,53 @@ +% 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 26.3, p. III-360. +% Original source in file "macros6.TEX", starting line 147. +\wlog{L: "dateofw.tip" ["macros6.TEX," l. 147, p. III-360]}% +% This file DOES belong to format "texip." +\InputD{rangetst.tip} +\catcode`\@ = 11 +\def\Sunday{0} +\def\Monday{1} +\def\Tuesday{2} +\def\Wednesday{3} +\def\Thursday{4} +\def\Friday{5} +\def\Saturday{6} +\def\ProvideDayOfWeek #1#2#3{% + \CheckRange{#1}{0}{6}% + {\string\ProvideDayOfWeek: day of week outside + of 0 .. 6 range.}% + \ifcase #1\relax + \def#3{Sunday}\or + \def#3{Monday}\or + \def#3{Tuesday}\or + \def#3{Wednesday}\or + \def#3{Thursday}\or + \def#3{Friday}\or + \def#3{Saturday}% + \fi + \ifnum #2 = 0 + \else + \def\@ProvideDayOfWeek ##1##2##3##4;{% + \def#3{##1##2##3}% + }% + \expandafter\@ProvideDayOfWeek#3;% + \fi +} +\def\PrintDayOfWeek #1#2{% + \ProvideDayOfWeek{#1}{#2}{\@PrintDayOfWeek}% + \@PrintDayOfWeek +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/dblarg.tip b/info/examples/tex-in-practice/dblarg.tip new file mode 100644 index 0000000000..463c2b51c7 --- /dev/null +++ b/info/examples/tex-in-practice/dblarg.tip @@ -0,0 +1,26 @@ +% 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 23.4.4.2, p. III-258. +% Original source in file "macros3.TEX", starting line 1127. +\wlog{L: "dblarg.tip" ["macros3.TEX," l. 1127, p. III-258]}% +% This file DOES belong to format "texip." +\InputD{futlet.tip} +\catcode`\@ = 11 +\def\DblArg #1{% + \def\@DblArgTemp{#1}% + \DoFutureLet{\ifx}{[}{\@DblArgTemp}{\@DblArgB}% +} +\def\@DblArgB #1{\@DblArgTemp[#1]{#1}} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/defauarg.tip b/info/examples/tex-in-practice/defauarg.tip new file mode 100644 index 0000000000..5372754b66 --- /dev/null +++ b/info/examples/tex-in-practice/defauarg.tip @@ -0,0 +1,38 @@ +% 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 23.4.8.1, p. III-266. +% Original source in file "macros3.TEX", starting line 1514. +\wlog{L: "defauarg.tip" ["macros3.TEX," l. 1514, p. III-266]}% +% This file DOES belong to format "texip." +\InputD{gobblemo.tip} +\catcode`\@ = 11 +\def\DefaultArg #1#2#3{% + \def\@DefaultArgMacro{#1}% + \edef\@EmptyOtherArg{#2}% + \edef\@DefaultArgDefault{#3}% + \@DefaultArg #2\@DefaultArgEnd +} +\def\@DefaultArg{% + \futurelet\@DefaultArgSymbol\@DefaultArgOne +} +\def\@DefaultArgOne{% + \ifx\@DefaultArgSymbol\@DefaultArgEnd + \expandafter\edef\@DefaultArgMacro{\@DefaultArgDefault}% + \else + \expandafter\edef\@DefaultArgMacro{\@EmptyOtherArg}% + \fi + \GobbleDoMore{\@DefaultArgEnd}{\relax}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/dicentry.tip b/info/examples/tex-in-practice/dicentry.tip new file mode 100644 index 0000000000..d041432542 --- /dev/null +++ b/info/examples/tex-in-practice/dicentry.tip @@ -0,0 +1,28 @@ +% 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 34.7.4.2, p. IV-84. +% Original source in file "o1.TEX", starting line 1036. +\wlog{L: "dicentry.tip" ["o1.TEX," l. 1036, p. IV-84]}% +% This file DOES belong to format "texip." +\def\DicEntry #1{% + \par + \hangafter = 1 + \hangindent = 5pt + \noindent + {\bf #1}% + \mark{#1}% + \hskip 1em plus .2em minus .2em + \ignorespaces +} diff --git a/info/examples/tex-in-practice/doloop.tip b/info/examples/tex-in-practice/doloop.tip new file mode 100644 index 0000000000..b15b23cf8f --- /dev/null +++ b/info/examples/tex-in-practice/doloop.tip @@ -0,0 +1,86 @@ +% 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 27.1.8, p. III-412. +% Original source in file "macros7.TEX", starting line 768. +\wlog{L: "doloop.tip" ["macros7.TEX," l. 768, p. III-412]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newcount\@DoLoopNesting +\@DoLoopNesting = 0 +\newcount\@DoLoopLimit +\newcount\@DoLoopLimitTwo +\newcount\@DoLoopLimitThree +\def\DoLoop #1#2#3#4#5{% + \global\advance\@DoLoopNesting by 1 + \ifnum\@DoLoopNesting > 3 + \errmessage{\string\DoLoop: nesting beyond three levels + is not supported.}% + \fi + \ifnum #3 = 0 + \errmessage{\string\DoLoop: step value (parameter 3) is 0!}% + \else + \ifcase\@DoLoopNesting + \or + \@DoLoop{#1}{#2}{#3}{#4}{#5}% + {\@DoLoopLimit}{\DoLoopBody}% + \or + \@DoLoop{#1}{#2}{#3}{#4}{#5}% + {\@DoLoopLimitTwo}{\DoLoopBodyTwo}% + \or + \@DoLoop{#1}{#2}{#3}{#4}{#5}% + {\@DoLoopLimitThree}{\DoLoopBodyThree}% + \fi + \fi + \global\advance\@DoLoopNesting by -1 +} +\def\@DoLoop #1#2#3#4#5#6#7{% + \ifnum #3 > 0 + #6 = #4% + \advance#6 by 1 + #1 = #2% + \@DoLoopBodyPositive{#1}{#3}{#5}% + {#6}{#7}% + \else + #6 = #4% + \advance#6 by -1 + #1 = #2% + \@DoLoopBodyNegative{#1}{#3}{#5}% + {#6}{#7}% + \fi + \@DoLoopIterate{#7}% +} +\def\@DoLoopBodyPositive #1#2#3#4#5{% + \def #5{% + \ifnum #1 < #4\relax + #3% + \advance #1 by #2% + }% +} +\def\@DoLoopBodyNegative #1#2#3#4#5{% + \def #5{% + \ifnum #1 > #4\relax + #3% + \advance #1 by #2% + }% +} +\def\@DoLoopIterate #1{% + #1\relax + \def\@DoLoopNext{\@DoLoopIterate{#1}}% + \else + \def\@DoLoopNext{\relax}% + \fi + \@DoLoopNext +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/droppre.tip b/info/examples/tex-in-practice/droppre.tip new file mode 100644 index 0000000000..8bbe74e790 --- /dev/null +++ b/info/examples/tex-in-practice/droppre.tip @@ -0,0 +1,37 @@ +% 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 24.1.18.3, p. III-305. +% Original source in file "macros4.TEX", starting line 1230. +\wlog{L: "droppre.tip" ["macros4.TEX," l. 1230, p. III-305]}% +% This file DOES belong to format "texip." +\InputD{isprefix.tip} +\InputD{showx.tip} +\catcode`\@ = 11 +\def\DropPrefix #1#2#3{% + \if\PrefixConditional{#1}{#2}% + \edef\@PrefixConditionalTemp{% + \def\noexpand\@PrefixConditionalTempTwo #2####1% + \noexpand\@Del{% + \def\noexpand #3{####1}}% + }% + \@PrefixConditionalTemp + \ShowX{\@PrefixConditionalTemp}% + \expandafter\@PrefixConditionalTempTwo #1\@Del + \else + \wlog{\string\DropPrefix: "#2" is NOT a prefix of "#1"}% + \edef#3{#1}% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/droppt.tip b/info/examples/tex-in-practice/droppt.tip new file mode 100644 index 0000000000..2e58be27ec --- /dev/null +++ b/info/examples/tex-in-practice/droppt.tip @@ -0,0 +1,24 @@ +% 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 18.1.11, p. III-12. +% Original source in file "tokens1.TEX", starting line 770. +\wlog{L: "droppt.tip" ["tokens1.TEX," l. 770, p. III-12]}% +% This file DOES belong to format "texip." +\InputD{namedef.tip} +{ + \catcode`\p = 12 + \catcode`\t = 12 + \NameGdef{DropPoints}#1pt{\NameGdef{DropPointsResult}{#1}} +} diff --git a/info/examples/tex-in-practice/dumppars.tip b/info/examples/tex-in-practice/dumppars.tip new file mode 100644 index 0000000000..55e233eace --- /dev/null +++ b/info/examples/tex-in-practice/dumppars.tip @@ -0,0 +1,115 @@ +% 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 4.7, p. I-116. +% Original source in file "reg2.TEX", starting line 1773. +\wlog{L: "dumppars.tip" ["reg2.TEX," l. 1773, p. I-116]}% +% This file DOES belong to format "texip." +\def\DumpOneReg #1{% + \wlog{Parameter "\string#1", value = \the#1}% +} +\def\DumpAllRegs{% + \wlog{\string\DumpAllRegs: Counter parameters first.}% + \DumpOneReg{\time}% + \DumpOneReg{\day}% + \DumpOneReg{\month}% + \DumpOneReg{\year}% + \DumpOneReg{\pretolerance}% + \DumpOneReg{\tolerance}% + \DumpOneReg{\doublehyphendemerits}% + \DumpOneReg{\finalhyphendemerits}% + \DumpOneReg{\adjdemerits}% + \DumpOneReg{\linepenalty}% + \DumpOneReg{\looseness}% + \DumpOneReg{\linepenalty}% + \DumpOneReg{\hyphenpenalty}% + \DumpOneReg{\exhyphenpenalty}% + \DumpOneReg{\binoppenalty}% + \DumpOneReg{\relpenalty}% + \DumpOneReg{\clubpenalty}% + \DumpOneReg{\widowpenalty}% + \DumpOneReg{\displaywidowpenalty}% + \DumpOneReg{\brokenpenalty}% + \DumpOneReg{\predisplaypenalty}% + \DumpOneReg{\postdisplaypenalty}% + \DumpOneReg{\interlinepenalty}% + \DumpOneReg{\floatingpenalty}% + \DumpOneReg{\outputpenalty}% + \DumpOneReg{\pausing}% + \DumpOneReg{\tracingonline}% + \DumpOneReg{\tracinglostchars}% + \DumpOneReg{\tracingmacros}% + \DumpOneReg{\tracingstats}% + \DumpOneReg{\tracingparagraphs}% + \DumpOneReg{\tracingpages}% + \DumpOneReg{\tracingoutput}% + \DumpOneReg{\tracingcommands}% + \DumpOneReg{\tracingrestores}% + \DumpOneReg{\mag}% + \DumpOneReg{\uchyph}% + \DumpOneReg{\lefthyphenmin}% + \DumpOneReg{\righthyphenmin}% + \DumpOneReg{\defaultskewchar}% + \DumpOneReg{\escapechar}% + \DumpOneReg{\endlinechar}% + \DumpOneReg{\newlinechar}% + \DumpOneReg{\fam}% + \DumpOneReg{\hbadness}% + \DumpOneReg{\vbadness}% + \DumpOneReg{\badness}% + \DumpOneReg{\showboxdepth}% + \DumpOneReg{\showboxbreadth}% + \DumpOneReg{\deadcycles}% + \DumpOneReg{\maxdeadcycles}% + \DumpOneReg{\holdinginserts}% + \DumpOneReg{\hangafter}% + \DumpOneReg{\globaldefs}% + \DumpOneReg{\delimiterfactor}% + \DumpOneReg{\inputlineno}% + \DumpOneReg{\language}% + \wlog{\string\DumpAllRegs: Dimension parameters next.}% + \DumpOneReg{\hfuzz}% + \DumpOneReg{\vfuzz}% + \DumpOneReg{\overfullrule}% +% \DumpOneReg{\prevdepth}% + \DumpOneReg{\lineskiplimit}% + \DumpOneReg{\maxdepth}% + \DumpOneReg{\splitmaxdepth}% + \DumpOneReg{\boxmaxdepth}% + \DumpOneReg{\delimitershortfall}% + \DumpOneReg{\nulldelimiterspace}% + \DumpOneReg{\scriptspace}% + \DumpOneReg{\mathsurround}% + \DumpOneReg{\predisplaysize}% + \DumpOneReg{\displaywidth}% + \DumpOneReg{\displayindent}% + \DumpOneReg{\parindent}% + \DumpOneReg{\hangindent}% + \DumpOneReg{\hoffset}% + \DumpOneReg{\voffset}% + \wlog{\string\DumpAllRegs: Glue parameters last.}% + \DumpOneReg{\baselineskip}% + \DumpOneReg{\lineskip}% + \DumpOneReg{\topskip}% + \DumpOneReg{\splittopskip}% + \DumpOneReg{\parskip}% + \DumpOneReg{\leftskip}% + \DumpOneReg{\rightskip}% + \DumpOneReg{\emergencystretch}% + \DumpOneReg{\abovedisplayskip}% + \DumpOneReg{\abovedisplayshortskip}% + \DumpOneReg{\belowdisplayskip}% + \DumpOneReg{\belowdisplayshortskip}% + \wlog{\string\DumpAllRegs: done.}% +}% diff --git a/info/examples/tex-in-practice/earliest.tip b/info/examples/tex-in-practice/earliest.tip new file mode 100644 index 0000000000..9e9564443a --- /dev/null +++ b/info/examples/tex-in-practice/earliest.tip @@ -0,0 +1,41 @@ +% 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 26.1, p. III-357. +% Original source in file "macros6.TEX", starting line 39. +\wlog{L: "earliest.tip" ["macros6.TEX," l. 39, p. III-357]}% +% This file DOES belong to format "texip." +\InputD{dateofw.tip} +\InputD{arbday.tip} +\catcode`\@ = 11 +\newcount\@TempEarliest +\newcount\EarliestYearDate +\EarliestYearDate = 1583 +\newcount\DayOfWeekOfEarliestDate +\DayOfWeekOfEarliestDate = \Saturday +\def\VerifyInitDate{% + {% + \ArbitraryDayOfWeek{2000}{1}{1}{\@TempEarliest}% + \ifnum\@TempEarliest = \Saturday + \message{\string\VerifyInitDate: initialization + correct (initialization year: + \the\EarliestYearDate).}% + \else + \errmessage{\string\VerifyInitDate: January 1 of 2000 + is a Saturday! Computation reports it is + day \the\@TempEarliest\space. Initialization error.}% + \fi + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/emprubox.tip b/info/examples/tex-in-practice/emprubox.tip new file mode 100644 index 0000000000..498d6fd7f9 --- /dev/null +++ b/info/examples/tex-in-practice/emprubox.tip @@ -0,0 +1,28 @@ +% 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 9.3.11, p. I-342. +% Original source in file "boxit.TEX", starting line 1511. +\wlog{L: "emprubox.tip" ["boxit.TEX," l. 1511, p. I-342]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newbox\@EmptyRuledBox +\def\EmptyRuledBox #1#2#3{% + \setbox\@EmptyRuledBox = \hbox{}% + \ht\@EmptyRuledBox = #1\relax + \dp\@EmptyRuledBox = #2\relax + \wd\@EmptyRuledBox = #3\relax + \HboxR{\box\@EmptyRuledBox}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/emptybox.tip b/info/examples/tex-in-practice/emptybox.tip new file mode 100644 index 0000000000..021ec1d0c1 --- /dev/null +++ b/info/examples/tex-in-practice/emptybox.tip @@ -0,0 +1,27 @@ +% 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 4.5.12, p. I-103. +% Original source in file "reg2.TEX", starting line 1277. +\wlog{L: "emptybox.tip" ["reg2.TEX," l. 1277, p. I-103]}% +% This file DOES belong to format "texip." +\def\EmptyBox #1#2#3{% + \hbox{% + \setbox 0 = \hbox{}% + \ht0 = #1% + \dp0 = #2% + \wd0 = #3% + \box 0% + }% +} diff --git a/info/examples/tex-in-practice/endn-mac.tip b/info/examples/tex-in-practice/endn-mac.tip new file mode 100644 index 0000000000..0d6066f70c --- /dev/null +++ b/info/examples/tex-in-practice/endn-mac.tip @@ -0,0 +1,52 @@ +% 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 29.4, p. III-517. +% Original source in file "io2.TEX", starting line 1424. +\wlog{L: "endn-mac.tip" ["io2.TEX," l. 1424, p. III-517]}% +% This file DOES belong to format "texip." +\InputD{verbwr.tip} +\InputD{defauarg.tip} +\catcode`\@ = 11 +\def\@DefEndNoteFileExt{eno} +\newwrite\@EndNoteStream +\newcount\@EndNoteCounter +\def\StartEndNoteWriting #1#2#3#4{% + \@EndNoteCounter = 0 + \DefaultArg{\@EndNoteBaseName}{#1}{\jobname}% + \DefaultArg{\@EndNoteFileExt}{#2}{\@DefEndNoteFileExt}% + \edef\@EndNoteFileName{\@EndNoteBaseName.\@EndNoteFileExt}% + \wlog{\string\StartEndNoteWriting: output will be written to file + "\@EndNoteFileName".} + \edef\@EndNoteBefore{\string#3}% + \edef\@EndNoteAfter{\string#4}% + \OpenVerbWrFile{\@EndNoteBaseName}{\@EndNoteFileExt}% + {\@EndNoteStream}% +} +\def\BeginEndNote{% + \advance\@EndNoteCounter by 1 + \ifnum\@EndNoteCounter > 1 + \immediate\write\@EndNoteStream{\@EndNoteAfter}% + \fi + \immediate\write\@EndNoteStream{\@EndNoteBefore}% + \BeginVerbWr{\@EndNoteStream}{\EndEndNote} +} +\def\EndEndNoteWriting{% + \immediate\write\@EndNoteStream{\@EndNoteAfter}% + \CloseVerbWrFile{\@EndNoteStream}% +} +\def\ReadInEndNotes{% + \input \@EndNoteFileName +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/endrec.tip b/info/examples/tex-in-practice/endrec.tip new file mode 100644 index 0000000000..5fc1a8e196 --- /dev/null +++ b/info/examples/tex-in-practice/endrec.tip @@ -0,0 +1,28 @@ +% 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 27.1.2, p. III-399. +% Original source in file "macros7.TEX", starting line 138. +\wlog{L: "endrec.tip" ["macros7.TEX," l. 138, p. III-399]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\RecursionMacroEnd #1#2#3{% + #1\relax + \def\@RecursionMacroEndNext{#2}% + \else + \def\@RecursionMacroEndNext{#3}% + \fi + \@RecursionMacroEndNext +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/enum.tip b/info/examples/tex-in-practice/enum.tip new file mode 100644 index 0000000000..b32412ae08 --- /dev/null +++ b/info/examples/tex-in-practice/enum.tip @@ -0,0 +1,34 @@ +% 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 27.2, p. III-420. +% Original source in file "macros7.TEX", starting line 1219. +\wlog{L: "enum.tip" ["macros7.TEX," l. 1219, p. III-420]}% +% This file DOES NOT belong to format "texip." +\InputD{conval.tip} +\InputD{list-mac.tip} +\catcode`\@ = 11 +\newcount\@EnumCount +\def\@Enum #1{% + \NameEdef{#1}{\the\@EnumCount}% + \wlog{\string\@Enum: name = #1, value = \the\@EnumCount}% + \advance\@EnumCount by 1 +} +\def\Enum #1{% + \@EnumCount = 0 + \def\@EnumList{}% + \ConvertArgsToListAndAppend{\@EnumList}{#1}% + \ForEveryListElement{\@EnumList}{\@Enum}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/enumlist.tip b/info/examples/tex-in-practice/enumlist.tip new file mode 100644 index 0000000000..f3baeb5b5d --- /dev/null +++ b/info/examples/tex-in-practice/enumlist.tip @@ -0,0 +1,83 @@ +% 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 11.3.1, p. II-72. +% Original source in file "par2.TEX", starting line 1216. +\wlog{L: "enumlist.tip" ["par2.TEX," l. 1216, p. II-72]}% +% This file DOES belong to format "texip." +\InputD{parv-1.tip} +\InputD{counters.tip} +\catcode`\@ = 11 +\newcount\@EnumerateListDepth +\@EnumerateListDepth = 0 +\NewCounter{Enumerate1}{\arabic}% + {\TheCounter{Enumerate1}.}{\TheCounter{Enumerate1}} +\NewCounter{Enumerate2}{\alph}% + {(\TheCounter{Enumerate2})}% + {\TheCounter{Enumerate1}.\TheCounter{Enumerate2}} +\NewCounter{Enumerate3}{\roman}% + {\TheCounter{Enumerate3}.}% + {\RefCounter{Enumerate2}.\TheCounter{Enumerate3}} +\NewCounter{Enumerate4}{\Alph}% + {\TheCounter{Enumerate4}.}% + {\RefCounter{Enumerate3}.\TheCounter{Enumerate4}} +\def\BeginEnumerate{% + \begingroup + \global\advance\@EnumerateListDepth by 1 + \ifcase\@EnumerateListDepth + \errmessage{\string\BeginEnumerate: no level + zero.}% + \or + \SetCounter{Enumerate1}{0}% + \@BeginEnumerateLevelOne + \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate1}}{1}}% + \def\Item{% + \StepCounter{Enumerate1}% + \ItemLR{\PrintCounter{Enumerate1}}% + }% + \or + \SetCounter{Enumerate2}{0}% + \@BeginEnumerateLevelTwo + \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate2}}{1}}% + \def\Item{% + \StepCounter{Enumerate2}% + \ItemLR{\PrintCounter{Enumerate2}}% + }% + \or + \SetCounter{Enumerate3}{0}% + \@BeginEnumerateLevelThree + \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate3}}{1}}% + \def\Item{% + \StepCounter{Enumerate3}% + \ItemLR{\PrintCounter{Enumerate3}}% + }% + \or + \SetCounter{Enumerate4}{0}% + \@BeginEnumerateLevelFour + \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate4}}{1}}% + \def\Item{% + \StepCounter{Enumerate4}% + \ItemLR{\PrintCounter{Enumerate4}}% + }% + \else + \errmessage{\string\BeginEnumerate: maximum + nesting level of 4 exceeded.}% + \fi +} +\def\EndEnumerate{% + \EndAList + \endgroup + \global\advance\@EnumerateListDepth by -1 +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/errmess.tip b/info/examples/tex-in-practice/errmess.tip new file mode 100644 index 0000000000..68b31b49d2 --- /dev/null +++ b/info/examples/tex-in-practice/errmess.tip @@ -0,0 +1,22 @@ +% 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 27.10, p. III-440. +% Original source in file "macros7.TEX", starting line 2180. +\wlog{L: "errmess.tip" ["macros7.TEX," l. 2180, p. III-440]}% +% This file DOES belong to format "texip." +\def\ErrMessage #1{% + \errmessage{#1}% + \end +} diff --git a/info/examples/tex-in-practice/evenprin.tip b/info/examples/tex-in-practice/evenprin.tip new file mode 100644 index 0000000000..3e38fc6e29 --- /dev/null +++ b/info/examples/tex-in-practice/evenprin.tip @@ -0,0 +1,24 @@ +% 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 25.1.2, p. III-319. +% Original source in file "macros5.TEX", starting line 109. +\wlog{L: "evenprin.tip" ["macros5.TEX," l. 109, p. III-319]}% +% This file DOES belong to format "texip." +\def\PrintEven #1{% + \ifodd #1\relax + \else + Number #1 is even. + \fi +} diff --git a/info/examples/tex-in-practice/everyequ.tip b/info/examples/tex-in-practice/everyequ.tip new file mode 100644 index 0000000000..ff5003eed6 --- /dev/null +++ b/info/examples/tex-in-practice/everyequ.tip @@ -0,0 +1,28 @@ +% 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 14.11, p. II-223. +% Original source in file "math2.TEX", starting line 1907. +\wlog{L: "everyequ.tip" ["math2.TEX," l. 1907, p. II-223]}% +% This file DOES NOT belong to format "texip." +\newcount\EveryMathCount +\everymath = {\global\advance\EveryMathCount by 1 } +\newcount\EveryDisplayCount +\everydisplay = {\global\advance\EveryDisplayCount by 1 } +\def\EndEveryMathDeal{% + \wlog{}% + \wlog{MATHCOUNT \the\EveryMathCount}% + \wlog{DISPLAYCOUNT \the\EveryDisplayCount}% + \wlog{}% +} diff --git a/info/examples/tex-in-practice/everypar.tip b/info/examples/tex-in-practice/everypar.tip new file mode 100644 index 0000000000..9c33b2b026 --- /dev/null +++ b/info/examples/tex-in-practice/everypar.tip @@ -0,0 +1,45 @@ +% 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 10.9.3, p. II-34. +% Original source in file "par1.TEX", starting line 1707. +\wlog{L: "everypar.tip" ["par1.TEX," l. 1707, p. II-34]}% +% This file DOES belong to format "texip." +\everypar = {% + \EvalEveryPars + \ClearEveryPars +} +\def\EvalEveryParsCE{% + \EveryParC + \EveryParD + \EveryParE +} +\def\EvalEveryPars{% + \EveryParA + \EveryParB + \EvalEveryParsCE + \EveryParZ +} +\def\ClearEveryPars{% + \gdef\EveryParA{}% + \gdef\EveryParB{}% + \gdef\EveryParC{}% + \gdef\EveryParD{}% + \gdef\EveryParE{}% +} +\def\ClearEveryParsAll{% + \ClearEveryPars + \gdef\EveryParZ{}% +} +\ClearEveryParsAll diff --git a/info/examples/tex-in-practice/evhvbox.tip b/info/examples/tex-in-practice/evhvbox.tip new file mode 100644 index 0000000000..4abfbb54d6 --- /dev/null +++ b/info/examples/tex-in-practice/evhvbox.tip @@ -0,0 +1,28 @@ +% 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 6.13, p. I-206. +% Original source in file "boxes.TEX", starting line 2683. +\wlog{L: "evhvbox.tip" ["boxes.TEX," l. 2683, p. I-206]}% +% This file DOES NOT belong to format "texip." +\newcount\HBoxCount +\everyhbox = {\global\advance\HBoxCount by 1 } +\newcount\VBoxCount +\everyvbox = {\global\advance\VBoxCount by 1 } +\def\EndEveryBox{% + \wlog{}% + \wlog{HBOXCOUNT \the\HBoxCount}% + \wlog{VBOXCOUNT \the\VBoxCount}% + \wlog{}% +} diff --git a/info/examples/tex-in-practice/ex-out2.tip b/info/examples/tex-in-practice/ex-out2.tip new file mode 100644 index 0000000000..50152e0363 --- /dev/null +++ b/info/examples/tex-in-practice/ex-out2.tip @@ -0,0 +1,32 @@ +% 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 37.1.2, p. IV-163. +% Original source in file "o4.TEX", starting line 205. +\wlog{L: "ex-out2.tip" ["o4.TEX," l. 205, p. IV-163]}% +% This file DOES NOT belong to format "texip." +\input inputd.tip +\InputD{out2-or.tip} +\InputD{samplepa.tip} +\InputD{alldate.tip} +\SetUpDC{29pc}{13pc}{35pc} +\raggedright +\SamplePar{A-1}{3} +\SamplePar{A-2}{2} +\SamplePar{A-3}{4} +\SamplePar{A-4}{3} +\SamplePar{A-5}{2} +\vfill\eject +\SamplePar{A-6}{4} +\bye diff --git a/info/examples/tex-in-practice/fexist.tip b/info/examples/tex-in-practice/fexist.tip new file mode 100644 index 0000000000..5a595f141e --- /dev/null +++ b/info/examples/tex-in-practice/fexist.tip @@ -0,0 +1,33 @@ +% 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 28.4.1, p. III-465. +% Original source in file "io1.TEX", starting line 910. +\wlog{L: "fexist.tip" ["io1.TEX," l. 910, p. III-465]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newread\@FileExistsS +\newif\if@FileExistsAnswer +\def\FileExistsConditional #1{% + TT\fi + \openin\@FileExistsS = #1 + \ifeof\@FileExistsS + \@FileExistsAnswerfalse + \else + \closein\@FileExistsS + \@FileExistsAnswertrue + \fi + \if@FileExistsAnswer +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/figbox.tip b/info/examples/tex-in-practice/figbox.tip new file mode 100644 index 0000000000..031d6cdb56 --- /dev/null +++ b/info/examples/tex-in-practice/figbox.tip @@ -0,0 +1,24 @@ +% 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 9.3.2, p. I-320. +% Original source in file "boxit.TEX", starting line 380. +\wlog{L: "figbox.tip" ["boxit.TEX," l. 380, p. I-320]}% +% This file DOES belong to format "texip." +\InputD{emptybox.tip} +\def\FigureBox #1#2{% + \BoxingA{% + \EmptyBox{#1}{0pt}{#2}% + }% +} diff --git a/info/examples/tex-in-practice/figinpar.tip b/info/examples/tex-in-practice/figinpar.tip new file mode 100644 index 0000000000..4cc54ae60f --- /dev/null +++ b/info/examples/tex-in-practice/figinpar.tip @@ -0,0 +1,59 @@ +% 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 12.3.2, p. II-116. +% Original source in file "par3.TEX", starting line 558. +\wlog{L: "figinpar.tip" ["par3.TEX," l. 558, p. II-116]}% +% This file DOES belong to format "texip." +\InputD{sumhd.tip} +\InputD{box-mac.tip} +\InputD{freespac.tip} +\def\FigureInPar #1#2#3#4#5{% + \par + \message{\string\FigureInPar: start}% + {% + \setbox 0 = \vbox{#1} + \OverallSize{\dimen0}{0}% + \advance\dimen0 by #2 + \advance\dimen0 by #3 + \advance\dimen0 by #4 + \advance\dimen0 by #4 + \advance\dimen0 by \parskip + \message{\string\FigureInPar: + available space: \the\FreePageSpace}% + \setbox 0 = \HboxR{\EmptyBox{#2}{0pt}{\hsize}}% + \ifdim\FreeSpaceConditional < \dimen0 + \message{\string\FigureInPar: + insufficient space: make it a \string\topinsert.}% + #1\unskip + \space + #5% + \par + \topinsert + \box0 + \endinsert + \else + \message{\string\FigureInPar: + Sufficient space: put it here.}% + #1\unskip + \space + \vadjust{% + \vskip #4 + \box0 + \vskip #4 + }% + #5\par + \fi + } +} diff --git a/info/examples/tex-in-practice/firstldi.tip b/info/examples/tex-in-practice/firstldi.tip new file mode 100644 index 0000000000..7e7a2ef31a --- /dev/null +++ b/info/examples/tex-in-practice/firstldi.tip @@ -0,0 +1,52 @@ +% 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 12.6.4, p. II-135. +% Original source in file "par3.TEX", starting line 1322. +\wlog{L: "firstldi.tip" ["par3.TEX," l. 1322, p. II-135]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\FirstLineSpecial #1{% + \par + \begingroup + #1 + \def\@FLDTemp{}% + \dimen0 = \parindent + \setbox0 = \hbox{ }% + \advance\dimen0 by -\wd0 + \@FLDOne +} +\def\@FLDOne #1 {% + \wlog{\string\@FLDOne: called with "#1".}% + \xdef\@FLDTempa{#1\ }% + \@FLDTwo +} +\def\@FLDTwo{% + \wlog{\string\@FLDTwo: called}% + \setbox0 = \hbox{\@FLDTempa}% + \advance\dimen0 by \wd0 + \ifdim\dimen0 < \hsize + \edef\@FLDTemp{\@FLDTemp\@FLDTempa}% + \let\@FLDNext = \@FLDOne + \else + \leavevmode + \@FLDTemp + \unskip + \break + \aftergroup\@FLDTempa + \let\@FLDNext = \endgroup + \fi + \@FLDNext +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/fo-char.tip b/info/examples/tex-in-practice/fo-char.tip new file mode 100644 index 0000000000..84bc6a24c2 --- /dev/null +++ b/info/examples/tex-in-practice/fo-char.tip @@ -0,0 +1,28 @@ +% 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 15.2.4, p. II-233. +% Original source in file "fonts1.TEX", starting line 350. +\wlog{L: "fo-char.tip" ["fonts1.TEX," l. 350, p. II-233]}% +% This file DOES belong to format "texip." +\def\ReportCharSize #1#2{% + {% + \count0 = #2\relax + \setbox 0 = \hbox{#1\char\count0}% + \wlog{\string\ReportCharSize: Font \string#1, + character code \the\count0}% + \wlog{ht / dp / wd: \the\ht0 \space / \the\dp0 + \space / \the\wd0}% + }% +} diff --git a/info/examples/tex-in-practice/font-cpp.tip b/info/examples/tex-in-practice/font-cpp.tip new file mode 100644 index 0000000000..c127d76ed5 --- /dev/null +++ b/info/examples/tex-in-practice/font-cpp.tip @@ -0,0 +1,45 @@ +% 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 16.2.11, p. II-283. +% Original source in file "fonts2.TEX", starting line 1007. +\wlog{L: "font-cpp.tip" ["fonts2.TEX," l. 1007, p. II-283]}% +% This file DOES belong to format "texip." +\InputD{leadingz.tip} +\InputD{imodn.tip} +\def\CharactersPerPica #1{% + \setbox0 = \hbox{% + #1\relax + This paragraph has 423 characters. We know that + because we counted it. It is very simple to count, because + the Emacs editor we are using has a function ``advance + by one character.'' And with the prefix command (that's + Emacs terminology) you can execute ``advance by + one character'' 423~times. Now, let's hope that this text + is representative of ordinary text so that our average + number of characters per pica is correct. + }% + {% + \count1 = \wd0 + \divide\count1 by 100 + \count0 = 423 + \multiply\count0 by 65536 + \multiply\count0 by 12 + \divide\count0 by \count1 + \count2 = \count0 + \divide\count2 by 100 + \IModN{\count0}{100}{\count3}% + \the\count2.\LeadingZ{\count3}% + }% +} diff --git a/info/examples/tex-in-practice/fontsam.tip b/info/examples/tex-in-practice/fontsam.tip new file mode 100644 index 0000000000..711e7db18e --- /dev/null +++ b/info/examples/tex-in-practice/fontsam.tip @@ -0,0 +1,150 @@ +% 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 15.3.4, p. II-249. +% Original source in file "fonts1.TEX", starting line 1238. +\wlog{L: "fontsam.tip" ["fonts1.TEX," l. 1238, p. II-249]}% +% This file DOES NOT belong to format "texip." +\input inputd.tip +\InputD{box-mac.tip} +\InputD{ts-dime3.tip} +\nonstopmode +\nopagenumbers +\def\FontTableComplete{% + \tabskip = 0pt + \halign{% + \global\font\SampleFont = ##& + \tt##\hfil \tabskip = 10pt& + \def\temp{##}% + \expandafter\SampleColumn\temp& + \setbox 0 = \vtop{% + \parindent = 0pt + \raggedright + \hsize = 0.75in + ## + }% + \dp0 = 0pt + \box0 \tabskip = 0pt + \cr + \omit& + \omit\bf Name\hfil& + \omit\HeadingThirdColumn& + \omit\hfil\bf Typical Size(s)\hfil + \cr + \omit& + \omit& + \omit& + \omit\hfil\bf (in points)\hfil + \cr + \noalign{\penalty -10000} + cmr10& cmr& Computer Modern Roman type:1& + 5, 6, 7, 8, 9, 10, 12, 17\cr + cmsl10& cmsl& Computer Modern Slanted Roman type:1& + 8, 9, 10, 12\cr + cmb10& cmb& Computer Modern Boldface type:1& 10\cr + cmbx10& cmbx& Computer Modern Boldface Extended type:1& + 5, 6, 7, 8, 9, 10, 12\cr + cmtt10& cmtt& Computer Modern Typewriter type:1& + 8, 9, 10, 12\cr + cmsltt10& cmsltt& + Computer Modern Slanted Typewriter type:1& 10\cr + cmvtt10& cmvtt& + Computer Modern Variable Typewriter type:1& 10\cr + cmtex10& cmtex& Computer Modern \TeX{} + Extended ASCII type:1& 8, 9, 10\cr + cmss10& cmss& Computer Modern Sans Serif type:1& + 8, 9, 10, 12, 17\cr + cmssi10& cmssi& Computer Modern Slanted Sans Serif type:1& + 8, 9, 10, 12, 17\cr + cmssdc10& cmssdc& Computer Modern Sans Serif Demibold + Condensed type:1& 10\cr + cmssbx10& cmssbx& Computer Modern Sans Serif + Bold Extended type:1& 10\cr + cmssq8& cmssq& Computer Modern Sans Serif + Quotation Style type:1& 8\cr + cmssqi8& cmssqi& Computer Modern Sans Serif + Slanted Quotation Style type:1& 8\cr + cmdunh10& cmdunh& Computer Modern Dunhill Roman type:1& 10\cr + cmbxsl10& cmbxsl& Computer Modern + Bold Extended Slanted Roman type:1& 10\cr + cmff10& cmff& Computer Modern Funny Roman type:1& 10\cr + cmfib8& cmfib& Computer Modern Fibonacci type:1& 8\cr + cmti10& cmti& Computer Modern Text Italic type:1& + 7, 8, 9, 10, 12\cr + cmmi10& cmmi& Computer Modern Math Italic type:1& + 5, 6, 7, 8, 9, 10, 12\cr + cmbxti10& cmbxti& Computer Modern Bold + Extended Text Italic type:1& 10\cr + cmmib10& cmmib& Computer Modern Math Italic Bold type:1& + 10\cr + cmitt10& cmitt& Computer Modern Italic Typewriter type:1& + 10\cr + cmu10& cmu& Computer Modern Unslanted Text Italic type:1& + 10\cr + cmfi10& cmfi& Computer Modern Funny Italic type:1& 10\cr + cmcsc10& cmcsc& Computer Modern Caps and Small Caps type:1& + 10\cr + cmtcsc10& cmtcsc& Computer Modern Typewriter Caps and + Small Caps type:0& 10\cr + }% +} +\def\SampleColumn #1:#2{% + \wlog{XX: Arg1 = #1}% +} +\def\HeadingThirdColumn{} +\setbox 0 = \vbox{\FontTableComplete} +\def\SampleColumnText #1{% + :\space + here is some sample text to display this font, + not very long, but long enough to give you an + idea of what output in this font looks like.% + \ifnum #1 = 1 + \space That's it for this font.% + \fi +} +\dimen0 = \hsize +\advance\dimen0 by -\wd0 +\def\SampleColumn #1:#2{% + \wlog{Arg1: #1}% + \vtop{% + \parindent = 0pt + \rightskip = 0pt plus 30pt + \spaceskip = .3333em + \xspaceskip = .5em + \hsize = \dimen0 + \SampleFont + \strut #1\SampleColumnText{#2}\strut + }% +} +\def\HeadingThirdColumn{\hfil\bf Sample text\hfil} +\setbox 0 = \vbox{\FontTableComplete} +\newbox\HeaderBox +\setbox\HeaderBox = \vsplit 0 to 1000pt +\setbox\HeaderBox = \vbox{\unvbox \HeaderBox} +\vsize = 10in +\newdimen\SplitTableLength +\SplitTableLength = 7.0in +\def\APage{% + \vbox{% + \copy\HeaderBox + \smallskip + \vsplit 0 to \SplitTableLength + } + \vfill + \eject +} +\APage +\APage +\APage +\end diff --git a/info/examples/tex-in-practice/fonttab.tip b/info/examples/tex-in-practice/fonttab.tip new file mode 100644 index 0000000000..4da8f97c5a --- /dev/null +++ b/info/examples/tex-in-practice/fonttab.tip @@ -0,0 +1,90 @@ +% 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 16.9.2, p. II-303. +% Original source in file "fonts2.TEX", starting line 2106. +\wlog{L: "fonttab.tip" ["fonts2.TEX," l. 2106, p. II-303]}% +% This file DOES NOT belong to format "texip." +\input inputd.tip +\InputD{hex.tip} +\InputD{oct.tip} +\InputD{setstrut.tip} +\InputD{verb-bas.tip} +\nopagenumbers +\baselineskip = 13pt +\ComputeStrut +\def\VruleS{\MyStrut width 0.5pt} +\def\PrintCatCode #1{% + \ifnum `\@ = #1\relax + 11 / 12\relax + \else + \the\catcode #1\relax + \fi +} +\newcount\tcount +\newcount\bcount +\def\OneChar #1{% + \tcount = #1 + \advance\tcount by \bcount + \vtop{% + \hsize = 0.54in + \offinterlineskip + \hrule + \line{\VruleS\hfil \tt"\Hex{\tcount}\hskip0.3\hsize\VruleS} + \hrule + \line{\VruleS\hfil \tt'\Oct{\tcount}\hfil\VruleS} + \hrule + \line{\VruleS\hfil $\the\tcount_{\scriptscriptstyle 10}$% + \hfil\VruleS} + \hrule + \line{\VruleS\hfil \PrintCatCode{\tcount}\hfil\VruleS} + \hrule + \line{\VruleS \hfil + {\rm \char\tcount}\hskip 2.3pt + {\bf \char\tcount}\hskip 2.3pt + {\it \char\tcount}% + \hfil\VruleS} + \hrule + \line{\VruleS \hfil\tt \char\tcount\hfil\VruleS} + \hrule + }% +} +\def\TabLine #1{% + \bcount = #1 + \hbox{% + \vtop{% + \baselineskip = 14pt + \hrule height 0pt depth 0pt + \hbox{Hex} + \hbox{Octal} + \hbox{Decimal} + \hbox{\tt\string\catcode} + \hbox{{\tt\string\rm}, \dots} + \hbox{\tt\string\tt} + }% + \hskip 8pt + \OneChar{0}\OneChar{1}\OneChar{2}\OneChar{3}% + \OneChar{4}\OneChar{5}\OneChar{6}\OneChar{7} + } + \vskip 12pt +} +\TabLine{0} \TabLine{8} \TabLine{16} \TabLine{24} +\vfill\eject +\TabLine{32} \TabLine{40} \TabLine{48} \TabLine{56} +\vfill\eject +\TabLine{64} \TabLine{72} \TabLine{80} \TabLine{88} +\vfill\eject +\TabLine{96} \TabLine{104} \TabLine{112} \TabLine{120} +\vfill\eject +\end diff --git a/info/examples/tex-in-practice/formline.tip b/info/examples/tex-in-practice/formline.tip new file mode 100644 index 0000000000..a3f4984781 --- /dev/null +++ b/info/examples/tex-in-practice/formline.tip @@ -0,0 +1,33 @@ +% 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 6.10.3, p. I-202. +% Original source in file "boxes.TEX", starting line 2455. +\wlog{L: "formline.tip" ["boxes.TEX," l. 2455, p. I-202]}% +% This file DOES belong to format "texip." +\def\FormLine #1#2#3{% + {% + \setbox0 = \hbox{#2}% + \dimen0 = #1% + \advance\dimen0 by -\wd0 + \hbox{% + \box0 + \hbox to 0pt{% + \vrule width \dimen0 height 0.4pt depth 0pt + \hss + }% + \raise 3pt \hbox to \dimen0 {\hfil #3\hfil}% + }% + }% +} diff --git a/info/examples/tex-in-practice/fotable.tip b/info/examples/tex-in-practice/fotable.tip new file mode 100644 index 0000000000..5af38e251a --- /dev/null +++ b/info/examples/tex-in-practice/fotable.tip @@ -0,0 +1,175 @@ +% 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 16.8.1, p. II-298. +% Original source in file "fonts2.TEX", starting line 1840. +\wlog{L: "fotable.tip" ["fonts2.TEX," l. 1840, p. II-298]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\@OctPrintFontTable#1{% + \hbox{% + \rm\'{}% + \kern-.2em + \it #1\/% + \kern.05em + }% +} +\def\@HexPrintFontTable#1{% + \hbox{\rm\H{}\tt#1}% +} +\def\@OddLineFontTable#1{% + \cr + \noalign{\nointerlineskip} + \multispan{19}\hrulefill& + \setbox0 = \hbox{% + \lower 2.3pt\hbox{% + \@HexPrintFontTable{#1x}% + }% + }% + \smash{\box0}% + \cr + \noalign{\nointerlineskip} +} +\def\@EvenLineFontTable{\cr\noalign{\hrule}} +\def\@FontTableStrut{\lower4.5pt\vbox to 14pt{}} +\def\BeginFontTable #1{% + $$ + \postdisplaypenalty = 0 + \global\count@=0 + #1 + \halign to\hsize\bgroup + \@FontTableStrut##\relax \tabskip = 0pt plus 10pt& + &\hfil##\hfil&\vrule##% + \cr + \lower6.5pt\null + &&& + \@OctPrintFontTable0&& + \@OctPrintFontTable1&& + \@OctPrintFontTable2&& + \@OctPrintFontTable3&& + \@OctPrintFontTable4&& + \@OctPrintFontTable5&& + \@OctPrintFontTable6&& + \@OctPrintFontTable7& + \@EvenLineFontTable +} +\def\EndFontTable{% + \raise 11.5pt\null + &&& + \@HexPrintFontTable 8&& + \@HexPrintFontTable 9&& + \@HexPrintFontTable A&& + \@HexPrintFontTable B&& + \@HexPrintFontTable C&& + \@HexPrintFontTable D&& + \@HexPrintFontTable E&& + \@HexPrintFontTable F& + \cr + \egroup + $$% +} +\def\:{% + \setbox0 = \hbox{% + \char\count@ + }% + \ifdim\ht0 > 7.5pt + \@RepositionFontTable + \else + \ifdim\dp0 > 2.5pt + \@RepositionFontTable + \fi + \fi + \box0 + \global\advance\count@ by 1 +} +\def\@RepositionFontTable{% + \setbox0 = \hbox{% + $ + \vcenter{% + \kern 2pt + \box0 + \kern 2pt + } + $% + }% +} +\def\NormalFontTable{% + &\@OctPrintFontTable{00x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable0 + &\@OctPrintFontTable{01x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{02x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable1 + &\@OctPrintFontTable{03x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{04x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable2 + &\@OctPrintFontTable{05x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{06x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable3 + &\@OctPrintFontTable{07x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{10x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable4 + &\@OctPrintFontTable{11x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{12x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable5 + &\@OctPrintFontTable{13x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{14x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable6 + &\@OctPrintFontTable{15x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{16x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable7 + &\@OctPrintFontTable{17x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable +} +\def\MoreFontTable{% + &\@OctPrintFontTable{20x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable8 + &\@OctPrintFontTable{21x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{22x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable9 + &\@OctPrintFontTable{23x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{24x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable A + &\@OctPrintFontTable{25x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{26x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable B + &\@OctPrintFontTable{27x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{30x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable C + &\@OctPrintFontTable{31x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{32x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable D + &\@OctPrintFontTable{33x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{34x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable E + &\@OctPrintFontTable{35x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{36x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable F + &\@OctPrintFontTable{37x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/fotok.tip b/info/examples/tex-in-practice/fotok.tip new file mode 100644 index 0000000000..7d02336125 --- /dev/null +++ b/info/examples/tex-in-practice/fotok.tip @@ -0,0 +1,34 @@ +% 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 20.1.5, p. III-119. +% Original source in file "tokens3.TEX", starting line 133. +\wlog{L: "fotok.tip" ["tokens3.TEX," l. 133, p. III-119]}% +% This file DOES belong to format "texip." +\InputD{compst.tip} +\catcode`\@ = 11 +\def\ForEachToken #1#2{% + \def\@ForEachTokenMacro{#2}% + \expandafter\@ForEachToken\the#1\@ForEachTokenDel +} +\def\@ForEachToken #1{% + \if\StringsEqualConditional{\string\@ForEachTokenDel}{\string#1}% + \let\@ForEachTokenNext = \relax % Done. + \else + \@ForEachTokenMacro{#1}% % Call macro and continue. + \let\@ForEachTokenNext = \@ForEachToken + \fi + \@ForEachTokenNext +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/frac.tip b/info/examples/tex-in-practice/frac.tip new file mode 100644 index 0000000000..a00a7237d4 --- /dev/null +++ b/info/examples/tex-in-practice/frac.tip @@ -0,0 +1,21 @@ +% 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 13.3.5, p. II-175. +% Original source in file "math1.TEX", starting line 1345. +\wlog{L: "frac.tip" ["math1.TEX," l. 1345, p. II-175]}% +% This file DOES belong to format "texip." +\def\frac #1#2{% + {#1 \over #2}% +} diff --git a/info/examples/tex-in-practice/freespac.tip b/info/examples/tex-in-practice/freespac.tip new file mode 100644 index 0000000000..14de10fd60 --- /dev/null +++ b/info/examples/tex-in-practice/freespac.tip @@ -0,0 +1,35 @@ +% 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 32.2.4, p. IV-6. +% Original source in file "page.TEX", starting line 340. +\wlog{L: "freespac.tip" ["page.TEX," l. 340, p. IV-6]}% +% This file DOES belong to format "texip." +\InputD{lpagetg.tip} +\newdimen\FreePageSpace +\def\ComputeFreeSpaceOnPage{% + \par + \LogPageTG{\string\ComputeFreeSpaceOnPage}% + \ifdim\pagetotal = 0pt + \FreePageSpace = \vsize + \else + \FreePageSpace = \pagegoal + \advance\FreePageSpace by -\pagetotal + \fi +} +\def\FreeSpaceConditional{% + 0pt = 0pt \fi + \ComputeFreeSpaceOnPage + \ifdim\FreePageSpace +} diff --git a/info/examples/tex-in-practice/fsized.tip b/info/examples/tex-in-practice/fsized.tip new file mode 100644 index 0000000000..433a5d1b92 --- /dev/null +++ b/info/examples/tex-in-practice/fsized.tip @@ -0,0 +1,35 @@ +% 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 16.1.7, p. II-270. +% Original source in file "fonts2.TEX", starting line 373. +\wlog{L: "fsized.tip" ["fonts2.TEX," l. 373, p. II-270]}% +% This file DOES belong to format "texip." +\newdimen\CurrentFontSize +\InputD{namedef.tip} +\def\DefineFontSizeGroup #1#2{% + \wlog{\string\DefineFontSizeGroup: defining group "#1" (#2 pt)}% + \NameDef{FontSize#1}{% + \def\rm{\fam = 0 \NameUse{#1rm}}% + \def\bf{\fam = \bffam \NameUse{#1bf}}% + \def\it{\fam = \itfam \NameUse{#1it}}% + \def\tt{\fam = \ttfam \NameUse{#1tt}}% + \def\sc{\NameUse{#1sc}}% + \def\sl{\fam = \slfam \NameUse{#1sl}}% + \CurrentFontSize = #2pt + \baselineskip = \LineSpaceMultFactor\CurrentFontSize + \rm + } +} +\def\LineSpaceMultFactor{1.2} diff --git a/info/examples/tex-in-practice/funospac.tip b/info/examples/tex-in-practice/funospac.tip new file mode 100644 index 0000000000..e0921ead1b --- /dev/null +++ b/info/examples/tex-in-practice/funospac.tip @@ -0,0 +1,52 @@ +% 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 23.4.10.1, p. III-271. +% Original source in file "macros3.TEX", starting line 1710. +\wlog{L: "funospac.tip" ["macros3.TEX," l. 1710, p. III-271]}% +% This file DOES belong to format "texip." +\InputD{futlet.tip} +\catcode`\@ = 11 +\def\FutureLetNoSpace #1#2{% + \def\@FutureLetTokenA{#1}% + \def\@FutureLetTokenB{#2}% + \@FutureLetOne +} +\def\@FutureLetOne{% + \DoFutureLet{\ifx}{ }% + {\@FutureLetThree}{\@FutureLetOk}% +} +\edef\@FutureLetNoSpaceTemp{% + \def\noexpand\@FutureLetThree\space{\noexpand\@FutureLetOne}% +} +\@FutureLetNoSpaceTemp +\def\@FutureLetOk{% + \expandafter\futurelet\@FutureLetTokenA\@FutureLetTokenB +} +\long\def\DoLongFutureLetNoSpace #1#2#3#4{% + \def\@FutureLetDecideNoSpace{% + #1#2\@FutureLetTokenNoSpace + \def\@FutureLetNextNoSpace{#3}% + \else + \def\@FutureLetNextNoSpace{#4}% + \fi + \@FutureLetNextNoSpace + }% + \FutureLetNoSpace{\@FutureLetTokenNoSpace}% + {\@FutureLetDecideNoSpace}% +} +\def\DoFutureLetNoSpace #1#2#3#4{% + \DoLongFutureLetNoSpace{#1}{#2}{#3}{#4}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/futlet.tip b/info/examples/tex-in-practice/futlet.tip new file mode 100644 index 0000000000..354e3d2f18 --- /dev/null +++ b/info/examples/tex-in-practice/futlet.tip @@ -0,0 +1,32 @@ +% 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 23.4.3, p. III-256. +% Original source in file "macros3.TEX", starting line 1021. +\wlog{L: "futlet.tip" ["macros3.TEX," l. 1021, p. III-256]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\long\def\DoLongFutureLet #1#2#3#4{% + \def\@FutureLetDecide{% + #1#2\@FutureLetToken + \def\@FutureLetNext{#3}% + \else + \def\@FutureLetNext{#4}% + \fi + \@FutureLetNext + }% + \futurelet\@FutureLetToken\@FutureLetDecide +} +\def\DoFutureLet #1#2#3#4{\DoLongFutureLet{#1}{#2}{#3}{#4}} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/futpar.tip b/info/examples/tex-in-practice/futpar.tip new file mode 100644 index 0000000000..2c83d0d496 --- /dev/null +++ b/info/examples/tex-in-practice/futpar.tip @@ -0,0 +1,23 @@ +% 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 23.4.11, p. III-274. +% Original source in file "macros3.TEX", starting line 1899. +\wlog{L: "futpar.tip" ["macros3.TEX," l. 1899, p. III-274]}% +% This file DOES belong to format "texip." +\InputD{funospac.tip} +\def\ParLookAhead #1#2{% + \DoLongFutureLetNoSpace{\ifx}{\par}% + {#1}{#2}% +} diff --git a/info/examples/tex-in-practice/genaeol.tip b/info/examples/tex-in-practice/genaeol.tip new file mode 100644 index 0000000000..12132465f1 --- /dev/null +++ b/info/examples/tex-in-practice/genaeol.tip @@ -0,0 +1,39 @@ +% 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 21.9.7.1, p. III-192. +% Original source in file "macros1.TEX", starting line 2196. +\wlog{L: "genaeol.tip" ["macros1.TEX," l. 2196, p. III-192]}% +% This file DOES belong to format "texip." +\InputD{namedef.tip} +\InputD{verb-bas.tip} +\catcode`\@ = 11 +\def\GenAeol #1{% + \edef #1{% + \bgroup + \noexpand\MakeEolActive + \noexpand\@GenAeolOne{% + \csname\string #1-2\endcsname}% + }% + \NameDef{\string #1-2}##1% +} +{ + \MakeEolActive + \gdef\@GenAeolOne #1#2 + {% + \egroup% + #1{#2}% + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/genhead.tip b/info/examples/tex-in-practice/genhead.tip new file mode 100644 index 0000000000..44588f7dfd --- /dev/null +++ b/info/examples/tex-in-practice/genhead.tip @@ -0,0 +1,100 @@ +% 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 11.5.5, p. II-93. +% Original source in file "par2.TEX", starting line 2264. +\wlog{L: "genhead.tip" ["par2.TEX," l. 2264, p. II-93]}% +% This file DOES belong to format "texip." +\InputD{vsmax.tip} +\InputD{box-mac.tip} +\InputD{parin.tip} +\newtoks\EveryHeading +\EveryHeading = {} +\catcode`\@ = 11 +\newcount\@GenericHeadingCount +\newcount\@GenericHeadingIndent +\def\LineBreakHeading{% + \errmessage{% + \string\LineBreakHeading/\string\LineBreakToc: + can only be used inside a heading.}% +} +\let\LineBreakToc = \LineBreakHeading +\def\IgnoreInRunnningHead #1{% + #1% +} +\def\GenericHeading #1#2#3#4#5{% + \par + \the\EveryHeading + \@GenericHeadingCount = #1 + \@GenericHeadingIndent = #5 + \MaxVskip{#2}% + \ifdim\leftskip = 0pt + \else + \message{\string\GenericHeading: \noexpand\leftskip + is non-zero, forgotten to terminate a list?}% + \fi + \begingroup + \interlinepenalty = 10000 + \parindent = 0pt + \parskip = 0pt + \ifnum #4 = 1 + \hyphenpenalty = 10000 + \fi + \ifnum #3 = 1 + \rightskip = 0pt plus 50pt + \fi + \@GenericHeading +} +\def\@GenericHeading #1#2#3#4#5#6#7{% + #3% + \def\LineBreakHeading{\hfil\break}% + \def\LineBreakToc{ }% + \ifdim #4 > 0pt + \ifnum\@GenericHeadingIndent = 0 + \hangindent = #4 + \hangafter = 1 + \leavevmode + \hbox to #4{#5\hfil}% + \else + \leavevmode + \hbox to #4{#5\hfil}% + \fi + \else + \setbox0 = \hbox{#5\hskip -#4} + \ifnum\@GenericHeadingIndent = 0 + \hangindent = \wd0 + \hangafter = 1 + \leavevmode + \box0 + \else + \leavevmode + \box0 + \fi + \fi + #6% + \if\NameDefinedConditional{WriteToAuxSpecial}% + \def\LineBreakToc{\hfil\break}% + \def\LineBreakHeading{ }% + \WriteToAuxSpecial{toc}{\the\@GenericHeadingCount}% + {#5}{#7}{\PrintCounter{PageNo}}% + \fi + \par + \endgroup + \nobreak + \vskip #1 + \ifnum #2 = 0 + \SuppressNextParIndent + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/genostr.tip b/info/examples/tex-in-practice/genostr.tip new file mode 100644 index 0000000000..e89580297d --- /dev/null +++ b/info/examples/tex-in-practice/genostr.tip @@ -0,0 +1,42 @@ +% 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 28.5.3, p. III-474. +% Original source in file "io1.TEX", starting line 1339. +\wlog{L: "genostr.tip" ["io1.TEX," l. 1339, p. III-474]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newwrite\GenericOStream +\newif\if@GenericOStreamOpen +\@GenericOStreamOpenfalse +\def\OpenGenericOStream #1{% + \if@GenericOStreamOpen + \errmessage{\string\OpenGenericOStream: generic + output stream currently open.}% + \else + \global\@GenericOStreamOpentrue + \immediate\openout\GenericOStream = #1% + \fi +} +\def\CloseGenericOStream{% + \if@GenericOStreamOpen + \global\@GenericOStreamOpenfalse + \immediate\closeout\GenericOStream + \else + \errhelp{Stream not in use.}% + \errmessage{\string\CloseGenericOStream: + stream is NOT open for output.}% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/getnuml.tip b/info/examples/tex-in-practice/getnuml.tip new file mode 100644 index 0000000000..7991ae9bb4 --- /dev/null +++ b/info/examples/tex-in-practice/getnuml.tip @@ -0,0 +1,29 @@ +% 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 12.5.1, p. II-130. +% Original source in file "par3.TEX", starting line 1150. +\wlog{L: "getnuml.tip" ["par3.TEX," l. 1150, p. II-130]}% +% This file DOES belong to format "texip." +\newcount\ResultNumberOfLines +\def\GetNumberOfLines #1#2{% + {% + \setbox 0 = \vbox{% + \hsize = #2 + #1 + \par + \global\ResultNumberOfLines = \prevgraf + }% + }% +} diff --git a/info/examples/tex-in-practice/gobble.tip b/info/examples/tex-in-practice/gobble.tip new file mode 100644 index 0000000000..7cbb9664d2 --- /dev/null +++ b/info/examples/tex-in-practice/gobble.tip @@ -0,0 +1,27 @@ +% 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 21.8.6, p. III-186. +% Original source in file "macros1.TEX", starting line 1836. +\wlog{L: "gobble.tip" ["macros1.TEX," l. 1836, p. III-186]}% +% This file DOES belong to format "texip." +\def\GobbleOne #1{} +\def\GobbleTwo #1#2{} +\def\GobbleThree#1#2#3{} +\def\GobbleFour #1#2#3#4{} +\def\GobbleFive #1#2#3#4#5{} +\def\GobbleSix #1#2#3#4#5#6{} +\def\GobbleSeven#1#2#3#4#5#6#7{} +\def\GobbleEight#1#2#3#4#5#6#7#8{} +\def\GobbleNine #1#2#3#4#5#6#7#8#9{} diff --git a/info/examples/tex-in-practice/gobblemo.tip b/info/examples/tex-in-practice/gobblemo.tip new file mode 100644 index 0000000000..ac7bc75439 --- /dev/null +++ b/info/examples/tex-in-practice/gobblemo.tip @@ -0,0 +1,24 @@ +% 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 21.9.11, p. III-197. +% Original source in file "macros1.TEX", starting line 2417. +\wlog{L: "gobblemo.tip" ["macros1.TEX," l. 2417, p. III-197]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\GobbleDoMore #1#2{% + \def\@GobbleDoMore ##1#1{}% + \expandafter#2\@GobbleDoMore +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/graphmac.tip b/info/examples/tex-in-practice/graphmac.tip new file mode 100644 index 0000000000..6cf2ba10d9 --- /dev/null +++ b/info/examples/tex-in-practice/graphmac.tip @@ -0,0 +1,82 @@ +% 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 9.2.1, p. I-314. +% Original source in file "boxit.TEX", starting line 79. +\wlog{L: "graphmac.tip" ["boxit.TEX," l. 79, p. I-314]}% +% This file DOES belong to format "texip." +\InputD{box-zero.tip} +\catcode`\@ = 11 +\newdimen\@ScaleLength +\def\SetScale #1{% + \@ScaleLength = #1 +} +\SetScale{1mm} +\newdimen\@LineThickness +\def\SetLineThickness #1{% + \@LineThickness = #1 +} +\SetLineThickness{0.3mm} +\newbox\@GraphDataBox +\def\SetGraphDataBox #1{% + \dimen0 = #1% + \setbox\@GraphDataBox = + \hbox{% + \hskip -0.5\dimen0 + \vrule height 0.5\dimen0 + depth 0.5\dimen0 + width 1.0\dimen0 + }% + \ZeroBox{\@GraphDataBox}% +} +\SetGraphDataBox{2mm} +\def\DrawDataBox (#1,#2){% + {% + \setbox0 = \hbox{% + \hskip #1\@ScaleLength + \raise #2\@ScaleLength\copy\@GraphDataBox + }% + \ZeroBoxOut{0}% + }% +} +\def\DrawHLine (#1,#2)#3{% + {% + \setbox0 = \hbox{% + \hskip #1\@ScaleLength + \raise #2\@ScaleLength + \hbox{% + \vrule height 0.5\@LineThickness + depth 0.5\@LineThickness + width #3\@ScaleLength + }% + }% + \ZeroBoxOut{0}% + }% +} +\def\DrawVLine (#1,#2)#3{% + {% + \setbox0 = \hbox{% + \hskip #1\@ScaleLength + \hskip -0.5\@LineThickness + \raise #2\@ScaleLength + \hbox{% + \vrule height #3\@ScaleLength + depth 0pt + width \@LineThickness + }% + }% + \ZeroBoxOut{0}% + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/hex.tip b/info/examples/tex-in-practice/hex.tip new file mode 100644 index 0000000000..0f198cb9fb --- /dev/null +++ b/info/examples/tex-in-practice/hex.tip @@ -0,0 +1,44 @@ +% 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 27.1.4.1, p. III-404. +% Original source in file "macros7.TEX", starting line 400. +\wlog{L: "hex.tip" ["macros7.TEX," l. 400, p. III-404]}% +% This file DOES belong to format "texip." +\def\Hex #1{% + {% + \count0 = #1% + \count1 = #1% + \divide\count0 by 16 + \count2 = \count0 + \multiply \count2 by -16 + \advance \count1 by \count2 + \ifnum \count0 > 0 + \Hex{\count0}% + \fi + \HexDigit{\count1}% + }% +} +\def\HexDigit #1{% + {% + \count0 = #1\relax + \ifnum \count0 < 10 + \number\count0 % or \the\count0 + \else + \advance\count0 by -10 + \advance\count0 by `A + \char\count0 + \fi + }% +} diff --git a/info/examples/tex-in-practice/ifeven.tip b/info/examples/tex-in-practice/ifeven.tip new file mode 100644 index 0000000000..5f26d121a0 --- /dev/null +++ b/info/examples/tex-in-practice/ifeven.tip @@ -0,0 +1,28 @@ +% 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 25.2.2, p. III-351. +% Original source in file "macros5.TEX", starting line 1926. +\wlog{L: "ifeven.tip" ["macros5.TEX," l. 1926, p. III-351]}% +% This file DOES belong to format "texip." +\newif\ifEvenConditionalResult +\def\EvenConditional #1{% + TT\fi + \ifodd #1\relax + \EvenConditionalResultfalse + \else + \EvenConditionalResulttrue + \fi + \ifEvenConditionalResult +} diff --git a/info/examples/tex-in-practice/ifx-def.tip b/info/examples/tex-in-practice/ifx-def.tip new file mode 100644 index 0000000000..b9b9dd7259 --- /dev/null +++ b/info/examples/tex-in-practice/ifx-def.tip @@ -0,0 +1,30 @@ +% 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 25.1.21.1, p. III-345. +% Original source in file "macros5.TEX", starting line 1595. +\wlog{L: "ifx-def.tip" ["macros5.TEX," l. 1595, p. III-345]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newif\if@Def +\def\XDefinedConditional #1{% + TT\fi + \ifx #1\@AlwaysUndefinedToken + \@Deffalse + \else + \@Deftrue + \fi + \if@Def +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ifx-mac.tip b/info/examples/tex-in-practice/ifx-mac.tip new file mode 100644 index 0000000000..0af3f324b0 --- /dev/null +++ b/info/examples/tex-in-practice/ifx-mac.tip @@ -0,0 +1,26 @@ +% 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 25.1.20.1, p. III-344. +% Original source in file "macros5.TEX", starting line 1529. +\wlog{L: "ifx-mac.tip" ["macros5.TEX," l. 1529, p. III-344]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\IfXConditional #1#2{% + TT\fi + \def\@IfXConditionalOne{#1}% + \def\@IfXConditionalTwo{#2}% + \ifx\@IfXConditionalOne\@IfXConditionalTwo +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/imodn.tip b/info/examples/tex-in-practice/imodn.tip new file mode 100644 index 0000000000..d8168abd52 --- /dev/null +++ b/info/examples/tex-in-practice/imodn.tip @@ -0,0 +1,38 @@ +% 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 3.3.13, p. I-58. +% Original source in file "reg1.TEX", starting line 1566. +\wlog{L: "imodn.tip" ["reg1.TEX," l. 1566, p. I-58]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newcount\@IModNCount +\newcount\@IModNCountCopy +\def\IModN #1#2#3{% + \@IModNCount = #1\relax + \@IModNCountCopy = #1\relax + \ifnum \@IModNCount < 0 + \errmessage{\string\IModN: \string#1 + (value \the\@IModNCount) is negative.}% + \fi + \ifnum #2< 1 + \errmessage{\string\IModN: \string#2 + (value #2) is negative or zero.}% + \fi + \divide\@IModNCount by #2\relax + \multiply\@IModNCount by #2\relax + #3 = \@IModNCountCopy + \advance #3by -\@IModNCount +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/index-or.tip b/info/examples/tex-in-practice/index-or.tip new file mode 100644 index 0000000000..aacb366a2a --- /dev/null +++ b/info/examples/tex-in-practice/index-or.tip @@ -0,0 +1,50 @@ +% 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 36.1.1, p. IV-134. +% Original source in file "o3.TEX", starting line 63. +\wlog{L: "index-or.tip" ["o3.TEX," l. 63, p. IV-134]}% +% This file DOES NOT belong to format "texip." +\InputD{box-mac.tip} +\InputD{setstrut.tip} +\newinsert\indexins +\dimen\indexins = \maxdimen +\skip\indexins = 0pt +\count\indexins = 0 +\newwrite\indexwrite +\openout\indexwrite = \jobname.idxx +\def\index #1{% + \write\indexwrite{\noexpand\ix{#1}{\the\pageno}}% + \insert\indexins{% + \baselineskip = 7pt + \ComputeStrut + \hbox{\fiverm\MyStrut #1} + }% +} +\def\indexx #1{% + \index{#1}% + #1% +} +\output = {% + \shipout\hbox{% + \valign{ + #\vfil + \cr + \VtopR{\unvbox255}\cr + \hbox to 20pt{}\cr + \BoxR\indexins\cr + } + } + \global\advance\pageno by 1 +} diff --git a/info/examples/tex-in-practice/input-at.tip b/info/examples/tex-in-practice/input-at.tip new file mode 100644 index 0000000000..bf41fd4958 --- /dev/null +++ b/info/examples/tex-in-practice/input-at.tip @@ -0,0 +1,23 @@ +% 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 28.3.7, p. III-462. +% Original source in file "io1.TEX", starting line 774. +\wlog{L: "input-at.tip" ["io1.TEX," l. 774, p. III-462]}% +% This file DOES belong to format "texip." +\def\InputAt #1{% + \catcode`\@ = 11 + \input #1 + \catcode`\@ = 12 +} diff --git a/info/examples/tex-in-practice/inputc.tip b/info/examples/tex-in-practice/inputc.tip new file mode 100644 index 0000000000..a05dcf1473 --- /dev/null +++ b/info/examples/tex-in-practice/inputc.tip @@ -0,0 +1,33 @@ +% 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 28.4.2, p. III-466. +% Original source in file "io1.TEX", starting line 977. +\wlog{L: "inputc.tip" ["io1.TEX," l. 977, p. III-466]}% +% This file DOES belong to format "texip." +\InputD{fexist.tip} +\catcode`\@ = 11 +\def\InputC #1{% + \if\FileExistsConditional{#1}% + \input #1 + \else + \message{\string\InputC: there is no file "#1".}% + \fi +} +\def\InputCWithAt #1{% + \catcode`@ = 11 + \InputC{#1}% + \catcode`@ = 12 +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/inputd.tip b/info/examples/tex-in-practice/inputd.tip new file mode 100644 index 0000000000..e4bd777482 --- /dev/null +++ b/info/examples/tex-in-practice/inputd.tip @@ -0,0 +1,41 @@ +% 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.1 +% Date: Sep 10, 1993 +% +% +% This source code is documented in 28.4.3, p. III-468. +% Original source in file "io1.TEX", starting line 1076. +\wlog{L: "inputd.tip" ["io1.TEX," l. 1076, p. III-468]}% +% This file DOES belong to format "texip." +\input namedef.tip +\newif\ifInputDVerbose +\InputDVerbosefalse +\catcode`\@ = 11 +\newif\if@InputDList +\@InputDListfalse +\def\@InputDPrefix{@InputD-} +\NameDef{\@InputDPrefix namedef.tip}{} +\def\InputD #1{% + \if\NameDefinedConditional{\@InputDPrefix #1}% + \ifInputDVerbose + \wlog{\string\InputD: file "#1" was read-in before.}% + \fi + \else + \NameDef{\@InputDPrefix #1}{}% + \input #1 + \if@InputDList + \immediate\write\@InputDStream{#1}% + \fi + \fi +} +\catcode`\@ = 12 +\InputD{inputdl.tip} diff --git a/info/examples/tex-in-practice/inputdl.tip b/info/examples/tex-in-practice/inputdl.tip new file mode 100644 index 0000000000..696c2f029e --- /dev/null +++ b/info/examples/tex-in-practice/inputdl.tip @@ -0,0 +1,28 @@ +% 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 28.4.3.3, p. III-470. +% Original source in file "io1.TEX", starting line 1175. +\wlog{L: "inputdl.tip" ["io1.TEX," l. 1175, p. III-470]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newwrite\@InputDStream +\def\ListInputD{% + \@InputDListtrue + \immediate\openout\@InputDStream = \jobname.ipd + \immediate\write\@InputDStream{inputd.tip}% + \immediate\write\@InputDStream{namedef.tip}% + \immediate\write\@InputDStream{inputdl.tip}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/isleapyr.tip b/info/examples/tex-in-practice/isleapyr.tip new file mode 100644 index 0000000000..e35bd6c9d1 --- /dev/null +++ b/info/examples/tex-in-practice/isleapyr.tip @@ -0,0 +1,43 @@ +% 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 26.9, p. III-370. +% Original source in file "macros6.TEX", starting line 541. +\wlog{L: "isleapyr.tip" ["macros6.TEX," l. 541, p. III-370]}% +% This file DOES belong to format "texip." +\InputD{imodn.tip} +\catcode`\@ = 11 +\newif\if@LeapYear +\def\LeapYearConditional #1{% + TT\fi + {% + \count0 = #1\relax + \IModN{\count0}{4}{\count1}% + \ifnum\count1 = 0 + \global\@LeapYeartrue + \IModN{\count0}{100}{\count2}% + \IModN{\count0}{400}{\count3}% + \ifnum\count2 = 0 + \global\@LeapYearfalse + \fi + \ifnum\count3 = 0 + \global\@LeapYeartrue + \fi + \else + \global\@LeapYearfalse + \fi + }% + \if@LeapYear +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/isprefix.tip b/info/examples/tex-in-practice/isprefix.tip new file mode 100644 index 0000000000..9bdefdce10 --- /dev/null +++ b/info/examples/tex-in-practice/isprefix.tip @@ -0,0 +1,55 @@ +% 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 24.1.18.1, p. III-302. +% Original source in file "macros4.TEX", starting line 1096. +\wlog{L: "isprefix.tip" ["macros4.TEX," l. 1096, p. III-302]}% +% This file DOES belong to format "texip." +\InputD{compst.tip} +\InputD{strleng.tip} +\InputD{showx.tip} +\catcode`\@ = 11 +\newif\if@PrefixResult +\newcount\@LengthPrefixString +\newcount\@LengthMainString +\def\PrefixConditional #1#2{% + TT\fi + \StringLength{#1}% + \@LengthMainString = \StringLengthResult + \StringLength{#2}% + \@LengthPrefixString = \StringLengthResult + \ifnum\@LengthMainString < \@LengthPrefixString + \@PrefixResultfalse + \else + \@PrefixConditionalTwo{#1}{#2}% + \fi + \if@PrefixResult +} +\def\@PrefixConditionalTwo #1#2{% + \edef\@PrefixBoth{#1#2}% + \edef\@PrefixTemp{% + \def\noexpand\@TestPrefix ####1#2####2\noexpand\@Del{% + \noexpand\if\noexpand\EmptyStringConditional{####1}% + }% + }% + \ShowX\@PrefixTemp + \@PrefixTemp + \ShowX{\@TestPrefix}% + \expandafter\@TestPrefix\@PrefixBoth\@Del + \@PrefixResulttrue + \else + \@PrefixResultfalse + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/issuffix.tip b/info/examples/tex-in-practice/issuffix.tip new file mode 100644 index 0000000000..37bda46631 --- /dev/null +++ b/info/examples/tex-in-practice/issuffix.tip @@ -0,0 +1,28 @@ +% 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 24.1.19.1, p. III-307. +% Original source in file "macros4.TEX", starting line 1312. +\wlog{L: "issuffix.tip" ["macros4.TEX," l. 1312, p. III-307]}% +% This file DOES belong to format "texip." +\InputD{isprefix.tip} +\InputD{reverses.tip} +\catcode`\@ = 11 +\def\SuffixConditional #1#2{% + TT\fi + \ReverseString{\@MainSuffixString}{#1}% + \ReverseString{\@SuffixSuffixString}{#2}% + \if\PrefixConditional{\@MainSuffixString}{\@SuffixSuffixString}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/itemizel.tip b/info/examples/tex-in-practice/itemizel.tip new file mode 100644 index 0000000000..8ed23df9e8 --- /dev/null +++ b/info/examples/tex-in-practice/itemizel.tip @@ -0,0 +1,48 @@ +% 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 11.3.3, p. II-77. +% Original source in file "par2.TEX", starting line 1465. +\wlog{L: "itemizel.tip" ["par2.TEX," l. 1465, p. II-77]}% +% This file DOES belong to format "texip." +\InputD{parv-1.tip} +\catcode`\@ = 11 +\newcount\@ItemListDepth +\@ItemListDepth = 0 +\def\BeginItemize{% + \begingroup + \global\advance\@ItemListDepth by 1 + \ifcase\@ItemListDepth\or + \@BeginItemizeLevelOne + \def\Item{\ItemLL{$\bullet$}}% + \or + \@BeginItemizeLevelTwo + \def\Item{\ItemLL{--}}% + \or + \@BeginItemizeLevelThree + \def\Item{\ItemLL{*}}% + \or + \@BeginItemizeLevelFour + \def\Item{\ItemLL{+}}% + \else + \errmessage{\string\BeginItemize: maximum nesting of + 4 exceeded.}% + \fi +} +\def\EndItemize{% + \EndAList + \endgroup + \global\advance\@ItemListDepth by -1 +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/itemltw.tip b/info/examples/tex-in-practice/itemltw.tip new file mode 100644 index 0000000000..f4f13f319d --- /dev/null +++ b/info/examples/tex-in-practice/itemltw.tip @@ -0,0 +1,32 @@ +% 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 11.1.6.1, p. II-61. +% Original source in file "par2.TEX", starting line 671. +\wlog{L: "itemltw.tip" ["par2.TEX," l. 671, p. II-61]}% +% This file DOES NOT belong to format "texip." +\def\ItemLLOne #1{% + \par + \setbox 0 = \hbox{#1}% + \ifdim\wd0 > \Delta@XY + \message{\string\ItemLL: warning, label "#1" too wide.}% + \fi + \noindent + \hbox to 0pt{% + \hskip -\Delta@XY + #1% + \hfil + }% + \ignorespaces +} diff --git a/info/examples/tex-in-practice/itemplan.tip b/info/examples/tex-in-practice/itemplan.tip new file mode 100644 index 0000000000..9dd2d94f2b --- /dev/null +++ b/info/examples/tex-in-practice/itemplan.tip @@ -0,0 +1,44 @@ +% 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 11.4.7, p. II-88. +% Original source in file "par2.TEX", starting line 2011. +\wlog{L: "itemplan.tip" ["par2.TEX," l. 2011, p. II-88]}% +% This file DOES belong to format "texip." +\def\hang{% + \hangindent = \parindent +} +\def\item{% + \par + \hang + \textindent +} +\def\itemitem{% + \par + \indent + \hangindent = 2\parindent + \textindent +} +\def\textindent #1{% + \indent + \llap{#1\enspace}% + \ignorespaces +} +\def\itemitemitem{% + \par + \indent + \indent + \hangindent = 3\parindent + \textindent +} diff --git a/info/examples/tex-in-practice/ivpyr.tip b/info/examples/tex-in-practice/ivpyr.tip new file mode 100644 index 0000000000..86bd1a78bc --- /dev/null +++ b/info/examples/tex-in-practice/ivpyr.tip @@ -0,0 +1,67 @@ +% 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 27.1.9.1, p. III-417. +% Original source in file "macros7.TEX", starting line 1022. +\wlog{L: "ivpyr.tip" ["macros7.TEX," l. 1022, p. III-417]}% +% This file DOES belong to format "texip." +\InputD{futlet.tip} +\InputD{list-mac.tip} +\InputD{wtolist.tip} +\catcode`\@ = 11 +\newdimen\@MaximumCurrentLineWidth +\newdimen\@LineWidthLastLine +\newdimen\@LineWidthMinDiff +\newbox\@IPCurrentLineBox +\newbox\@IPCurrentLineBoxTry +\def\InvertedPyramid #1#2#3{% + \WordsToTeXList{\IVList}#3\EndWordsToTeXList + \def\LineLengthList{#1}% + \@LineWidthLastLine = 0pt + \@LineWidthMinDiff = #2 + \CarOfList{\IVList}{\@IVListTemp} + \DropFirstElementOfList{\IVList} + \setbox\@IPCurrentLineBox = \hbox{\@IVListTemp}% + \CarOfList{\LineLengthList}{\@IVListTemp}% + \@MaximumCurrentLineWidth = \@IVListTemp + \DropFirstElementOfList{\LineLengthList}% + \ForEveryListElement{\IVList}{\@IVListTypeset}% + \ifvoid\@IPCurrentLineBox + \errmessage{\string\InvertedPyramid: + empty \string\@IPCurrentLineBox}% + \else + \centerline{\box\@IPCurrentLineBox}% + \fi +} +\def\@IVListTypeset #1{% + \setbox\@IPCurrentLineBoxTry = + \hbox{\copy\@IPCurrentLineBox \space#1}% + \ifdim\wd\@IPCurrentLineBoxTry < \@MaximumCurrentLineWidth + \setbox\@IPCurrentLineBox = \box\@IPCurrentLineBoxTry + \else + \@LineWidthLastLine = \wd\@IPCurrentLineBox + \centerline{\box\@IPCurrentLineBox}% + \setbox\@IPCurrentLineBox = \hbox{#1}% + \CarOfList{\LineLengthList}{\@IVListTemp}% + \@MaximumCurrentLineWidth = \@IVListTemp + \DropFirstElementOfList{\LineLengthList}% + \dimen0 = \@LineWidthLastLine + \advance\dimen0 by -\@MaximumCurrentLineWidth + \ifdim\dimen0 < \@LineWidthMinDiff + \@MaximumCurrentLineWidth = \@LineWidthLastLine + \advance\@MaximumCurrentLineWidth by -\@LineWidthMinDiff + \fi + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/largdp.tip b/info/examples/tex-in-practice/largdp.tip new file mode 100644 index 0000000000..cd666f8b6d --- /dev/null +++ b/info/examples/tex-in-practice/largdp.tip @@ -0,0 +1,42 @@ +% 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 3.3.15, p. I-61. +% Original source in file "reg1.TEX", starting line 1742. +\wlog{L: "largdp.tip" ["reg1.TEX," l. 1742, p. I-61]}% +% This file DOES belong to format "texip." +\InputD{valdecpo.tip} +\InputD{absval.tip} +\catcode`\@ = 11 +\newcount\@LargestDecimalPlaceCount +\def\LargestDecimalPlace #1#2{% + \AbsoluteValue{#1}{\@LargestDecimalPlaceCount}% + \wlog{We make progress}% + #2 = 0 + \@LargestDecimalPlaceMore{#2}% +} +\def\@LargestDecimalPlaceMore #1{% + \wlog{One round: \the#1}% + \ifnum\@LargestDecimalPlaceCount < 10 + \def\@LargestDecimalPlaceMoreNext{}% + \else + \advance #1 by 1 + \divide\@LargestDecimalPlaceCount by 10 + \def\@LargestDecimalPlaceMoreNext{% + \@LargestDecimalPlaceMore{#1}% + }% + \fi + \@LargestDecimalPlaceMoreNext +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/lbpar.tip b/info/examples/tex-in-practice/lbpar.tip new file mode 100644 index 0000000000..c96c32ed3d --- /dev/null +++ b/info/examples/tex-in-practice/lbpar.tip @@ -0,0 +1,30 @@ +% 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 10.10.6, p. II-43. +% Original source in file "par1.TEX", starting line 2191. +\wlog{L: "lbpar.tip" ["par1.TEX," l. 2191, p. II-43]}% +% This file DOES belong to format "texip." +\InputD{futlet.tip} +\catcode`\@ = 11 +\def\\{% + \hfil\break + \hbox{}% + \DoFutureLet{\ifx}{[}{\@HfilBreakHskip}{\ignorespaces}% +} +\def\@HfilBreakHskip [#1]{% + \hskip #1% + \ignorespaces +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/lc0to9.tip b/info/examples/tex-in-practice/lc0to9.tip new file mode 100644 index 0000000000..c317c4c8ee --- /dev/null +++ b/info/examples/tex-in-practice/lc0to9.tip @@ -0,0 +1,35 @@ +% 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 22.3.2, p. III-219. +% Original source in file "macros2.TEX", starting line 736. +\wlog{L: "lc0to9.tip" ["macros2.TEX," l. 736, p. III-219]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\LoadCountZeroToNine #1#2#3#4#5#6#7#8#9{% + \count0 = #1\relax + \count1 = #2\relax + \count2 = #3\relax + \count3 = #4\relax + \count4 = #5\relax + \count5 = #6\relax + \count6 = #7\relax + \count7 = #8\relax + \count8 = #9\relax + \@LoadCountNine +} +\def\@LoadCountNine #1{% + \count9 = #1\relax +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/leadingz.tip b/info/examples/tex-in-practice/leadingz.tip new file mode 100644 index 0000000000..ef668522d8 --- /dev/null +++ b/info/examples/tex-in-practice/leadingz.tip @@ -0,0 +1,28 @@ +% 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 3.3.8.1, p. I-50. +% Original source in file "reg1.TEX", starting line 1126. +\wlog{L: "leadingz.tip" ["reg1.TEX," l. 1126, p. I-50]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newcount\@LeadingZCount +\def\LeadingZ #1{% + \@LeadingZCount = #1\relax + \ifnum \@LeadingZCount < 10 + 0% + \fi + \the\@LeadingZCount +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/leadline.tip b/info/examples/tex-in-practice/leadline.tip new file mode 100644 index 0000000000..fa6486a7e9 --- /dev/null +++ b/info/examples/tex-in-practice/leadline.tip @@ -0,0 +1,29 @@ +% 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 6.6.2, p. I-186. +% Original source in file "boxes.TEX", starting line 1662. +\wlog{L: "leadline.tip" ["boxes.TEX," l. 1662, p. I-186]}% +% This file DOES belong to format "texip." +\def\RightLeaderLine #1{% + \line{\leaders\hrule\hss #1}% +} + +\def\LeftLeaderLine #1{% + \line{#1\leaders\hrule\hss}% +} + +\def\CenterLeaderLine #1{% + \line{\leaders\hrule\hss #1\leaders\hrule\hss}% +} diff --git a/info/examples/tex-in-practice/leftdm.tip b/info/examples/tex-in-practice/leftdm.tip new file mode 100644 index 0000000000..1f09928a53 --- /dev/null +++ b/info/examples/tex-in-practice/leftdm.tip @@ -0,0 +1,27 @@ +% 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 14.9.3, p. II-218. +% Original source in file "math2.TEX", starting line 1656. +\wlog{L: "leftdm.tip" ["math2.TEX," l. 1656, p. II-218]}% +% This file DOES belong to format "texip." +\def\LeftDisplay #1$${% + \leftline{% + \hskip 20pt + $ + \displaystyle {#1} + $% + }% + $$ +} diff --git a/info/examples/tex-in-practice/legdate.tip b/info/examples/tex-in-practice/legdate.tip new file mode 100644 index 0000000000..336c8ecf27 --- /dev/null +++ b/info/examples/tex-in-practice/legdate.tip @@ -0,0 +1,32 @@ +% 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 26.8, p. III-367. +% Original source in file "macros6.TEX", starting line 495. +\wlog{L: "legdate.tip" ["macros6.TEX," l. 495, p. III-367]}% +% This file DOES belong to format "texip." +\InputD{legmonth.tip} +\InputD{legyear.tip} +\InputD{rangetst.tip} +\InputD{ndaysmo.tip} +\catcode`\@ = 11 +\newcount\@TempCheckDate +\def\CheckDate #1#2#3{% + \CheckLegalYear{#1}% + \CheckLegalMonth{#2}% + \NumberOfDaysInMonth{#1}{#2}{\@TempCheckDate}% + \CheckRange{#3}{1}{\@TempCheckDate}% + {\string\CheckDate: provided date #1-#2-#3 is illegal.}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/legmonth.tip b/info/examples/tex-in-practice/legmonth.tip new file mode 100644 index 0000000000..ee7776bf67 --- /dev/null +++ b/info/examples/tex-in-practice/legmonth.tip @@ -0,0 +1,23 @@ +% 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 26.6, p. III-365. +% Original source in file "macros6.TEX", starting line 379. +\wlog{L: "legmonth.tip" ["macros6.TEX," l. 379, p. III-365]}% +% This file DOES belong to format "texip." +\InputD{rangetst.tip} +\def\CheckLegalMonth #1{% + \CheckRange{#1}{1}{12}% + {\string\CheckLegalMonth: month #1 out of range.}% +} diff --git a/info/examples/tex-in-practice/legyear.tip b/info/examples/tex-in-practice/legyear.tip new file mode 100644 index 0000000000..c952e42f79 --- /dev/null +++ b/info/examples/tex-in-practice/legyear.tip @@ -0,0 +1,26 @@ +% 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 26.5, p. III-365. +% Original source in file "macros6.TEX", starting line 362. +\wlog{L: "legyear.tip" ["macros6.TEX," l. 362, p. III-365]}% +% This file DOES belong to format "texip." +\InputD{earliest.tip} +\def\CheckLegalYear #1{% + \ifnum #1 < \EarliestYearDate + \errmessage{\string\CheckLegalYear: year #1 + < \the\EarliestYearDate\space + encountered, illegal.}% + \fi +} diff --git a/info/examples/tex-in-practice/lfondem.tip b/info/examples/tex-in-practice/lfondem.tip new file mode 100644 index 0000000000..eeb1039e08 --- /dev/null +++ b/info/examples/tex-in-practice/lfondem.tip @@ -0,0 +1,26 @@ +% 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 16.1.2.2, p. II-265. +% Original source in file "fonts2.TEX", starting line 121. +\wlog{L: "lfondem.tip" ["fonts2.TEX," l. 121, p. II-265]}% +% This file DOES belong to format "texip." +\def\LoadFontOnDemand #1#2{% + \def #1{% + \global\font#1 = #2\relax + #1% + \message{\string\LoadFontOnDemand: font \string#1 + (#2) loaded on demand.}% + }% +} diff --git a/info/examples/tex-in-practice/linesr.tip b/info/examples/tex-in-practice/linesr.tip new file mode 100644 index 0000000000..53ff80db27 --- /dev/null +++ b/info/examples/tex-in-practice/linesr.tip @@ -0,0 +1,23 @@ +% 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 9.3.13, p. I-343. +% Original source in file "boxit.TEX", starting line 1558. +\wlog{L: "linesr.tip" ["boxit.TEX," l. 1558, p. I-343]}% +% This file DOES belong to format "texip." +\InputD{boxing7.tip} +\def\LineR{\HboxR to \hsize} +\def\LeftlineR #1{\LineR{#1\hss}} +\def\RightlineR #1{\LineR{\hss#1}} +\def\CenterlineR #1{\LineR{\hss#1\hss}} diff --git a/info/examples/tex-in-practice/list-mac.tip b/info/examples/tex-in-practice/list-mac.tip new file mode 100644 index 0000000000..b8c1f6d72e --- /dev/null +++ b/info/examples/tex-in-practice/list-mac.tip @@ -0,0 +1,142 @@ +% 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 20.2.2, p. III-121. +% Original source in file "tokens3.TEX", starting line 263. +\wlog{L: "list-mac.tip" ["tokens3.TEX," l. 263, p. III-121]}% +% This file DOES belong to format "texip." +\InputD{compst.tip} +\catcode`\@ = 11 +\def\@EmptyRefList{} +\def\EmptyListConditional #1{% + TT\fi + \ifx#1\@EmptyRefList +} +\newtoks\@AppendTokOne +\newtoks\@AppendTokTwo +\def\LeftAppendElement #1#2{% + \edef\@AppendTemp{\noexpand\\{#2}}% + \@AppendTokOne = \expandafter{\@AppendTemp}% + \@AppendTokTwo = \expandafter{#1}% + \edef#1{\the\@AppendTokOne \the\@AppendTokTwo}% +} +\def\RightAppendElement #1#2{% + \edef\@AppendTemp{\noexpand\\{#2}}% + \@AppendTokOne = \expandafter{\@AppendTemp}% + \@AppendTokTwo = \expandafter{#1}% + \edef#1{\the\@AppendTokTwo \the\@AppendTokOne}% +} +\def\CarOfList #1#2{% + \def\@CarTemp \\##1##2\@EndCarList{\def#2{##1}}% + \expandafter\@CarTemp#1\@EndCarList +} +\def\CdrOfList #1#2{% + \def\@CdrTemp \\##1##2\@EndCdrList{\def#2{##2}}% + \expandafter\@CdrTemp#1\@EndCdrList +} +\def\DropFirstElementOfList #1{% + \if\EmptyListConditional{#1}% + \errhelp = {\string\DropFirstElementOfList: list is + empty. No first element to drop.}% + \errmessage{\string\DropFirstElementOfList: List + \noexpand#1 is empty.}% + \else + \def\@DropFirstElementTemp \\##1##2\@EndCdrList{\def#1{##2}}% + \expandafter\@DropFirstElementTemp#1\@EndCdrList + \fi +} +\def\CarCarOfList #1#2{% + \let\@CarCarOfListList = #1% + \DropFirstElementOfList{\@CarCarOfListList}% + \CarOfList{\@CarCarOfListList}{#2} +} +\def\ForEveryListElement #1#2{% + \let\@ForEveryList = #1% + \let\@ForEveryListElementMacro = #2% + \@ForEveryListElement +} +\def\@ForEveryListElement{% + \if\EmptyListConditional{\@ForEveryList}% + \let\@ForEveryListElementNext = \relax + \else + \CarOfList{\@ForEveryList}{\@ForEveryListElementElement}% + \@ForEveryListElementMacro{\@ForEveryListElementElement}% + \DropFirstElementOfList{\@ForEveryList}% + \let\@ForEveryListElementNext = \@ForEveryListElement + \fi + \@ForEveryListElementNext +} +\newif\if@MemberList +\def\MemberOfListConditional #1#2{% + TT\fi + \@MemberListfalse + {% + \def\\##1{% + \if\StringsEqualConditional{#2}{##1}% + \global\@MemberListtrue + \fi + }% + #1% + }% + \if@MemberList +} +\def\ReverseList #1#2{% + \def\@ReverseListOut{}% + \ForEveryListElement{#1}{\@ReverseList}% + \let#2 = \@ReverseListOut +} +\def\@ReverseList #1{% + \LeftAppendElement{\@ReverseListOut}{#1}% +} +\def\LastElementOfList #1#2{% + \ReverseList{#1}{#1}% + \CarOfList{#1}{#2}% + \ReverseList{#1}{#1}% +} +\def\DropLastElementOfList #1{% + \ReverseList{#1}{#1}% + \DropFirstElementOfList{#1}% + \ReverseList{#1}{#1}% +} +\def\NumberOfListElements #1#2{% + \let\@NumberOfListElementsList = #1% + \def\@NumberOfListElementsCount{#2}% + \@NumberOfListElementsCount = 0 + \@NumberOfListElements +} +\def\@NumberOfListElements{% + \if\EmptyListConditional{\@NumberOfListElementsList}% + \let\@NumberOfListElementsNext = \relax + \else + \advance\@NumberOfListElementsCount by 1 + \DropFirstElementOfList{\@NumberOfListElementsList}% + \let\@NumberOfListElementsNext = \@NumberOfListElements + \fi + \@NumberOfListElementsNext +} +\newcount\@NumberOfListElCCount +\def\NumberOfListElementsNumConditional #1{% + 0=0\fi + \NumberOfListElements{#1}{\@NumberOfListElCCount}% + \ifnum\@NumberOfListElCCount +} +\def\CombineTwoLists #1#2#3{% + \def\@CombineTwoLists{\def\@CombineTwoListsResult}% + \expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter + \expandafter\@CombineTwoLists + \expandafter\expandafter\expandafter{\expandafter#1#2}% + \let #3 = \@CombineTwoListsResult +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/loadedla.tip b/info/examples/tex-in-practice/loadedla.tip new file mode 100644 index 0000000000..295d0a66b7 --- /dev/null +++ b/info/examples/tex-in-practice/loadedla.tip @@ -0,0 +1,23 @@ +% 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 21.5.6, p. III-174. +% Original source in file "macros1.TEX", starting line 1267. +\wlog{L: "loadedla.tip" ["macros1.TEX," l. 1267, p. III-174]}% +% This file DOES belong to format "texip." +\InputD{testdef.tip} +\def\FormatIsLaTeXConditional{% + TT\fi + \if\DefinedConditional{\documentstyle}% +} diff --git a/info/examples/tex-in-practice/lpagetg.tip b/info/examples/tex-in-practice/lpagetg.tip new file mode 100644 index 0000000000..da5b968623 --- /dev/null +++ b/info/examples/tex-in-practice/lpagetg.tip @@ -0,0 +1,23 @@ +% 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 32.2.3, p. IV-5. +% Original source in file "page.TEX", starting line 298. +\wlog{L: "lpagetg.tip" ["page.TEX," l. 298, p. IV-5]}% +% This file DOES belong to format "texip." +\def\LogPageTG #1{% + \wlog{\string\LogPageTG [#1]:}% + \wlog{\string\pagetotal: \the\pagetotal, + \string\pagegoal: \the\pagegoal}% +} diff --git a/info/examples/tex-in-practice/macvntip.tex b/info/examples/tex-in-practice/macvntip.tex new file mode 100644 index 0000000000..b8c62165b9 --- /dev/null +++ b/info/examples/tex-in-practice/macvntip.tex @@ -0,0 +1,296 @@ +% This file contains the version numbers of the current release +% of the TeXIP macros. +& absdimen.tip & 1.0& reg2.TEX & 614\cr +& absval.tip & 1.0& reg1.TEX & 1531\cr +& acronym.tip & 1.0& macros2.TEX & 1052\cr +& advtabst.tip & 1.0& table3.TEX & 205\cr +& aevpar.tip & 1.0& macros5.TEX & 1838\cr +& alldate.tip & 1.0& macros6.TEX & 1805\cr +& allocat.tip & 1.0& reg2.TEX & 1748\cr +& alwbase.tip & 1.0& vboxes1.TEX & 1305\cr +& angt.tip & 1.0& math1.TEX & 931\cr +& arbday.tip & 1.0& macros6.TEX & 1170\cr +& arraymac.tip & 1.0& tokens3.TEX & 1467\cr +& atpos.tip & 1.0& o1.TEX & 875\cr +& be-env.tip & 1.0& macros7.TEX & 1908\cr +& bletpar.tip & 1.0& par2.TEX & 1957\cr +& box-bb.tip & 1.0& boxit.TEX & 503\cr +& box-bul.tip & 1.0& boxit.TEX & 489\cr +& box-larg.tip & 1.0& vboxes2.TEX & 1255\cr +& box-mac.tip & 1.0& boxit.TEX & 1583\cr +& box-thck.tip & 1.0& boxit.TEX & 414\cr +& box-zero.tip & 1.0& reg2.TEX & 1360\cr +& boxing1.tip & 1.0& boxit.TEX & 343\cr +& boxing2.tip & 1.0& boxit.TEX & 433\cr +& boxing3.tip & 1.0& boxit.TEX & 536\cr +& boxing4.tip & 1.0& boxit.TEX & 622\cr +& boxing5.tip & 1.0& boxit.TEX & 940\cr +& boxing6.tip & 1.0& boxit.TEX & 1051\cr +& boxing7.tip & 1.0& boxit.TEX & 1362\cr +& boxrelim.tip & 1.0& boxit.TEX & 1545\cr +& boxrqu.tip & 1.0& macros7.TEX & 1595\cr +& centerlp.tip & 1.0& boxes.TEX & 1888\cr +& centerng.tip & 1.0& par2.TEX & 2725\cr +& centpar.tip & 1.0& macros5.TEX & 963\cr +& charbo.tip & 1.0& fonts1.TEX & 313\cr +& chboxd.tip & 1.0& reg2.TEX & 1234\cr +& clearb.tip & 1.0& reg2.TEX & 1028\cr +& collect.tip & 1.0& macros2.TEX & 259\cr +& coltok.tip & 1.0& tokens3.TEX & 113\cr +& comfiles.tip & 1.0& io2.TEX & 2061\cr +& compst.tip & 1.0& macros5.TEX & 1077\cr +& compstca.tip & 1.0& macros5.TEX & 1249\cr +& condltr.tip & 1.0& macros5.TEX & 2085\cr +& conval.tip & 1.0& tokens3.TEX & 861\cr +& copydate.tip & 1.0& macros6.TEX & 122\cr +& counters.tip & 1.0& reg1.TEX & 2546\cr +& countl.tip & 1.0& tokens1.TEX & 1383\cr +& cref-1.tip & 1.0& tokens2.TEX & 1101\cr +& cref-2.tip & 1.0& tokens2.TEX & 1134\cr +& cref-2a.tip & 1.0& tokens2.TEX & 1447\cr +& cref-3.tip & 1.0& tokens2.TEX & 1225\cr +& cref-3a.tip & 1.0& tokens2.TEX & 1420\cr +& cref-4.tip & 1.0& tokens2.TEX & 1259\cr +& cref-5.tip & 1.0& tokens2.TEX & 1535\cr +& crline.tip & 1.0& boxes.TEX & 2571\cr +& csar.tip & 1.0& tokens2.TEX & 889\cr +& cssprint.tip & 1.0& macros1.TEX & 822\cr +& cstostr.tip & 1.0& tokens2.TEX & 119\cr +& cstostrc.tip & 1.0& tokens2.TEX & 182\cr +& ctestcs.tip & 1.0& macros5.TEX & 1334\cr +& dateofw.tip & 1.0& macros6.TEX & 216\cr +& dblarg.tip & 1.0& macros3.TEX & 1163\cr +& defauarg.tip & 1.0& macros3.TEX & 1597\cr +& dicentry.tip & 1.0& o1.TEX & 1058\cr +& doloop.tip & 1.0& macros7.TEX & 910\cr +& droppre.tip & 1.0& macros4.TEX & 1256\cr +& droppt.tip & 1.0& tokens1.TEX & 777\cr +& dumppars.tip & 1.0& reg2.TEX & 1889\cr +& earliest.tip & 1.0& macros6.TEX & 75\cr +& emprubox.tip & 1.0& boxit.TEX & 1522\cr +& emptybox.tip & 1.0& reg2.TEX & 1301\cr +& endn-mac.tip & 1.0& io2.TEX & 1530\cr +& endrec.tip & 1.0& macros7.TEX & 149\cr +& enum.tip & 1.0& macros7.TEX & 1265\cr +& enumlist.tip & 1.0& par2.TEX & 1342\cr +& errmess.tip & 1.0& macros7.TEX & 2185\cr +& evenprin.tip & 1.0& macros5.TEX & 116\cr +& everyequ.tip & 1.0& math2.TEX & 1922\cr +& everypar.tip & 1.0& par1.TEX & 1765\cr +& evhvbox.tip & 1.0& boxes.TEX & 2698\cr +& ex-out2.tip & 1.0& o4.TEX & 233\cr +& fexist.tip & 1.0& io1.TEX & 951\cr +& figbox.tip & 1.0& boxit.TEX & 387\cr +& figinpar.tip & 1.0& par3.TEX & 636\cr +& firstldi.tip & 1.0& par3.TEX & 1403\cr +& fo-char.tip & 1.0& fonts1.TEX & 367\cr +& font-cpp.tip & 1.0& fonts2.TEX & 1074\cr +& fontsam.tip & 1.0& fonts1.TEX & 1458\cr +& fonttab.tip & 1.0& fonts2.TEX & 2211\cr +& formline.tip & 1.0& boxes.TEX & 2493\cr +& fotable.tip & 1.0& fonts2.TEX & 2032\cr +& fotok.tip & 1.0& tokens3.TEX & 173\cr +& frac.tip & 1.0& math1.TEX & 1349\cr +& freespac.tip & 1.0& page.TEX & 398\cr +& fsized.tip & 1.0& fonts2.TEX & 421\cr +& funospac.tip & 1.0& macros3.TEX & 1805\cr +& futlet.tip & 1.0& macros3.TEX & 1060\cr +& futpar.tip & 1.0& macros3.TEX & 1908\cr +& genaeol.tip & 1.0& macros1.TEX & 2254\cr +& genhead.tip & 1.0& par2.TEX & 2444\cr +& genostr.tip & 1.0& io1.TEX & 1380\cr +& getnuml.tip & 1.0& par3.TEX & 1184\cr +& gobble.tip & 1.0& macros1.TEX & 1846\cr +& gobblemo.tip & 1.0& macros1.TEX & 2429\cr +& graphmac.tip & 1.0& boxit.TEX & 205\cr +& hex.tip & 1.0& macros7.TEX & 447\cr +& ifeven.tip & 1.0& macros5.TEX & 1950\cr +& ifx-def.tip & 1.0& macros5.TEX & 1622\cr +& ifx-mac.tip & 1.0& macros5.TEX & 1543\cr +& imodn.tip & 1.0& reg1.TEX & 1597\cr +& index-or.tip & 1.0& o3.TEX & 134\cr +& input-at.tip & 1.0& io1.TEX & 780\cr +& inputc.tip & 1.0& io1.TEX & 1013\cr +& inputd.tip & 1.1& io1.TEX & 1150\cr +& inputdl.tip & 1.0& io1.TEX & 1199\cr +& isleapyr.tip & 1.0& macros6.TEX & 584\cr +& isprefix.tip & 1.0& macros4.TEX & 1172\cr +& issuffix.tip & 1.0& macros4.TEX & 1327\cr +& itemizel.tip & 1.0& par2.TEX & 1515\cr +& itemltw.tip & 1.0& par2.TEX & 690\cr +& itemplan.tip & 1.0& par2.TEX & 2053\cr +& ivpyr.tip & 1.0& macros7.TEX & 1147\cr +& largdp.tip & 1.0& reg1.TEX & 1790\cr +& lbpar.tip & 1.0& par1.TEX & 2221\cr +& lc0to9.tip & 1.0& macros2.TEX & 757\cr +& leadingz.tip & 1.0& reg1.TEX & 1140\cr +& leadline.tip & 1.0& boxes.TEX & 1677\cr +& leftdm.tip & 1.0& math2.TEX & 1678\cr +& legdate.tip & 1.0& macros6.TEX & 515\cr +& legmonth.tip & 1.0& macros6.TEX & 385\cr +& legyear.tip & 1.0& macros6.TEX & 371\cr +& lfondem.tip & 1.0& fonts2.TEX & 130\cr +& linesr.tip & 1.0& boxit.TEX & 1564\cr +& list-mac.tip & 1.0& tokens3.TEX & 660\cr +& loadedla.tip & 1.0& macros1.TEX & 1275\cr +& lpagetg.tip & 1.0& page.TEX & 304\cr +& mathenv.tip & 1.0& math1.TEX & 292\cr +& maxmindi.tip & 1.0& macros5.TEX & 936\cr +& mocal.tip & 1.0& macros6.TEX & 1463\cr +& mocal3.tip & 1.0& macros6.TEX & 1517\cr +& modonead.tip & 1.0& reg1.TEX & 1247\cr +& mondofda.tip & 1.0& macros6.TEX & 1282\cr +& mrdel.tip & 1.0& table4.TEX & 315\cr +& mspaces.tip & 1.0& macros1.TEX & 798\cr +& namedef.tip & 1.0& tokens2.TEX & 542\cr +& nathd.tip & 1.0& vboxes2.TEX & 205\cr +& nctest.tip & 1.0& macros3.TEX & 1365\cr +& ndaysmo.tip & 1.0& macros6.TEX & 452\cr +& new-midi.tip & 1.0& o2.TEX & 1652\cr +& newdef.tip & 1.0& macros1.TEX & 1334\cr +& newfont.tip & 1.0& fonts2.TEX & 62\cr +& newinput.tip & 1.0& macros3.TEX & 1692\cr +& newoutfr.tip & 1.0& reg2.TEX & 1630\cr +& newpage.tip & 1.0& page.TEX & 1009\cr +& nextday.tip & 1.0& macros6.TEX & 708\cr +& nextmon.tip & 1.0& macros6.TEX & 982\cr +& nlm.tip & 1.0& io2.TEX & 1708\cr +& norpweek.tip & 1.1& macros6.TEX & 898\cr +& npright.tip & 1.0& ointro.TEX & 551\cr +& ntotext.tip & 1.0& reg1.TEX & 2022\cr +& numcond.tip & 1.0& macros5.TEX & 2048\cr +& numdyr.tip & 1.0& macros6.TEX & 637\cr +& numwhile.tip & 1.0& macros7.TEX & 554\cr +& oblines.tip & 1.0& tokens1.TEX & 1225\cr +& obspaces.tip & 1.0& tokens1.TEX & 1100\cr +& oct.tip & 1.0& macros7.TEX & 481\cr +& oddprin.tip & 1.0& macros5.TEX & 145\cr +& oeprin.tip & 1.0& macros5.TEX & 83\cr +& ola-1p.tip & 1.0& o3.TEX & 805\cr +& ola-2p.tip & 1.0& o3.TEX & 645\cr +& ola-comm.tip & 1.0& o3.TEX & 437\cr +& op-endin.tip & 1.0& o2.TEX & 1496\cr +& op-pagec.tip & 1.0& o2.TEX & 1422\cr +& optargx.tip & 1.0& macros3.TEX & 1270\cr +& orcards.tip & 1.0& o1.TEX & 723\cr +& ordbrule.tip & 1.0& o1.TEX & 171\cr +& orsimple.tip & 1.0& o1.TEX & 423\cr +& out-ds.tip & 1.0& o4.TEX & 1230\cr +& out2-or.tip & 1.0& o4.TEX & 198\cr +& outf-rad.tip & 1.0& reg2.TEX & 1677\cr +& outpsel.tip & 1.0& o1.TEX & 121\cr +& par-fl.tip & 1.0& macros1.TEX & 2829\cr +& par-lab.tip & 1.0& par2.TEX & 568\cr +& par-lcl.tip & 1.0& par2.TEX & 777\cr +& parin.tip & 1.0& par1.TEX & 1847\cr +& part-cr.tip & 1.0& pp1.TEX & 1808\cr +& part-lab.tip & 1.0& pp1.TEX & 2364\cr +& part-mac.tip & 1.0& pp1.TEX & 736\cr +& parv-1.tip & 1.0& par2.TEX & 1143\cr +& pdollars.tip & 1.0& macros5.TEX & 880\cr +& pickfs.tip & 1.0& macros4.TEX & 257\cr +& pm-4.tip & 1.0& pp1.TEX & 1438\cr +& pm-auxco.tip & 1.0& pp1.TEX & 1491\cr +& pm-bas.tip & 1.0& pp1.TEX & 817\cr +& pm-main.tip & 1.0& pp1.TEX & 1067\cr +& pm-pagen.tip & 1.0& pp1.TEX & 1549\cr +& pm-wrc.tip & 1.0& pp1.TEX & 1113\cr +& pmtime.tip & 1.0& reg1.TEX & 1175\cr +& poorbold.tip & 1.0& boxes.TEX & 1479\cr +& pralph.tip & 1.0& reg1.TEX & 1039\cr +& prevday.tip & 1.0& macros6.TEX & 806\cr +& prevmon.tip & 1.0& macros6.TEX & 1059\cr +& prhyph.tip & 1.0& par3.TEX & 2030\cr +& primmark.tip & 1.0& vboxes1.TEX & 430\cr +& printast.tip & 1.0& macros7.TEX & 87\cr +& printco.tip & 1.0& reg1.TEX & 2171\cr +& printreg.tip & 1.0& macros1.TEX & 760\cr +& prmode.tip & 1.0& macros5.TEX & 1768\cr +& prmonth.tip & 1.0& macros6.TEX & 323\cr +& prot.tip & 1.0& io2.TEX & 1893\cr +& rangetst.tip & 1.0& macros5.TEX & 695\cr +& rboxt.tip & 1.0& reg2.TEX & 1061\cr +& readnu.tip & 1.0& io1.TEX & 528\cr +& redtost.tip & 1.0& vboxes1.TEX & 1747\cr +& remtlsp.tip & 1.0& macros4.TEX & 1517\cr +& restring.tip & 1.0& macros4.TEX & 942\cr +& reverses.tip & 1.0& macros4.TEX & 1054\cr +& rh-dict.tip & 1.0& o1.TEX & 1093\cr +& robust.tip & 1.0& io1.TEX & 1774\cr +& samplepa.tip & 1.0& macros7.TEX & 356\cr +& setstrut.tip & 1.0& vboxes1.TEX & 1726\cr +& shboxes.tip & 1.0& reg2.TEX & 1563\cr +& shiftudb.tip & 1.0& vboxes1.TEX & 2429\cr +& showpll.tip & 1.0& o2.TEX & 1771\cr +& showx.tip & 1.0& macros1.TEX & 1434\cr +& sigline.tip & 1.0& boxes.TEX & 2419\cr +& spacefac.tip & 1.0& fonts2.TEX & 973\cr +& splitpar.tip & 1.0& vboxes2.TEX & 1169\cr +& ssmath.tip & 1.0& math2.TEX & 972\cr +& strleng.tip & 1.0& fonts1.TEX & 560\cr +& stswitch.tip & 1.0& macros5.TEX & 1479\cr +& substf.tip & 1.0& fonts2.TEX & 182\cr +& sumhd.tip & 1.0& reg2.TEX & 1251\cr +& swapbox.tip & 1.0& reg2.TEX & 1008\cr +& tabcent.tip & 1.0& table3.TEX & 1679\cr +& tabswb.tip & 1.1& table1.TEX & 705\cr +& testdef.tip & 1.0& macros1.TEX & 1206\cr +& testsubs.tip & 1.0& macros4.TEX & 726\cr +& toc-mac.tip & 1.0& par3.TEX & 904\cr +& today.tip & 1.0& macros1.TEX & 721\cr +& todayx.tip & 1.0& macros6.TEX & 1241\cr +& topinfix.tip & 1.0& o2.TEX & 1292\cr +& ts-brefm.tip & 1.0& macros1.TEX & 885\cr +& ts-bul.tip & 1.0& macros1.TEX & 868\cr +& ts-chap.tip & 1.0& pp2.TEX & 838\cr +& ts-chhe.tip & 1.0& vboxes2.TEX & 1378\cr +& ts-crm.tip & 1.0& pp2.TEX & 1348\cr +& ts-dime1.tip & 1.0& pp2.TEX & 606\cr +& ts-dime2.tip & 1.0& pp2.TEX & 652\cr +& ts-dime3.tip & 1.0& pp2.TEX & 661\cr +& ts-enum.tip & 1.0& par2.TEX & 1452\cr +& ts-float.tip & 1.0& o2.TEX & 2365\cr +& ts-fonts.tip & 1.0& fonts2.TEX & 608\cr +& ts-foot.tip & 1.0& o2.TEX & 859\cr +& ts-gnot.tip & 1.0& pp2.TEX & 932\cr +& ts-hall.tip & 1.0& pp2.TEX & 673\cr +& ts-hmore.tip & 1.0& pp2.TEX & 1104\cr +& ts-hyph.tip & 1.0& par3.TEX & 2083\cr +& ts-itize.tip & 1.0& par2.TEX & 1560\cr +& ts-lazy.tip & 1.0& macros1.TEX & 856\cr +& ts-loft.tip & 1.0& par3.TEX & 1130\cr +& ts-logo.tip & 1.0& macros1.TEX & 843\cr +& ts-main.tip & 1.0& pp2.TEX & 564\cr +& ts-outpu.tip & 1.0& o2.TEX & 2149\cr +& ts-page2.tip & 1.0& pp1.TEX & 2146\cr +& ts-pager.tip & 1.0& pp1.TEX & 1861\cr +& ts-robst.tip & 1.0& pp1.TEX & 1475\cr +& ts-set.tip & 1.0& pp2.TEX & 1386\cr +& ts-shead.tip & 1.0& pp2.TEX & 1063\cr +& ts-subst.tip & 1.0& fonts2.TEX & 257\cr +& ts-toc.tip & 1.0& par3.TEX & 1087\cr +& ts-verb.tip & 1.1& tokens1.TEX & 3416\cr +& ts-verb1.tip & 1.0& tokens1.TEX & 3272\cr +& ts-verb2.tip & 1.0& tokens1.TEX & 3300\cr +& ts-vers.tip & 1.0& pp2.TEX & 1356\cr +& ts-vol.tip & 1.0& pp2.TEX & 707\cr +& ts-wind.tip & 1.0& io2.TEX & 593\cr +& ts-writc.tip & 1.0& io1.TEX & 1412\cr +& valdecpo.tip & 1.0& reg1.TEX & 1693\cr +& vcentx.tip & 1.0& vboxes1.TEX & 2215\cr +& verb-bas.tip & 1.0& tokens1.TEX & 1867\cr +& verb-mac.tip & 1.0& tokens1.TEX & 2498\cr +& verb.tip & 1.0& tokens1.TEX & 2128\cr +& verbdisp.tip & 1.0& tokens1.TEX & 3210\cr +& verbwr.tip & 1.0& io2.TEX & 1178\cr +& vsmax.tip & 1.0& vboxes2.TEX & 1697\cr +& vtbox.tip & 1.0& vboxes2.TEX & 281\cr +& vwrt-mac.tip & 1.0& io2.TEX & 1333\cr +& weekofyr.tip & 1.1& macros6.TEX & 1727\cr +& widestc.tip & 1.0& macros7.TEX & 983\cr +& wl-parcp.tip & 1.0& par1.TEX & 2371\cr +& wrtoc.tip & 1.0& io2.TEX & 789\cr +& wrverbar.tip & 1.0& io1.TEX & 1957\cr +& wtolist.tip & 1.0& tokens3.TEX & 953\cr +& x-parsh.tip & 1.0& par3.TEX & 272\cr +& yearcal.tip & 1.0& macros6.TEX & 1606\cr diff --git a/info/examples/tex-in-practice/mathenv.tip b/info/examples/tex-in-practice/mathenv.tip new file mode 100644 index 0000000000..098d040c40 --- /dev/null +++ b/info/examples/tex-in-practice/mathenv.tip @@ -0,0 +1,77 @@ +% 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 13.1.4, p. II-158. +% Original source in file "math1.TEX", starting line 211. +\wlog{L: "mathenv.tip" ["math1.TEX," l. 211, p. II-158]}% +% This file DOES belong to format "texip." +\def\BeginMath{% + \ifmath + \ifinner + \errmessage{\string\BeginMath: already in math + mode, \string\BeginMath ignored.}% + \else + \errmessage{\string\BeginMath: in display math + mode, terminated and math mode started.}% + $$ + $ + \fi + \else + $\relax + \fi +} +\def\EndMath{% + \ifmath + \ifinner + $% + \else + \errmessage{\string\EndMath: you are in display math + mode! Should have used \string\EndDisplayMath!}% + $$ + \fi + \else + \errmessage{\string\EndMath: already in math + mode, \string\EndMath ignored.}% + \fi +} +\def\BeginDisplayMath{% + \ifmath + \ifinner + \errmessage{\string\BeginDisplayMath: in inline + math mode, terminate it, start display math.}% + $ + $$ + \else + \errmessage{\string\BeginDisplayMath: already in math + mode, \string\BeginDisplayMath ignored.}% + \fi + \else + $$ + \fi +} +\def\EndDisplayMath{% + \ifmath + \ifinner + \errmessage{\string\EndDisplayMath: inline + math mode in effect, did you intend to + write \string\EndMath?}% + $% + \else + $$ + \fi + \else + \errmessage{\string\EndDisplayMath: not in math + mode, \string\EndDisplayMath ignored.}% + \fi +} diff --git a/info/examples/tex-in-practice/maxmindi.tip b/info/examples/tex-in-practice/maxmindi.tip new file mode 100644 index 0000000000..239222ccd5 --- /dev/null +++ b/info/examples/tex-in-practice/maxmindi.tip @@ -0,0 +1,32 @@ +% 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 25.1.14, p. III-332. +% Original source in file "macros5.TEX", starting line 921. +\wlog{L: "maxmindi.tip" ["macros5.TEX," l. 921, p. III-332]}% +% This file DOES belong to format "texip." +\def\MaxDimen #1#2#3#4{% + \ifdim #2<#3\relax + #4#1 = #3\relax + \else + #4#1 = #2\relax + \fi +} +\def\MinDimen #1#2#3#4{% + \ifdim #2<#3\relax + #4#1 = #2\relax + \else + #4#1 = #3\relax + \fi +} diff --git a/info/examples/tex-in-practice/mocal.tip b/info/examples/tex-in-practice/mocal.tip new file mode 100644 index 0000000000..240ceb9c9b --- /dev/null +++ b/info/examples/tex-in-practice/mocal.tip @@ -0,0 +1,90 @@ +% 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 26.19, p. III-385. +% Original source in file "macros6.TEX", starting line 1327. +\wlog{L: "mocal.tip" ["macros6.TEX," l. 1327, p. III-385]}% +% This file DOES belong to format "texip." +\InputD{dateofw.tip} +\InputD{doloop.tip} +\InputD{arbday.tip} +\InputD{nextday.tip} +\InputD{numdyr.tip} +\InputD{prmonth.tip} +\catcode`\@ = 11 +\newcount\@InitialDayOfMonth +\newcount\@MCDays +\newcount\@MonthlyCalendarBodyTemp +\def\MonthlyCalendarBody #1#2#3{% + {% + \CheckDate{#1}{#2}{1}% + \ArbitraryDayOfWeek{#1}% + {#2}{1}{\@InitialDayOfMonth}% + \gdef #3{}% + \DoLoop{\@MonthlyCalendarBodyTemp}% + {1}{1}{\@InitialDayOfMonth}% + {\xdef#3{#3&}} + \NumberOfDaysInMonth{#1}{#2}{\@MCDays}% + \DoLoop{\@MonthlyCalendarBodyTemp}{1}{1}{\@MCDays}{% + \xdef#3{#3\the\@MonthlyCalendarBodyTemp}% + \ifnum\@InitialDayOfMonth = \Saturday + \xdef#3{#3\cr}% + \else + \xdef#3{#3&}% + \fi + \advance\@InitialDayOfMonth by 1 + \IModN{\@InitialDayOfMonth}{7}{\@InitialDayOfMonth}% + }% + }% + \xdef#3{#3\crcr}% +} +\newcount\@MonthlyCalendarCount +\def\MonthlyCalendar #1#2#3{% + {% + \MonthlyCalendarBody{#1}{#2}{\TableBody}% + \vtop{ + \hsize = #3\relax + \ProvideMonth{#2}{0}{\MonthNameTemp}% + \@MonthlyCalendarCount = #1\relax + \centerline{\MyStrut\MonthNameTemp\space + \the\@MonthlyCalendarCount}% + \smallskip + \hrule + \smallskip + \tabskip = 0pt + \halign to \hsize{ + % So + \hfil##\relax \tabskip = 0pt plus 1fil& + \hfil##& % Mo + \hfil##& % Tu + \hfil##& % We + \hfil##& % Th + \hfil##& % Fr + \hfil##\relax \tabskip = 0pt + \cr + \omit\hfil So\hfil& + \omit\hfil Mo\hfil& + \omit\hfil Tu\hfil& + \omit\hfil We\hfil& + \omit\hfil Th\hfil& + \omit\hfil Fr\hfil& + \omit\hfil Sa\hfil\cr + \TableBody + }% + \smallskip + \hrule + }% + }% +}% +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/mocal3.tip b/info/examples/tex-in-practice/mocal3.tip new file mode 100644 index 0000000000..67dc386869 --- /dev/null +++ b/info/examples/tex-in-practice/mocal3.tip @@ -0,0 +1,32 @@ +% 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 26.20, p. III-389. +% Original source in file "macros6.TEX", starting line 1496. +\wlog{L: "mocal3.tip" ["macros6.TEX," l. 1496, p. III-389]}% +% This file DOES belong to format "texip." +\InputD{mocal.tip} +\def\ThreeMonthlyCalendars #1#2#3{% + \hbox{% + \count0 = #1 + \count1 = #2 + \MonthlyCalendar{\count0}{\count1}{#3}% + \hskip 10pt + \NextMonth{\count0}{\count1}{\count0}{\count1}% + \MonthlyCalendar{\count0}{\count1}{#3}% + \NextMonth{\count0}{\count1}{\count0}{\count1}% + \hskip 10pt + \MonthlyCalendar{\count0}{\count1}{#3}% + } +} diff --git a/info/examples/tex-in-practice/modonead.tip b/info/examples/tex-in-practice/modonead.tip new file mode 100644 index 0000000000..faf86ca38b --- /dev/null +++ b/info/examples/tex-in-practice/modonead.tip @@ -0,0 +1,26 @@ +% 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 3.3.9, p. I-52. +% Original source in file "reg1.TEX", starting line 1227. +\wlog{L: "modonead.tip" ["reg1.TEX," l. 1227, p. I-52]}% +% This file DOES belong to format "texip." +\def\ModuloOneAdvanceNumCond #1#2{% + 0=0\fi + \global\advance #1 by 1 + \ifnum #1 = #2\relax + \global #1 = 0 + \fi + \ifnum #1% +} diff --git a/info/examples/tex-in-practice/mondofda.tip b/info/examples/tex-in-practice/mondofda.tip new file mode 100644 index 0000000000..e6fd7c0fa3 --- /dev/null +++ b/info/examples/tex-in-practice/mondofda.tip @@ -0,0 +1,39 @@ +% 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 26.18, p. III-384. +% Original source in file "macros6.TEX", starting line 1256. +\wlog{L: "mondofda.tip" ["macros6.TEX," l. 1256, p. III-384]}% +% This file DOES belong to format "texip." +\InputD{arbday.tip} +\InputD{prevday.tip} +\InputD{doloop.tip} +\catcode`\@ = 11 +\newcount\@ComputeMondayOfDateDay +\newcount\@ComputeMondayOfDateDayTwo +\def\ComputeMondayOfDate #1#2#3#4#5#6{% + #4 = #1\relax + #5 = #2\relax + #6 = #3\relax + \ArbitraryDayOfWeek{#4}{#5}{#6}{\@ComputeMondayOfDateDay}% + \ifnum\@ComputeMondayOfDateDay = \Sunday + \@ComputeMondayOfDateDay = 6 + \else + \advance\@ComputeMondayOfDateDay by -1 + \fi + \DoLoop{\@ComputeMondayOfDateDayTwo} + {\@ComputeMondayOfDateDay}{-1}{1}% + {\PrevDay{#4}{#5}{#6}{#4}{#5}{#6}}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/mrdel.tip b/info/examples/tex-in-practice/mrdel.tip new file mode 100644 index 0000000000..3069f2913e --- /dev/null +++ b/info/examples/tex-in-practice/mrdel.tip @@ -0,0 +1,54 @@ +% 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 41.2.3, p. IV-343. +% Original source in file "table4.TEX", starting line 260. +\wlog{L: "mrdel.tip" ["table4.TEX," l. 260, p. IV-343]}% +% This file DOES belong to format "texip." +\def\MultiRowDel #1#2{% + {% + \mathsurround = 0pt + \setbox 0 = \hbox{% + $% + \vcenter{% + \hbox{% + $ + \left#1% + \vrule height #2 depth #2 width 0pt + \right. + $% + }% + }% + $% + }% + \ht0 = 0pt + \dp0 = 0pt + \box 0 + }% +} +\def\MultiRowDel #1#2{% + {% + \mathsurround = 0pt + \setbox 0 = \hbox{% + $ + \left#1% + \vrule height #2 depth #2 width 0pt + \right. + $% + }% + \ht0 = 0pt + \dp0 = 0pt + \box 0 + }% +} diff --git a/info/examples/tex-in-practice/mspaces.tip b/info/examples/tex-in-practice/mspaces.tip new file mode 100644 index 0000000000..42d65e8a62 --- /dev/null +++ b/info/examples/tex-in-practice/mspaces.tip @@ -0,0 +1,20 @@ +% 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 21.4.7, p. III-165. +% Original source in file "macros1.TEX", starting line 795. +\wlog{L: "mspaces.tip" ["macros1.TEX," l. 795, p. III-165]}% +% This file DOES belong to format "texip." +\edef\FourSpaces{\space\space\space\space} +\edef\EightSpaces{\FourSpaces\FourSpaces} diff --git a/info/examples/tex-in-practice/namedef.tip b/info/examples/tex-in-practice/namedef.tip new file mode 100644 index 0000000000..bc3906875a --- /dev/null +++ b/info/examples/tex-in-practice/namedef.tip @@ -0,0 +1,64 @@ +% 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 19.1.8, p. III-73. +% Original source in file "tokens2.TEX", starting line 414. +\wlog{L: "namedef.tip" ["tokens2.TEX," l. 414, p. III-73]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\NameDef #1{% + \expandafter\def\csname #1\endcsname +} +\def\NameEdef #1{% + \expandafter\edef\csname #1\endcsname +} +\def\NameGdef #1{% + \expandafter\gdef\csname #1\endcsname +} +\def\NameXdef #1{% + \expandafter\xdef\csname #1\endcsname +} +\def\NameNewDef #1{% + \if\NameDefinedConditional{#1}% + \errmessage{\string\NameNewDef: "#1" already defined.}% + \fi + \NameDef{#1}% +} +\def\NameReDef #1{% + \if\NameDefinedConditional{#1}% + \else + \errmessage{\string\NameReDef: "#1" never defined before.}% + \fi + \NameDef{#1}% +} +\def\NameUse #1{\csname #1\endcsname} +\def\NameUseFlagUndefined #1{% + \if\NameDefinedConditional{#1}% + \NameUse{#1}% + \else + \errmessage{\string\NameUseFlagUndefined: token "#1" + is undefined.}% + \fi +} +\newif\if@NameDefined +\def\NameDefinedConditional #1{% + TT\fi + \expandafter\ifx\csname #1\endcsname \relax + \@NameDefinedfalse + \else + \@NameDefinedtrue + \fi + \if@NameDefined +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/nathd.tip b/info/examples/tex-in-practice/nathd.tip new file mode 100644 index 0000000000..1e849c65ba --- /dev/null +++ b/info/examples/tex-in-practice/nathd.tip @@ -0,0 +1,29 @@ +% 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 8.1.3, p. I-264. +% Original source in file "vboxes2.TEX", starting line 193. +\wlog{L: "nathd.tip" ["vboxes2.TEX," l. 193, p. I-264]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newbox\@NBox +\def\NaturalHeight #1#2{% + \setbox\@NBox = \vbox{\unvcopy #2} + #1 = \ht\@NBox +} +\def\NaturalDepth #1#2{% + \setbox\@NBox = \vbox{\unvcopy #2} + #1 = \dp\@NBox +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/nctest.tip b/info/examples/tex-in-practice/nctest.tip new file mode 100644 index 0000000000..8b6fe53c93 --- /dev/null +++ b/info/examples/tex-in-practice/nctest.tip @@ -0,0 +1,26 @@ +% 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 23.4.6.1, p. III-262. +% Original source in file "macros3.TEX", starting line 1335. +\wlog{L: "nctest.tip" ["macros3.TEX," l. 1335, p. III-262]}% +% This file DOES belong to format "texip." +\InputD{futlet.tip} +\catcode`\@ = 11 +\def\NextCharTest #1#2#3{% + \def\@NextCharTestYes #1{#2}% + \def\@NextCharTestNo {#3}% + \DoFutureLet{\ifx}{#1}{\@NextCharTestYes}{\@NextCharTestNo}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ndaysmo.tip b/info/examples/tex-in-practice/ndaysmo.tip new file mode 100644 index 0000000000..b45b693426 --- /dev/null +++ b/info/examples/tex-in-practice/ndaysmo.tip @@ -0,0 +1,54 @@ +% 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 26.7, p. III-366. +% Original source in file "macros6.TEX", starting line 401. +\wlog{L: "ndaysmo.tip" ["macros6.TEX," l. 401, p. III-366]}% +% This file DOES belong to format "texip." +\InputD{legyear.tip} +\InputD{legmonth.tip} +\InputD{isleapyr.tip} +\def\NumberOfDaysInMonth #1#2#3{% + \CheckLegalYear{#1}% + \CheckLegalMonth{#2}% + \ifcase #2\relax + \or + #3 = 31 + \or + #3 = 28 + \if\LeapYearConditional{#1}% + #3 = 29 + \fi + \or + #3 = 31 + \or + #3 = 30 + \or + #3 = 31 + \or + #3 = 30 + \or + #3 = 31 + \or + #3 = 31 + \or + #3 = 30 + \or + #3 = 31 + \or + #3 = 30 + \or + #3 = 31 + \fi +} diff --git a/info/examples/tex-in-practice/new-midi.tip b/info/examples/tex-in-practice/new-midi.tip new file mode 100644 index 0000000000..1cdea3e140 --- /dev/null +++ b/info/examples/tex-in-practice/new-midi.tip @@ -0,0 +1,53 @@ +% 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 35.7.2, p. IV-117. +% Original source in file "o2.TEX", starting line 1582. +\wlog{L: "new-midi.tip" ["o2.TEX," l. 1582, p. IV-117]}% +% This file DOES belong to format "texip." +\InputD{op-pagec.tip} +\InputD{op-endin.tip} +\catcode`\@ = 11 +\newdimen\@TopInsertSize +\@TopInsertSize = 0pt +\def\ReportTopInsertSize #1{% + \wlog{\string\@TopInsertSize: "#1"}% + \wlog{\EightSpaces The value of \noexpand\@TopInsertSize is + \the\@TopInsertSize}% +} +\def\MidInsertFix{% + \ReportTopInsertSize{\string\MidInsertFix}% + \ifdim\@TopInsertSize > 0pt + \@midfalse + \p@gefalse + \fi +} +\def\MidInsertFixPage{% + \ReportTopInsertSize{\string\MidInsertFixPage[1]}% + \global\advance\@TopInsertSize by \vsize + \ReportTopInsertSize{\string\MidInsertFixPage[2]}% +} +\def\MidInsertFixTop{% + \ReportTopInsertSize{\string\MidInsertFixTop[1]}% + \global\advance\@TopInsertSize by \ht0 + \global\advance\@TopInsertSize by \dp0 + \ReportTopInsertSize{\string\MidInsertFixTop[2]}% +} +\def\@UpdateTopInsertSize{% + \ReportTopInsertSize{\string\@UpdateTopInsertSize[1]}% + \global\advance\@TopInsertSize by -\ht\topins + \global\advance\@TopInsertSize by -\dp\topins + \ReportTopInsertSize{\string\@UpdateTopInsertSize[2]}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/newdef.tip b/info/examples/tex-in-practice/newdef.tip new file mode 100644 index 0000000000..28f8cb3081 --- /dev/null +++ b/info/examples/tex-in-practice/newdef.tip @@ -0,0 +1,43 @@ +% 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 21.5.7, p. III-175. +% Original source in file "macros1.TEX", starting line 1292. +\wlog{L: "newdef.tip" ["macros1.TEX," l. 1292, p. III-175]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\NewDef #1{% + \ifx #1\@UndefinedToken + \else + \errhelp = {\string\NewDef: + The name of the macro to be defined which you + provided is already in use. Use \show to find out + what the name is used for. The macro definition + will nevertheless be executed.}% + \errmessage{\string\NewDef: "\string#1" already defined.}% + \fi + \def #1% +} +\def\ReDef #1{% + \ifx #1\@UndefinedToken + \errhelp = {\string\ReDef: + The name of the macro to be redefined which you + provided has never been used before. The macro definition + will nevertheless be executed. }% + \errmessage{\string\ReDef: "\string#1" never defined + before.}% + \fi + \def #1% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/newfont.tip b/info/examples/tex-in-practice/newfont.tip new file mode 100644 index 0000000000..26788f48cf --- /dev/null +++ b/info/examples/tex-in-practice/newfont.tip @@ -0,0 +1,26 @@ +% 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 16.1.1, p. II-263. +% Original source in file "fonts2.TEX", starting line 53. +\wlog{L: "newfont.tip" ["fonts2.TEX," l. 53, p. II-263]}% +% This file DOES belong to format "texip." +\InputD{testdef.tip} +\def\NewFont #1{% + \if\DefinedConditional{#1}% + \errmessage{\string\NewFont: intended font name + "\string#1" already used.} + \fi + \font #1% +} diff --git a/info/examples/tex-in-practice/newinput.tip b/info/examples/tex-in-practice/newinput.tip new file mode 100644 index 0000000000..0008943d0a --- /dev/null +++ b/info/examples/tex-in-practice/newinput.tip @@ -0,0 +1,26 @@ +% 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 23.4.9, p. III-270. +% Original source in file "macros3.TEX", starting line 1670. +\wlog{L: "newinput.tip" ["macros3.TEX," l. 1670, p. III-270]}% +% This file DOES belong to format "texip." +\InputD{futlet.tip} +\catcode`\@ = 11 +\let\@input = \input +\def\input{% + \DoFutureLet{\ifx}{\bgroup}{\@InputA}{\@input}% +} +\def\@InputA #1{\@input #1} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/newoutfr.tip b/info/examples/tex-in-practice/newoutfr.tip new file mode 100644 index 0000000000..5f1be0f30e --- /dev/null +++ b/info/examples/tex-in-practice/newoutfr.tip @@ -0,0 +1,37 @@ +% 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 4.6.2, p. I-113. +% Original source in file "reg2.TEX", starting line 1610. +\wlog{L: "newoutfr.tip" ["reg2.TEX," l. 1610, p. I-113]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\newcountOF{\alloc@0\count\countdef\insc@unt} +\def\newdimenOF{\alloc@1\dimen\dimendef\insc@unt} +\def\newskipOF{\alloc@2\skip\skipdef\insc@unt} +\def\newmuskipOF{\alloc@3\muskip\muskipdef\@cclvi} +\def\newboxOF{\alloc@4\box\chardef\insc@unt} +\def\newhelpOF#1#2{\newtoksOF#1#1\expandafter{\csname#2\endcsname}} +\def\newtoksOF{\alloc@5\toks\toksdef\@cclvi} +\def\newreadOF{\alloc@6\read\chardef\sixt@@n} +\def\newwriteOF{\alloc@7\write\chardef\sixt@@n} +\def\newfamOF{\alloc@8\fam\chardef\sixt@@n} +\def\newifOF#1{\count@\escapechar \escapechar\m@ne + \expandafter\expandafter\expandafter + \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% + \expandafter\expandafter\expandafter + \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% + \@if#1{false}\escapechar\count@} % the condition starts out false +\def\newlanguageOF{\alloc@9\language\chardef\@cclvi} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/newpage.tip b/info/examples/tex-in-practice/newpage.tip new file mode 100644 index 0000000000..63a6daf3dc --- /dev/null +++ b/info/examples/tex-in-practice/newpage.tip @@ -0,0 +1,22 @@ +% 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 3, p. IV-19. +% Original source in file "page.TEX", starting line 1004. +\wlog{L: "newpage.tip" ["page.TEX," l. 1004, p. IV-19]}% +% This file DOES belong to format "texip." +\def\NewPage{% + \vfill + \eject +} diff --git a/info/examples/tex-in-practice/nextday.tip b/info/examples/tex-in-practice/nextday.tip new file mode 100644 index 0000000000..c4d3760e94 --- /dev/null +++ b/info/examples/tex-in-practice/nextday.tip @@ -0,0 +1,38 @@ +% 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 26.11, p. III-372. +% Original source in file "macros6.TEX", starting line 676. +\wlog{L: "nextday.tip" ["macros6.TEX," l. 676, p. III-372]}% +% This file DOES belong to format "texip." +\InputD{legdate.tip} +\InputD{ndaysmo.tip} +\InputD{copydate.tip} +\catcode`\@ = 11 +\newcount\@TempNextDay +\def\NextDay #1#2#3#4#5#6{% + \CheckDate{#1}{#2}{#3}% + \CopyDate{#1}{#2}{#3}{#4}{#5}{#6}% + \advance #6 by 1 + \NumberOfDaysInMonth{#1}{#2}{\@TempNextDay}% + \ifnum #6 > \@TempNextDay + #6 = 1 + \advance #5 by 1 + \ifnum #5 = 13 + #5 = 1 + \advance #4 by 1 + \fi + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/nextmon.tip b/info/examples/tex-in-practice/nextmon.tip new file mode 100644 index 0000000000..09005c9e01 --- /dev/null +++ b/info/examples/tex-in-practice/nextmon.tip @@ -0,0 +1,31 @@ +% 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 26.14, p. III-378. +% Original source in file "macros6.TEX", starting line 958. +\wlog{L: "nextmon.tip" ["macros6.TEX," l. 958, p. III-378]}% +% This file DOES belong to format "texip." +\InputD{legdate.tip} +\catcode`\@ = 11 +\def\NextMonth #1#2#3#4{% + \CheckDate{#1}{#2}{1}% + #3 = #1\relax + #4 = #2\relax + \advance #4 by 1 + \ifnum #4 = 13 + #4 = 1 + \advance #3 by 1 + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/nlm.tip b/info/examples/tex-in-practice/nlm.tip new file mode 100644 index 0000000000..4f2519e6c1 --- /dev/null +++ b/info/examples/tex-in-practice/nlm.tip @@ -0,0 +1,24 @@ +% 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 29.5.4, p. III-523. +% Original source in file "io2.TEX", starting line 1701. +\wlog{L: "nlm.tip" ["io2.TEX," l. 1701, p. III-523]}% +% This file DOES belong to format "texip." +\def\NewLineMessage #1{% + {% + \newlinechar = `\|% + \message{|#1}% + }% +} diff --git a/info/examples/tex-in-practice/norpweek.tip b/info/examples/tex-in-practice/norpweek.tip new file mode 100644 index 0000000000..42b4e29e9d --- /dev/null +++ b/info/examples/tex-in-practice/norpweek.tip @@ -0,0 +1,39 @@ +% 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.1 +% Date: Sep 9, 1993 +% +% +% This source code is documented in 26.13, p. III-376. +% Original source in file "macros6.TEX", starting line 867. +\wlog{L: "norpweek.tip" ["macros6.TEX," l. 867, p. III-376]}% +% This file DOES belong to format "texip." +\InputD{doloop.tip} +\InputD{nextday.tip} +\InputD{prevday.tip} +\catcode`\@ = 11 +\newcount\@NextOrPrevWeekSameDayCount +\def\@NextOrPrevWeekSameDay #1#2#3#4#5#6#7{% + #4 = #1\relax + #5 = #2\relax + #6 = #3\relax + \DoLoop{\@NextOrPrevWeekSameDayCount}{1}{1}{7}% + {#7{#4}{#5}{#6}{#4}{#5}{#6}}% +} +\def\NextWeekSameDay #1#2#3#4#5#6{% + \@NextOrPrevWeekSameDay + {#1}{#2}{#3}{#4}{#5}{#6}{\NextDay}% +} +\def\PrevWeekSameDay #1#2#3#4#5#6{% + \@NextOrPrevWeekSameDay + {#1}{#2}{#3}{#4}{#5}{#6}{\PrevDay}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/npright.tip b/info/examples/tex-in-practice/npright.tip new file mode 100644 index 0000000000..17e7bb8737 --- /dev/null +++ b/info/examples/tex-in-practice/npright.tip @@ -0,0 +1,42 @@ +% 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 33.4.4, p. IV-47. +% Original source in file "ointro.TEX", starting line 508. +\wlog{L: "npright.tip" ["ointro.TEX," l. 508, p. IV-47]}% +% This file DOES belong to format "texip." +\def\NewPageRightHand{% + \vfill\supereject + \ifodd\count0 + \else + \hbox{} + \vfill\eject + \fi +} +\def\ShouldBeRightHandPage{% + \ifodd\count0 + \else + \errmessage{\string\ShouldBeRightHandPage: + current page number is \the\count0. + Should be odd and NOT EVEN.}% + \NewPageRightHand + \fi +} +\def\NewPageLeftHand{% + \vfill\supereject + \ifodd\count0 + \hbox{} + \vfill\eject + \fi +} diff --git a/info/examples/tex-in-practice/ntotext.tip b/info/examples/tex-in-practice/ntotext.tip new file mode 100644 index 0000000000..cd1f26a4d0 --- /dev/null +++ b/info/examples/tex-in-practice/ntotext.tip @@ -0,0 +1,119 @@ +% 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 3.3.16, p. I-63. +% Original source in file "reg1.TEX", starting line 1835. +\wlog{L: "ntotext.tip" ["reg1.TEX," l. 1835, p. I-63]}% +% This file DOES belong to format "texip." +\InputD{imodn.tip} +\catcode`\@ = 11 +\def\@OneDigitNumberText #1#2{% + \ifcase #2\relax + \ifnum #1=0 + \else + zero% + \fi + \or + one\or + two\or + three\or + four\or + five\or + six\or + seven\or + eight\or + nine% + \else + \errmessage{\string\@OneDigitNumberText: number + \number#2 out of range.}% + \fi +} +\newcount\@NumberToConvert +\newcount\@NumberToConvertTwo +\newcount\@NumberToConvertAndFlag +\def\NumberToText #1{% + \@NumberToConvert = #1\relax + \ifnum\@NumberToConvert < 0 + minus + \@NumberToConvert = -\@NumberToConvert + \fi + \CheckRange{\@NumberToConvert}{0}{999999}% + {\string\NumberToText: numbers >= 1.000.000 + not handled.}% + \@NumberToConvertAndFlag = 0 + \ifnum\@NumberToConvert > 999 + \@NumberToConvertTwo = \@NumberToConvert + \divide\@NumberToConvert by 1000 + \@NumberToText + \space thousand and + \IModN{\@NumberToConvertTwo}{1000}{\@NumberToConvert}% + \fi + \CheckRange{\@NumberToConvert}{0}{999}% + {\string\NumberToText: internal error 1}% + \@NumberToText +} +\newcount\@NumberToTextTmp +\def\@NumberToText{% + \ifnum\@NumberToConvert > 99 + \ValueOfDecimalPosition{\@NumberToConvert}{2}% + {\@NumberToTextTmp}% + \@OneDigitNumberText{1}{\@NumberToTextTmp}% + \space hundred and + \IModN{\@NumberToConvert}{100}{\@NumberToConvert}% + \fi + \ValueOfDecimalPosition{\@NumberToConvert}{1}% + {\@NumberToTextTmp}% + \ifnum\@NumberToTextTmp > 1 + \ifcase\@NumberToTextTmp + \errmessage{\string\@NumberToText: + internal error 1.}% + \or + \errmessage{\string\@NumberToText: + internal error 2.}% + \or + twenty\or + thirty\or + forty\or + fifty\or + sixty\or + seventy\or + eighty\or + ninety% + \else + \errmessage{\string\@NumberToText: + internal error 4.}% + \fi + \IModN{\@NumberToConvert}{10}{\@NumberToTextTmp}% + \@OneDigitNumberText{0}{\@NumberToTextTmp}% + \else + \ifnum\@NumberToTextTmp = 1 + \advance\@NumberToConvert by -10 + \ifcase\@NumberToConvert + ten\or + eleven\or + twelve\or + thirteen\or + fourteen\or + fifteen\or + sixteen\or + seventeen\or + eighteen\or + nineteen% + \fi + \else + \@OneDigitNumberText{1}{\@NumberToConvert}% + \fi + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/numcond.tip b/info/examples/tex-in-practice/numcond.tip new file mode 100644 index 0000000000..11efcaffc5 --- /dev/null +++ b/info/examples/tex-in-practice/numcond.tip @@ -0,0 +1,32 @@ +% 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 25.2.3, p. III-353. +% Original source in file "macros5.TEX", starting line 2013. +\wlog{L: "numcond.tip" ["macros5.TEX," l. 2013, p. III-353]}% +% This file DOES belong to format "texip." +\InputD{rangetst.tip} +\InputD{ctestcs.tip} +\catcode`\@ = 11 +\newcount\@NumberConditionalCounter +\def\@NumberConditional #1#2;{% + \@NumberConditionalCounter = `#1\relax +} +\def\NumberConditional #1{% + TT\fi + \edef\@NumberConditionalString{#1}% + \expandafter\@NumberConditional\@NumberConditionalString ; + \if\InRangeConditional{\@NumberConditionalCounter}{`\0}{`\9}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/numdyr.tip b/info/examples/tex-in-practice/numdyr.tip new file mode 100644 index 0000000000..2732bf5aa9 --- /dev/null +++ b/info/examples/tex-in-practice/numdyr.tip @@ -0,0 +1,26 @@ +% 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 26.10, p. III-371. +% Original source in file "macros6.TEX", starting line 628. +\wlog{L: "numdyr.tip" ["macros6.TEX," l. 628, p. III-371]}% +% This file DOES belong to format "texip." +\InputD{isleapyr.tip} +\def\NumberOfDaysInYear #1#2{% + \if\LeapYearConditional{#1}% + #2 = 366 + \else + #2 = 365 + \fi +} diff --git a/info/examples/tex-in-practice/numwhile.tip b/info/examples/tex-in-practice/numwhile.tip new file mode 100644 index 0000000000..1f8bb00271 --- /dev/null +++ b/info/examples/tex-in-practice/numwhile.tip @@ -0,0 +1,38 @@ +% 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 27.1.5, p. III-406. +% Original source in file "macros7.TEX", starting line 506. +\wlog{L: "numwhile.tip" ["macros7.TEX," l. 506, p. III-406]}% +% This file DOES belong to format "texip." +\InputD{namedef.tip} +\catcode`\@ = 11 +\newcount\@WhileNesting +\@WhileNesting = 0 +\def\WhileNum #1#2{% + \global\advance\@WhileNesting by 1 + \edef\@WhileArgOne{{\the\@WhileNesting}}% + \expandafter\@WhileNum\@WhileArgOne{#1}{#2}% + \global\advance\@WhileNesting by -1 +} +\def\@WhileNum #1#2#3{% + \ifnum #2\relax + #3\relax + \NameDef{@WhileNum-#1}{\@WhileNum{#1}{#2}{#3}}% + \else + \NameDef{@WhileNum-#1}{}% + \fi + \NameUse{@WhileNum-#1}{}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/oblines.tip b/info/examples/tex-in-practice/oblines.tip new file mode 100644 index 0000000000..c7b294cd9e --- /dev/null +++ b/info/examples/tex-in-practice/oblines.tip @@ -0,0 +1,31 @@ +% 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 18.2.5, p. III-19. +% Original source in file "tokens1.TEX", starting line 1211. +\wlog{L: "oblines.tip" ["tokens1.TEX," l. 1211, p. III-19]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\ObeyLines{% + \catcode`\^^M = \active + \@EnableActiveEndOfLine +} +{ + \catcode`\^^M=\active % Lines must end with '%'. + \gdef\@EnableActiveEndOfLine{% + \def + {\leavevmode\par}% + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/obspaces.tip b/info/examples/tex-in-practice/obspaces.tip new file mode 100644 index 0000000000..13d883fee7 --- /dev/null +++ b/info/examples/tex-in-practice/obspaces.tip @@ -0,0 +1,27 @@ +% 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 18.2.3, p. III-17. +% Original source in file "tokens1.TEX", starting line 1081. +\wlog{L: "obspaces.tip" ["tokens1.TEX," l. 1081, p. III-17]}% +% This file DOES belong to format "texip." +\InputD{verb-bas.tip} +\catcode`\@ = 11 +\def\ObeySpaces{% + \catcode`\ = \active + \@InitActiveSpace +} +{\catcode`\ = \active +\gdef\@InitActiveSpace{\edef {\VerbControlSpace}}} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/oct.tip b/info/examples/tex-in-practice/oct.tip new file mode 100644 index 0000000000..8365ad591c --- /dev/null +++ b/info/examples/tex-in-practice/oct.tip @@ -0,0 +1,32 @@ +% 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 27.1.4.3, p. III-406. +% Original source in file "macros7.TEX", starting line 466. +\wlog{L: "oct.tip" ["macros7.TEX," l. 466, p. III-406]}% +% This file DOES belong to format "texip." +\def\Oct #1{% + {% + \count4 = #1% + \count0 = \count4 + \divide\count0 by 8 + \ifnum \count0 > 0 + \Oct{\count0}% + \fi + \count2 = \count0 + \multiply \count2 by -8 + \advance \count4 by \count2 + \the\count4 + }% +} diff --git a/info/examples/tex-in-practice/oddprin.tip b/info/examples/tex-in-practice/oddprin.tip new file mode 100644 index 0000000000..fe9f42bef9 --- /dev/null +++ b/info/examples/tex-in-practice/oddprin.tip @@ -0,0 +1,23 @@ +% 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 25.1.2, p. III-319. +% Original source in file "macros5.TEX", starting line 139. +\wlog{L: "oddprin.tip" ["macros5.TEX," l. 139, p. III-319]}% +% This file DOES belong to format "texip." +\def\PrintOdd #1{% + \ifodd #1\relax + Number #1 is odd. + \fi +} diff --git a/info/examples/tex-in-practice/oeprin.tip b/info/examples/tex-in-practice/oeprin.tip new file mode 100644 index 0000000000..be1c0eeba3 --- /dev/null +++ b/info/examples/tex-in-practice/oeprin.tip @@ -0,0 +1,25 @@ +% 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 25.1.1, p. III-318. +% Original source in file "macros5.TEX", starting line 70. +\wlog{L: "oeprin.tip" ["macros5.TEX," l. 70, p. III-318]}% +% This file DOES belong to format "texip." +\def\PrintOddEven #1{% + \ifodd #1\relax + The number #1 is odd. + \else + The number #1 is even. + \fi +} diff --git a/info/examples/tex-in-practice/ola-1p.tip b/info/examples/tex-in-practice/ola-1p.tip new file mode 100644 index 0000000000..223c9d1124 --- /dev/null +++ b/info/examples/tex-in-practice/ola-1p.tip @@ -0,0 +1,91 @@ +% 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 36.2.5, p. IV-145. +% Original source in file "o3.TEX", starting line 660. +\wlog{L: "ola-1p.tip" ["o3.TEX," l. 660, p. IV-145]}% +% This file DOES NOT belong to format "texip." +\InputD{shboxes.tip} +\catcode`\@ = 11 +\newbox\InsertOtherBox +\def\FBOnePass #1#2#3{% + \PrepareFigureBoxes{#1}{#2}{#3} + \setbox\InsertOtherBox = \vbox{% + \offinterlineskip + \unvbox\InsertOtherBox + \penalty 0 + \hbox{% + \valign{% + ##\vfil + \cr + \copy 0\cr + \copy 1\cr + }% + } + } + \insert\FigureIns{% + \hbox{% + \valign{% + ##\vfil + \cr + \copy 1\cr + \copy 0\cr + }% + } + } +} +\def\OutCaptionGameOnePass{% + \setbox0 = \box\voidb@x + \ifodd\pageno + \dimen0 = 0pt + \let\Header = \RightHeader + \let\Footer = \RightFooter + \ifvoid\FigureIns + \else + \dimen1 = \ht\FigureIns + \setbox1 = \box\FigureIns + \setbox0 = \vsplit\InsertOtherBox to \dimen1 + \fi + \else + \dimen0 = \DiffWidth + \let\Header = \LeftHeader + \let\Footer = \LeftFooter + \ifvoid\FigureIns + \else + \dimen1 = \ht\FigureIns + \setbox1 = \vsplit\InsertOtherBox to \dimen1 + \setbox0 = \box\FigureIns + \fi + \fi + \shipout\vbox{% + \hrule height 1pt + \vskip 5pt + \Header + \vskip 12pt + \ifvoid 0 + \else + \box 0 + \vskip\skip\FigureIns + \fi + \moveright\dimen0 \BoxR 255 + \vskip 12pt + \Footer + } + \global\advance\pageno by 1 + \ifnum\outputpenalty > -20000 + \else + \dosupereject + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ola-2p.tip b/info/examples/tex-in-practice/ola-2p.tip new file mode 100644 index 0000000000..69b86108fa --- /dev/null +++ b/info/examples/tex-in-practice/ola-2p.tip @@ -0,0 +1,121 @@ +% 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 36.2.4, p. IV-141. +% Original source in file "o3.TEX", starting line 444. +\wlog{L: "ola-2p.tip" ["o3.TEX," l. 444, p. IV-141]}% +% This file DOES NOT belong to format "texip." +\InputD{namedef.tip} +\catcode`\@ = 11 +\def\FigurePlacementFileName{\jobname.fip } +\newcount\Fco +\newread\FigurePlacementStreamIn +\newwrite\FigurePlacementStreamOut +\def\ReadTheFigurePlacementFile{% + \Fco = 1 + \openin\FigurePlacementStreamIn = \FigurePlacementFileName + \ActuallyReadFigurePlacementFile + \immediate\openout\FigurePlacementStreamOut = + \FigurePlacementFileName +} +\def\ActuallyReadFigurePlacementFile{% + \ifeof\FigurePlacementStreamIn + \closein\FigurePlacementStreamIn + \let\ReadInFigurePlacementFileNext = \relax + \else + \read\FigurePlacementStreamIn to \ALineFromTheFile + \def\ParMeansDone{\par}% + \ifx\ALineFromTheFile\ParMeansDone + \else + \NameEdef{Fig-\the\Fco}{\ALineFromTheFile} + \advance\Fco by 1 + \fi + \let\ReadInFigurePlacementFileNext = + \ActuallyReadFigurePlacementFile + \fi + \ReadInFigurePlacementFileNext +} +\newcount\FBTwoCount +\FBTwoCount = 1 +\newif\ifLeftSideCaption +\def\FBTwoPass #1#2#3{% + \PrepareFigureBoxes{#1}{#2}{#3} + \insert\FigureIns{% + \write\FigurePlacementStreamOut{\the\pageno} + \if\NameDefinedConditional{Fig-\the\FBTwoCount}% + \wlog{Figure \the\FBTwoCount: + \NameUse{Fig-\the\FBTwoCount}}% + \expandafter\ifodd\NameUse{Fig-\the\FBTwoCount}% + \LeftSideCaptionfalse + \else + \LeftSideCaptiontrue + \fi + \else + \LeftSideCaptiontrue + \fi + \ifLeftSideCaption + \hbox{% + \valign{% + ##\vfil + \cr + \copy 1\cr + \copy 0\cr + }% + }% + \else + \hbox{% + \valign{% + ##\vfil + \cr + \copy 0\cr + \copy 1\cr + }% + }% + \fi + } + \advance\FBTwoCount by 1 +} +\def\OutCaptionGameTwoPass{% + \setbox0 = \box\voidb@x + \setbox1 = \box\voidb@x + \ifodd\pageno + \dimen0 = 0pt + \let\Header = \RightHeader + \let\Footer = \RightFooter + \else + \dimen0 = \DiffWidth + \let\Header = \LeftHeader + \let\Footer = \LeftFooter + \fi + \shipout\vbox{% + \hrule height 1pt + \vskip 5pt + \Header + \vskip 12pt + \ifvoid\FigureIns + \else + \box\FigureIns + \vskip\skip\FigureIns + \fi + \moveright\dimen0 \BoxR 255 + \vskip 12pt + \Footer + } + \global\advance\pageno by 1 + \ifnum\outputpenalty > -20000 + \else + \dosupereject + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ola-comm.tip b/info/examples/tex-in-practice/ola-comm.tip new file mode 100644 index 0000000000..2f5ea1014f --- /dev/null +++ b/info/examples/tex-in-practice/ola-comm.tip @@ -0,0 +1,75 @@ +% 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 36.2.3, p. IV-139. +% Original source in file "o3.TEX", starting line 321. +\wlog{L: "ola-comm.tip" ["o3.TEX," l. 321, p. IV-139]}% +% This file DOES NOT belong to format "texip." +\InputD{box-mac.tip} +\topskip = 10pt +\vsize = 6.0in +\newdimen\LeftPageShift +\LeftPageShift = 0.25in +\newdimen\RightPageShift +\RightPageShift= -0.25in +\hsize = 24pc + +\newdimen\PageWidth +\PageWidth = 29pc + +\newdimen\DiffWidth +\DiffWidth = \PageWidth +\advance\DiffWidth by -\hsize +\def\PageLine{\hbox to \PageWidth} +\def\SetHeader #1{ + \def\RightHeader {\PageLine{\it\hfil #1}} + \def\LeftHeader {\PageLine{\it #1\hfil}} +} +\SetHeader{Some Header} +\def\SetFooter #1{ + \def\RightFooter {% + \PageLine{% + \hfil + \it #1% + \hskip 0.5in + \bf \the\pageno + }% + } + \def\LeftFooter {% + \PageLine{% + \bf \the\pageno + \hskip 0.5in + \it #1% + \hfil + }% + } +} +\SetFooter{Some Footer} +\newinsert\FigureIns +\count\FigureIns = 1000 +\dimen\FigureIns = \vsize +\skip\FigureIns = 12pt +\def\PrepareFigureBoxes #1#2#3{% + \setbox 0 = \VboxR to #2{ + \vfil + \centerline{\tt Figure~#1} + \vfil + } + \setbox 1 = \VboxR{ + \hsize = \DiffWidth + \raggedright + \noindent + \strut #3 + } +} diff --git a/info/examples/tex-in-practice/op-endin.tip b/info/examples/tex-in-practice/op-endin.tip new file mode 100644 index 0000000000..21b02f03cb --- /dev/null +++ b/info/examples/tex-in-practice/op-endin.tip @@ -0,0 +1,61 @@ +% 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 35.6.2, p. IV-114. +% Original source in file "o2.TEX", starting line 1438. +\wlog{L: "op-endin.tip" ["o2.TEX," l. 1438, p. IV-114]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\endinsert{% + \egroup + \if@mid + \dimen@ = \ht0 + \advance\dimen@ by \dp0 + \advance\dimen@ by 12pt + \advance\dimen@ by \pagetotal + \ifdim\dimen@ > \pagegoal + \@midfalse + \p@gefalse + \fi + \fi + \NameUse{MidInsertFix}% + \if@mid + \bigskip + \box 0 + \bigbreak + \else + \insert\topins{% + \penalty 100 + \splittopskip = 0pt + \splitmaxdepth = \maxdimen + \floatingpenalty = 0 + \ifp@ge + \dimen@ = \dp0 + \vbox to \vsize{ + \unvbox 0 + \kern -\dimen@ + }% + \NameUse{MidInsertFixPage}% + \else + \NameUse{EndInsertTopInsFix}% + \NameUse{MidInsertFixTop}% + \box 0 + \nobreak + \bigskip + \fi + } + \fi + \endgroup +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/op-pagec.tip b/info/examples/tex-in-practice/op-pagec.tip new file mode 100644 index 0000000000..077231da6e --- /dev/null +++ b/info/examples/tex-in-practice/op-pagec.tip @@ -0,0 +1,53 @@ +% 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 35.6.1, p. IV-113. +% Original source in file "o2.TEX", starting line 1360. +\wlog{L: "op-pagec.tip" ["o2.TEX," l. 1360, p. IV-113]}% +% This file DOES belong to format "texip." +\InputD{namedef.tip} +\catcode`\@ = 11 +\def\pagecontents{% + \wlog{\noexpand\pagecontents from op-pagec.tip called.}% + \NameUse{@ShowPlainLists}% + \ifvoid\topins + \wlog{\string\pagecontents: no topinserts.}% + \if\NameDefinedConditional{@TopInsertSize}% + \ifdim\@TopInsertSize < 20pt + \global\@TopInsertSize = 0pt + \fi + \fi + \else + \NameUse{ChangeBarPush}% + \NameUse{@UpdateTopInsertSize}% + \unvbox\topins + \NameUse{ChangeBarPop}% + \fi + \dimen@ = \dp 255 + \unvbox 255 + \ifvoid\footins + \else + \@PrintFootnotePlain + \fi + \ifr@ggedbottom + \kern -\dimen@ + \vfil + \fi +} +\def\@PrintFootnotePlain{% + \vskip\skip\footins + \footnoterule + \unvbox\footins +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/optargx.tip b/info/examples/tex-in-practice/optargx.tip new file mode 100644 index 0000000000..9928fa32cb --- /dev/null +++ b/info/examples/tex-in-practice/optargx.tip @@ -0,0 +1,27 @@ +% 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 23.4.5.1, p. III-260. +% Original source in file "macros3.TEX", starting line 1219. +\wlog{L: "optargx.tip" ["macros3.TEX," l. 1219, p. III-260]}% +% This file DOES belong to format "texip." +\InputD{futlet.tip} +\catcode`\@ = 11 +\def\OptArgX #1#2{% + \let\@OptArgXTemp = #1% + \def\@OptArgXDefault{[#2]}% + \DoLongFutureLet{\ifx}{[}{\@OptArgXTemp}{\@OptArgXB}% +} +\def\@OptArgXB{\expandafter\@OptArgXTemp\@OptArgXDefault} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/orcards.tip b/info/examples/tex-in-practice/orcards.tip new file mode 100644 index 0000000000..337a7d88b6 --- /dev/null +++ b/info/examples/tex-in-practice/orcards.tip @@ -0,0 +1,119 @@ +% 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 34.5.1, p. IV-70. +% Original source in file "o1.TEX", starting line 532. +\wlog{L: "orcards.tip" ["o1.TEX," l. 532, p. IV-70]}% +% This file DOES NOT belong to format "texip." +\InputD{box-mac.tip} +\InputD{modonead.tip} +\InputD{nlm.tip} +\hsize = 3.0in +\baselineskip = 12pt +\topskip = 10pt plus 10pt +\vsize = 9\baselineskip +\countdef\PageNo = 0 +\newcount\CardCount +\CardCount = 0 +\def\Card #1{% + \vfill\eject + \advance\CardCount by 1 + \noindent + {\bf #1} + \par + \def\CardTitle{#1}% +} +\newdimen\RuleSpace \RuleSpace = 10pt +\newdimen\BetweenRules \BetweenRules = 20pt +\newdimen\BaseLineSkipSave +\BaseLineSkipSave = \baselineskip +\newcount\PositionCount +\PositionCount = 0 +\def\HeadLine{% + \line{% + \strut + {\it Cards, page \the\PageNo}% + \hfil + \tt\jobname + }% +} +\def\FootLine{% + \line{\strut*****\hfil*****}% +} +\newbox\OutTopBox +\newbox\OutMidBox +\newbox\OutBotBox +\def\CardOutputRoutine{% + \NewLineMessage{\string\CardOutputRoutine: + card number: \the\CardCount, + PositionCounter: \the\PositionCount,}% + \NewLineMessage{page number: \the\PageNo, + \string\outputpenalty: \the\outputpenalty.}% + \ifnum\outputpenalty < -9999 + \setbox0 = \hbox{\strut} + \else + \setbox0 = \line{% + \strut + \hfil + \it + \CardTitle\space con't\/\dots + }% + \fi + \setbox 2 = \vbox{% + \offinterlineskip + \hrule + \vskip\RuleSpace + \VboxR to \vsize{\unvbox 255 \vfill} + \box0 + \vskip\RuleSpace + \hrule + } + \global\setbox + \ifcase\PositionCount + \OutTopBox \or + \OutMidBox \or + \OutBotBox + \fi + = \box2 + \ifnum\PositionCount = 2 + \shipout\vbox{% + \offinterlineskip + \VboxR{ + \HeadLine + \vskip\BaseLineSkipSave + + \box\OutTopBox + \vskip\BetweenRules + \box\OutMidBox + \vskip\BetweenRules + \box\OutBotBox + + \vskip\BaseLineSkipSave + \FootLine + } + } + \fi + \ifnum\outputpenalty = -20000 + \NewLineMessage{\string\supereject\space encountered.} + \ifnum\PositionCount < 2 + \line{} + \vfill + \supereject + \fi + \fi + \ifnum\ModuloOneAdvanceNumCond{\PositionCount}{3} = 0 + \global\advance\pageno by 1 + \fi +} +\output = {\CardOutputRoutine} diff --git a/info/examples/tex-in-practice/ordbrule.tip b/info/examples/tex-in-practice/ordbrule.tip new file mode 100644 index 0000000000..cab5d682a8 --- /dev/null +++ b/info/examples/tex-in-practice/ordbrule.tip @@ -0,0 +1,36 @@ +% 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 34.3, p. IV-59. +% Original source in file "o1.TEX", starting line 148. +\wlog{L: "ordbrule.tip" ["o1.TEX," l. 148, p. IV-59]}% +% This file DOES NOT belong to format "texip." +\InputD{box-mac.tip} +\InputD{box-larg.tip} +\hsize = 2.9in +\vsize = 6.0in +\output = { + \shipout\vbox{ + \HboxR{% + \BoxLarger + {\HboxR + {\BoxLarger + {\vbox to \vsize{\unvbox 255}}% + {10pt}% + }% + }% + {2pt}% + }% + } +} diff --git a/info/examples/tex-in-practice/orsimple.tip b/info/examples/tex-in-practice/orsimple.tip new file mode 100644 index 0000000000..a49920d5c2 --- /dev/null +++ b/info/examples/tex-in-practice/orsimple.tip @@ -0,0 +1,104 @@ +% 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 34.4.1, p. IV-62. +% Original source in file "o1.TEX", starting line 249. +\wlog{L: "orsimple.tip" ["o1.TEX," l. 249, p. IV-62]}% +% This file DOES NOT belong to format "texip." +\InputD{box-mac.tip} +\InputD{pmtime.tip} +\InputD{graphmac.tip} +\newdimen\LeftPageShift \LeftPageShift = -10pt +\newdimen\RightPageShift \RightPageShift= -40pt +\def\HeadLine{% + \ifodd\PageNo + \HboxR to \hsize{% + \strut + \the\month/\the\day/\the\year, \PrintMilTime + \hfil + {\tt\jobname.tip}% + }% + \else + \HboxR to \hsize{% + \strut + {\tt\jobname.tip}% + \hfil + \the\month/\the\day/\the\year, \PrintMilTime + }% + \fi +} +\countdef\ChapNo = 0 +\countdef\PageNo = 1 +\def\FootLine{% + \ifodd\PageNo + \HboxR to \hsize{% + \strut + \hfil + \bf \the\ChapNo--\the\PageNo + }% + \else + \HboxR to \hsize{% + \strut + \bf + \the\ChapNo--\the\PageNo + \hfil + }% + \fi +} +\newbox\CropMarksBox +\setbox\CropMarksBox = \vbox{% + \offinterlineskip + \SetScale{1in} + \SetLineThickness{0.5pt} + \DrawHLine(-0.8,0){0.2} + \DrawVLine(-0.7,-0.1){0.2} + \DrawHLine(3.4,0){0.2} + \DrawVLine(3.5,-0.1){0.2} + \DrawHLine(-0.8,-6.5){0.2} + \DrawVLine(-0.7,-6.6){0.2} + \DrawHLine(3.4,-6.5){0.2} + \DrawVLine(3.5,-6.6){0.2} +} +\ZeroBox{\CropMarksBox} +\def\SimpleOutputRoutine{% + \ifodd\PageNo + \dimen0 = \RightPageShift + \else + \dimen0 = \LeftPageShift + \fi + \shipout\vbox{% + \offinterlineskip + \copy\CropMarksBox + \moveright\dimen0 \vbox{% + \HeadLine + \vskip 12pt + \VboxR to \vsize{% + \unvbox 255 + } + \vskip 12pt + \FootLine + } + } + \global\advance\PageNo by 1 +} +\def\OutputWithRules{% + \output = {\SimpleOutputRoutine}% +} +\def\OutputWithoutRules{ + \output = {% + \EliminateRuledBoxes + \SimpleOutputRoutine + } +} +\OutputWithoutRules diff --git a/info/examples/tex-in-practice/out-ds.tip b/info/examples/tex-in-practice/out-ds.tip new file mode 100644 index 0000000000..04ca97b0bc --- /dev/null +++ b/info/examples/tex-in-practice/out-ds.tip @@ -0,0 +1,443 @@ +% 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 37.2.7.1, p. IV-170. +% Original source in file "o4.TEX", starting line 461. +\wlog{L: "out-ds.tip" ["o4.TEX," l. 461, p. IV-170]}% +% This file DOES NOT belong to format "texip." +\InputD{box-mac.tip} +\InputD{rangetst.tip} +\InputD{maxmindi.tip} +\InputD{prot.tip} +\InputD{vtbox.tip} +\InputD{nathd.tip} +\InputD{shiftudb.tip} +\catcode`\@ = 11 +\newdimen\@PageWidth +\newdimen\@ColWidth +\newdimen\@ColIndent +\newdimen\@PageHeight +\newcount\@DSCCurNumberOfColumns +\newcount\@PageLayoutCodeDSC +\newcount\@DSCDebugging +\def\SetUpDSC #1#2#3#4#5#6{% + \@DSCDebugging = #6 + \CheckZeroOneRange{\@DSCDebugging}% + {\string\SetUpDSC: debugging code wrong} + \ifnum\@DSCDebugging = 0 + \ProtWritefalse + \else + \ProtWritetrue + \fi + \InitProtWrite + \WriteProtocol{0}{\string\SetUpDSC: begin}% + \@PageWidth = #1% + \@ColWidth = #2% + \@ColIndent = #3% + \@PageHeight = #4% + \@PageLayoutCodeDSC = #5% + \CheckZeroOneRange{\@PageLayoutCodeDSC}% + {\string\SetUpDSC: page layout code wrong}% + \hsize = \@PageWidth + \dimen0 = 2\@ColIndent + \advance\dimen0 by 2\@ColWidth + \ifdim\dimen0 > \hsize + \errmessage{\string\SetUpDSC: Initial values of + \string\hsize, \noexpand\@ColWidth and + \noexpand\@ColIndent do not make sense.}% + \fi + \vsize = \@PageHeight + \@DSCCurNumberOfColumns = 1 + \@SetSingleColumnOutput{As part of \string\SetUpDSC}% + \ifcase \@PageLayoutCodeDSC + \topskip = 10pt % Top / bottom flush + \or + \topskip = 10pt plus 50pt % Ragged bottom + \else + \errmessage{\string\SetUpDSC: illegal + page layout parameter.}% + \fi + \WriteProtocol{0}{\string\SetUpDSC: end}% +} +\def\UnDoDSC{% + \global\output = {\plainoutput}% +} +\newbox\@BoxOfPageSoFar +\newbox\@DSCLeftColumnBox +\newdimen\@DSCLeftNaturalHeight +\newbox\@DSCRightColumnBox +\newdimen\@DSCRightNaturalHeight +\newbox\@DSCTempBox +\def\@EliminateRulesConditional{% + \ifnum\@DSCDebugging = 0 + \EliminateRuledBoxes + \fi +} +\newif\if@CaseCPageBreak +\def\@EjectPenalty{-10000 } +\def\eject{\penalty\@EjectPenalty} +\def\@BalancePenalty{-10001 } +\def\@PageLine{\hbox to \@PageWidth} +\def\@PageLineR{\HboxR to \@PageWidth} +\def\@ProtDSC #1{ + \WriteProtocol{1}{\string\@ProtDSC: Begin (page \the\pageno)} + \WriteProtocol{2}{"#1", + number of cols: \the\@DSCCurNumberOfColumns} + \WriteProtocol{2}{\string\vsize: \the\vsize, + \string\pagetotal: \the\pagetotal, + \string\pagegoal: \the\pagegoal} + \BoxToProtocol{2}{\@BoxOfPageSoFar}{} + \WriteProtocol{2}{\string\dimen0: \the\dimen0, + \string\outputpenalty: \the\outputpenalty} + \WriteProtocol{1}{\string\@ProtDSC: End} +} +\def\@CaseReport #1{% + \WriteProtocol{0}{CASE #1}% + \message{CASE #1.}% +} +\def\@SetOutputRoutine #1#2#3{% + #1\output = {#2}% + \WriteProtocol{0}{\string\@SetOutputRoutine:}% + \WriteProtocol{1}{#3}% +} +\def\@SingleColumnOutputRoutine{% + \@EliminateRulesConditional + \WriteProtocol{0}{\noexpand\@SingleColumnOutputRoutine called, + \noexpand\outputpenalty is \the\outputpenalty} + \WriteProtocol{1}{Page number is \the\pageno} + \showboxdepth = 2 + \showboxbreadth = 1000 + \@ProtDSC{\string\@SingleColumnOutputRoutine: begin}% + \BoxToProtocol{1}{255}{}% + \@CheckNumberOfColumns{1}{\@SingleColumnOutputRoutine}% + \@ShipAPageBox{% + \ifnum\@PageLayoutCodeDSC = 0 + \vbox to \@PageHeight{\unvbox 255}% + \else + \vbox to \@PageHeight{\unvbox 255 \vfill}% + \fi + }% +} +\def\@SetSingleColumnOutput #1{% + \WriteProtocol{0}{\string\@SetSingleColumnOutput: set to single + column output!}% + \global\@DSCCurNumberOfColumns = 1 + \@SetOutputRoutine{\global}{\@SingleColumnOutputRoutine}{#1}% + \global\vsize = \@PageHeight + \global\pagegoal = \@PageHeight +} +\def\@SaveCurrentPageOutputRoutine{% + \global\setbox\@BoxOfPageSoFar = \vbox{\unvbox 255}% + \BoxToProtocol{0}{\@BoxOfPageSoFar}% + {\string\@SaveCurrentPageOutputRoutine} +} +\newcount\@VsizeFactor +\def\@ComputeVsizeForDoubleColumns{% + \vsize = \@PageHeight + \advance\vsize by -\ht\@BoxOfPageSoFar + \advance\vsize by -\dp\@BoxOfPageSoFar + \multiply\vsize by 2 + \@VsizeFactor = \vsize + \divide\@VsizeFactor by \baselineskip + \ifodd\@VsizeFactor + \advance\@VsizeFactor by -1 + \fi + \global\vsize = \@VsizeFactor \baselineskip + \@ProtDSC{\string\@ComputeVsizeForDoubleColumns}% +} +\newdimen\@HalfVsize +\def\@ComputeHalfVsize{% + \@HalfVsize = \vsize + \divide\@HalfVsize by 2 +} +\def\BeginDoubleColumns{% + \par + \WriteProtocol{0}{\string\BeginDoubleColumns: begin} + \@CheckNumberOfColumns{1}{\BeginDoubleOfColumns}% + \global\@DSCCurNumberOfColumns = 2 + \begingroup + \@CaseCPageBreakfalse + \@EliminateRulesConditional + \WriteProtocol{1}{\string\BeginDoubleColumns: put rest of page + into \string\@BoxOfPageSoFar}% + \@SetOutputRoutine{}{\@SaveCurrentPageOutputRoutine}% + {\string\BeginDoubleColumns: save page built up to now.}% + \eject + \@ProtDSC{\string\BeginDoubleColumns: 2}% + \@SetOutputRoutine{}{\@DoubleColumnOutputRoutine}% + {Double column output set up by \string\BeginDoubleColumns}% + \hsize = \@ColWidth + \@ComputeVsizeForDoubleColumns + \@ProtDSC{\string\BeginDoubleColumns: 3}% +} +\def\EndDoubleColumns{% + \par + \WriteProtocol{0}{\string\EndDoubleColumns: begin} + \@CheckNumberOfColumns{2}{\EndDoubleOfColumns} + \@ProtDSC{In \string\EndDoubleColumns} + \@CaseReport{A} + \penalty\@BalancePenalty + \@BuildPageSoFar + \@SetSingleColumnOutput{\string\EndDoubleColumns} + \endgroup +} +\def\@DoubleColumnOutputRoutine{% + \@EliminateRulesConditional + \WriteProtocol{0}{\string\@DoubleColumnOutputRoutineput: + begin (penalty: \the\outputpenalty)} + \if@CaseCPageBreak + \@CaseReport{D/E}% + \ifvoid\@DSCLeftColumnBox + \errmessage{\string\@DoubleColumnOutputRoutine: + missing left column!}% + \else + \ifvoid\@DSCRightColumnBox + \global\setbox\@DSCRightColumnBox = + \vbox{\unvbox 255}% + \global\@DSCRightNaturalHeight = + \ht\@DSCRightColumnBox + \ifnum\outputpenalty = \@EjectPenalty + \errmessage{\string\@DoubleColumnOutput: + \noexpand\eject in right column illegal.}% + \@CaseReport{D} + \MaxDimen{\dimen0}{\@DSCRightNaturalHeight}% + {\@DSCLeftNaturalHeight}{}% + \else + \ifnum\outputpenalty = \@BalancePenalty + \@CaseReport{E} + \MaxDimen{\dimen0}{\@DSCRightNaturalHeight} + {\@DSCLeftNaturalHeight}{}% + \else + \@CaseReport{D}% + \dimen0 = \vsize + \fi + \fi + \@SetColumnBox{\@DSCLeftColumnBox}{}% + \@SetColumnBox{\@DSCRightColumnBox}{}% + \Vtbox{\@DSCRightColumnBox}{\global}% + \ShiftRefPointUpOrDown{\@DSCRightColumnBox}{12pt}% + \Vtbox{\@DSCLeftColumnBox}{\global}% + \ShiftRefPointUpOrDown{\@DSCLeftColumnBox}{12pt}% + \ifnum\outputpenalty > -10000 + \@ShipAPageBox{% + \ifnum\@PageLayoutCodeDSC = 0 + \vbox to \@PageHeight{\@BuildPageSoFar}% + \else + \vbox to \@PageHeight{\@BuildPageSoFar + \vfill}% + \fi + }% + \else + % It's \EndDoubleColumns! + \fi + \global\@CaseCPageBreakfalse + \@ComputeVsizeForDoubleColumns + \global\pagegoal = \vsize + \else + \errmessage{\string\@DoubleColumnOutputRoutine: + left / right columns messed up.} + \fi + \fi + \else + \ifnum\outputpenalty = \@EjectPenalty + \@CaseReport{C} + \WriteProtocol{1}{\string\@DoubleColumnOutputRoutineput: + penalty \@EjectPenalty call.} + \global\@CaseCPageBreaktrue + \ifvoid\@DSCLeftColumnBox + \global\setbox\@DSCLeftColumnBox = + \vbox{\unvbox 255} + \global\@DSCLeftNaturalHeight = \ht\@DSCLeftColumnBox + \@ComputeHalfVsize + \WriteProtocol{2}{*\string\vsize/2 is + \the\@HalfVsize}% + \dimen1 = \ht\@DSCLeftColumnBox + \advance\dimen1 by \dp\@DSCLeftColumnBox + \ifdim\dimen1 > \@HalfVsize + \message{WARNING: column is to long!}% + \fi + \global\pagegoal = \@HalfVsize + \global\vsize = \@HalfVsize + \else + \errmessage{\string\@DoubleColumnOutputRoutine: + left column box already loaded!}% + \fi + \else + \@StandardBalanceColumns + \ifnum\outputpenalty = \@BalancePenalty + \@CaseReport{A}% + \else + \@CaseReport{B}% + \@ShipAPageBox{% + \ifnum\@PageLayoutCodeDSC = 0 + \vbox to \@PageHeight{\@BuildPageSoFar}% + \else + \vbox to \@PageHeight{\@BuildPageSoFar + \vfill}% + \fi + }% + \@ComputeVsizeForDoubleColumns + \global\pagegoal = \vsize + \fi + \fi + \fi +} +\newcount\@EmptyBoxesBuildPageCount +\def\@BuildPageSoFar{% + \@EmptyBoxesBuildPageCount = 0 + \ifvoid\@BoxOfPageSoFar + \advance\@EmptyBoxesBuildPageCount by 1 + \fi + \ifvoid\@DSCLeftColumnBox + \advance\@EmptyBoxesBuildPageCount by 1 + \fi + \ifvoid\@DSCRightColumnBox + \advance\@EmptyBoxesBuildPageCount by 1 + \fi + \WriteProtocol{1}{\string\@BuildPageSoFar: begin + (\noexpand\@EmptyBoxesBuildPageCount is + \the\@EmptyBoxesBuildPageCount)} + \ifnum\@EmptyBoxesBuildPageCount < 3 + \BoxToProtocol{2}{\@BoxOfPageSoFar}{} + \BoxToProtocol{2}{\@DSCLeftColumnBox}{} + \BoxToProtocol{2}{\@DSCRightColumnBox}{} + \unvbox\@BoxOfPageSoFar % May be empty. + \wd\@DSCLeftColumnBox = \@ColWidth % Left column. + \wd\@DSCRightColumnBox = \@ColWidth % Right column. + \@PageLine{% + \hskip\@ColIndent + \BoxR\@DSCLeftColumnBox + \hfil + \BoxR\@DSCRightColumnBox + \hskip\@ColIndent + } + \smallskip + \fi + \WriteProtocol{1}{\string\@BuildPageSoFar: end} +} +\def\@SetColumnBox #1#2{% + \global\setbox#1 = \vbox to \dimen0{\unvbox#1 #2}% + \Vtbox{#1}{\global}% + \ShiftRefPointUpOrDown{#1}{12pt}% +} +\def\@StandardBalanceColumns{% + \setbox\@DSCTempBox = \vbox{\unvcopy 255} + \dimen0 = \ht\@DSCTempBox + \advance\dimen0 by \dp\@DSCTempBox + \advance\dimen0 by \topskip + \divide\dimen0 by 2 + \WriteProtocol{1}{\string\@StandardBalanceColumns: + \noexpand\dimen0 is \the\dimen0, page \the\pageno.} + \@BalanceColumns{\dimen0}% +} +\def\@BalanceColumns #1{% + \@ProtDSC{\string\@BalanceColumns: Start}% + \@EliminateRulesConditional + \ifvoid\@DSCLeftColumnBox\else + \errmessage{\string\@BalanceColumns: left column box + not empty.}% + \fi + \ifvoid\@DSCRightColumnBox\else + \errmessage{\string\@BalanceColumns: right column box + not empty.}% + \fi + \ifvoid 255 + \errmessage{\string\@BalanceColumns: box 255 is void.}% + \fi + \setbox\@DSCTempBox = \vbox{\unvbox 255} + \dimen0 = #1 + \splittopskip = \topskip + \BoxToProtocol{0}{\@DSCTempBox}{Before \noexpand\vsplit loop}% + {% + \vbadness = 10000 % Don't report underfull boxes. + \loop + \global\setbox\@DSCRightColumnBox = \copy\@DSCTempBox + \global\setbox\@DSCLeftColumnBox = + \vsplit\@DSCRightColumnBox to \dimen0 + \WriteProtocol{1}{\string\dimen0: \the\dimen0}% + \BoxToProtocol{1}{\@DSCLeftColumnBox}% + {[1] (left column) in \noexpand\vsplit loop}% + \BoxToProtocol{1}{\@DSCRightColumnBox}% + {[2] (right column) in \noexpand\vsplit loop}% + \NaturalHeight{\dimen3}{\@DSCLeftColumnBox}% + \NaturalHeight{\dimen4}{\@DSCRightColumnBox}% + \WriteProtocol{3}{\string\dimen3: \the\dimen3}% + \WriteProtocol{3}{\string\dimen4: \the\dimen4}% + \advance\dimen3 by 1sp + \ifdim\dimen4 > \dimen3 + \global\advance\dimen0 by 1pt + \repeat + } + \setbox\@DSCLeftColumnBox = \vbox{\unvbox\@DSCLeftColumnBox}% + \setbox\@DSCRightColumnBox = \vbox{\unvbox\@DSCRightColumnBox}% + \MaxDimen{\dimen0}{\ht\@DSCLeftColumnBox}% + {\ht\@DSCRightColumnBox}{}% + \ifcase\@PageLayoutCodeDSC + \@SetColumnBox{\@DSCLeftColumnBox}{}% + \@SetColumnBox{\@DSCRightColumnBox}{}% + \or + \@SetColumnBox{\@DSCLeftColumnBox}{\vfill}% + \@SetColumnBox{\@DSCRightColumnBox}{\vfill}% + \fi + \WriteProtocol{1}{\string\@BalanceColumns: + balancing done.}% +} +\def\DSCHeader{% + \@PageLineR{% + \bf Header + \hfil + \tt \the\pageno + }% +} +\def\DSCFooter{% +% \@PageLineR{% +% \vrule width \@PageWidth height 1pt depth 2pt +% }% + \@PageLineR{% + \bf FOOTER + \hfil + \tt \the\pageno + }% +} +\def\@ShipAPageBox #1{% + \WriteProtocol{0}{\string\@ShipAPageBox: + called (page \the\pageno)}% + \shipout\vbox{% + \@EliminateRulesConditional + \DSCHeader + \vskip 12pt + #1 + \vskip 12pt + \DSCFooter + } + \WriteProtocol{0}% + {\string\@ShipAPageBox: done (page \the\pageno)}% + \advancepageno +} +\def\@CheckNumberOfColumns #1#2{% + \ifnum \@DSCCurNumberOfColumns = #1\relax + \else + \errmessage{\string\@CheckNumberOfColumns: [\string#2]: + currently \the\@DSCCurNumberOfColumns\space columns, + should be #1.} + \fi +} +\def\bye{} +\def\bye{% + \@CheckNumberOfColumns{1}{\string\bye: Still in double + column mode, forgotten a \string\EndDoubleColumns?}% + \vfill\supereject + \end +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/out2-or.tip b/info/examples/tex-in-practice/out2-or.tip new file mode 100644 index 0000000000..b412be9f8b --- /dev/null +++ b/info/examples/tex-in-practice/out2-or.tip @@ -0,0 +1,73 @@ +% 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 37.1.1, p. IV-160. +% Original source in file "o4.TEX", starting line 69. +\wlog{L: "out2-or.tip" ["o4.TEX," l. 69, p. IV-160]}% +% This file DOES NOT belong to format "texip." +\catcode`\@ = 11 +\newbox\@LeftColumnBox +\newbox\@RightColumnBox +\newdimen\@PageWidth +\def\SetUpDC #1#2#3{% + \@PageWidth = #1 + \hsize = #2 + \vsize = #3 +} +\def\@PageLine{\hbox to \@PageWidth} +\def\Header{% + \@PageLine{% + \it Some Header Text\hfil + \PrintCurrentMonth\space \the\day, \the\year, + Page~\the\pageno + }% +} +\topskip = 10pt plus 60pt +\let\@ColumnMode = L +\def\supereject{% + \eject + \if\@ColumnMode R + \hbox{} + \vfill\eject + \fi + \end +} +\output = { + \if\@ColumnMode L + \global\setbox\@LeftColumnBox = \vbox to \vsize{ + \unvbox 255 + \vfil + } + \global\wd\@LeftColumnBox = \hsize + \global\let\@ColumnMode = R + \else + \setbox\@RightColumnBox = \vbox to \vsize{ + \unvbox 255 + \vfil + } + \wd\@RightColumnBox = \hsize + \shipout\vbox{ + \Header + \vskip 24pt + \@PageLine{% + \box\@LeftColumnBox + \hfil + \box\@RightColumnBox + } + } + \advancepageno + \global\let\@ColumnMode = L + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/outf-rad.tip b/info/examples/tex-in-practice/outf-rad.tip new file mode 100644 index 0000000000..4ee4b7640c --- /dev/null +++ b/info/examples/tex-in-practice/outf-rad.tip @@ -0,0 +1,55 @@ +% 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 4.6.2, p. I-113. +% Original source in file "reg2.TEX", starting line 1639. +\wlog{L: "outf-rad.tip" ["reg2.TEX," l. 1639, p. I-113]}% +% This file DOES NOT belong to format "texip." +\catcode`\@ = 11 +\def\newcount{\alloc@0\count\countdef\insc@unt} +\def\newdimen{\alloc@1\dimen\dimendef\insc@unt} +\def\newskip{\alloc@2\skip\skipdef\insc@unt} +\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi} +\def\newbox{\alloc@4\box\chardef\insc@unt} +\def\newtoks{\alloc@5\toks\toksdef\@cclvi} +\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}} +\def\newread{\alloc@6\read\chardef\sixt@@n} +\def\newwrite{\alloc@7\write\chardef\sixt@@n} +\def\newfam{\alloc@8\fam\chardef\sixt@@n} +\def\newif#1{\count@\escapechar \escapechar\m@ne + \expandafter\expandafter\expandafter + \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% + \expandafter\expandafter\expandafter + \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% + \@if#1{false}\escapechar\count@} % the condition starts out false +\def\newlanguage{\alloc@9\language\chardef\@cclvi} +\def^^L{\par} +\def\newinsert#1{\global\advance\insc@unt by\m@ne + \ch@ck0\insc@unt\count + \ch@ck1\insc@unt\dimen + \ch@ck2\insc@unt\skip + \ch@ck4\insc@unt\box + \allocationnumber=\insc@unt + \global\chardef#1=\allocationnumber + \wlog{\string#1=\string\insert\the\allocationnumber}} +\def\+{\tabalign} +\def\beginsection#1\par{\vskip\z@ plus.3\vsize\penalty-250 + \vskip\z@ plus-.3\vsize\bigskip\vskip\parskip + \message{#1}\leftline{\bf#1}\nobreak\smallskip\noindent} +\def\proclaim #1. #2\par{\medbreak + \noindent{\bf#1.\enspace}{\sl#2\par}% + \ifdim\lastskip<\medskipamount \removelastskip\penalty55 + \medskip\fi} +\def\bye{\par\vfill\supereject\end} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/outpsel.tip b/info/examples/tex-in-practice/outpsel.tip new file mode 100644 index 0000000000..91b2f09882 --- /dev/null +++ b/info/examples/tex-in-practice/outpsel.tip @@ -0,0 +1,37 @@ +% 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 34.2, p. IV-58. +% Original source in file "o1.TEX", starting line 75. +\wlog{L: "outpsel.tip" ["o1.TEX," l. 75, p. IV-58]}% +% This file DOES NOT belong to format "texip." +\newcount\FirstPageNo \FirstPageNo = -100000 +\newcount\LastPageNo \LastPageNo = 100000 +\output = {% + \global\deadcycles = 0 + \ifnum\pageno < \FirstPageNo + \setbox 255 = \box\voidbox + \NewLineMessage{Output routine discards page \the\pageno, + smaller than \string\FirstPageNo.}% + \else + \ifnum\pageno > \LastPageNo + \setbox 255 = \box\voidbox + \NewLineMessage{Output routine discards page \the\pageno, + larger than \string\LastPageNo.}% + \else + \shipout\box255 + \fi + \fi + \global\advance\pageno by 1 +} diff --git a/info/examples/tex-in-practice/par-fl.tip b/info/examples/tex-in-practice/par-fl.tip new file mode 100644 index 0000000000..a1d7a58253 --- /dev/null +++ b/info/examples/tex-in-practice/par-fl.tip @@ -0,0 +1,32 @@ +% 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 21.10.2, p. III-202. +% Original source in file "macros1.TEX", starting line 2797. +\wlog{L: "par-fl.tip" ["macros1.TEX," l. 2797, p. III-202]}% +% This file DOES belong to format "texip." +\def\ParFl #1#2\par{% + \par + $$ + \vbox{ + \setbox 0 = \hbox{#1} + \hsize = \wd0 + \noindent + \unhbox 0 + \space + #2 + } + $$ + \par +} diff --git a/info/examples/tex-in-practice/par-lab.tip b/info/examples/tex-in-practice/par-lab.tip new file mode 100644 index 0000000000..0c41944b69 --- /dev/null +++ b/info/examples/tex-in-practice/par-lab.tip @@ -0,0 +1,82 @@ +% 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 11.1.3.1, p. II-56. +% Original source in file "par2.TEX", starting line 411. +\wlog{L: "par-lab.tip" ["par2.TEX," l. 411, p. II-56]}% +% This file DOES NOT belong to format "texip." +\catcode`\@ = 11 +\newdimen\Delta@XY +\newcount\@LabeledParNesting +\@LabeledParNesting = 0 +\def\BeginAListX #1#2#3{% + \par + \bgroup + \advance\leftskip by #1 + \advance\rightskip by #2 + \advance\@LabeledParNesting by 1 + \message{\string\BeginAListX: nesting level: + \the\@LabeledParNesting}% + \@LabelCounter = 0 + \Delta@XY = #3 + \ifdim\Delta@XY < 0pt + \message{\string\BeginAListX: negative Delta{xy}, + made positive.}% + \fi +} +\def\EndAListX{% + \par + \egroup +} +\def\ItemLL #1{% + \par + \noindent + \hbox to 0pt{% + \hskip -\Delta@XY + #1% + \hfil + }% + \ignorespaces +} +\def\ItemLR #1{% + \par + \noindent + \hbox to 0pt{% + \hss + #1% + \hskip\Delta@XY + }% + \ignorespaces +} +\def\ItemRL #1{% + \par + \noindent + \hbox to 0pt{% + \hskip\Delta@XY + #1% + \hss + }% + \ignorespaces +} +\def\ItemRR #1{% + \par + \noindent + \hbox to 0pt{% + \hfil + #1% + \hskip -\Delta@XY + }% + \ignorespaces +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/par-lcl.tip b/info/examples/tex-in-practice/par-lcl.tip new file mode 100644 index 0000000000..5f503bcc51 --- /dev/null +++ b/info/examples/tex-in-practice/par-lcl.tip @@ -0,0 +1,39 @@ +% 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 11.1.7, p. II-62. +% Original source in file "par2.TEX", starting line 737. +\wlog{L: "par-lcl.tip" ["par2.TEX," l. 737, p. II-62]}% +% This file DOES NOT belong to format "texip." +\InputD{par-lab.tip} +\catcode`\@ = 11 +\newcount\@LabelCounter +\def\CountingItem{% + \advance\@LabelCounter by 1 + \ifcase\@LabeledParNesting + \or + \ItemLR{\the\@LabelCounter.}% + \or + \ItemLR{% + \advance\@LabelCounter by `\a + (\char\@LabelCounter)% + }% + \or + \ItemLR{\romannumeral\@LabelCounter.}% + \else + \errmessage{\string\CountingItem: nesting level up to 3 + supported only.}% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/parin.tip b/info/examples/tex-in-practice/parin.tip new file mode 100644 index 0000000000..b18b4cd20d --- /dev/null +++ b/info/examples/tex-in-practice/parin.tip @@ -0,0 +1,35 @@ +% 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 10.9.4, p. II-35. +% Original source in file "par1.TEX", starting line 1808. +\wlog{L: "parin.tip" ["par1.TEX," l. 1808, p. II-35]}% +% This file DOES belong to format "texip." +\InputD{everypar.tip} +\newdimen\NormalParIndent +\def\SetParIndent #1{% + \NormalParIndent = #1% + \parindent = #1% +} +\def\SuppressNextParIndent{% + \global\parindent = 0pt + \gdef\EveryParA{% + \global\parindent = \NormalParIndent + % \hskip-\parindent + }% +} +\def\CancelSuppressNextParIndent{% + \global\parindent = \NormalParIndent + \gdef\EveryParA{}% +} diff --git a/info/examples/tex-in-practice/part-cr.tip b/info/examples/tex-in-practice/part-cr.tip new file mode 100644 index 0000000000..0627218539 --- /dev/null +++ b/info/examples/tex-in-practice/part-cr.tip @@ -0,0 +1,94 @@ +% 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.8.1, p. III-564. +% Original source in file "pp1.TEX", starting line 1572. +\wlog{L: "part-cr.tip" ["pp1.TEX," l. 1572, p. III-564]}% +% This file DOES belong to format "texip." +\InputD{gobble.tip} +\InputD{pickfs.tip} +\InputD{namedef.tip} +\InputD{defauarg.tip} +\InputD{compst.tip} +\InputD{isprefix.tip} +\InputD{droppre.tip} +\catcode`\@ = 11 +\newif\if@LabelsOk +\def\@LabelRefPrefix{@REF-} +\def\@LabelIsDefined #1{% + TT\fi + \if\NameDefinedConditional{\@LabelRefPrefix#1}% +} +\def\@NewLabel #1#2#3{% + \if\@LabelIsDefined{#1}% + \wlog{\string\@NewLabel: warning: label "#1" + already defined.}% + \fi + \NameGdef{\@LabelRefPrefix #1}{{#2}{#3}}% +} +\let\Saved@NewLabel = \@NewLabel +\def\Ref #1{% + \@ref{0}{#1}% + \if\StringsEqualConditional{\@TheExpandedLabel}{??}% + {??}% + \else + \@TheExpandedLabel + \fi + \@PrintAfterLabel +} +\def\PageRef #1{% + \@ref{1}{#1}% + \if\StringsEqualConditional{\@TheExpandedLabel}{??}% + {??}% + \else + \@TheExpandedLabel + \fi + \@PrintAfterLabel +} +\def\@MostRecentLabel{} +\def\@ref #1#2{% + \xdef\@PrintAfterLabel{}% + \DefaultArg{\@ThisLabel}{#2}{\@MostRecentLabel}% + \if\StringsEqualConditional{\@ThisLabel}{.}% + \xdef\@ThisLabel{\@MostRecentLabel}% + \xdef\@PrintAfterLabel{.}% + \fi + \if\StringsEqualConditional{\@ThisLabel}{,}% + \xdef\@ThisLabel{\@MostRecentLabel}% + \xdef\@PrintAfterLabel{,}% + \fi + \if\StringsEqualConditional{\@ThisLabel}{)}% + \xdef\@ThisLabel{\@MostRecentLabel}% + \xdef\@PrintAfterLabel{)}% + \fi + \if\StringsEqualConditional{\@ThisLabel}{;}% + \xdef\@ThisLabel{\@MostRecentLabel}% + \xdef\@PrintAfterLabel{;}% + \fi + \xdef\@MostRecentLabel{\@ThisLabel}% + \if\@LabelIsDefined{\@ThisLabel}% + \edef\@CrefTemp{\NameUse{\@LabelRefPrefix\@ThisLabel}}% + \ifcase #1\relax + \edef\@TheExpandedLabel{% + \expandafter\PickFirstOfTwo\@CrefTemp}% + \or + \edef\@TheExpandedLabel{% + \expandafter\PickSecondOfTwo\@CrefTemp}% + \fi + \else + \def\@TheExpandedLabel{??} + \wlog{\string\@ref: Label \@ThisLabel\space undefined.}% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/part-lab.tip b/info/examples/tex-in-practice/part-lab.tip new file mode 100644 index 0000000000..1d8981dcd9 --- /dev/null +++ b/info/examples/tex-in-practice/part-lab.tip @@ -0,0 +1,88 @@ +% 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.8.7, p. III-575. +% Original source in file "pp1.TEX", starting line 2185. +\wlog{L: "part-lab.tip" ["pp1.TEX," l. 2185, p. III-575]}% +% This file DOES NOT belong to format "texip." +\catcode`\@ = 11 +\newif\if@LabelNow +\def\@Label #1#2#3{% + \ifnum #3 = 0 + \@LabelNowtrue + \else + \ifvmode + \ifinner + \@LabelNowtrue + \else + \@LabelNowfalse + \fi + \else + \@LabelNowtrue + \fi + \fi + \bgroup + \let\RefCounterTwo = \relax + \xdef\@LabelTempA{% + \write\@PartAuxStream{% + \string\@NewLabel{#1}{#2}{\RefCounterTwo{PageNo}}}% + }% + \egroup + \if@LabelNow + \@LabelTempA + \else + \bgroup + \let\RefCounterTwo = \relax + \xdef\EveryParC{% + \EveryParC + \@LabelTempA + }% + \egroup + \fi + \ignorespaces +} +\def\CheckLabels{% + \wlog{\string\CheckLabels: checking labels started.}% + \global\@LabelsOktrue + \@IgnoreAuxStuff + \let\@NewLabel = \@NewLabelCompare + \@ReadInAuxFiles + \if@LabelsOk + \wlog{** All labels are ok **}% + \else + \wlog{** LABELS CHANGED, reprocess document **}% + \fi + \wlog{\string\CheckLabels: done.}% +} +\def\@NewLabelCompare #1#2#3{% + \if\@LabelIsDefined{##1}% + \def\@CheckLabelTemp{{##2}{##3}}% + \edef\@@CheckLabelTemp{% + \NameUse{\@LabelRefPrefix ##1}% + }% + \ifx\@CheckLabelTemp\@@CheckLabelTemp + \let\@CheckLabelsNext = \relax + \else + \let\@CheckLabelsNext = \@StopCheckingLabels + \fi + \else + \let\@CheckLabelsNext = \@StopCheckingLabels + \fi + \@CheckLabelsNext +} +\def\@StopCheckingLabels{% + \global\@LabelsOkfalse + \let\@NewLabel = \GobbleThree +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/part-mac.tip b/info/examples/tex-in-practice/part-mac.tip new file mode 100644 index 0000000000..fa45b1fa10 --- /dev/null +++ b/info/examples/tex-in-practice/part-mac.tip @@ -0,0 +1,26 @@ +% 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.1, p. III-547. +% Original source in file "pp1.TEX", starting line 727. +\wlog{L: "part-mac.tip" ["pp1.TEX," l. 727, p. III-547]}% +% This file DOES NOT belong to format "texip." +\InputD{pm-bas.tip} +\InputD{pm-main.tip} +\InputD{pm-wrc.tip} +\InputD{pm-4.tip} +\InputD{ts-robst.tip} +\InputD{pm-pagen.tip} +\InputD{part-cr.tip} +\InputD{part-lab.tip} diff --git a/info/examples/tex-in-practice/parv-1.tip b/info/examples/tex-in-practice/parv-1.tip new file mode 100644 index 0000000000..d2b26e0f56 --- /dev/null +++ b/info/examples/tex-in-practice/parv-1.tip @@ -0,0 +1,89 @@ +% 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 11.2.1, p. II-67. +% Original source in file "par2.TEX", starting line 956. +\wlog{L: "parv-1.tip" ["par2.TEX," l. 956, p. II-67]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newdimen \Delta@XY +\newskip\@ParListBeforeAfter +\newskip\@ParListBetweenLabels +\newskip\@ParListAfterLabel +\newcount\@LabeledParNesting \@LabeledParNesting = 0 +\newcount\@LabelCounter +\def\BeginAList #1#2#3#4#5#6#7{% + \par + \bgroup + \advance\leftskip by #1 + \advance\rightskip by #2 + \advance \@LabeledParNesting by 1 + \@LabelCounter = 0 + \Delta@XY = #3 + \ifdim\Delta@XY < 0pt + \errmessage{\string\BeginAList: negative Delta{xy}, + made positive.}% + \fi + \@ParListBeforeAfter = #4 + \@ParListBetweenLabels = #5 + \@ParListAfterLabel = #6 + \SetParIndent{#7} +} +\def\EndAList{% + \par + \vskip\@ParListBeforeAfter + \egroup +} +\def\@GenLabel #1{% + \par + \advance\@LabelCounter by 1 + \ifnum\@LabelCounter = 1 + \parskip = \@ParListBeforeAfter + \else + \parskip = \@ParListBetweenLabels + \fi + \noindent + \hbox to 0pt{#1}% + \parskip = \@ParListAfterLabel + \ignorespaces +} +\def\ItemLL #1{% + \@GenLabel{% + \hskip -\Delta@XY + #1% + \hfil + }% +} +\def\ItemLR #1{% + \@GenLabel{% + \hss + #1% + \hskip\Delta@XY + }% +} +\def\ItemRL #1{% + \@GenLabel{% + \hskip\Delta@XY + #1% + \hss + }% +} +\def\ItemRR #1{% + \@GenLabel{% + \hfil + #1% + \hskip -\Delta@XY + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/pdollars.tip b/info/examples/tex-in-practice/pdollars.tip new file mode 100644 index 0000000000..fdafa4044f --- /dev/null +++ b/info/examples/tex-in-practice/pdollars.tip @@ -0,0 +1,37 @@ +% 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 25.1.13, p. III-331. +% Original source in file "macros5.TEX", starting line 838. +\wlog{L: "pdollars.tip" ["macros5.TEX," l. 838, p. III-331]}% +% This file DOES belong to format "texip." +\def\PrintInDollar #1{% + {% + \ifnum #1 < 0 + $-$% + \count0 = -#1\relax + \else + \count0 = #1\relax + \fi + \count2 = \count0 + \divide\count0 by 100 + \the\count0.% + \multiply\count0 by 100 + \advance\count2 by -\count0 + \ifnum\count2 < 10 + 0% + \fi + \the\count2 + }% +} diff --git a/info/examples/tex-in-practice/pickfs.tip b/info/examples/tex-in-practice/pickfs.tip new file mode 100644 index 0000000000..b779b03e10 --- /dev/null +++ b/info/examples/tex-in-practice/pickfs.tip @@ -0,0 +1,20 @@ +% 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 24.1.7, p. III-285. +% Original source in file "macros4.TEX", starting line 230. +\wlog{L: "pickfs.tip" ["macros4.TEX," l. 230, p. III-285]}% +% This file DOES belong to format "texip." +\def\PickFirstOfTwo #1#2{#1} +\def\PickSecondOfTwo #1#2{#2} 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 diff --git a/info/examples/tex-in-practice/pm-auxco.tip b/info/examples/tex-in-practice/pm-auxco.tip new file mode 100644 index 0000000000..0b01f9455d --- /dev/null +++ b/info/examples/tex-in-practice/pm-auxco.tip @@ -0,0 +1,25 @@ +% 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.7, p. III-562. +% Original source in file "pp1.TEX", starting line 1483. +\wlog{L: "pm-auxco.tip" ["pp1.TEX," l. 1483, p. III-562]}% +% This file DOES belong to format "texip." +\InputD{pm-bas.tip} +\InputD{verb-bas.tip} +\catcode`\@ = 11 +\def\WriteAuxFileComment #1{% + \@p@write{\PercentSignPure\space #1.}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/pm-bas.tip b/info/examples/tex-in-practice/pm-bas.tip new file mode 100644 index 0000000000..e979179547 --- /dev/null +++ b/info/examples/tex-in-practice/pm-bas.tip @@ -0,0 +1,52 @@ +% 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.2, p. III-548. +% Original source in file "pp1.TEX", starting line 743. +\wlog{L: "pm-bas.tip" ["pp1.TEX," l. 743, p. III-548]}% +% This file DOES belong to format "texip." +\InputD{inputc.tip} +\InputD{gobble.tip} +\InputD{namedef.tip} +\InputD{conval.tip} +\InputD{list-mac.tip} +\InputD{input-at.tip} +\InputD{genostr.tip} +\catcode`\@ = 11 +\def\PartSourceFileNameExtension{tex} +\def\AuxFileNameExtension{aux} +\def\TocFileNameExtension{toc} +\def\LofFileNameExtension{lof} +\def\LotFileNameExtension{lot} +\def\TmpFileNameExtension{tmp} +\newwrite\@PartAuxStream +\newwrite\@TmpFileStream +\def\i@write{\immediate\write} +\def\i@openout{\immediate\openout} +\def\i@closeout{\immediate\closeout} + +\def\@ip@write{\i@write\@PartAuxStream} +\def\@p@write{\write\@PartAuxStream} +\def\@IgnoreAuxStuff{% + \let\@NewLabel = \GobbleThree + \let\@SetCounter = \GobbleTwo + \let\@ForSpecialFile = \GobbleFive +} +\def\@ReadInAuxFiles{% + {% + \def\\##1{\InputCWithAt{##1.aux}}% + \@AllPartsOfDocumentList + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/pm-main.tip b/info/examples/tex-in-practice/pm-main.tip new file mode 100644 index 0000000000..2ec2287495 --- /dev/null +++ b/info/examples/tex-in-practice/pm-main.tip @@ -0,0 +1,111 @@ +% 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.3, p. III-549. +% Original source in file "pp1.TEX", starting line 825. +\wlog{L: "pm-main.tip" ["pp1.TEX," l. 825, p. III-549]}% +% This file DOES NOT belong to format "texip." +\InputD{conval.tip} +\InputD{ts-wind.tip} +\catcode`\@ = 11 +\newif\ifPartVerbose +\PartVerbosefalse +\def\InitialParts{% + \def\@AllPartsOfDocumentList{}% + \def\@ToProcessList{}% +} +\def\DocPart #1{% + \ConvertArgsToListAndAppend{\@AllPartsOfDocumentList}{#1}% + \ifPartVerbose + {% + \wlog{\string\DocPart: List now current list of parts + of this document:}% + \def\\##1{\wlog{Document part "##1"}}% + \@AllPartsOfDocumentList + }% + \fi +} +\def\ProcessPart #1{% + \ConvertArgsToListAndAppend{\@ToProcessList}{#1}% + \ifPartVerbose + {% + \wlog{\string\ProcessPart: List of parts which will + be processed.}% + \def\\##1{% + \wlog{Part which will be processed: "##1"}% + }% + \@ToProcessList + }% + \fi +} +\def\ProcessNow{% + \wlog{\string\ProcessNow: Start reading + all auxiliary files.}% + \@IgnoreAuxStuff + \let\@NewLabel = \Saved@NewLabel + \@ReadInAuxFiles + \wlog{\string\ProcessNow: Done reading all auxiliary files.}% + \i@openout\@TmpFileStream = \jobname.\TmpFileNameExtension + \let\@AllPartsOfDocumentListCopy = \@AllPartsOfDocumentList + {% + \def\\{\noexpand\@DoPart}% + \xdef\@AllPartsOfDocumentListCopy{% + \@AllPartsOfDocumentListCopy + }% + }% + \@AllPartsOfDocumentListCopy +} +\newif\if@ProcessThisPart +\def\@DoPart #1{% + \gdef\CurrentPartName{#1}% + \@ProcessThisPartfalse + \if\EmptyListConditional{\@ToProcessList}% + \@ProcessThisParttrue + \fi + \if\MemberOfListConditional{\@ToProcessList}{\CurrentPartName}% + \@ProcessThisParttrue + \fi + \if@ProcessThisPart + \@DoPartProcess + \else + \@DoPartNotProcess + \fi +} +\def\@DoPartProcess{% + \wlog{\string\@DoPartProcess: process part "\CurrentPartName".} + \i@openout\@PartAuxStream = + \CurrentPartName.\AuxFileNameExtension + \OpenIndexFiles{\CurrentPartName}% + \input \CurrentPartName.\PartSourceFileNameExtension + \EvalEveryParsCE + \vfill\supereject + \WriteCountersToAuxFile + \wlog{\string\@DoPart: "\CurrentPartName" was processed.}% + \i@closeout\@PartAuxStream + \NameUse{CloseIndexFiles}% +} +\def\@DoPartNotProcess{% + \wlog{\string\@DoPartNotProcess: + "\CurrentPartName.\PartSourceFileNameExtension" not + processed.}% + \@IgnoreAuxStuff + \let\@SetCounter = \SetCounter + \InputCWithAt{\CurrentPartName.\AuxFileNameExtension} + \@PageNumbersToCounterRegs +} +\def\EndProcessing{% + \i@closeout\@TmpFileStream + \@BuildNewSpecialFiles +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/pm-pagen.tip b/info/examples/tex-in-practice/pm-pagen.tip new file mode 100644 index 0000000000..8ee88fc978 --- /dev/null +++ b/info/examples/tex-in-practice/pm-pagen.tip @@ -0,0 +1,38 @@ +% 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.8, p. III-562. +% Original source in file "pp1.TEX", starting line 1499. +\wlog{L: "pm-pagen.tip" ["pp1.TEX," l. 1499, p. III-562]}% +% This file DOES belong to format "texip." +\InputD{counters.tip} +\catcode`\@ = 11 +\NewCounter{PageNo}{\arabic}{\TheCounter{PageNo}}% + {\TheCounter{PageNo}} +\NewCounter{SWPageNo}{\arabic}% + {\TheCounter{SWPageNo}}{\TheCounter{SWPageNo}} +\def\@PageNumbersToCounterRegs{% + \CounterToRegister{\global\pageno}{PageNo}% +} +\SetCounter{PageNo}{1} +\@PageNumbersToCounterRegs +\def\advancepageno{% + \StepCounter{PageNo}% + \StepCounter{SWPageNo}% + \@PageNumbersToCounterRegs +} +\def\folio{% + \PrintCounter{PageNo}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/pm-wrc.tip b/info/examples/tex-in-practice/pm-wrc.tip new file mode 100644 index 0000000000..a6cc96c4d7 --- /dev/null +++ b/info/examples/tex-in-practice/pm-wrc.tip @@ -0,0 +1,32 @@ +% 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.4, p. III-554. +% Original source in file "pp1.TEX", starting line 1076. +\wlog{L: "pm-wrc.tip" ["pp1.TEX," l. 1076, p. III-554]}% +% This file DOES belong to format "texip." +\InputD{counters.tip} +\catcode`\@ = 11 +\def\WriteCountersToAuxFile{% + \@WriteCounter{ChapterNo}% + \@WriteCounter{SectionNo}% + \@WriteCounter{PageNo}% +} +\def\@WriteCounter #1{% + \@ip@write{% + \noexpand\@SetCounter + {#1}% + {\expandafter\the\csname @C-#1\endcsname}}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/pmtime.tip b/info/examples/tex-in-practice/pmtime.tip new file mode 100644 index 0000000000..98042556e5 --- /dev/null +++ b/info/examples/tex-in-practice/pmtime.tip @@ -0,0 +1,30 @@ +% 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 3.3.8.2, p. I-51. +% Original source in file "reg1.TEX", starting line 1154. +\wlog{L: "pmtime.tip" ["reg1.TEX," l. 1154, p. I-51]}% +% This file DOES belong to format "texip." +\InputD{leadingz.tip} +\newcount\Hour +\newcount\Minute +\def\PrintMilTime{% + \Hour = \time + \divide\Hour by 60 + \Minute = \Hour + \multiply\Minute by 60 + \advance\Minute by -\time + \Minute = -\Minute + \LeadingZ{\the\Hour}:\LeadingZ{\the\Minute}% +} diff --git a/info/examples/tex-in-practice/poorbold.tip b/info/examples/tex-in-practice/poorbold.tip new file mode 100644 index 0000000000..6c336e0c1f --- /dev/null +++ b/info/examples/tex-in-practice/poorbold.tip @@ -0,0 +1,25 @@ +% 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 6.5.3, p. I-183. +% Original source in file "boxes.TEX", starting line 1471. +\wlog{L: "poorbold.tip" ["boxes.TEX," l. 1471, p. I-183]}% +% This file DOES belong to format "texip." +\def\BoldfaceFake #1#2{% + \hbox{% + \hbox to #2{#1\hss}% + \hbox to #2{#1\hss}% + \hbox {#1}% % Last time print text with reg. width. + }% +} diff --git a/info/examples/tex-in-practice/pralph.tip b/info/examples/tex-in-practice/pralph.tip new file mode 100644 index 0000000000..f7f92f7615 --- /dev/null +++ b/info/examples/tex-in-practice/pralph.tip @@ -0,0 +1,26 @@ +% 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 3.3.5, p. I-48. +% Original source in file "reg1.TEX", starting line 1017. +\wlog{L: "pralph.tip" ["reg1.TEX," l. 1017, p. I-48]}% +% This file DOES belong to format "texip." +\def\PrintAlph #1{% + {% + \count0 = #1% + \advance\count0 by -1 + \advance\count0 by `\a + \char\count0 + }% +} diff --git a/info/examples/tex-in-practice/prevday.tip b/info/examples/tex-in-practice/prevday.tip new file mode 100644 index 0000000000..2e4c8829be --- /dev/null +++ b/info/examples/tex-in-practice/prevday.tip @@ -0,0 +1,37 @@ +% 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 26.12, p. III-374. +% Original source in file "macros6.TEX", starting line 773. +\wlog{L: "prevday.tip" ["macros6.TEX," l. 773, p. III-374]}% +% This file DOES belong to format "texip." +\InputD{legdate.tip} +\InputD{ndaysmo.tip} +\InputD{copydate.tip} +\catcode`\@ = 11 +\newcount\@TempPrevDay +\def\PrevDay #1#2#3#4#5#6{% + \CheckDate{#1}{#2}{#3}% + \CopyDate{#1}{#2}{#3}{#4}{#5}{#6}% + \advance #6 by -1 + \ifnum #6 = 0 + \advance #5 by -1 + \ifnum #5 = 0 + #5 = 12 + \advance #4 by -1 + \fi + \NumberOfDaysInMonth{#4}{#5}{#6}% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/prevmon.tip b/info/examples/tex-in-practice/prevmon.tip new file mode 100644 index 0000000000..9513222954 --- /dev/null +++ b/info/examples/tex-in-practice/prevmon.tip @@ -0,0 +1,31 @@ +% 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 26.15, p. III-379. +% Original source in file "macros6.TEX", starting line 1035. +\wlog{L: "prevmon.tip" ["macros6.TEX," l. 1035, p. III-379]}% +% This file DOES belong to format "texip." +\InputD{legdate.tip} +\catcode`\@ = 11 +\def\PrevMonth #1#2#3#4{% + \CheckDate{#1}{#2}{1}% + #3 = #1\relax + #4 = #2\relax + \advance #4 by -1 + \ifnum #4 = 0 + #4 = 12 + \advance #3 by -1 + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/prhyph.tip b/info/examples/tex-in-practice/prhyph.tip new file mode 100644 index 0000000000..1d7737a5c3 --- /dev/null +++ b/info/examples/tex-in-practice/prhyph.tip @@ -0,0 +1,54 @@ +% 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 12.7.13, p. II-146. +% Original source in file "par3.TEX", starting line 1929. +\wlog{L: "prhyph.tip" ["par3.TEX," l. 1929, p. II-146]}% +% This file DOES belong to format "texip." +\InputD{shboxes.tip} +\def\PrintHyphens #1{% + {% + \setbox 0 = \vbox{% + \pretolerance = -1 + \hyphenpenalty = -10000 + \hsize = 0pt + \leftskip = 0pt + \rightskip = 0pt + \parfillskip = 0pt + \parindent = 0pt + \hfuzz = \maxdimen + \interlinepenalty = 0 + \clubpenalty = 0 + \widowpenalty = 0 + \brokenpenalty = 0 + \hskip 0pt + #1 + }% + \setbox2 = \hbox{}% + \setbox 9 = \vbox{% + \unvbox 0 + \loop + \unskip + \setbox 1 = \lastbox + \ifhbox 1 + \global\setbox 2 = \hbox{% + \unhbox 1 + \discretionary{}{}{}% + \unhbox 2 + }% + \repeat + }% + \unhbox 2 + }% +} diff --git a/info/examples/tex-in-practice/primmark.tip b/info/examples/tex-in-practice/primmark.tip new file mode 100644 index 0000000000..2e0e5dff76 --- /dev/null +++ b/info/examples/tex-in-practice/primmark.tip @@ -0,0 +1,25 @@ +% 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 7.2.3, p. I-216. +% Original source in file "vboxes1.TEX", starting line 418. +\wlog{L: "primmark.tip" ["vboxes1.TEX," l. 418, p. I-216]}% +% This file DOES belong to format "texip." +\def\PrimitiveMarker{% + \leavevmode + {% + \footnotesize\tt + \llap{*}% + }% +} diff --git a/info/examples/tex-in-practice/printast.tip b/info/examples/tex-in-practice/printast.tip new file mode 100644 index 0000000000..3ad5263963 --- /dev/null +++ b/info/examples/tex-in-practice/printast.tip @@ -0,0 +1,37 @@ +% 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 27.1.1, p. III-397. +% Original source in file "macros7.TEX", starting line 37. +\wlog{L: "printast.tip" ["macros7.TEX," l. 37, p. III-397]}% +% This file DOES belong to format "texip." +\newcount\AstCount +\def\PrintAsterisk #1{% + \AstCount = #1 + \ifnum\AstCount < 0 + \errmessage{\string\PrintAsterisk: negative counter.}% + \AstCount = 0 + \fi + \PrintAsteriskRec +} +\def\PrintAsteriskRec{% + *% + \advance\AstCount by -1 + \ifnum\AstCount = 0 + \let\next = \relax + \else + \let\next = \PrintAsteriskRec + \fi + \next +} diff --git a/info/examples/tex-in-practice/printco.tip b/info/examples/tex-in-practice/printco.tip new file mode 100644 index 0000000000..2c41b3dc3c --- /dev/null +++ b/info/examples/tex-in-practice/printco.tip @@ -0,0 +1,68 @@ +% 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 3.4.1, p. I-68. +% Original source in file "reg1.TEX", starting line 2088. +\wlog{L: "printco.tip" ["reg1.TEX," l. 2088, p. I-68]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\arabic #1{\number#1} +\def\roman #1{% + \romannumeral #1% +} +\def\Roman #1{% + \ifcase #1\or + I\or II\or III\or IV\or V\or + VI\or VII\or VIII\or IX\or X\or + XI\or XII\or XIII\or XIV\or XV\or + XVI\or XVII\or XVIII\or XIX\or XX\or + XXI\or XXII\or XXIII\or XXIV\or XV% + \else + \errmessage{\string\Roman: argument \number#1 out + of range, larger than 25.}% + \fi +} +\def\alph #1{% + \ifcase #1% + \or a\or b\or c\or d\or e\or f\or g\or h\or i% + \else + \@Morealph{#1}% + \fi +} +\def\@Morealph #1{% + \ifcase #1% + \or \or \or \or \or \or \or \or \or + \or j\or k\or l\or m\or n\or o\or p\or q\or r% + \or s\or t\or u\or v\or w\or x\or y\or z% + \else + \errmessage{\string\@Morealph: argument too large.}% + \fi +} +\def\Alph #1{% + \ifcase #1% + \or A\or B\or C\or D\or E\or F\or G\or H\or I% + \else + \@MoreAlph{#1}% + \fi +} +\def\@MoreAlph #1{% + \ifcase #1% + \or \or \or \or \or \or \or \or \or + \or J\or K\or L\or M\or N\or O\or P\or Q\or R% + \or S\or T\or U \or V\or W\or X\or Y\or Z% + \else + \errmessage{\string\@MoreAlph: argument too large.}% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/printreg.tip b/info/examples/tex-in-practice/printreg.tip new file mode 100644 index 0000000000..e7e3335b5b --- /dev/null +++ b/info/examples/tex-in-practice/printreg.tip @@ -0,0 +1,24 @@ +% 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 21.4.6.1, p. III-164. +% Original source in file "macros1.TEX", starting line 740. +\wlog{L: "printreg.tip" ["macros1.TEX," l. 740, p. III-164]}% +% This file DOES belong to format "texip." +\def\PrintRegister #1{% + The current value of {\tt\string #1} is \the#1.% +} +\def\LogRegister #1{% + \message{The current value of \string#1 is \the#1.} +} diff --git a/info/examples/tex-in-practice/prmode.tip b/info/examples/tex-in-practice/prmode.tip new file mode 100644 index 0000000000..5576e88c83 --- /dev/null +++ b/info/examples/tex-in-practice/prmode.tip @@ -0,0 +1,29 @@ +% 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 25.1.23.1, p. III-348. +% Original source in file "macros5.TEX", starting line 1756. +\wlog{L: "prmode.tip" ["macros5.TEX," l. 1756, p. III-348]}% +% This file DOES belong to format "texip." +\def\PrintMode{% + \ifinner + \ifvmode \message{Current mode: inner vertical}\fi + \ifhmode \message{Current mode: restricted horizontal}\fi + \ifmmode \message{Current mode: (inline) math}\fi + \else + \ifvmode \message{Current mode: (regular) vertical}\fi + \ifhmode \message{Current mode: (regular) horizontal}\fi + \ifmmode \message{Current mode: display math}\fi + \fi +} diff --git a/info/examples/tex-in-practice/prmonth.tip b/info/examples/tex-in-practice/prmonth.tip new file mode 100644 index 0000000000..dd9ea460f8 --- /dev/null +++ b/info/examples/tex-in-practice/prmonth.tip @@ -0,0 +1,54 @@ +% 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 26.4, p. III-362. +% Original source in file "macros6.TEX", starting line 250. +\wlog{L: "prmonth.tip" ["macros6.TEX," l. 250, p. III-362]}% +% This file DOES belong to format "texip." +\InputD{legmonth.tip} +\catcode`\@ = 11 +\def\ProvideMonth #1#2#3{% + \CheckLegalMonth{#1}% + \ifcase #1\relax + \or + \def#3{January}\or + \def#3{February}\or + \def#3{March}\or + \def#3{April}\or + \def#3{May}\or + \def#3{June}\or + \def#3{July}\or + \def#3{August}\or + \def#3{September}\or + \def#3{October}\or + \def#3{November}\or + \def#3{December}% + \fi + \ifnum #2 = 1 + \def\@TempProvideMonth ##1##2##3##4\@Del{% + \xdef#3{##1##2##3}% + }% + \expandafter\@TempProvideMonth#3\@Del + \fi +} +\def\PrintMonth #1#2{% + {% + \ProvideMonth{#1}{#2}{\@PrintMonth}% + \@PrintMonth + }% +} +\def\PrintCurrentMonth{% + \PrintMonth{\month}{0}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/prot.tip b/info/examples/tex-in-practice/prot.tip new file mode 100644 index 0000000000..771a25fd2f --- /dev/null +++ b/info/examples/tex-in-practice/prot.tip @@ -0,0 +1,72 @@ +% 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 29.6.1, p. III-525. +% Original source in file "io2.TEX", starting line 1774. +\wlog{L: "prot.tip" ["io2.TEX," l. 1774, p. III-525]}% +% This file DOES belong to format "texip." +\InputD{doloop.tip} +\InputD{mspaces.tip} +\catcode`\@ = 11 +\newif\ifProtWrite +\ProtWritetrue +\newcount\@ProtCount +\newcount\@ProtCountX +\newwrite\@ProtWrite +\def\InitProtWrite{% + \ifProtWrite + \immediate\openout\@ProtWrite = \jobname.prt + \fi +} +\def\CloseProtWrite{% + \immediate\closeout\@ProtWrite +} +\def\WriteProtocol #1#2{% + \ifProtWrite + {% + \@ProtCount = #1\relax + \def\@WriteSpace{}% + \DoLoop{\count1}{1}{1}{\@ProtCount}% + {\edef\@WriteSpace{\@WriteSpace\FourSpaces}}% + \immediate\write\@ProtWrite{\@WriteSpace #2}% + }% + \fi +} +\def\BoxToProtocol #1#2#3{% + \ifProtWrite + {% + \WriteProtocol {#1}{\string\BoxToProtocol: #3}% + \@ProtCountX = #1\relax + \advance\@ProtCountX by 1 + \ifvoid #2% + \WriteProtocol{\@ProtCountX}{Box register #2 + is void.}% + \else + \ifhbox #2% + \WriteProtocol{\@ProtCountX}{Box register #2 + is an hbox.}% + \else + \WriteProtocol{\@ProtCountX}{Box register #2 + is a vbox.}% + \fi + \fi + \ifvoid #2% + \else + \WriteProtocol{\@ProtCountX}% + {Dimensions: (\the\ht#2+\the\dp#2)*\the\wd#2.}% + \fi + }% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/rangetst.tip b/info/examples/tex-in-practice/rangetst.tip new file mode 100644 index 0000000000..b4966fd908 --- /dev/null +++ b/info/examples/tex-in-practice/rangetst.tip @@ -0,0 +1,44 @@ +% 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 25.1.9, p. III-328. +% Original source in file "macros5.TEX", starting line 668. +\wlog{L: "rangetst.tip" ["macros5.TEX," l. 668, p. III-328]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newif\if@InRange +\def\InRangeConditional #1#2#3{% + TT\fi + \@InRangetrue + \ifnum #1<#2\relax + \@InRangefalse + \fi + \ifnum #1>#3\relax + \@InRangefalse + \fi + \if@InRange +} + +\def\CheckRange #1#2#3#4{% + \ifnum #1 < #2\relax + \errmessage{Value \number#1 \space out of range #2..#3: #4}% + \fi + \ifnum #1>#3\relax + \errmessage{Value \number#1 \space out of range #2..#3: #4}% + \fi +} +\def\CheckZeroOneRange #1#2{% + \CheckRange{#1}{0}{1}{#2}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/rboxt.tip b/info/examples/tex-in-practice/rboxt.tip new file mode 100644 index 0000000000..d3e45a3599 --- /dev/null +++ b/info/examples/tex-in-practice/rboxt.tip @@ -0,0 +1,24 @@ +% 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 4.5.7, p. I-99. +% Original source in file "reg2.TEX", starting line 1054. +\wlog{L: "rboxt.tip" ["reg2.TEX," l. 1054, p. I-99]}% +% This file DOES belong to format "texip." +\def\ReportBoxType #1{% + \message{\string\ReportBoxType: }% + \ifvoid #1\message{Box register #1 is void.}\fi + \ifhbox #1\message{Box register #1 contains a horizontal box.}\fi + \ifvbox #1\message{Box register #1 contains a vertical box.}\fi +} diff --git a/info/examples/tex-in-practice/readme b/info/examples/tex-in-practice/readme new file mode 100644 index 0000000000..eaaeda142b --- /dev/null +++ b/info/examples/tex-in-practice/readme @@ -0,0 +1,27 @@ +This is release 1.0 of the bug report with all macros (some of which +have been fixed). Run {\tt tip-bugs.tex} through {\tt tex} +(plain format is what you want to use!), print the file and +you are in business. + +And if you do a "initex texipexp.tex" you get fmt file +"texipexp.fmt". Rename this file to "texip.fmt." You now have +a .fmt file with all the relevant macros preloaded. + +And before I forget it: texip.idx contains an ASCII version of the +index which you can bring up in your favorite editor if you search +for a term in the index. Please tell me whether you found a machine +readable index a useful feature. + +Thank you. + +For you PC people +----------------- +On your diskette you find three files: + readme + lha.exe + texip.lzh + +1. If you execute "lha l texip" you can see the contents + of "texip.lzh" +2. If you execute "lha x texip" you can extract the contents + of "texip.lzh" diff --git a/info/examples/tex-in-practice/readnu.tip b/info/examples/tex-in-practice/readnu.tip new file mode 100644 index 0000000000..bf55ecd290 --- /dev/null +++ b/info/examples/tex-in-practice/readnu.tip @@ -0,0 +1,38 @@ +% 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 28.2.7, p. III-455. +% Original source in file "io1.TEX", starting line 470. +\wlog{L: "readnu.tip" ["io1.TEX," l. 470, p. III-455]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newread\@ReadNumberStream +\newcount\ReadANumberResult +\def\InitReadNumbers #1{% + \openin\@ReadNumberStream = #1 +} +\def\@ReadANumberPar{\par} +\def\ReadANumber{% + \ifeof\@ReadNumberStream + \ReadANumberResult = -1 + \else + \read\@ReadNumberStream to \@ReadANumberTemp + \ifx\@ReadANumberTemp\@ReadANumberPar + \ReadANumberResult = -1 + \else + \ReadANumberResult = \@ReadANumberTemp + \fi + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/redtost.tip b/info/examples/tex-in-practice/redtost.tip new file mode 100644 index 0000000000..acbbfcf59e --- /dev/null +++ b/info/examples/tex-in-practice/redtost.tip @@ -0,0 +1,27 @@ +% 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 7.4.4, p. I-241. +% Original source in file "vboxes1.TEX", starting line 1737. +\wlog{L: "redtost.tip" ["vboxes1.TEX," l. 1737, p. I-241]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newbox\@ReduceToStrutBox +\def\ReduceToStrut #1{% + \setbox\@ReduceToStrutBox = \hbox{#1}% + \vrule height \ht\@ReduceToStrutBox + depth \dp\@ReduceToStrutBox + width 0pt +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/remtlsp.tip b/info/examples/tex-in-practice/remtlsp.tip new file mode 100644 index 0000000000..87bac0dd08 --- /dev/null +++ b/info/examples/tex-in-practice/remtlsp.tip @@ -0,0 +1,50 @@ +% 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 24.1.20.1, p. III-309. +% Original source in file "macros4.TEX", starting line 1412. +\wlog{L: "remtlsp.tip" ["macros4.TEX," l. 1412, p. III-309]}% +% This file DOES belong to format "texip." +\InputD{compst.tip} +\catcode`\@ = 11 +\def\@TestTrail #1 #2\@Del{% + \def\@RemTspTemp{#1}% +} +\def\RemTsp #1#2{% + \edef\@RemTspTempOne{#2#2 }% + \expandafter\@TestTrail\@RemTspTempOne\@Del + \if\StringsEqualConditional{#2#2}{\@RemTspTemp}% + \def#1{#2}% + \else + \edef\@RemTspTempA{\noexpand\edef\noexpand#1{\@RemTspTemp}}% + \@RemTspTempA + \fi +} +\def\@TestLead #1 #2\@Del{\def\@RemLspOne{#1}} +\def\RemLsp #1#2{% + \edef\@TempRemLsp{#2#2\space}% + \expandafter\@TestLead\@TempRemLsp\@Del + \if\EmptyStringConditional{\@RemLspOne}% + \expandafter\@RemLspThree #2\@Del{#1}% + \else + \def#1{#2}% + \fi +} +\edef\@RemLspTwo{% + \def\noexpand\@RemLspThree\space ##1\noexpand\@Del##2{% + \def##2{##1}% + }% +} +\@RemLspTwo +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/restring.tip b/info/examples/tex-in-practice/restring.tip new file mode 100644 index 0000000000..f83e586b72 --- /dev/null +++ b/info/examples/tex-in-practice/restring.tip @@ -0,0 +1,52 @@ +% 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 24.1.16, p. III-298. +% Original source in file "macros4.TEX", starting line 866. +\wlog{L: "restring.tip" ["macros4.TEX," l. 866, p. III-298]}% +% This file DOES belong to format "texip." +\InputD{testsubs.tip} +\InputD{endrec.tip} +\catcode`\@ = 11 +\def\ReplaceSubStrings #1#2#3#4{% + \def\@ReplaceResult{#1}% + \edef\@ReplaceMain{#2}% + \edef\@ReplaceSub{#3}% + \edef\@ReplaceSubRep{#4}% + \@ReplaceSubStrings +} +\def\@ReplaceSubStrings{% + \RecursionMacroEnd + {\if\SubStringConditional{\@ReplaceMain}{\@ReplaceSub}}% + {\@ReplaceSubStringsDo}{\@ReplaceSubStringsDone}% +} +\def\@ReplaceSubStringsDoX{% + \def\@ReplaceSubStringsDoA ##1% +}% +\def\@ReplaceSubStringsDo{% + \expandafter\@ReplaceSubStringsDoX \@ReplaceSub + ##2\@EndReplaceSubStrings{% + \edef\@ReplaceMain{##1\@ReplaceSubRep ##2}% + }% + \ShowX{\@ReplaceSubStringsDoA}% + \ShowX{\@ReplaceMain}% + \expandafter\@ReplaceSubStringsDoA\@ReplaceMain + \@EndReplaceSubStrings + \ShowX{\@ReplaceMain}% + \@ReplaceSubStrings +} +\def\@ReplaceSubStringsDone{% + \expandafter\edef\@ReplaceResult{\@ReplaceMain}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/reverses.tip b/info/examples/tex-in-practice/reverses.tip new file mode 100644 index 0000000000..08921b4d9b --- /dev/null +++ b/info/examples/tex-in-practice/reverses.tip @@ -0,0 +1,39 @@ +% 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 24.1.17.1, p. III-301. +% Original source in file "macros4.TEX", starting line 1003. +\wlog{L: "reverses.tip" ["macros4.TEX," l. 1003, p. III-301]}% +% This file DOES belong to format "texip." +\InputD{showx.tip} +\catcode`\@ = 11 +\def\ReverseString #1#2{% + \def\@ReverseStringName{#1}% + \def\@ReversedString{}% + \edef\@ReverseTemp{#2}% + \ShowX\@ReverseTemp + \expandafter\@ReverseString\@ReverseTemp\@Del +} +\def\@ReverseString #1{% + \ifx #1\@Del + \expandafter\edef\@ReverseStringName{\@ReversedString}% + \let\@ReverseStringNext = \relax + \else + \edef\@ReversedString{#1\@ReversedString}% + \let\@ReverseStringNext = \@ReverseString + \def\@ReverseStringNext{\@ReverseString}% + \fi + \@ReverseStringNext +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/rh-dict.tip b/info/examples/tex-in-practice/rh-dict.tip new file mode 100644 index 0000000000..a2c4315613 --- /dev/null +++ b/info/examples/tex-in-practice/rh-dict.tip @@ -0,0 +1,31 @@ +% 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 34.7.4.3, p. IV-84. +% Original source in file "o1.TEX", starting line 1068. +\wlog{L: "rh-dict.tip" ["o1.TEX," l. 1068, p. IV-84]}% +% This file DOES NOT belong to format "texip." +\InputD{box-mac.tip} +\raggedright +\hsize = 11pc +\vsize = 19pc +\parskip = 3pt plus 2pt minus 2pt +\headline = {% + \ifodd\pageno + \RightlineR{\it\botmark}% + \else + \LeftlineR{\it\firstmark}% + \fi +} +\EliminateRuledBoxes diff --git a/info/examples/tex-in-practice/robust.tip b/info/examples/tex-in-practice/robust.tip new file mode 100644 index 0000000000..925a2a2606 --- /dev/null +++ b/info/examples/tex-in-practice/robust.tip @@ -0,0 +1,35 @@ +% 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 28.5.7, p. III-481. +% Original source in file "io1.TEX", starting line 1716. +\wlog{L: "robust.tip" ["io1.TEX," l. 1716, p. III-481]}% +% This file DOES belong to format "texip." +\InputD{fotok.tip} +\catcode`\@ = 11 +\def\MakeRobust{} +\def\TreatAsRobust #1{% + \def #1{% + \noexpand #1% + }% +} +\newtoks\@RobustTokenList +\@RobustTokenList = {} +\def\AddToRobustList #1{% + \@RobustTokenList = \expandafter{\the\@RobustTokenList #1}% +} +\def\Robusting{% + \ForEachToken{\@RobustTokenList}{\TreatAsRobust}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/samplepa.tip b/info/examples/tex-in-practice/samplepa.tip new file mode 100644 index 0000000000..814f269405 --- /dev/null +++ b/info/examples/tex-in-practice/samplepa.tip @@ -0,0 +1,40 @@ +% 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 27.1.3.3, p. III-402. +% Original source in file "macros7.TEX", starting line 309. +\wlog{L: "samplepa.tip" ["macros7.TEX," l. 309, p. III-402]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newcount\@SampleParCounter +\newcount\@SampleParSentenceCounter +\@SampleParCounter = 1 +\def\SamplePar #1#2{% + \@SampleParSentenceCounter = 0 + Identification of this paragraph: {\it #1}. + {\it Sample paragraph~\the\@SampleParCounter, + with~#2 sentences}. So here we go, + and when you check the number of sentences, then note + that these first two sentences do {\it not\/} count. + \loop + \advance\@SampleParSentenceCounter by 1 + This is one of the many sentences this macro + generates, to be more specific it is sentence + number~\the\@SampleParSentenceCounter\space of~#2. + \ifnum\@SampleParSentenceCounter < #2 + \repeat + \par + \global\advance\@SampleParCounter by 1 +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/setstrut.tip b/info/examples/tex-in-practice/setstrut.tip new file mode 100644 index 0000000000..441ec442b7 --- /dev/null +++ b/info/examples/tex-in-practice/setstrut.tip @@ -0,0 +1,51 @@ +% 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 7.4.3.1, p. I-239. +% Original source in file "vboxes1.TEX", starting line 1639. +\wlog{L: "setstrut.tip" ["vboxes1.TEX," l. 1639, p. I-239]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newdimen\@StrutBaseDimension +\newdimen\@StrutSkipTemp +\def\ComputeStrut{% + \@StrutBaseDimension = \baselineskip + \ifdim\baselineskip < 0pt + \errhelp = {You probably called \string\offinterlineskip + before \string\ComputeStrut} + \errmessage{\string\ComputeStrut: negative + \string\baselineskip (\the\baselineskip)}% + \fi +} +\def\MyStrut{% + \vrule height 0.7\@StrutBaseDimension + depth 0.3\@StrutBaseDimension + width 0pt +} +\def\HigherStrut #1{% + \@StrutSkipTemp = 0.7\@StrutBaseDimension + \advance\@StrutSkipTemp by #1% + \vrule height \@StrutSkipTemp + depth 0.3\@StrutBaseDimension + width 0pt +} +\def\DeeperStrut #1{% + \@StrutSkipTemp = 0.3\@StrutBaseDimension + \advance\@StrutSkipTemp by #1% + \vrule height 0.7\@StrutBaseDimension + depth \@StrutSkipTemp + width 0pt +} +\ComputeStrut +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/shboxes.tip b/info/examples/tex-in-practice/shboxes.tip new file mode 100644 index 0000000000..6137e5ab7e --- /dev/null +++ b/info/examples/tex-in-practice/shboxes.tip @@ -0,0 +1,42 @@ +% 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 4.5.15, p. I-111. +% Original source in file "reg2.TEX", starting line 1524. +\wlog{L: "shboxes.tip" ["reg2.TEX," l. 1524, p. I-111]}% +% This file DOES belong to format "texip." +\def\ShowBoxAll #1{% + {% + \nonstopmode + \showboxdepth = 10000 + \showboxbreadth = 10000 + \showbox #1% + }% +} +\def\ShowBoxDepthOne #1{% + {% + \nonstopmode + \showboxdepth = 1 + \showboxbreadth = 10000 + \showbox #1% + }% +} +\def\ShowBoxDepthTwo #1{% + {% + \nonstopmode + \showboxdepth = 2 + \showboxbreadth = 10000 + \showbox #1% + }% +} diff --git a/info/examples/tex-in-practice/shiftudb.tip b/info/examples/tex-in-practice/shiftudb.tip new file mode 100644 index 0000000000..b2554b525a --- /dev/null +++ b/info/examples/tex-in-practice/shiftudb.tip @@ -0,0 +1,30 @@ +% 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 7.5.7, p. I-254. +% Original source in file "vboxes1.TEX", starting line 2416. +\wlog{L: "shiftudb.tip" ["vboxes1.TEX," l. 2416, p. I-254]}% +% This file DOES belong to format "texip." +\InputD{chboxd.tip} +\InputD{box-mac.tip} +\def\ShiftRefPointUpOrDown #1#2{% + \AdvanceBoxDimension{\ht#1}{#2}% + \ifdim\ht#1 < 0pt + \ht#1 = 0pt + \fi + \AdvanceBoxDimension{\dp#1}{-#2}% + \ifdim\dp#1 < 0pt + \dp#1 = 0pt + \fi +} diff --git a/info/examples/tex-in-practice/showpll.tip b/info/examples/tex-in-practice/showpll.tip new file mode 100644 index 0000000000..896edbf166 --- /dev/null +++ b/info/examples/tex-in-practice/showpll.tip @@ -0,0 +1,46 @@ +% 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 35.8, p. IV-120. +% Original source in file "o2.TEX", starting line 1726. +\wlog{L: "showpll.tip" ["o2.TEX," l. 1726, p. IV-120]}% +% This file DOES belong to format "texip." +\InputD{shboxes.tip} +\InputD{op-pagec.tip} +\catcode`\@ = 11 +\newif\ifShowPlainLists +\ShowPlainListsfalse +\def\@ShowPlainLists{% + \ifShowPlainLists + \wlog{*** \string\@ShowPlainLists: main vertical list ***}% + \wlog{*** Page number (\string\count0): \the\count0 + \space***}% + \ShowBoxDepthOne{255}% + \ifvoid\footins + \wlog{\string\@ShowPlainLists: no footnotes.}% + \else + \wlog{*** \string\@ShowPlainLists: footnote box ***}% + \ShowBoxDepthOne{\footins}% + \fi + \ifvoid\topins + \wlog{\string\@ShowPlainLists: no topinserts.}% + \else + \wlog{*** \string\@ShowPlainLists: top inserts ***}% + \ShowBoxDepthTwo{\topins}% + \fi + \wlog{*** \string\@ShowPlainLists: end dump of + page: \the\count0 \space ***}% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/showx.tip b/info/examples/tex-in-practice/showx.tip new file mode 100644 index 0000000000..7a02c3ef1f --- /dev/null +++ b/info/examples/tex-in-practice/showx.tip @@ -0,0 +1,28 @@ +% 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 21.5.11, p. III-178. +% Original source in file "macros1.TEX", starting line 1413. +\wlog{L: "showx.tip" ["macros1.TEX," l. 1413, p. III-178]}% +% This file DOES belong to format "texip." +\newif\ifShowX +\ShowXfalse +\def\ShowX #1{% + \ifShowX + {% + \nonstopmode + \show #1% + }% + \fi +} diff --git a/info/examples/tex-in-practice/sigline.tip b/info/examples/tex-in-practice/sigline.tip new file mode 100644 index 0000000000..1fe31c966c --- /dev/null +++ b/info/examples/tex-in-practice/sigline.tip @@ -0,0 +1,27 @@ +% 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 6.10.2, p. I-201. +% Original source in file "boxes.TEX", starting line 2409. +\wlog{L: "sigline.tip" ["boxes.TEX," l. 2409, p. I-201]}% +% This file DOES belong to format "texip." +\def\SignatureLine #1#2{% + \hbox{% + \hbox to 0pt{% + \vrule width #1 height 0.6pt depth 0pt + \hss % Equivalent to \hskip -#1. + }% + \lower 10pt \hbox to #1{\hfil #2\hfil}% + }% +} diff --git a/info/examples/tex-in-practice/spacefac.tip b/info/examples/tex-in-practice/spacefac.tip new file mode 100644 index 0000000000..4e9488cc27 --- /dev/null +++ b/info/examples/tex-in-practice/spacefac.tip @@ -0,0 +1,28 @@ +% 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 16.2.9, p. II-282. +% Original source in file "fonts2.TEX", starting line 958. +\wlog{L: "spacefac.tip" ["fonts2.TEX," l. 958, p. II-282]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\SaveSpaceFactor{% + \xdef\@SavedSpaceFactor{% + \spacefactor = \the\spacefactor + }% +} +\def\RestoreSpaceFactor{% + \@SavedSpaceFactor +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/splitpar.tip b/info/examples/tex-in-practice/splitpar.tip new file mode 100644 index 0000000000..d40236d2df --- /dev/null +++ b/info/examples/tex-in-practice/splitpar.tip @@ -0,0 +1,49 @@ +% 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 8.2.12, p. I-296. +% Original source in file "vboxes2.TEX", starting line 1096. +\wlog{L: "splitpar.tip" ["vboxes2.TEX," l. 1096, p. I-296]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newcount\@PPLineNumber +\newbox\@PrintParWithLinesBox +\newbox\@PrintParWithLinesTemp +\def\PrintParWithLineNumbers #1{% + \par + \@PPLineNumber = 1 + \splittopskip = 0.6666\baselineskip + \setbox\@PrintParWithLinesBox = \vbox{#1} + \@PrintParWithLineNumbers +} +\def\@PrintParWithLineNumbers{ + \ifvoid\@PrintParWithLinesBox + \let\@PPNext = \relax + \else + \setbox\@PrintParWithLinesTemp = + \vsplit\@PrintParWithLinesBox to 0.666\baselineskip + \hbox{% + \llap{% + \the\@PPLineNumber:% + \hskip 10pt + }% + \box \@PrintParWithLinesTemp + }% + \advance\@PPLineNumber by 1 + \wlog{Line \the\@PPLineNumber}% + \let\@PPNext = \@PrintParWithLineNumbers + \fi + \@PPNext +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ssmath.tip b/info/examples/tex-in-practice/ssmath.tip new file mode 100644 index 0000000000..395661358e --- /dev/null +++ b/info/examples/tex-in-practice/ssmath.tip @@ -0,0 +1,38 @@ +% 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 14.5.7, p. II-206. +% Original source in file "math2.TEX", starting line 951. +\wlog{L: "ssmath.tip" ["math2.TEX," l. 951, p. II-206]}% +% This file DOES belong to format "texip." +\def\SameSizeMath{ + \textfont0 = \tenrm + \scriptfont0 = \tenrm + \scriptscriptfont0 = \tenrm + \textfont1 = \tenit + \scriptfont1 = \tenit + \scriptscriptfont1 = \tenit + \textfont2 = \tensy + \scriptfont2 = \tensy + \scriptscriptfont2 = \tensy + \textfont3 = \tenex + \scriptfont3 = \tenex + \scriptscriptfont3 = \tenex + \textfont\itfam = \tenit + \textfont\slfam = \tensl + \textfont\bffam = \tenbf + \scriptfont\bffam = \tenbf + \scriptscriptfont\bffam = \tenbf + \textfont\ttfam = \tentt +} diff --git a/info/examples/tex-in-practice/strleng.tip b/info/examples/tex-in-practice/strleng.tip new file mode 100644 index 0000000000..053de2ca60 --- /dev/null +++ b/info/examples/tex-in-practice/strleng.tip @@ -0,0 +1,29 @@ +% 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 15.2.6, p. II-237. +% Original source in file "fonts1.TEX", starting line 538. +\wlog{L: "strleng.tip" ["fonts1.TEX," l. 538, p. II-237]}% +% This file DOES belong to format "texip." +\newcount\StringLengthResult +\catcode`\@ = 11 +\newbox\@StringLengthBoxA +\newbox\@StringLengthBoxB +\def\StringLength #1{% + \setbox\@StringLengthBoxA = \hbox{\tt #1}% + \setbox\@StringLengthBoxB = \hbox{\tt A}% + \StringLengthResult = \wd\@StringLengthBoxA + \divide\StringLengthResult by \wd\@StringLengthBoxB +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/stswitch.tip b/info/examples/tex-in-practice/stswitch.tip new file mode 100644 index 0000000000..76d8c936d3 --- /dev/null +++ b/info/examples/tex-in-practice/stswitch.tip @@ -0,0 +1,57 @@ +% 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 25.1.19.1, p. III-341. +% Original source in file "macros5.TEX", starting line 1398. +\wlog{L: "stswitch.tip" ["macros5.TEX," l. 1398, p. III-341]}% +% This file DOES belong to format "texip." +\InputD{compst.tip} +\catcode`\@ = 11 +\newcount\@StringSwitchMatchCount +\def\StringSwitch #1#2{% + \edef\@StringSwitchMasterString{#1}% + \if\EmptyStringConditional{#1}% + \errmessage{\string\StringSwitch: master string + must not be the empty string.}% + \fi + \def\@StringSwitchMatchCommonCode{#2}% + \@StringSwitchMatchCount = 0 + \@StringSwitch +} +\def\@StringSwitchOne #1#2{% + \def\@StringSwitchString{#1}% + \def\@StringSwitchAction{#2}% +} +\def\@StringSwitch #1{% + \@StringSwitchOne #1% + \if\EmptyStringConditional{\@StringSwitchString}% + \ifcase\@StringSwitchMatchCount + \@StringSwitchAction + \or + \else + \errmessage{\string\StringSwitch: double match.}% + \fi + \def\@StringSwitchNext{}% + \else + \if\StringsEqualConditional{\@StringSwitchMasterString}% + {\@StringSwitchString}% + \advance\@StringSwitchMatchCount by 1 + \@StringSwitchMatchCommonCode + \@StringSwitchAction + \fi + \def\@StringSwitchNext{\@StringSwitch}% + \fi + \@StringSwitchNext +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/substf.tip b/info/examples/tex-in-practice/substf.tip new file mode 100644 index 0000000000..d091324c5f --- /dev/null +++ b/info/examples/tex-in-practice/substf.tip @@ -0,0 +1,28 @@ +% 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 16.1.3, p. II-265. +% Original source in file "fonts2.TEX", starting line 159. +\wlog{L: "substf.tip" ["fonts2.TEX," l. 159, p. II-265]}% +% This file DOES belong to format "texip." +\def\SubstituteFontX #1#2#3#4{% + \def#1{% + \message{% + \string\SubstituteFontX: No \string#2 font of + #3pt, using \noexpand\rm instead.% + }% + \global\let #1 = #4% + #1% + }% +} diff --git a/info/examples/tex-in-practice/sumhd.tip b/info/examples/tex-in-practice/sumhd.tip new file mode 100644 index 0000000000..fd81044f0a --- /dev/null +++ b/info/examples/tex-in-practice/sumhd.tip @@ -0,0 +1,22 @@ +% 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 4.5.10, p. I-102. +% Original source in file "reg2.TEX", starting line 1246. +\wlog{L: "sumhd.tip" ["reg2.TEX," l. 1246, p. I-102]}% +% This file DOES belong to format "texip." +\def\OverallSize #1#2{% + #1 = \ht#2\relax + \advance#1 by \dp#2\relax +} diff --git a/info/examples/tex-in-practice/swapbox.tip b/info/examples/tex-in-practice/swapbox.tip new file mode 100644 index 0000000000..a5bdcd9b15 --- /dev/null +++ b/info/examples/tex-in-practice/swapbox.tip @@ -0,0 +1,26 @@ +% 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 4.5.5, p. I-98. +% Original source in file "reg2.TEX", starting line 987. +\wlog{L: "swapbox.tip" ["reg2.TEX," l. 987, p. I-98]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newbox\@SwapBox +\def\SwapBoxRegs #1#2{% + \setbox\@SwapBox = \box#1% + \setbox#1 = \box#2% + \setbox#2 = \box\@SwapBox +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/tabcent.tip b/info/examples/tex-in-practice/tabcent.tip new file mode 100644 index 0000000000..c84cae05af --- /dev/null +++ b/info/examples/tex-in-practice/tabcent.tip @@ -0,0 +1,31 @@ +% 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 40.6.8, p. IV-333. +% Original source in file "table3.TEX", starting line 1654. +\wlog{L: "tabcent.tip" ["table3.TEX," l. 1654, p. IV-333]}% +% This file DOES belong to format "texip." +\def\TableBeginCentered{% + $$ + \vbox\bgroup + \offinterlineskip + \tabskip = 0pt + \halign\bgroup +} +\def\TableEndCentered{% + \crcr + \egroup + \egroup + $$ +} diff --git a/info/examples/tex-in-practice/tabswb.tip b/info/examples/tex-in-practice/tabswb.tip new file mode 100644 index 0000000000..87d9698106 --- /dev/null +++ b/info/examples/tex-in-practice/tabswb.tip @@ -0,0 +1,27 @@ +% 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.1 +% Date: May 1, 1993 +% +% +% This source code is documented in 38.3.7, p. IV-212. +% Original source in file "table1.TEX", starting line 684. +\wlog{L: "tabswb.tip" ["table1.TEX," l. 684, p. IV-212]}% +% This file DOES belong to format "texip." +\InputD{maxmindi.tip} +\catcode`\@ = 11 +\newbox\@WidthSavingBox +\def\WidthSavingBox #1#2{% + \setbox\@WidthSavingBox = \hbox{#1}% + \MaxDimen{#2}{#2}{\wd\@WidthSavingBox}{\global}% + \box\@WidthSavingBox +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/testdef.tip b/info/examples/tex-in-practice/testdef.tip new file mode 100644 index 0000000000..d9bff77499 --- /dev/null +++ b/info/examples/tex-in-practice/testdef.tip @@ -0,0 +1,30 @@ +% 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 21.5.6, p. III-173. +% Original source in file "macros1.TEX", starting line 1179. +\wlog{L: "testdef.tip" ["macros1.TEX," l. 1179, p. III-173]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newif\if@Defined +\def\DefinedConditional #1{% + TT\fi + \ifx\@UndefinedToken #1% + \@Definedfalse + \else + \@Definedtrue + \fi + \if@Defined +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/testsubs.tip b/info/examples/tex-in-practice/testsubs.tip new file mode 100644 index 0000000000..dc5bcf2691 --- /dev/null +++ b/info/examples/tex-in-practice/testsubs.tip @@ -0,0 +1,42 @@ +% 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 24.1.15.1, p. III-293. +% Original source in file "macros4.TEX", starting line 661. +\wlog{L: "testsubs.tip" ["macros4.TEX," l. 661, p. III-293]}% +% This file DOES belong to format "texip." +\InputD{showx.tip} +\catcode`\@ = 11 +\newif\if@TestSubString +\def\SubStringConditional #1#2{% + TT\fi + \edef\@MainString{#1}% + \edef\@SubStringConditionalTemp{{#1}{#2}}% + \expandafter\@SubStringConditional\@SubStringConditionalTemp +} +\def\@SubStringConditional #1#2{% + \def\@TestSubS ##1#2##2\@Del{% + \def\@TestTemp{##1}% + }% + \ShowX{\@TestSubS}% + \@TestSubS #1#2\@Del + \ShowX{\@TestTemp}% + \ifx\@MainString\@TestTemp + \@TestSubStringfalse + \else + \@TestSubStringtrue + \fi + \if@TestSubString +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/texip.idx b/info/examples/tex-in-practice/texip.idx new file mode 100644 index 0000000000..3283cc0306 --- /dev/null +++ b/info/examples/tex-in-practice/texip.idx @@ -0,0 +1,3918 @@ +% This is an ASCII version of the index of all four volumes +% of "TeX in Practice", Copyright (C) 1993 Springer-Verlag New York. +% The index is provided to you in machine readable form for your own +% convinience so you can bring up the index in a text editor to +% search for a term. + + + \,, II-185 + \;, II-185 + \>, II-185 + \BackslashTt\LeftQuoteTt, I-20 + \VisibleSpaceTt, I-23, I-24 + \BackslashTt\BackslashTt, II-37, II-43 + \DollarSignTt\DollarSignTt, II-156 + \PercentSignTt, I-17, III-10 + \BackslashTt\DoubleQuoteTt, I-21 + \AmpersandTt, I-17, I-24, I-199, IV-201 + spaces, IV-229 + \RightQuoteTt, I-20, III-24 + \AcuteAccentTt, I-20 + \RightQuoteTt\RightQuoteTt\space(''), I-20 + \LeftQuoteTt\space (reverse apostrophe or left quote), I-20 + \BackslashTt\VisibleSpaceTt, I-22, I-23, II-11, II-185, III-4, III-17 + \LeftQuoteTt\LeftQuoteTt\space (``), I-20 + \DoubleQuoteTt, I-20, I-40 + \LeftParenthesisTt\RightParenthesisTt, I-19 + \LeftBracketTt\RightBracketTt, I-19 + \PoundSignTt, I-18 + \BackslashTt\LeftBraceTt, I-19 + \LeftBraceTt\RightBraceTt, I-4, I-18 + \BackslashTt\RightBraceTt, I-19 + \PlusSignTt, I-19 + \BackslashTt\PlusSignTt, I-19, I-198 + \HyphenTt, I-21, I-23 + \MinusSignTt, I-19, I-23 + \-, II-139 + \EnDashTt\space (en-dash), I-21, I-23 + \EmDashTt\space (em-dash), I-21, I-23 + {$\pm$}, II-167 + $\mp$, II-167 + \BackslashTt/ (italic correction), II-256 + $|$, I-154 + \BackslashTt, I-4, I-16, III-10, III-65 + \LessThanSign, I-20 + \GreaterThanSign=, II-168 + =/, III-24 + \GreaterThanSign, I-20 + \BackslashTt,, II-207 + \PeriodTt, I-21 + $\cdots$ {\it see\/} \cdots, I-22 + $\cdots$ {\it see\/} \ldots, I-22 + \QuestionMarkTt, I-19 + \OpenQuestionTt, I-19 + \ExclamationPointTt, I-19 + \OpenExclamationTt, I-19 + \UnderscoreTt, I-18, II-160 + \DollarSignTt, I-17, II-155 + \BackslashTt\UnderscoreTt, I-18, III-24 + \CaretTt, I-4 + \BackslashTt\CaretTt, I-18 + \TildeTt, I-22, I-25, I-159, III-15 + \BackslashTt\TildeTt, I-22 + \ddag, I-23 + \AtSignTt, I-16, III-13 + category code, III-13 + \BackslashTt\ExclamationPointTt, II-185 + + + 255 + box register, I-37, IV-2, IV-45, IV-51, IV-58 + + + 256, I-44 + + + \AA, I-22 + \aa, I-22 + abbreviations, I-22 + *\above, II-172, II-173 + *\abovedisplayshortskip, I-93, + II-217, IV-14 + *\abovedisplayskip, I-93, II-217, + IV-9, IV-14 + *\abovewidthdelims, II-172 + absolute value + dimension, I-81, I-91 + number, I-57 + \AbsoluteValue, I-57 + Acc, II-192 + *\accent, II-12, II-294 + accents, II-294 + acute, I-20 + bar-under, IV-354 + cedilla, IV-354 + circumflex, I-18 + dot-under, IV-354 + grave, I-20 + math, II-177, II-197, II-294 + text, II-294 + wide, II-177 + \AccessArrayElement, III-136, III-137 + \active, III-15 + active characters, I-24, I-25, III-15, III-16 + end-of-line, I-25 + delimiters, III-191 + math mode, III-23 + plain format, III-24 + space, I-25 + tilde, III-15 + \acute, II-177 + acute accent, I-20 + \AcuteAccentText, III-28 + \AcuteAccentTt, III-28 + \AddBoxToQueue, III-423, III-426 + \AddCounterToResetList, I-75 + \AddInfo, III-118, III-119, III-210 + \AddToRobustList, III-482 + *\adjdemerits, I-54, II-143, + II-149 + administrative files, I-10, III-541 + *\advance, I-39 + \AdvanceBoxDimension, I-102 + \AdvanceByTabStops, IV-299 + \advancepageno, III-563, IV-50, IV-93 + .afm, II-324 + *\afterassignment, I-235, I-336, + I-338, II-108, III-112, III-235, III-236, + III-315 + grouping, III-239 + multiple, III-238 + \AfterEveryPar, III-349 + *\aftergroup, I-338, III-111, III-112, + III-315, IV-99 + \aleph, II-167 + algorithm + page breaking, IV-1--IV-38 + alignment + columns, IV-200 + vboxes, I-256 + vertical, IV-355 + allocation + box registers, I-95 + \allowbreak, I-159, IV-17 + \Alph, I-68 + \alph, I-68, I-69, II-62 + \alpha, II-166 + alphabet + calligraphic, II-167 + \AlwaysBaseLineSkip, I-232 + \amalg, II-168 + American Mathematical Society, I-14 + ampersand, I-17, I-24, I-199, IV-201 + spaces, IV-229 + \AmpersandText, III-28 + \AmpersandTt, III-28 + AMS, I-14 + AMSFonts, II-247 + \AmSTeX, I-9 + \AmSTeX, III-166 + amstex, II-315 + \angle, II-167 + \angt, I-20, II-223 + Apollo system, I-2 + apostrophe, I-20, III-24 + \ApostropheText, III-28 + \ApostropheTt, III-28 + \Appendix, III-601 + \AppendixRef, III-610 + \AppendVerbatimL, III-44, III-54 + \AppendVerbWrite, III-512 + \approx, II-169, II-170 + \arabic, I-68 + Arabic numerals, I-16, I-47 + \ArbitraryDayOfWeek, III-381 + \arccos, II-165 + \arcsin, II-165 + \arctan, II-165 + \arg, II-165 + arguments, III-181, III-218 + default, III-265 + delimited, III-99 + empty, III-182 + delimited parameters, III-195 + formal, I-35 + normalizing of, III-347 + optional, III-253, III-260 + spaces in, III-185 + arithmetic + absolute value, I-57 + counter registers, I-50 + modular, I-51, I-58 + registers, I-37--I-39 + array macros, III-77--III-83, III-135--III-149 + associative memory, III-77 + \ArrayIndexCheck, III-136 + ASCII code, I-40, I-43, III-3, III-4 + \AssignCounterToReg, I-70, I-76 + associative memory, III-77 + \ast, II-168 + \asymp, II-169 + at, II-242 + atoms, II-191 + field, II-191 + nucleus, II-192 + types, II-191, II-192 + *\atop, II-172, II-173 + *\atopwithdelims, II-173 + \AtPage, III-608 + \AtSignText, III-28 + \AtSignTt, III-28 + automatic + footnote numbering, IV-102, IV-156 + list numbering, II-62 + .aux, II-324 + auxiliary part files, III-541, III-542 + + + \B, III-434, III-435 + \b, IV-354 + \Backslash, III-28 + \backslash, I-17, II-167 + \BackslashTt, III-28 + *\badness, I-56, I-129 + badness, I-127--I-135 + 1,000,000, I-128 + 10,000, I-128 + computation, I-128 + zero badness, I-128 + \bar, II-177 + base name, I-5, III-447 + baseline, I-218 + *\baselineskip, I-28, I-93, + I-217--I-235, II-11, II-91, II-110, + II-112, II-269, II-270, II-274, IV-3, IV-13, + IV-171, IV-255, 70 + \topskip, I-257 + typical settings, I-220 + *\batchmode, I-106, III-442, III-521 + .bbl, II-324 + beautiful, I-2 + *\beforedisplayskip, IV-36 + \BeginAList, II-55, II-67 + \BeginAListX, II-55, II-56 + \Beginalt, III-57 + \BeginCenter, II-101 + \BeginDisplayMath, II-159 + \BeginDoubleColumns, IV-176 + \BeginEndNote, III-518 + \BeginEnumerate, II-73, II-76 + \BeginEnv, III-104, III-105 + \BeginFigure, IV-129, IV-130 + \BeginFontTable, II-298, II-299 + *\begingroup, III-53, III-99, III-106 + \BeginItemize, II-77 + \BeginMath, II-158 + \BeginTable, IV-129, IV-131 + \BeginTestInsert, IV-31 + \BeginVerbatim, III-36, III-40, III-43, III-45, III-53, III-54, + III-56, III-198 + \BeginVerbWr, III-507 + \BeginVerbWrite, III-511 + *\belowdisplayshortskip, I-93, + II-217, IV-14 + *\belowdisplayskip, I-93, II-217, + IV-9, IV-14 + \beta, II-166 + \bf, I-4, II-256 + \bgroup, I-167, II-162, II-172, III-99, III-104, III-106, IV-31, + IV-324 + \egroup and insertions, III-103 + \egroup and tables, III-103 + horizontal boxes, I-167 + .bib, II-324 + bibliography + generation with TeX, II-321 + typesetting of, II-21 + bibtex, II-321 + big point, I-82 + \bigbreak, IV-15, IV-16 + \bigcap, II-178 + \bigcirc, II-168 + \bigcup, II-178 + \bigl, II-180 + \BigLetPar, II-85 + \Bigm, II-181 + \bigm, II-181 + \bigodot, II-178 + \bigoplus, II-178 + \bigotimes, II-178 + \Bigr, II-180 + \bigr, II-180 + \bigskip, I-142, II-152, IV-3, IV-14, IV-15 + \bigsqcup, II-178 + \bigtriangledown, II-168 + \bigtriangleup, II-168 + \biguplus, II-178 + \bigvee, II-178 + \bigwedge, II-178 + Bin, II-192 + *\binoppenalty, I-54, II-144, + II-187 + boldface + font, II-256 + poor man's, I-183 + \BoldfaceFake, I-183 + boolean, III-320 + borderlines, I-313 + \bordermatrix, II-222 + \bot, II-167 + *\botmark, IV-82 + bottom flush page layout, IV-9 + \bowtie, II-169 + *\box, I-96, I-211, + I-261, I-319, I-336 + boxes, I-161--I-207 + base line + marking of, I-322--I-343 + borderlines, I-313 + boundary, II-191 + characters, I-164, I-168, II-231 + comparing horizontal and vertical boxes, I-210 + contents + registers, I-96 + depth + natural, I-264 + zero, I-185 + dimension registers, I-87 + dimensions, I-162 + discardable items, I-180 + enlarging, I-298 + font changes, I-168 + height + natural, I-264 + zero, I-185 + horizontal, I-161 + \bgroup, I-167 + dimensions, I-176, I-242 + \egroup, I-167 + horizontal glue, I-163 + horizontal leaders, I-163 + hyphenation, I-189 + input format, I-165 + math material, I-164 + rules, I-174 + vertical rules, I-164 + implicit grouping, I-164, III-106 + leaders, I-145, I-147 + loose, I-131 + lowering, I-169 + main vertical list, IV-1 + math mode, I-164, I-175 + nested, I-164, I-168, I-172, I-214 + overfull, I-131, I-132 + raising, I-169 + reference point, I-162, I-243 + marking of, I-322--I-343 + registers, I-36, I-95, I-99, I-168 + 255, I-37, IV-2, IV-45, IV-51, IV-58 + allocation, I-95 + analyzing TeX's computation, I-226 + clearing, I-98 + conditionals, III-322 + dimensions, I-100 + empty, I-103 + exchanging, I-97 + grouping, III-110 + loading of, I-97 + queues, III-423 + retrieving contents, I-96 + setting dimensions zero, I-104 + states, I-96 + void, I-103, III-322 + writing to log file, I-105 + ruled, I-318--I-343 + tight, I-131 + types, I-161 + underfull, I-131 + unwrapping, I-261 + vertical, I-161, I-209--I-312 + comparing, I-209 + curly braces, I-210 + depth, I-243 + first item, I-227 + glue, I-211, I-213 + height, I-243 + insertions, I-211 + limitation of depth, I-246 + marks, I-211 + moving horizontally, I-217 + paragraphs, I-212, II-8 + penalties, I-211 + shifting reference point, I-254, I-264 + table entries, IV-304--IV-311 + vertical list, I-210 + visible, I-209 + visible, I-163 + output routines, IV-44 + width, I-176, I-242 + natural, I-125, I-176 + zero, I-180 + \BoxingA, I-319 + \BoxingB, I-319, I-321 + \BoxingC, I-319, I-323 + \BoxingD, I-319, I-324 + \BoxingE, I-319, I-332 + \BoxLarger, I-298 + *\boxmaxdepth, I-89, I-246, + I-293, IV-28 + \BoxR, I-319, I-334, I-336 + \BoxRuleThickness, I-321 + \BoxToProtocol, III-526 + bp, I-82 + braces, I-4, I-18, III-170 + math mode, II-207 + brackets, I-19 + \break, I-158, I-159, II-36, II-43, IV-17--IV-19 + break point + glue, I-270 + \Bref, III-167 + \breve, II-177 + British Currency Pound Sign, I-17 + *\brokenpenalty, I-54, + III-597, III-598, IV-20, IV-22, + IV-25 + \btex, III-56 + \ @BuildNewSpecialFiles, III-559 + \bullet, II-168 + \BVerbB, III-54 + \bye, I-4, III-156, III-169, III-180, III-442, IV-53, IV-108 + + + C, 6 + \c, IV-354 + C++, III-340, 6 + calendar + Gregorian, III-357 + macros, III-357--III-396 + monthly, III-385--III-389 + yearly, III-390--III-391 + calligraphic alphabet, II-167 + \CancelSuppressNextParIndent, II-36 + \cap, II-168 + \Caption, IV-129 + \CarCarOfList, III-123 + \Card, IV-70 + \CardOutputRoutine, IV-71 + caret, I-18, II-160 + \CaretTabfalse, III-44 + \CaretTabtrue, III-44 + \CaretText, III-28 + \CaretTt, III-28 + \CarOfList, III-122, III-126 + \CArrayAccess, III-77, III-80 + \CArrayAccessInterval, III-77, III-81 + case sensitive, I-16 + \cases, II-207, II-208 + *\catcode, III-5 + category codes, III-3, III-5 + \AtSignTt, III-13 + arguments, III-221 + curly braces, III-101 + initial, III-10 + math, III-7 + replacement text, III-8 + string comparison, III-337 + strings, III-12 + table, III-5 + tilde, III-15 + \CCheckIndex, III-77, III-80 + \CCreateArray, III-77, III-78 + \cdot, II-168 + \cdots, I-22 + \CdrOfList, III-123 + cedilla accent, IV-354 + centered + columns, IV-200, IV-204 + centering, II-100 + paragraphs, II-9 + tables, IV-295--IV-303, IV-333 + \centerline, IV-297 + display math mode, IV-295 + \tabskip, IV-296 + text, I-135, II-100 + \CenterLeaderLine, I-186 + \centerline, I-7, I-186, II-100, III-13, III-439, IV-2, IV-91, + IV-297 + \CenterLineR, I-343 + \CenterOrParagraph, III-333 + \CenterRightLines, I-203 + centimeter, I-82 + .ch, II-324 + change files, II-317 + changed labels, III-96 + changing + fonts + groups, II-239 + templates, IV-331 + \Chapter, III-600 + chapter title page, I-299 + \ChapterHeadingTeXIP, I-299, III-601 + \ChapterRef, III-610 + \ChapterSample, III-582 + *\char, I-15, I-41, + I-44, I-48, II-12, II-195, + II-296, II-302 + hyphenation, I-41 + characters, I-15--I-23, III-66 + boxes, I-164, I-168, II-231 + case sensitive, I-16 + character based constants, I-43 + code, III-3 + printing, I-44 + codes, I-48, II-230, II-295, III-4 + comment, III-18 + comparison, III-333 + computing character code, II-296 + depth, I-165, II-231 + dotless, II-170, II-295 + double dagger, I-23 + fonts, II-231 + Greek letters, II-166 + height, I-165, II-231 + ignoring of, III-8 + lower case, I-16 + number of in fonts, II-296 + number of per pica, II-282 + overprinting, I-181 + return, I-24, III-10, III-14 + size, II-232 + space, III-36 + tab character, I-17, I-18, I-24, I-25, I-28 + tokens, III-3 + uppercase, I-16 + width, I-165, II-231 + \CharactersPerPica, II-282 + *\chardef, I-41, II-195, + III-151, III-314 + \check, II-177 + \CheckDate, III-367 + \CheckLabels, III-96, III-538, III-546, III-577 + \CheckLegalMonth, III-365 + \CheckLegalYear, III-364 + \CheckRange, III-327 + checksums, II-323 + \CheckZeroOneRange, III-327 + *\choose, II-172, II-173 + Cicero, I-82 + \circ, II-168 + circumflex accent, I-18 + *\cleaders, I-145, I-148 + \ClearBoxReg, I-98 + \ClearEveryPars, II-34 + \ClearEveryParsAll, II-34 + \CLoadArrayElement, III-77, III-81 + \CLoadArrayElementEdef, III-82 + Close, II-192 + \CloseGenericOStream, III-474 + *\closein, III-450 + \CloseIndexFiles, III-491, III-494 + \closeout, III-473, III-478 + \CloseProtWrite, III-525 + \CloseVerbWrFile, III-507 + \CloseVerbWriteFile, III-512 + club line, IV-20 + *\clubpenalty, I-54, III-597, III-598, + IV-20--IV-22, IV-24, IV-25 + \clubsuit, II-167 + cmmex, II-200 + cmmi, II-199 + cmsy, II-200 + code, I-40 + characters, III-3 + collecting information with \edef, III-209 + \CollectTokens, III-118 + \columns, I-199 + columns + alignment, IV-200 + changing justification, IV-226 + eliminating, IV-211 + implicit grouping, IV-210 + left and right-justified columns, IV-268 + left-justified, IV-200, IV-204 + narrow, II-150 + omitting, IV-222 + predetermined width, IV-251 + spacing, IV-230 + spacing of, IV-240 + spanning multiple, IV-263 + static, IV-227 + \CombineTwoLists, III-128 + \CommaPage, III-608 + \CommaPageComma, III-609 + comments, I-17 + characters, III-18 + compact + glue specification, III-232 + rule specification, III-232 + \CompareFilesConditional, III-528, III-529 + comparing + characters, III-333 + strings, III-334 + token lists, III-343 + vertical boxes, I-209 + complexity, I-2 + compound words, I-21 + hyphenation, II-145 + \ComputeFreePageOnSpace, IV-7 + \ComputeFreeSpaceOnPage, II-116, IV-6, IV-8, IV-27 + \ComputeMondayOfWeek, III-384 + \ComputeParSkip, II-30 + Computer Modern + fonts, I-13, I-21 + Math Extension, II-200 + Math Italic, II-199 + Math Symbol, II-200 + text fonts, II-248 + Computers and Typesetting, I-13 + \ComputeStrut, I-239, IV-272, IV-274 + conditional + input, III-466 + verbatim listing of file, III-42, 81 + conditionals, III-317 + box register related, III-322 + conforming, III-350, III-351 + \expandafter, III-311 + false text, III-317 + grouping, III-323 + list of, III-320 + mode testing, III-321, III-348 + numerical, I-56, III-320 + prefix resting, III-302 + skipping text, III-323 + suffix testing, III-307 + switch statement, III-340 + TeX in Practice, III-351 + token related, III-321 + true text, III-317 + user defined, III-324 + conforming conditionals, III-350, III-351 + \cong, II-169 + constants + character code based, I-43 + hexadecimal, I-40 + numerical, I-39, I-44 + octal, I-39 + control + sequences, I-16, III-3 + printing, III-166 + testing, III-339 + writing to a file, III-479 + space, I-22, I-23, II-11, II-185, III-4, III-17 + symbols, I-27, III-4, III-66 + spaces after, III-4 + words, I-27, III-3, III-65 + spaces after, III-3 + \ControlSequenceConditional, III-339 + \ConvertArgsToListAndAppend, III-131 + \ConvertStringIntoArray, III-77, III-79 + \coprod, II-178 + *\copy, I-96, I-211, + I-261, I-319, I-336 + \CopyDate, III-360 + \CopyFirstBoxFromQueue, III-423, III-427 + \CopyR, I-319, I-334, I-336 + \copyright, IV-353 + \cos, II-165 + \cosh, II-165 + \cot, II-165 + \coth, II-165 + *\count, I-49 + *\countdef, I-49, III-152, + III-314, IV-49, IV-51, IV-63 + counters + parameters, I-53 + part processing, III-581 + registers, I-35, I-49 + 0 to 9, I-49 + macros, I-68--I-79 + \CounterToRegister, I-75 + counting lines + in a file, III-21, 78 + \CountingItem, II-62 + *\cr, I-199, IV-201, IV-373 + cramped styles, II-195 + *\crcr, IV-201, IV-332, IV-373 + crop marks, IV-60, IV-63, IV-64 + cross-references, III-89 + cross-referencing, I-10, III-85, III-607 + extended, III-98 + nearby pages, III-569 + part processing, III-563 + TeX in Practice, III-607 + to page numbers, III-89 + two paths approach, III-98 + \csc, II-165 + \CShowArray, III-77, III-82 + *\csname, III-3, III-69, III-77, + III-282 + applications, III-69 + \CSToString, III-66 + \CSToStringCat, III-67 + \cup, II-168 + curly braces, I-4, I-18, III-170 + expansion, III-290 + open + gobbling, III-240 + overview, III-99 + parameters + delimited, III-182, III-194 + vertical boxes, I-210 + current date parameters, I-35 + \CurrentFontSize, II-270 + \CurrentPartName, III-541, III-552 + Cyrrilic fonts, II-248 + + + \d, IV-354 + \dag, I-23 + \dagger, II-168 + dagger, I-23 + \dashv, II-169 + date + copying, III-359 + current date, I-35 + day of week, III-361 + format, III-359 + macros, III-357--III-396 + printing of, III-383 + related parameters, I-35 + validity, III-367 + years + number of days, III-371 + *\day, I-35, I-53, + IV-62 + day + days in year, III-371 + of week computation, III-361 + previous, III-374 + \DayOfWeekOfEarliestDate, III-357 + \DblArg, III-257, III-259 + \ddag, I-23 + \ddagger, II-168 + \ddot, II-177 + \ddots, II-223 + *\deadcycles, I-56, III-532, IV-58 + debugging TeX, III-439 + decimal + constant, I-39 + representation of number, I-59--I-63 + \DeeperStrut, I-239, I-241, IV-284, IV-288 + *\def, III-172, III-205, + III-314, III-315 + \edef, III-208 + default + argument, III-265 + hyphenation character, II-142 + output routine, IV-2, IV-57 + rules + depth, I-154, I-155 + height, I-154, I-155 + width, I-154, I-155 + \DefaultArg, III-266 + *\defaulthyphenchar, I-55, II-143 + *\defaultskewchar, I-55, II-207 + \DefinedConditional, III-173 + \DefineFontSizeGroup, II-269 + definitions + macros, I-5, I-7, I-28, III-151, III-159 + basics, III-168 + nested, III-222 + defying + grouping, III-113 + \deg, II-165 + delayed writes, III-473, III-476, IV-3 + \DeleteArrayElement, III-136, III-140 + \DeleteArrayElementRange, III-136, III-141 + *\delimiterfactor, I-56, II-184 + delimiters, II-180--II-184 + active characters + end-of-line, III-191 + macro argument, III-99 + null, II-182 + *\delimitershortfall, I-89, + II-184 + \Delta, II-166 + demand loading + of fonts, II-264 + of macros, III-230 + demerits, II-143, II-149 + depth, I-28, I-156 + depth + boxes + natural, I-264 + characters, I-165, II-231 + horizontal box + zero, I-185 + keyword depth, I-28, I-156 + maximum in \vsplit, I-293 + rules, I-154 + default, I-154, I-155 + vertical box + limitation, I-246 + vertical boxes, I-243 + \det, II-165 + detex, I-12 + device drivers, I-11, I-14, II-322, IV-48 + diagrams in TeX, I-3, II-320 + \diamond, II-168 + \diamondsuit, II-167 + \DicEntry, IV-83, IV-84 + dictionaries + running head, IV-83 + typesetting of, II-22 + didot point, I-82 + dieresis, I-21 + diesis, I-23 + digits, I-16 + \dim, II-165 + *\dimen, I-87 + \dimen0, III-48 + *\dimendef, I-87, III-152, + III-314 + dimensions, I-28 + box registers, I-87 + boxes, I-162 + horizontal, I-176, I-242 + registers, I-100 + largest, I-88 + maximum, III-332 + pages, IV-46 + parameters, I-88 + registers, I-36, I-87 + rules, I-154 + TeX in Practice, III-597 + units, I-81 + big points, I-82 + centimeter, I-82 + didot points, I-82 + em, I-83 + inch, I-82 + infinite, I-85, I-124 + millimeter, I-82 + mu, II-185 + notation, I-84 + pica, I-82 + scaled points, I-38, I-81, I-82 + true dimension units, I-86, II-229 + \vsplit, I-288 + discardable items, IV-4 + glue, I-139 + horizontal boxes, I-180 + *\discretionary, II-139 + discretionary + hyphens, II-139 + display math mode, I-17, II-156, II-216, III-438 + horizontal positioning, II-218 + tables, IV-209 + vertical spacing, II-216 + display verbatim mode, I-25, III-26, III-36 + advanced, III-43 + line numbers, III-44, III-54 + displayed equations + related penalties, IV-21 + *\displayindent, I-89, II-220 + *\displaystyle, I-164, I-175, + II-195, II-196, II-198, IV-209 + \DisplayVerbatimSkip, III-45, III-46 + \DisplayVerbatimVskip, III-44 + *\displaywidowpenalty, I-54, + IV-21 + *\displaywidth, I-89, II-220 + \div, II-168 + *\divide, I-39 + \DocPart, III-536, III-537, III-544, III-550 + document processing, I-5 + \DoFutureLet, III-256, III-272 + \DoFutureLetNoSpace, III-271 + dollar sign + printing dollar amounts, III-331 + \DollarSignText, III-29 + \DollarSignTt, III-29 + \DoLongFutureLet, III-256, III-272 + \DoLongFutureLetNoSpace, III-271 + \DoLoop, III-412, IV-299 + \dosupereject, IV-91, IV-96, IV-108 + \dot, II-177 + dot-under accent, IV-354 + \doteq, II-169 + \dotfill, I-150, I-152, IV-207 + dotless characters, II-170, II-295 + \dots, I-22 + double + column output, IV-45 + output routines, IV-159--IV-198 + dagger, I-23 + dollar signs, I-17 + quotation mark, I-20, I-40 + tables, IV-357--IV-371 + double column output + output routines, IV-166 + double crs, IV-224 + double-sided printing, IV-43, IV-62 + *\doublehyphendemerits, I-54, + II-143, II-149 + \DoubleQuoteTt, III-29 + \DoubleTableVtop, IV-366 + \Downarrow, II-170 + \downarrow, II-170 + \downbracefill, I-150, I-153 + *\dp, I-87, I-100 + \DrawDataBox, I-314, I-315 + \DrawHLine, I-314, I-316 + \DrawVLine, I-314, I-316 + \DropFirstBoxOfQueue, III-423, III-428 + \DropFirstElementOfList, III-123 + \DropLastElement, III-127 + \DropPoints, III-12 + \DropPrefix, III-305 + \DSCFooter, IV-182 + \DSCHeader, IV-182 + \dump, II-314 + \DumpAllPars, I-116 + .dvi, II-324 + dvi files, I-5, II-323 + dimensions, II-323 + merging, IV-42 + previewing, I-7 + processing, IV-136 + structure, II-323 + writing to, III-531 + dvipr, I-7, I-11, I-12 + dviselect, I-11, IV-49, IV-58 + dvitype, II-321, II-323 + dynamic loading + fonts, II-264 + macros, III-230 + + + \E, III-434, III-435 + \EachCharacter, III-410 + easy, I-2 + *\edef, III-17, III-63, + III-73, III-205, III-207, III-283, + III-313--III-315 + applications, III-209 + \def, III-208 + \expandafter, III-283 + \lowercase, III-212 + macro definitions, III-205 + registers, III-213 + suppression of expansion, III-207, III-251 + templates, IV-328 + \the, III-208 + undefined tokens, III-207 + \uppercase, III-212 + editing, I-5 + editor, I-11 + \egroup, I-167, II-162, II-172, III-32, III-33, III-99, III-104, + III-106, IV-31, IV-324 + horizontal boxes, I-167 + \EightSpaces, III-165 + \eject, I-159, II-115, IV-18, IV-27, IV-72, IV-167, IV-173 + electronic mailing lists, I-15 + \EliminateRuledBoxes, I-342, IV-44, IV-65 + \ell, II-167, II-170 + ellipsis, I-22, II-170 + *\PrintElse, III-317, III-318, III-497 + em, I-83 + em-dash, I-21, I-23 + Emacs, I-11 + \EmDashText, III-29 + \EmDashTt, III-29 + *\emergencystretch, I-93, II-152 + empty + box registers, I-103 + groups, I-27, I-45, I-123, I-169, III-4, III-102 + glue, I-124 + lines + in math mode, II-157 + in text, II-1 + strings, III-335 + \EmptyBox, I-103 + \EmptyBoxRegisterQueueConditional, III-428 + \EmptyListConditional, III-121 + \emptyset, II-166, II-167 + \EmptyStringConditional, III-335 + \EmptyStringConditionalISpaces, III-335 + en-dash, I-21, I-23 + *\end, III-153, III-169, + III-442, IV-53 + end-of-line + active, I-25 + delimiters, III-191 + character, III-7, III-18, III-36 + \EndAList, II-68 + \EndAListX, II-55--II-57 + \Endalt, III-57 + \EnDashText, III-29 + \EnDashTt, III-29 + \EndCenter, II-101, II-102 + *\endcsname, III-282 + \EndDisplayMath, II-159 + \EndDoubleColumns, IV-169, IV-176 + \EndEndNote, III-518 + \EndEndNoteWriting, III-518 + \EndEnumerate, II-74, II-78 + \EndEnv, III-105 + \EndEveryBox, I-206 + \EndEveryMath, II-223 + \EndFigure, IV-129, IV-130 + \EndFontTable, II-299 + \EndGeneralNotes, III-603 + \endgraf, II-13, III-245, III-349 + *\endgroup, III-39, III-53, III-99, + III-106 + ending a document, IV-53 + *\endinput, III-10, III-458, + III-462, III-463 + \endinsert, IV-91, IV-103, IV-104, IV-106, IV-110, IV-111, + IV-113, IV-114, IV-117 + \EndInsertTopInsFix, IV-111, IV-112, IV-115 + \EndItemize, II-78 + \EndLabels, III-87, III-88 + *\endlinechar, I-55, III-15 + \EndMath, II-158 + endnotes, III-505, III-516 + \EndProcessing, III-538, III-544, III-545 + \EndTable, IV-131 + \EndTestInsert, IV-31 + \EndVerbatim, III-36, III-37, III-40, III-43, III-53, III-54, III-198 + \EndVerbWrite, III-511 + \EndWhile, III-408 + \enskip, I-83, I-142 + \enspace, I-83, I-142 + \EntryIntolof, II-129, II-130 + \EntryIntolot, II-129 + \EntryIntotoc, II-128, II-129 + \Enum, III-421 + \EnumerateLevelOneExtended, II-76 + enumeration + macros, III-420 + environment variables, II-318 + environments, III-104, III-432 + macros, III-434 + nested, III-433 + \epsilon, II-166 + \eqalign, II-184, II-220 + \eqalignno, II-221 + \eqno, II-218 + equation numbers, II-218 + \equiv, II-169 + *\errhelp, III-118, III-440 + \ErrMessage, III-440 + *\errmessage, III-440 + errors + messages, I-5 + *\errorstopmode, III-442 + escape character, I-16, I-41 + *\escapechar, I-55, III-66 + \etex, III-56 + Euler family, II-248 + \EvalEveryPars, II-34 + \EvalEveryParsCE, II-34 + \EVerbB, III-54 + *\everycr, III-118, IV-201, + IV-238, IV-239, IV-373 + *\everydisplay, II-157, II-219, + II-223, II-224, III-118, III-199 + delimited parameters, III-200 + *\everyhbox, I-206, III-118, + III-238 + \EveryHeading, II-92 + *\everyjob, III-118 + *\everymath, II-157, II-223, + III-118 + *\everypar, II-12, II-13, II-27, + II-30, II-112, III-38, III-52, + III-118, III-315, III-349, III-439 + multiple, II-33 + \EveryParA, II-34, II-35 + \EveryParB, II-34, II-35 + \EveryParC, II-34, II-35, III-576 + \EveryParD, II-35 + \EveryParE, II-34, II-35 + \EveryParZ, II-34, II-35, III-38, III-39, III-52 + *\everyvbox, I-206, III-118, + III-238 + \ExclamationPointText, III-29 + \ExclamationPointTt, III-29 + execution + after a group, III-111 + *\exhyphenpenalty, I-54, I-159, + II-144 + \exists, II-167 + \exp, II-165 + *\expandafter, III-69, III-281--III-312, III-315 + conditionals, III-311 + \edef, III-283 + input, III-286 + macro calls, III-282 + primitives, III-288 + expansion, III-159 + curly braces, III-290 + multiple reversal of, III-289 + none, III-314 + order, III-281 + repeated, III-214 + suppression in \edef, III-207, III-251 + suppression of, III-312 + tables, IV-376 + explicit + horizontal glue, I-121, I-123 + penalties, IV-17, IV-19 + vertical glue, I-123 + extended space, I-21 + Extra math symbol fonts, II-248 + \ExtractSubArray, III-136, III-143 + + + false text, III-317 + *\fam, I-55, II-204 + families, II-192, II-199 + fonts, II-201 + index, II-199 + number, II-192 + \FBOnePass, IV-146 + \FBTwoPass, IV-143 + *\PrintFi, III-317, III-497 + \FigRef, III-610 + \FigureBox, I-320 + \FigureInPar, II-115, II-116 + \FigureIns, IV-140, IV-146 + \FigureRef, III-610 + figures + captions + output routine, IV-137 + fil, I-85, I-135 + \filbreak, I-159, IV-18, IV-21 + \FileExistsConditional, III-465 + \FileNotExistsConditional, III-465 + files + fmt files, II-314 + administrative, I-10, III-541 + auxiliary + writing comments to, III-562 + auxiliary part, III-541, III-542 + base name, I-5, III-447 + change files, II-317 + closing of, III-450 + comparing of, III-528 + counting lines, III-21, 78 + end of file determination, III-322 + extension, I-5, III-447 + numerical, II-288 + file names, III-447 + fonts, I-9 + formats, I-9, II-314 + gf files, II-288 + input, III-448--III-472 + label file, III-87 + list of figure file, III-541 + list of table file, III-541 + log file, I-5 + macros, I-9 + pixels, II-286 + pk files, II-288, II-289 + protocol file, III-525 + pxl files, II-288, II-290 + reading, III-448, III-449, III-458 + reading numbers, III-455 + source files, I-5, I-9 + style files, I-9, III-437 + table of contents, III-499, III-541 + tfm files, I-9 + tip, I-xxxv, II-xxxv, III-lxi, IV-xxxi, xxv + verbatim listing, III-41, III-42, 80, 81 + writing to, III-472 + fill, I-85, I-135 + filll, I-85, I-135 + *\finalhyphendemerits, I-54, + II-144, II-149 + \FindWidestChar, II-75, III-415 + \FirstLineSpecial, II-134 + *\firstmark, IV-82 + \flat, II-167 + floating, IV-199--IV-379 + bodies, IV-29 + tables, IV-199 + *\floatingpenalty, I-54, IV-35 + .fmt, II-324 + \folio, III-327, III-563, IV-50, IV-91 + folio, IV-50 + *\font, II-199, II-201, II-238, + III-152, III-315 + \fontdimen, II-243 + *\fontname, II-245 + fonts + fmt files, II-314 + AMS fonts, II-247 + at, II-242 + boldface, II-256 + poor man's, I-183 + changes, II-239, IV-92 + grouping, II-239 + in boxes, I-168 + in tables, IV-208 + characters, II-231 + checksums, II-323 + Computer Modern, I-13, I-21 + Math Extensions, II-200 + Math Italic, II-199 + Math Symbol, II-200 + text fonts, II-248 + Cyrrilic, II-248 + dimension parameters, II-243 + dynamic loading, II-264 + Euler family, II-248 + family, II-201 + files, I-9, II-288 + fixed-spaced fonts, I-20 + gf files, II-288 + groups of, II-269 + italic, II-256 + italic correction, II-256 + ligatures, II-291 + line breaking, II-269 + loading of, II-230, II-238, II-240 + on demand, II-264 + magnification, II-227 + true dimensions, I-86 + math, II-199 + monospaced, II-246 + names + logical, II-271 + naming of, II-238 + none, II-230 + number of characters, II-296 + per pica, II-282 + numerical file extension, II-288 + overview, II-247 + pixel files, II-286 + pk files, II-288, II-289 + plain format, II-258 + {\sc PostScript}, II-247, II-309 + proportionally spaced, I-20, II-245, II-256 + pxl files, II-288, II-290 + relative dimension units, I-83 + scaled, II-240 + scaling, II-242, II-275 + sizes, II-257, II-263 + typical, II-248 + substitution, II-265 + table macros, II-297--II-309 + tfm, II-238 + third party, II-247 + typefaces, II-263 + typewriter font, I-4, II-256 + virtual, 68 + \FontTableComplete, II-249 + \footins, IV-97--IV-100 + \FootLine, IV-63, IV-71 + \footline, IV-90, IV-91 + \FootNote, IV-90, IV-102 + \footnote, II-282, IV-90, IV-97--IV-99, IV-102 + footnotes, IV-29, IV-156 + math, II-206 + plain format, IV-98--IV-102 + tables, IV-313 + \footstrut, IV-102 + \forall, II-167 + forced page breaks, IV-19 + \ForEachToken, III-119 + \ForEveryListElement, III-124 + \FormatIsLaTeXConditional, III-37 + formats, I-8, II-313, IV-2 + files, I-9, II-314 + plain format, I-7, I-8, II-314 + TeX IP, III-612 + \FormLine, I-202 + \@ForSpecialFile, III-542 + four way choice, II-191 + \FourSpaces, III-165 + \frac, II-175 + fractions, III-99 + generalized fractions, II-191 + fragile, III-481 + Free Software Foundation, I-11 + \FreePageSpace, II-116, IV-6, IV-105 + \FreeSpaceConditional, IV-7 + French ligature \oe and \OE, I-22 + French spacing, II-246 + \frenchspacing, II-278, II-281 + \frown, II-169 + \FunnyOmit, IV-221 + *\futurelet, III-50, III-252, + III-314, III-315 + overview, III-253 + \FutureLetNoSpace, III-270, III-275 + + + \Gamma, II-166 + \gcd, II-165 + *\gdef, III-73, III-172, + III-314, III-315, IV-218 + \GenAeol, III-192 + generalized fractions, II-191 + \GeneralNotes, III-602 + \GenericHeading, II-90, II-93, II-96, III-605 + \GenTocEntry, II-121, II-122 + \geq, II-169 + German es-zet, \ss, I-23 + Germany, I-11, I-155 + \GetNumberOfLines, II-130 + .gf, II-325 + gf files, II-288 + gfread, II-322 + gftodvi, II-322 + gftopk, II-322 + gftopxl, II-322 + gftype, II-322 + \gg, II-169 + *\global, III-172, III-326, + IV-57, IV-72, IV-210 + global, III-108 + definitions, III-107 + \gdef, III-107 + magnification, II-227 + nested groups, III-109 + *\globaldefs, I-56, III-108 + glue, I-121--I-145 + basics, I-121 + between templates, IV-230 + break point, I-270 + compact specification, III-232 + empty group, I-124 + horizontal, I-121 + examples, I-124--I-127 + explicit, I-121, I-123 + implicit, I-122, I-123 + implicit, I-123, I-142 + interline, I-217--I-235 + suppression of, I-228 + interword, I-24, I-27 + kerning and, I-141 + keywords, I-122 + leaders, I-124, I-145 + main vertical, IV-10 + math, II-185 + minus, I-122 + moving down, I-122 + moving left, I-122 + moving right, I-122 + moving up, I-122 + multiple, I-133 + natural length of, I-122, I-123 + none versus zero, I-139 + notation, I-122 + spaces, I-125 + overshrinking, I-126 + overstretching, I-126 + parameters, I-92, I-122 + plus, I-122 + reduction rule, I-137 + registers, I-36, I-91 + \relax, I-123 + removal of, I-191 + shrinkability, I-122 + default, I-123 + exceeding, I-124 + hierarchy, I-137 + infinite, I-135 + none, I-124 + shrinking, I-125 + simplification rule, I-137 + stretchability, I-122 + default, I-123 + exceeding, I-124 + infinite, I-135 + none, I-124 + stretching, I-125 + multiple, I-133 + templates, IV-226, IV-230 + thin space, II-207 + top of page, IV-13 + vertical, I-121, I-142--I-145, IV-3 + explicit, I-123 + implicit, I-122, I-123, I-142 + vertical boxes, I-211, I-213 + visible, I-147 + GNU Emacs, I-11 + \GobbleDoMore, III-196 + gobbling, III-186, III-196 + curly braces, III-240 + \goodbreak, I-159, IV-18, IV-107 + grandparents, I-xxix + graph drawing macros, I-313--I-316 + \grave, II-177 + grave accent, I-20 + greater than sign, I-20 + \GreaterThanSign, III-29 + \GreaterThanSignTt, III-29 + Greek alphabet, II-166 + Gregor XIII, III-357 + Gregorian calendar, III-357 + grouping, I-5, III-20, III-99, III-100 + \afterassignment, III-239 + box registers, III-110 + conditionals, III-323 + defying, III-113 + empty, I-27, I-45, I-123, I-169, III-4, III-102 + execution after a group, III-111 + font changes, II-239 + implicit, I-210, II-156, III-106 + boxes, I-164, III-106 + \let, III-247 + nested, III-101 + replacement text + macros, III-171 + \GSection, III-603 + gullet, III-1 + + + hacker, II-318 + *\halign, I-191, I-192, I-267, + III-153, III-315, IV-2, IV-199--IV-379 + basics, IV-201, IV-204 + \bgroup, IV-324 + \bgroup and \egroup, IV-201 + computation of, IV-203 + \egroup, IV-324 + \hfil, IV-206 + \hfill, IV-206 + initialized, IV-238 + pound sign, IV-201 + tab character, IV-201 + spread, IV-201, IV-249 + to, IV-201, IV-249 + *\hangafter, I-56, II-8, + II-28, II-80, II-87, II-112, + II-133, IV-84 + *\hangindent, I-89, II-8, + II-28, II-80, II-81, II-87, II-112, + II-131, II-133, IV-84 + hanging indentation, II-80, II-133 + ragged right, II-133 + happiness, I-xxix, I-xxxiii, II-xxxiii, III-xxxix, IV-xxix, xxiii + hard space, I-27 + \hat, I-18, II-160, II-177 + *\hbadness, I-55, I-130, I-131 + \hbar, II-167 + *\hbox, I-162, I-163, I-210, + I-319, II-4, II-23 + spread, I-130, I-133, I-173, I-177, I-182 + to, I-126, I-135, I-173, I-177, I-180--I-183, I-186, I-204 + \HboxR, I-319, I-334, I-335 + headers + over left and right justified columns, IV-268 + page breaking, IV-25, IV-27 + heading, II-90 + macros + generic, II-90 + tables, IV-214 + \HeadLine, IV-62, IV-71 + \headline, IV-90, IV-91 + \heartsuit, II-167 + height, I-28, I-156 + height + boxes + natural, I-264 + characters, I-165, II-231 + horizontal boxes + zero, I-185 + keyword height, I-28, I-156 + rules, I-154, I-243 + default, I-154, I-155 + vertical + boxes, I-243 + \Hex, I-48, III-404 + hexadecimal + constants, I-40 + numbers, III-404 + printing, I-48 + \HexDigit, III-405 + *\hfil, I-136, II-43 + \halign, IV-206 + templates, IV-226 + *\hfill, I-136, I-199 + \halign, IV-206 + templates, IV-226 + *\hfilneg, I-136 + *\hfuzz, I-88, I-132 + \hidewidth, I-204, IV-263, IV-264 + \HigherStrut, I-239, I-240, IV-288 + *\hoffset, I-12, I-28, + I-89, IV-46, IV-54 + *\holdinginserts, I-56, IV-35 + \hom, II-165 + \hookleftarrow, II-170 + \hookrightarrow, II-170 + horizontal + boxes, I-161 + horizontal glue, I-163, I-173 + horizontal leaders, I-163 + math material, I-164 + vertical rules, I-164 + glue, I-121 + hboxes, I-173 + horizontal boxes, I-163 + math mode, II-185 + lines, I-154 + mode, III-438 + \leavevmode, I-216 + penalties, I-158 + restricted, I-210, III-438 + rules, I-154 + rules, I-154 + inserting with \noalign, IV-256 + interline glue, I-233 + over selective columns in a table, IV-289 + tables, IV-258 + vboxes, I-211 + shifting + pages, I-12 + *\hrule, I-146, I-154, + I-233, III-438, IV-2 + \hrulefill, I-150, IV-207 + *\hsize, I-28, I-155, + I-210, II-3, II-7, II-8, + II-10, II-220, III-597, IV-46, + IV-161, IV-170, IV-304 + \HsizeTeXIP, III-597 + *\hskip, I-38, I-87, I-94, + I-121, II-11 + *\hss, I-136, II-53 + *\ht, I-87, I-100 + *\hyph, II-145 + hyphen, I-21, I-23 + *\hyphenation, II-141, II-145 + hyphenation, I-21, II-137 + \char, I-41 + character, II-142 + compound words, II-145 + determination of, II-139 + discretionary, II-139 + exception, II-141 + hboxes, I-189 + hyphenation character + default, II-142 + printing, II-145 + showing of, II-138 + suppression of, II-144 + *\hyphenchar, II-142, II-145 + *\hyphenpenalty, I-54, II-144 + \HyphenText, III-29 + \HyphenTt, III-29 + + + \i, II-295 + \ialign, IV-238 + .idx, III-493 + .idx2, III-493 + \IdxStream, III-494 + \IdxStreamSource, III-494 + *\PrintIf, III-321, III-329, III-497 + *\PrintIfCase, I-57, III-321, III-329, + III-497, IV-72 + \IfCat, III-497 + *\PrintIfCat, III-6, III-321, III-329, + III-497 + \IfDim, III-497 + *\PrintIfDim, III-321, III-497 + \IfEmptyBoxRegisterQueue, III-423 + \IfEof, III-497 + *\PrintIfEof, III-322, III-450, III-452, + III-497 + \IfFalse, III-497 + *\PrintIfFalse, III-322, III-497 + \IfHbox, III-497 + *\PrintIfHbox, I-99, III-322, III-497 + \IfHmode, III-497 + *\PrintIfHmode, III-321, III-348, + III-497 + *\PrintIfInner, III-321, III-348, + III-497 + \IfMmode, III-497 + \IfNum, III-497 + *\PrintIfNum, I-56, III-320, III-497 + *\PrintIfOdd, I-57, III-318, III-320, + III-497, IV-62 + \IfTrue, III-497 + *\PrintIfTrue, III-322, III-497 + \IfVbox, III-497 + *\PrintIfVbox, I-99, III-322, III-497 + \IfVmode, III-497 + *\PrintIfMmode, III-348 + *\PrintIfVmode, III-321, III-348, + III-497 + \IfVoid, III-497 + *\PrintIfVoid, I-99, III-322, IV-30 + *\PrintIfX, III-322, III-497 + \IfXConditional, III-343, III-344 + *\ignorespaces, II-44, II-58, + III-184, III-203, III-610 + ignoring characters, III-8 + \Im, II-167 + \imath, II-167, II-170 + \immediate, III-476, III-478 + immediate writes, III-473, III-475, III-476 + \IModN, I-58 + implicit + glue, I-122 + grouping, I-210, III-106 + boxes, I-164, III-106 + groups, II-156 + boxes, I-164, III-106 + output routines, IV-54, IV-57 + tables, IV-210 + horizontal glue, I-122, I-123 + kerning, I-141 + penalties, I-158 + vertical, IV-19 + vertical glue, I-122, I-123, I-142 + \in, II-166, II-169 + inch, I-82 + *\indent, II-11, II-19, + II-87 + indentation + negative, II-20 + paragraphs, II-18 + indented paragraphs, II-15 + \Index, III-491, III-492, III-494, III-495 + \index, IV-134 + index + composition of, III-489 + generation of in TeX, II-321 + macros, III-492 + output routine, IV-133 + registers, I-33, I-34 + \IndexBye, III-497 + \IndexCS, III-492, III-495 + \IndexCSX, III-496 + \IndexElse, III-497 + \IndexFi, III-497 + \IndexIf, III-497 + \IndexIfCase, III-497 + \IndexIfOdd, III-497 + \IndexIfX, III-497 + \indexins, IV-134 + \IndexLastElement, III-135, III-136 + \IndexP, III-491, III-495 + \IndexPar, III-497 + \IndexPbf, III-499 + \IndexPit, III-499 + \IndexPrim, III-496 + \IndexPSet, III-491, \IndexPit{III-498} + \IndexRepeat, III-497 + \inf, II-165 + infinite + dimension units, I-85 + shrinkability, I-135 + stretchability, I-135 + units, I-124 + \infty, II-167 + initex, II-141, II-313, II-314, III-10 + \InitialCollectInfo, III-210 + \InitialParts, III-537, III-544, III-550 + \InitProtWrite, III-525 + \InitReadNumbers, III-456 + inline + math + in tables, IV-208 + math mode, I-17, II-156, III-438 + verbatim + mode, III-26, III-31 + verbatim mode + advanced, III-35 + Inner, II-192 + *\input, III-21, III-269, + III-442, III-448, III-458 + input + files, III-448--III-472 + nested, III-459 + stream + number, III-448 + \InputAt, III-462, III-466 + \InputC, III-466 + \InputCWithAt, III-466 + \InputD, III-69, III-229, III-467, 57--59 + \InputDPrevent, 57, 58, 60, 64 + *\inputlineno, I-56, III-460 + *\inputnoex, 78 + inputting + fractions, II-175 + horizontal boxes, I-165 + math equations, II-209, II-210 + tables, IV-291 + *\insert, III-107, IV-31, IV-32 + \InsertArrayElement, III-136, III-139 + insertions, IV-2, IV-28--IV-36, IV-133--IV-158 + \bgroup and \egroup, III-103 + class index, IV-29 + classes, IV-29 + limitations, IV-157 + oversized, IV-109, IV-112 + \pagegoal, IV-7, IV-32 + plain format, IV-97 + registers, IV-30 + topinsertions + plain format, IV-103 + vertical boxes, I-211 + *\insertpenalties, IV-34, IV-108 + \int, II-178 + interface macros, III-13 + \interfootnotelinepenalty, IV-98 + \interfootnotepenalty, IV-100 + interline glue, I-217--I-235 + computation of, I-221 + disabling, I-230 + empty, I-230 + horizontal rules, I-233 + suppression of, I-228 + \unvbox, I-263 + \vskip, I-226 + *\interlinepenalty, I-54, II-94, + III-597, III-598, IV-21, IV-22, IV-24, IV-25 + internal macros, III-13 + interword + glue, I-24, I-27 + spaces, II-275 + spacing, II-246, II-275 + related characters, I-23--I-28 + inverted pyramids, III-416 + \InvertedPyramid, III-416 + \InvertedPyramidA, III-419 + \it, I-4 + italic + correction, II-256 + font, II-256 + math, II-167 + \Item, II-73 + \item, II-87 + item labels, II-49 + macros, II-68 + \itemitem, II-87 + \itemitemitem, II-88 + itemized lists, II-77 + \ItemLL, II-56, II-57, II-60, II-61, II-69 + \ItemLLOne, II-60 + \ItemLLTwo, II-61 + \ItemLR, II-56--II-58, II-62, II-70 + \ItemRef, III-610 + \ItemRL, II-56--II-58, II-70 + \ItemRR, II-56--II-58 + + + \j, II-295 + \jmath, II-167, II-170 + *\jobname, III-432, III-448, III-541, + IV-62, IV-71 + + + \ker, II-165 + *\kern, I-140, III-438 + kerning, I-140, I-178, II-185, II-291, IV-3 + explicit, I-140 + glue and, I-141 + implicit, I-141 + math, I-141, II-185 + suppression, II-292 + vertical, IV-4 + keywords + depth, I-28, I-156 + glue, I-122 + height, I-28, I-156 + minus, I-28 + parameters, III-232 + plus, I-28 + spaces after, I-28 + width, I-28, I-156 + kludge, II-271, III-605 + Knuth, Donald E., I-xxv, I-13, II-xxv, III-xxxi, IV-xxi + + + \L, I-23 + \l, I-23 + \Label, II-73, III-86, III-87, III-90, III-582, III-601 + label, III-88 + file, III-87 + \LabelLR, II-88 + labels + duplicate, III-96 + \Lambda, II-166 + Lamport, Leslie, I-xxv, II-xxv, III-xxxi, IV-xxi + landscape mode, I-12, IV-48 + *\language, I-56, II-140, II-141 + \Large, II-271 + large operators, II-161, II-178--II-180 + largest dimension, I-88 + \LargestDecimalPlace, I-61 + laser printers, I-1, II-285, II-323 + last line + paragraphs, II-45 + *\lastbox, I-301, I-302, I-303, + II-147 + \LastElementOfList, III-126 + *\lastkern, I-301, I-306 + *\lastpenalty, I-301, I-306 + *\lastskip, I-301, I-306, II-30, + IV-17 + \LaTeX, I-xxv, I-xxxviii, I-3, I-9, II-xxv, II-xxxviii, III-xxxi, III-lxiv, III-540, + IV-xxi, IV-xxxiv, xxviii + fonts, II-248 + \halign, III-439 + insertions, IV-157 + picture environment, I-314, II-320 + plain format, III-438 + \LaTeX, III-166 + latex, II-315 + layout + of pages, IV-8, IV-54 + \lbrace, I-19, II-207 + *\lccode, III-62 + \ldots, I-22, II-223 + *\leaders, I-145, I-147, I-148, + II-124 + leaders, I-145--I-154, II-123 + based on boxes, I-145, I-147 + based on rules, I-146 + glue, I-124, I-145 + horizontal boxes, I-163 + macros, I-150 + matrices, II-223 + replication box, I-145, I-147 + rule based, I-145 + tables, IV-207 + vertical, I-145, I-211 + visible glue, I-147 + \vsplit, I-280 + leading, II-258 + leading zeros, I-50 + \LeadingZ, I-50 + leap year, III-369 + \LeapYearConditional, III-369 + learning TeX, I-30 + \leavevmode, I-214, II-11, II-12, II-24, II-110, II-123, III-19, + III-38 + horizontal mode, I-216 + *\left, II-181, II-182, II-184 + left + bracket, I-19 + double quotation mark, I-20 + flush item labels, II-50 + justified columns, IV-200, IV-204 + justified item labels, II-24 + quotation mark, I-43 + quote, I-20 + \LeftAppendElement, III-122 + \Leftarrow, II-170 + \leftarrow, II-170 + \leftarrowfill, I-150, I-153 + \LeftBraceText, III-28 + \LeftBraceTt, III-29 + \LeftBracketText, III-29 + \LeftBracketTt, III-29 + \LeftDisplay, II-218, II-219 + \LeftFooter, IV-140 + \leftharpoondown, II-170 + \leftharpoonup, II-170 + \LeftHeader, IV-140 + *\lefthyphenmin, I-55, II-141, + II-145 + \LeftLeaderLine, I-186 + \leftline, I-186, III-439 + \LeftLineR, I-343 + \LeftParenthesisText, III-29 + \LeftParenthesisTt, III-29 + \LeftQuoteText, III-30 + \LeftQuoteTt, III-30 + \Leftrightarrow, II-170 + \leftrightarrow, II-170 + *\leftskip, I-93, II-7, + II-13, II-14, II-42, II-52, + II-55, II-56, II-67, II-81, + II-94, II-99, II-106, II-107, + II-110, II-112, II-121, II-122, + II-133, II-134, II-152, II-218, + II-220 + with stretchability, II-99 + \LeftSkipVerbatim, III-43, III-45, III-46, III-51 + \leq, II-169 + \leqalignno, II-221 + \leqno, II-218 + \LessThanSign, III-30 + \LessThanSignTt, III-30 + *\let, III-152, III-244, III-245, + III-314, III-315, III-322 + equal sign, III-248 + grouping, III-247 + macros, III-244 + spaces, III-248 + undefined tokens, III-245 + \LetterConditional, III-354 + \Letterhead, III-160 + letters, I-16, III-11 + letterhead, I-190 + macros, III-160 + \lg, II-165 + liability, I-xxxviii, II-xxxviii, III-lxiv, IV-xxxiv, xxviii + library card output routine, IV-66 + ligatures, II-291 + suppression, II-292 + \lim, II-165 + \liminf, II-165 + limitations of insertions, IV-157 + \limits, II-179 + \line, III-439, IV-2 + line + groups, II-107 + spacing, I-217--I-235 + line breaking + comparing with page breaks, IV-36 + computations, II-3, II-137, IV-36 + demerits, II-143, II-149 + horizontal glue, II-42 + manual, II-36 + penalties, II-144 + spaces, I-25 + user controlled, II-36 + line numbers, III-460 + line spacing + font sizes, II-269 + \LineBreakHeading, II-92, II-94 + \LineBreakToc, II-92, II-94 + *\linepenalty, I-54, II-144 + \LineR, I-343 + lines, I-154 + counting in a file, III-21, 78 + overlapping, I-217 + tight, II-143 + vertical, I-154 + *\lineskip, I-93, I-221, I-230, + I-235, IV-13 + *\lineskiplimit, I-89, + I-220, I-221, I-230, I-235 + \LineSpaceMultFactor, II-269--II-271, II-274, 70 + list of figures + file, III-541 + TeX in Practice, II-129 + typesetting of, II-128 + list of tables + file, III-541 + TeX in Practice, II-129 + typesetting of, II-128 + \ListInputD, III-469, III-470, 61 + \ListOfFigures, III-540 + \ListOfTables, III-540 + lists, II-22, II-49, III-120 + appending elements, III-122 + converting words to, III-133 + dropping elements, III-123 + empty list testing, III-121 + general macros, II-72 + itemized, II-77 + items + oversized, II-60 + label + duplicate, III-96 + macros, II-55 + numbered, II-72 + processing, III-119 + TeX lists, III-120 + \ListVerb, III-36, III-37, III-41, III-43, III-58, III-505, 80, + 82 + \ListVerbAndSource, III-42, III-60, 81 + \ListVerbIfFileExists, III-42, 81 + \ListVerbTeXIP, III-58, 82 + literate programming, II-317 + \ll, II-169 + \llap, I-182, II-88 + \LlapX, I-185 + \LoadCountZeroToNine, III-219 + \LoadFontOnDemand, II-264 + loading + fonts, II-230, II-238, II-240 + macros, I-8, III-229, 57 + .lof, II-324 + log file, I-5 + writing + parameters, I-116 + logical page, IV-45, IV-66 + \LogPageTG, IV-5 + \LogRegister, III-164 + *\long, III-227, III-322 + \LongCard, IV-73 + \Longleftarrow, II-170 + \longleftarrow, II-170 + \Longleftrightarrow, II-170 + \longleftrightarrow, II-170 + \longmapsto, II-170 + \Longrightarrow, II-170 + \longrightarrow, II-170 + \loop, III-399, III-400 + loops + do loop, III-413 + macros, III-226, III-399, III-412 + while + logical, III-408 + numerical, III-406 + loose + boxes, I-131 + lines, II-143 + *\looseness, I-54, II-149 + .lot, II-324 + *\lower, I-164, I-169, + I-211 + *\lowercase, III-62, III-212, + III-315 + \edef, III-212 + lowercase, I-16 + lowering boxes, I-169 + \lq, I-20 + + + \mac, III-166 + macros, I-1 + arguments, III-181, III-218 + category codes, III-221 + default, III-265 + delimited, III-99 + empty, III-182 + formal, I-35 + optional, III-253 + spaces in, III-185 + array, III-77--III-83, III-135--III-149 + calendar related, III-357--III-396 + calls, III-159 + \expandafter, III-282 + comparison with primitives, III-154 + counter register, I-68--I-79 + date related, III-357--III-396 + definitions, I-5, I-7, I-28, III-151, III-157, III-159 + active characters, I-24, I-25, III-15, III-16, III-23 + basics, III-168 + \edef, III-205 + enumeration, III-420 + global, III-107 + nested, III-222, III-223 + enumeration, III-420 + environments, III-434 + expansion, III-159 + repeated, III-214 + tracing of, III-216 + expansion of, I-3, III-215 + for templates, IV-327 + gobbling, III-186, III-196 + interface, III-13 + internal, III-13 + leaders, I-150 + \let, III-244 + letterhead, III-160 + loading + dynamic, III-230 + loading of, I-8, III-229, 57 + loops, III-226, III-399, III-412 + macro files, I-9 + macro packages, I-7, I-8 + names, I-7 + organization, III-228 + parameters, I-18 + delimited, III-181, III-186, III-187 + maximum number of, III-163 + part processing, III-535 + preamble, IV-324 + recursion, III-249, III-397, III-399 + picking up characters, III-410 + redefining, III-171 + \edef, III-215 + redefinition, III-175 + replacement text, I-7, III-99, III-154, III-158, III-159, III-170 + grouping, III-171 + robust, III-481, III-561 + self-redefining, III-224 + source files, III-168 + table + format, IV-351 + templates, IV-200, IV-324 + undefined, III-177 + vertical spacing, I-309 + *\mag, I-55, II-228 + \magnification, I-28, II-229, III-235 + magnification, I-86, II-227, II-275, III-235 + fonts, II-227 + global, II-227 + table, II-243 + \magstep, II-228 + \magstephalf, II-228 + main document file, III-536 + main temporary file, III-541 + main token list, III-158 + main vertical list + current page part, IV-7 + vertical glues, IV-10 + \MakeActive, III-27 + \MakeEolActive, III-27 + \makefootline, IV-90, IV-93, IV-95 + \makeheadline, IV-90, IV-93, IV-94 + makeindex, III-490 + \MakeOther, III-27 + \MakeRobust, III-481, III-483, III-484 + \MakeTabActive, III-27 + \mapsto, II-170 + *\mark, II-35, IV-81, IV-82 + marking of overfull boxes, I-132 + marks, IV-3, IV-81--IV-87 + vboxes, I-211 + \m@th, I-150, II-186 + \math, III-14 + math, II-156 + \DollarSignTt\DollarSignTt, II-156 + \DollarSignTt, I-17, II-155 + accents, II-177, II-197, II-294 + atoms, II-191 + field, II-191 + nucleus, II-192 + types, II-191, II-192 + basics, II-155 + boxes, I-164, I-175, I-211 + braces, II-207 + category code of, III-7 + code, II-194 + cramped styles, II-195 + display, I-17, II-156, II-216, III-438 + display mode + horizontal positioning of equation, II-218 + double dollar sign, I-17 + empty lines, II-157 + equation numbers, II-218 + families, II-192, II-199 + index, II-199 + numer, II-192 + plain format, II-204 + fonts, II-199 + Computer Modern, I-13, I-21 + Computer Modern Math Extensions, II-200 + Computer Modern Math Italic, II-199 + Computer Modern Math Symbol, II-200 + footnotes, II-206 + fractions, III-99 + generalized fractions, II-191 + inputting, II-175 + glue, II-185 + registers, I-36 + Greek letters, II-166 + horizontal boxes, I-164 + horizontal glue, II-185 + inline, IV-208 + inputting equations, II-209, II-210 + italic, II-167 + kerning, I-141, II-185 + lists, II-189, II-191 + mathcode, II-193, II-194 + mode + inline, I-17, II-156, III-438, IV-208 + overlining, II-170 + overlining of, II-170 + roots, II-169 + script size, II-196 + scriptscript size, II-196 + shift character, II-156, III-5 + spaces, I-27, II-156 + style + change, II-191 + selection, II-196, II-197 + subformula, III-99 + subscripts, I-4, II-160--II-162 + superscripts, I-4, I-18, II-160--II-162, IV-98 + uncramped style, II-195 + underlining, II-170 + \mathaccent, II-177 + *\mathbin, II-191, II-193 + *\mathchar, II-194, II-195 + *\mathchardef, II-195, III-314 + *\mathchoice, II-198 + *\mathclose, II-193 + *\mathcode, II-194 + *\mathinner, II-195 + *\mathop, II-190, II-193 + *\mathopen, II-193 + *\mathord, II-190, II-193 + \mathpalette, II-198 + *\mathpunct, II-193 + *\mathrel, II-193 + \mathstrut, II-208, II-209 + *\mathsurround, I-89, I-150, + I-248 + matrices + leaders, II-223 + \matrix, II-221 + \max, II-165 + *\maxdeadcycles, I-56, III-532 + *\maxdepth, I-89, I-247, IV-28 + \MaxDimen, III-332, IV-212 + \maxdimen, I-88, I-230, I-247, IV-5, IV-6 + maximum + depth in \vsplit, I-293 + dimensions, III-332 + \MaxVskip, I-309, II-90, II-93, II-94 + *\meaning, III-61, III-156, + III-315 + \medbreak, IV-15, IV-16 + \medmuskip, II-185 + \medskip, I-142, IV-14, IV-15 + \MemberOfListConditional, III-125 + Mercedes, I-11 + merging dvi files, IV-42 + *\message, I-37, II-27, + III-440, III-521, III-522 + \the, I-37 + \MF, I-13, II-246, II-315, II-316 + \MF, III-166 + .mf, II-325 + \mid, II-169 + \midinsert, IV-90, IV-97, IV-104--IV-106, IV-113, IV-116 + \MidInsertFix, IV-117, IV-118 + \MidInsertFixPage, IV-117, IV-118 + \MidInsertFixTop, IV-118 + millimeter, I-82 + \min, II-165 + \MinDimen, III-332 + minus, I-28 + minus plus, II-167 + \MinusSignText, III-30 + \MinusSignTt, III-30 + \mit, II-167, II-199 + *\mkern, I-141 + \MkOthers, III-26, III-27 + \MkOthersNoCB, III-27 + \models, II-169 + modes, III-437 + conditionals, III-321, III-348 + horizontal, III-438 + restricted, I-210, III-438 + vertical, III-437 + \ModifyArrayElement, III-136, III-138 + modulo arithmetic, I-51, I-58 + \ModuloOneAdvanceConditional, IV-73 + \ModuloOneAdvanceNumCond, I-51, I-52 + monospaced fonts, II-246 + *\month, I-35, I-53, + IV-62 + month + previous, III-379 + monthly calendar, III-385--III-389 + \MonthlyCalendar, III-386 + \MoreFontTable, II-300 + most recent contributions, IV-2 + mouth, III-1, III-2, III-153 + *\moveleft, I-211, I-217 + *\moveright, I-211, I-217, + IV-64 + \mp, II-168 + *\mskip, I-94 + mu dimension unit, II-185 + multiline displays, II-220 + multilingual, II-140 + plain format, II-142 + multiple + \afterassignment, III-238 + \everypar, II-33 + glues, I-133 + plain format, IV-278 + reversal of expansion, III-289 + rule dimension specifications, I-155 + spaces, I-24 + printing, III-165 + *\multiply, I-39 + \MultiRowDel, IV-342 + \multispan, IV-221, IV-263, IV-264 + *\muskipdef, I-93, III-152, + III-314 + \MyStrut, I-240, IV-272 + + + \nabla, II-167 + \NameDef, III-73, III-74 + \NameDefinedConditional, III-71, III-74, III-75 + \NameEdef, III-73 + \NameGdef, III-73 + \NameNewDef, III-74 + \NameReDef, III-74 + names + files, III-447 + registers, I-33 + \NameUse, III-74 + \NameUseFlagUndefined, III-74 + \NameXdef, III-73 + \narrower, II-14, II-17, II-152, III-433, IV-100 + \natural, II-167 + natural + boxes + depth, I-264 + height, I-264 + width, I-125, I-176 + glue + length, I-122, I-123 + \NaturalDepth, I-264 + \NaturalHeight, I-264 + nearby pages, III-569 + \nearrow, II-170 + \neg, II-167 + \negthinspace, I-83, I-142 + nested + boxes, I-164, I-168, I-172, I-214 + environments, III-433 + groups, III-101 + global, III-109 + input, III-459 + macro definition + with parameters, III-223 + macro definitions, III-222 + tables, IV-309--IV-311 + \new..., I-113 + \newbox, I-95, I-112 + \newcount, I-34, I-49, I-112, IV-30 + \NewCounter, I-70--I-72 + \NewDef, III-13, III-171, III-172, III-175, III-439 + \newdimen, I-87, I-112, IV-30 + \NewEnvironment, III-435 + \newfam, I-112, II-204, II-207 + \NewFont, II-263 + \newif, I-112 + \newinsert, I-112, IV-29 + \BackslashTt @NewLabel, III-542 + \newlanguage, I-112, II-141 + *\newlinechar, I-55, III-522 + \NewLineMessage, III-522 + \newmskip, I-93, I-112 + \NewPage, IV-19 + \NewPageLeftHand, IV-48 + \NewPageRightHand, IV-46, IV-48 + \NewPageRightHandSpecial, IV-123 + \newread, I-112, III-449 + \newskip, I-92, I-112 + \newtoks, I-112, III-117 + \newwrite, I-112, III-473 + \NextCharTest, III-262 + \NextDay, III-372 + \NextMonth, III-378 + \NextWeekSameDay, III-376 + \ni, II-169 + *\noalign, II-221, III-107, + IV-256, IV-257, IV-283, IV-355, IV-373 + \nobreak, I-158, I-159, II-115, II-124, IV-17, IV-19, IV-25 + \NoBreakSpace, III-15 + *\noexpand, III-207, III-283, III-284, + III-312, III-314, III-315 + *\noindent, II-11, II-19, + II-28, II-35, II-38, II-52 + \nointerlineskip, I-222, I-228, I-231 + \nolimits, II-179 + non equal sign, III-24 + none + expansion, III-314 + font, II-230 + glue versus zero glue, I-139 + \nonfrenchspacing, II-278, II-281 + \nonscript, II-191 + *\nonstopmode, I-106, I-112, II-189, + III-155, III-442 + \nopagenumbers, IV-50, IV-90, IV-92 + \normalbaselines, I-230, I-231, IV-304 + \normalbottom, IV-10 + \NormalFontTable, II-300 + \NormalParIndent, II-35 + \normalsize, II-271 + \NoSpecialPageRef, III-571 + nucleus, II-192 + nul.tex, III-22, 79 + \null, I-165 + null delimiter, II-182 + null.tex, III-22, III-461, 79 + *\nulldelimiterspace, I-89, + II-182 + *\nullfont, II-230 + *\number, I-43, I-47 + number of macro arguments, III-219 + \NumberConditional, III-353 + \NumberOfDaysInMonth, III-365 + \NumberOfDaysInYear, III-371 + \NumberOfLinesInFile, III-21, 78 + \NumberOfLinesInFiles, III-21, 78 + \NumberOfListElements, III-127, III-136 + numbers + decimal, I-59--I-63 + hexadecimal, III-404 + octal, I-48, III-404 + printing in textual form, I-63 + printing numerical values, I-47 + Roman, I-47 + termination of, I-45 + \NumberToText, I-63 + numerical + alignment, IV-242 + computations in tables, IV-337 + conditionals, I-56, III-320 + constants, I-39, I-44 + spaces after, I-27 + \nwarrow, II-170 + + + \O, I-22 + \o, I-22 + \oalign, IV-351 + obelisk, I-23 + \ObeyLines, III-19, III-20 + \obeylines, I-25, II-36, II-38, III-16, III-18--III-20, III-36 + \ObeySpaces, III-17, III-20, III-32, III-35 + \obeyspaces, I-25, III-16, III-20 + \Oct, I-48, III-404, III-405 + octal + constants, I-39 + numbers, I-48, III-404 + \odot, II-168 + \OE, I-22 + \oe, I-22 + \offinterlineskip, I-230, I-231, IV-80, IV-272, IV-273, IV-304 + tables, IV-273 + \oint, II-178 + \Omega, II-166 + \ominus, II-168 + *\omit, IV-201, IV-220 + \cr, IV-224 + omitting of, IV-200--IV-203, IV-210 + \OnPage, III-608 + \ooalign, IV-353 + Op, II-192 + Open, II-192 + open exclamation, I-19 + open question, I-19 + \OpenExclamationText, III-29 + \OpenExclamationTt, III-29 + \OpenGenericOStream, III-474 + \openin, III-449 + \OpenIndexFiles, III-491, III-493, III-494 + \openout, III-473, III-478 + \OpenQuestionText, III-30 + \openup, IV-256 + \OpenVerbWrFile, III-507 + operators + large, II-161, II-178--II-180 + \oplus, II-168 + \OptArgX, III-260, III-261 + optional arguments, III-260 + Ord, II-192 + organizing part processing, III-539 + orientation + page of, IV-48 + \oslash, II-168 + \otimes, II-168 + \OutCaptionGameOnePass, IV-146 + \OutCaptionGameTwoPass, IV-144 + *\outer, I-113, III-179, III-322 + plain format, III-179 + *\output, III-107, III-118, + IV-2, IV-44 + output routines, IV-39--IV-198 + basics, IV-2 + boxes + visible, IV-44 + default, IV-2, IV-57 + double column and single column, IV-166 + double rules, IV-59 + figure caption placement, IV-137 + implicit groups, IV-54, IV-57 + index printing, IV-133 + left hand pages, IV-46 + library card printing, IV-66 + logical page, IV-45 + overview, IV-39 + page breaking, IV-2, IV-41 + penalties, IV-52 + physical pages, IV-45, IV-66 + plain format, IV-89, IV-96, IV-132 + simplified, IV-93 + restoring an output routine, IV-172 + right hand pages, IV-46 + running heads, IV-60 + setting up, IV-44 + shifting output, I-12, IV-53 + simple, IV-57, IV-59 + specific positioning, IV-76 + TeX in Practice, IV-121 + vertical material, IV-53 + output streams, III-472 + number, III-472 + *\outputpenalty, I-54, IV-19, + IV-28, IV-41, IV-52, IV-72, + IV-96 + \OutputWithoutRules, IV-65 + \OutputWithRules, IV-65 + Over, II-192 + *\over, II-171--II-173, III-153 + \OverallSize, I-102 + overfull boxes, I-131, I-132 + *\overfullrule, I-89, I-132 + overlapping lines, I-217 + \overline, II-170, II-197 + overlining + math mode, II-170 + overprinting, I-199 + characters, I-181 + overshrinking glue, I-126 + oversized insertions, IV-109, IV-112 + oversized item labels, II-60 + overstretching glue, I-126 + *\overwithdelims, II-173 + + + \P, I-23 + .p, II-325 + page + current, IV-1, IV-2 + dimensions, IV-46 + glue on top, IV-13 + horizontal shifting, I-12 + layout, IV-8, IV-54 + numbering of, IV-48 + partial processing, III-562 + page breaking + after hyphenated line, IV-20 + algorithm, IV-1--IV-38 + around headings, IV-25, IV-27 + \bigbreak, IV-15 + comparing with line breaks, IV-36 + computations, IV-4, IV-36 + explicit, IV-19 + forced, IV-19 + hyphenated lines, IV-20 + implicit vertical glue, IV-13 + logical pages, IV-45, IV-66 + \medbreak, IV-15 + output routine, IV-41 + output routines, IV-2 + parameters, IV-28 + penalties, IV-15 + preventing of, I-210 + \smallbreak, IV-15 + tables with horizontal rules, IV-351 + page layout + bottom flush, IV-9 + plain format, IV-10 + ragged bottom, IV-9, IV-66 + page numbering + double, IV-51, IV-60 + folio, IV-50 + incrementing, IV-57 + odd versus even, IV-62 + printing, III-327 + Roman, IV-49 + suppression, IV-92 + \pagebody, IV-90, IV-93 + \pagecontents, IV-90, IV-95, IV-96, IV-113, IV-117, IV-118 + *\pagefilllstretch, IV-28 + *\pagefillstretch, IV-28 + *\pagefilstretch, IV-28 + *\pagegoal, IV-4--IV-6, IV-8, + IV-31, IV-32, IV-37, IV-106, IV-166 + updating of, IV-5 + \pageinsert, IV-90, IV-97, IV-104, IV-105, IV-109, IV-118, IV-130 + \PageLine, IV-140 + \pageno, I-50, III-327, IV-49--IV-51, IV-57 + \PageRef, III-86, III-87, III-89, III-565, III-566, III-568 + pages + left hand, IV-46 + nearby, III-569 + orientation, IV-48 + landscape mode, I-12, IV-48 + portrait mode, I-12, IV-48 + physical, IV-45, IV-66 + right hand, IV-46 + selective printing, IV-58 + shifting, I-12, IV-53 + size, II-196 + vertical shifting, I-12 + \PageShortForm, III-609 + *\pageshrink, IV-28 + \PagesRef, III-611 + \PagesShortForm, III-609 + *\pagestretch, IV-28 + *\pagetotal, IV-4--IV-6, IV-8, + IV-37, IV-106 + updating of, IV-5 + \PrintParPrimitive, III-19, III-153, III-201, III-349, III-438, III-439, III-450, IV-7 + par, IV-18 + paragraph sign, \P, I-23 + paragraphs, II-1--II-153 + arbitrary shapes, II-105 + as table entries, IV-304, IV-306 + between table rows, IV-316 + big letter start, II-85 + centering of, I-135, II-9, II-100 + club line, IV-20 + empty lines, II-1 + ending of, II-1, II-12 + first line special, II-134 + hanging, II-80, II-133 + hanging indentation + ragged right, II-133 + indentation, II-18 + negative, II-20 + suppression of, II-19, II-35 + indented, II-15 + last line, II-45 + line numbers in, I-296 + lines + loose, II-143 + lists, II-22, II-49, III-120 + number of lines in, II-130 + parameters + timing, II-110 + predetermined first line, II-10 + processing of, II-3 + pyramids, III-416 + ragged right, II-99, II-246 + related parameters, II-7 + related penalties, IV-22 + vertical, IV-20 + samples, III-402 + spaces, II-1 + starting, II-1, II-11 + tables, IV-311--IV-320 + vboxes, I-212 + vertical + boxes, II-8 + vertical spacing between, II-25 + widow line, IV-20 + \parallel, II-169 + parameter + definition of term, I-35 + \angt{parameter text}, III-181 + parameters, I-35, III-180 + counters, I-53 + delimited, III-181, III-186, III-187 + delimiters, III-189 + empty, III-195 + \everydisplay, III-200 + gobbling, III-196 + gobbling macros, III-196 + space, III-190 + tabs, III-190 + dimensions, I-88 + glue, I-92, I-122 + keywords, III-232 + macros, I-18 + maximum number of, III-163 + mixed types, III-201 + page breaking, IV-28 + tokens, III-4 + undelimited, III-181 + spaces, III-183 + writing to log file, I-116 + parentheses, I-19 + tables, IV-339 + *\parfillskip, II-8, II-42, + II-45, II-100, II-112, II-123, + II-134 + \ParFl, III-201 + *\parindent, I-28, I-89, + II-7, II-11--II-13, II-17, II-18, + II-81, II-112, II-123, II-152, + III-18 + *\parshape, II-8, II-105, II-106, + II-131, II-220 + extended command, II-107 + *\parskip, I-28, I-93, + I-211, II-7, II-11--II-13, + II-25, II-29, II-30, II-69, + II-94, II-110, II-112, II-217, + III-18, IV-3, IV-9, IV-14, + IV-36 + dynamic computation, II-29 + part processing + auxiliary files, III-536, III-541, III-542 + counters, III-581 + cross-referencing, III-563 + nearby pages, III-569 + example, III-581 + macros, III-535 + numbering of pages, III-562 + part list, III-536, III-537 + parts, III-535 + table of contents, III-587 + generation, III-543 + \partial, II-166, II-167 + partial derivatives, II-166 + patch, II-271, III-605 + patgen, II-322 + *\pausing, I-54, III-443 + PCs, I-1 + penalties, I-157--I-159, III-438, IV-3 + displayed equations related, IV-21 + explicit, IV-17, IV-19 + horizontal, I-157 + horizontal mode, I-158 + implicit, I-158 + line breaking, II-144 + negative, I-158 + output routine, IV-52 + page breaking, IV-15 + positive, I-158 + vertical, I-157 + vertical boxes, I-211 + vertical mode, I-158 + \vsplit, I-285 + zero value, I-158 + zero versus none, IV-23 + *\penalty, I-157 + percent sign, I-17, III-10 + \PercentSignPure, III-30 + \PercentSignText, III-30 + \PercentSignTt, III-30 + periods, I-21 + spaces, II-282 + \PeriodText, III-30, IV-244 + \PeriodTt, III-30 + \perp, II-169 + \phantom, II-208, II-209 + phantoms, II-208 + \Phi, II-166 + \phi, II-166 + photo typesetters, I-1, II-285 + photographic reduction, II-242, II-275 + physical pages, IV-45, IV-66 + \Pi, II-166 + pica, I-82 + \PickFirstOfTwo, III-285 + \PickSecondOfTwo, III-285 + pixels, II-285 + pktopxl, II-322 + pktype, II-322 + plain format, I-7, I-8, II-314 + fonts, II-258 + footnotes, IV-98--IV-102 + insertions, IV-97 + \LaTeX, III-438 + math family definitions, II-204 + multilingual, II-142 + \outer macros, III-179 + output routine, IV-89, IV-96, IV-132 + simplified, IV-91 + plain.tex, II-142, II-314 + running foot, IV-91 + running head, IV-91 + table macros, IV-351 + topinsertions, IV-103 + version number, II-325 + plain.tex, II-142, II-314 + \plainoutput, IV-90 + pltotf, II-316, II-322 + plus, I-28 + plus minus, II-167 + plus sign, I-19 + \PlusSignText, III-30 + \PlusSignTt, III-30 + \pm, II-168 + \pmatrix, II-222 + point, I-82 + Polish suppressed-L, \l and \L, I-23 + pooltype, II-322 + poor typesetting, II-134 + \PopVerbatimL, III-55 + Porsche, I-xxxiii, II-xxxiii, III-xxxix, IV-xxix, xxiii + portrait mode, I-12, IV-48 + *\postdisplaypenalty, I-54, + II-216, IV-21 + {\sc PostScript}, III-9 + fonts, II-247, II-309 + pound sign + tables, IV-201 + \pounds, III-29 + \PoundSignText, III-30 + \PoundSignTt, III-30 + \Pr, II-165 + preamble, IV-200--IV-203 + macros, IV-324 + \prec, II-169 + \preceq, II-169 + *\predisplaypenalty, I-54, II-216, + IV-21 + *\predisplaysize, I-89, II-219 + prefix + strings, III-302 + \PrefixConditional, III-302 + \PrepareFigureBox, IV-141 + *\pretolerance, I-53, II-137, + II-149 + \PrevDay, III-374 + *\prevdepth, I-89, I-222, + I-227 + *\prevgraf, II-12, II-130, II-131, + II-220 + previewing, I-7 + previous + day, III-374 + month, III-379 + \PrevMonth, III-379 + \PrevWeekSameDay, III-376, III-377 + \prime, II-162, II-167, III-24 + primitives, I-5, I-7, II-313, III-151, III-152 + comparison with macros, III-154 + duplicating, III-245 + \expandafter, III-288 + redefining, III-154 + \show, III-155 + \PrintAlph, I-48, 1, 2 + \PrintAsterisk, III-397, III-398 + \PrintAtPosition, IV-76, IV-80 + \PrintCatCode, II-303 + \PrintCounter, I-70, I-74 + \PrintDayOfWeek, III-361 + \PrintElse, III-497 + \PrintEven, III-319 + \PrintFi, III-497 + \PrintHyphens, II-145 + \PrintIf, III-497 + \PrintIfCase, III-497 + \PrintIfCat, III-497 + \PrintIfDim, III-497 + \PrintIfEof, III-497 + \PrintIfFalse, III-497 + \PrintIfHbox, III-497 + \PrintIfHmode, III-497 + \PrintIfMmode, III-497 + \PrintIfNum, III-497 + \PrintIfOdd, III-497 + \PrintIfTrue, III-497 + \PrintIfVbox, III-497 + \PrintIfVmode, III-497 + \PrintIfVoid, III-497 + \PrintIfX, III-497 + \PrintInDollar, III-331, IV-337 + printing + characters + character code, I-44 + dollar amounts, III-331 + number in textual form, I-63 + \PrintMilTime, I-51 + \PrintMode, III-348 + \PrintMonth, III-363 + \PrintMonthQ, III-329 + \PrintOdd, III-319 + \PrintOddEven, III-318 + \PrintParWithLineNumbers, I-296 + \PrintRegister, III-164 + \PrintRepeat, III-497 + processing + dvi files, IV-136 + large documents, III-535 + \ProcessNow, III-544, III-551 + \ProcessPart, III-550 + \prod, II-178 + \ProduceNumber, III-355 + profile, II-322 + programmable, I-3 + formatting systems, I-1 + proportionally spaced fonts, I-20, II-245, II-256 + \propto, II-169 + protocol file, III-525 + \ProvideDayOfWeek, III-361 + \ProvideMonth, III-362, III-363 + \PS, III-166 + \Psi, II-166 + public domain, I-1, I-14 + Punct, II-192 + pure TeX, I-7 + \PushVerbatimL, III-55 + .pxl, II-325 + pxl files, II-288, II-290 + pxltopk, II-322 + pxltype, II-322 + pyramids + inverted, III-416 + + + \qquad, I-83, I-142 + \quad, I-83, I-142 + quad, I-83 + \QuestionMarkText, III-30 + \QuestionMarkTt, III-30 + queues + box registers, III-423 + quotation mark + left, I-43 + + + Rad, II-192 + ragged bottom + page layout, IV-9, IV-66 + ragged right, II-99, II-133, II-246 + \raggedbottom, IV-10 + \raggedright, II-99 + *\raise, I-164, I-169, + I-211 + range checking, III-327 + raster output devices, II-284, II-285 + \rbrace, I-19, II-207 + \Re, II-167 + *\read, III-152, III-286, + III-315, III-449 + \ReadANumber, III-456 + \ReadANumberResult, III-456 + \ReadInEndNotes, III-518 + reading + file, III-448, III-449 + complete, III-458 + numbers from a file, III-455 + \ReassignCounter, I-70, I-72, II-73 + recent contributions, IV-1 + recursion, III-249, III-397, III-399 + picking up characters, III-410 + \RecursionMacroEnd, III-399 + \ReDef, III-172, III-175 + redefining + \edef based macros, III-215 + macros, III-171, III-175 + \PrintParPrimitive in tables, IV-225 + primitives, III-154 + \ReduceToStrut, I-241 + \Ref, III-86, III-87, III-89, III-565 + \RefCounter, I-70, I-74 + reference point + boxes, I-162, I-243 + registers, I-33--I-119 + 0 to 9, I-49 + allocation, I-33 + arithmetic, I-37--I-39 + assignment, I-37 + box registers, I-36, I-95, I-168 + boxes + allocation, I-95 + clearing, I-98 + dimensions, I-100 + loading of, I-97 + void, I-103, III-322 + writing to log file, I-105 + counters + macros, I-68--I-79 + dimensions, I-36, I-87 + \edef, III-213 + exchanging + box registers, I-97 + extracting values, III-313 + glue, I-36, I-91 + index, I-33, I-34 + insertions, IV-30 + math glue, I-36 + names, I-33 + printing, I-35 + temporary, I-34 + token, I-36, III-117 + types, I-33 + Rel, II-192 + *\relax, I-44, I-45, III-431, + IV-233 + glue, I-123 + *\relpenalty, I-54, II-144, + II-186 + \RemLsp, III-309 + \removelastskip, IV-16, IV-17 + \RemTsp, III-308, III-309 + \PrintRepeat, III-400, III-497 + repeated use + table entries, IV-216 + replacement text, I-7, III-99, III-154, III-158, III-159, III-170 + category codes, III-8 + grouping, III-171 + \ReplaceSubStrings, III-297 + replacing substrings, III-297 + \ReportBoxType, I-99 + \ReportCharSize, II-232 + \ReportDefined, III-173 + \ReportOnDefined, III-346 + reset list, I-72, I-73, I-75 + \RestoreSpaceFactor, II-282 + \ResultNumberOfLines, II-130 + return character, I-24, III-10, III-14 + \ReturnNumberOfLinesInFile, III-21, 78 + reverse apostrophe, I-20 + \ReverseList, III-126 + \ReverseString, III-300 + reversing a string, III-300 + \rho, II-166 + *\right, II-181, II-182, II-184 + right + bracket, I-19 + double quotation mark, I-20 + quote, I-20, I-39, III-24 + right-justified + columns, IV-200, IV-204 + item labels, II-23 + lines, II-41 + \RightAppendElement, III-122 + \Rightarrow, II-170 + \rightarrow, II-170 + \rightarrowfill, I-150, I-152, IV-207 + \RightBraceText, III-28 + \RightBraceTt, III-30 + \RightBracketText, III-30 + \RightBracketTt, III-30 + \RightFooter, IV-140 + \rightharpoondown, II-170 + \rightharpoonup, II-170 + \RightHeader, IV-140 + *\righthyphenmin, I-55, II-141, + II-145 + \RightLeaderLine, I-186 + \rightleftharpoons, II-170 + \rightline, I-186, III-439 + \RightLineR, I-343 + \RightParenthesisText, III-31 + \RightParenthesisTt, III-31 + \RightQuoteText, III-31 + \RightQuoteTt, III-31 + *\rightskip, I-93, II-8, + II-13, II-14, II-42, II-45, + II-52, II-55, II-56, II-67, + II-81, II-99, II-106, II-110, + II-112, II-123, II-133, II-134, + II-152, II-218, II-220, IV-37 + stretchability, II-99 + \Rlap, I-185 + \rlap, I-182, I-184, I-201 + \RlapX, I-185 + \rm, II-256 + robust macros, III-481, III-561 + \Robusting, III-482 + \Roman, I-68 + Roman + numerals, I-47 + page numbers, IV-49 + \roman, I-68 + *\romannumeral, I-48, IV-49 + *\root, II-169, II-180 + roots, II-169 + rows + skipping, IV-222 + \rq, I-20 + rules, I-154--I-157, IV-2 + boxes, I-318--I-343 + compact specification, III-232 + depth, I-154 + default, I-154, I-155 + dimensions, I-154 + height, I-154 + default, I-154, I-155 + horizontal, I-154, I-174 + horizontal mode, I-154 + leaders, I-146 + multiple dimension specifications, I-155 + multiple vertical in tables, IV-278 + negative dimensions, I-156 + output routines, IV-59 + struts, IV-277 + tables, IV-279 + vertical, I-154 + horizontal boxes, I-164 + in tables, IV-275 + \multispan, IV-287 + struts, IV-277 + vertical mode, I-154 + width, I-154 + default, I-154, I-155 + \RulesInSide, I-329, I-332 + \RulesOnSide, I-330, I-332 + \RulesOutSide, I-327, I-332 + running foot, IV-60 + plain format, IV-91 + running head, IV-81 + dictionaries, IV-83 + plain format, IV-91 + TeX in Practice, IV-87 + + + \S, I-23 + \SameSizeMath, II-206 + \SampleColumnText, II-251 + \SamplePar, III-402 + \SaveSpaceFactor, II-282 + *\sb, II-160 + scaled, II-240 + scaled points, I-38, I-81, I-82 + scaling + fonts, II-242, II-275 + Scandinavian A-with-circle, \aa and \AA, I-22 + Scandinavian O-with-slash, \o and \O, I-22 + script size, II-196 + *\scriptfont, II-201, II-204 + scriptscript size, II-196 + *\scriptscriptfont, II-201, II-204 + *\scriptscriptstyle, II-195, II-196 + *\scriptspace, I-89, II-162 + *\scriptstyle, II-195, II-196 + *\scrollmode, III-442 + \searrow, II-170 + \sec, II-165 + \Section, II-90, IV-87 + section number sign, \S, I-23 + \SectionRef, III-610 + \SectionSample, III-582 + \SectionX, II-96 + \See, III-609, III-610 + \see, III-609, III-610 + selective printing of pages, IV-58 + self-redefining macros, III-224 + *\setbox, I-97, I-335, + III-238 + \BackslashTt@SetCounter, III-542 + \SetCounter, I-70, I-76 + \SetFooter, IV-140 + \SetGraphDataBox, I-314, I-315 + \SetHeader, IV-140 + \SetIndexStream, III-491, III-494 + \SetLineThickness, I-314, I-315 + \setminus, II-168 + \SetPageLayout, III-600, IV-121, IV-123 + \SetParIndent, II-35 + \SetScale, I-314 + \settabs, I-198 + begin tabbed line, I-19, I-198 + \SetUpAfterEveryPar, III-349 + \SetUpBoxRegisterQueue, III-423, III-425 + \SetUpDC, IV-160 + \SetUpDSC, IV-170, IV-171 + \SetUpLabels, III-86, III-87 + \SetUpPrintAtPosition, \IndexPit{IV-80} + \SetUpTeXIPValues, III-597 + *\sfcode, II-279 + SGML, III-224 + Shakespeare, II-4, II-37--II-41 + \sharp, II-167 + shifting output, I-12, IV-53 + \ShiftRefPointUpOrDown, I-254, I-265 + *\shipout, III-476, III-531, IV-3, + IV-41, IV-49, IV-53, IV-57, + IV-72, IV-93, IV-127 + \ShortCard, IV-73 + \ShouldBeRightHandPage, IV-47 + *\show, III-33, III-155, + III-177, III-315, III-442, III-521, + IV-82 + primitives, III-155 + \ShowArray, III-136 + *\showbox, I-105, I-106, I-111, + II-292, III-521 + \ShowBoxAll, I-111 + *\showboxbreadth, I-56, I-105, + I-111 + *\showboxdepth, I-56, I-105, + I-111 + \ShowBoxDepthOne, I-111, I-224, IV-10 + \ShowBoxDepthTwo, I-111 + *\showhyphens, II-145 + *\showlists, II-189, IV-4 + *\showthe, I-36, I-37, I-88, + I-92, III-313, III-442, III-521 + shrinkability, I-122 + default, I-123 + exceeding, I-124 + hierarchy, I-137 + infinite, I-135 + none, I-124 + shrinking glue, I-125 + \SideNoteText, III-492 + \Sigma, II-166 + \SignatureLine, I-201 + \sim, II-169 + \simeq, II-169 + \SimpleOutputRoutine, IV-65 + \sin, II-165 + \sinh, II-165 + size + characters, II-232 + *\skewchar, II-207 + *\skip, I-91, IV-30 + *\skipdef, I-92, III-152, + III-314 + skipping + rows, IV-222 + text, III-323 + \slash, I-159, II-145 + \small, II-271 + \smallbreak, IV-15, IV-16 + \smallskip, I-142, IV-14, IV-15 + \smallskipamount, IV-16 + \smash, II-209 + \smile, II-169 + solid, II-258 + source code, I-4 + entering, I-15 + source file, I-5 + *\sp, II-160 + sp, I-38, I-81, I-82 + \space, I-45, I-169, III-4, III-16 + space, I-23, III-10, III-24 + factor, II-276, II-279 + tokens, I-24, III-2 + \spacefactor, II-280 + spaces + active, I-25 + after control symbols, III-4 + after control words, III-3 + after keywords, I-28 + after numerical constants, I-27 + ampersand, IV-229 + character, III-36 + control space, I-22, I-23, II-11, II-185, III-4, III-17 + extended, I-21 + hard space, I-27 + in macro arguments, III-185 + in math, I-27, II-156 + interword spacing, II-275 + leading spaces + removal, III-308 + \let, III-248 + line breaking, I-25 + multiple, I-24 + printing, III-165 + paragraphs, II-1 + periods, II-282 + regular, I-21 + spurious, III-231 + tabs, III-7 + templates, IV-233 + thin, II-207 + token, I-24, III-2 + trailing spaces + removal, III-308 + undelimited parameters, III-183 + vertical mode, I-27 + visible, I-23, I-24 + *\spaceskip, II-8, II-99, + II-150, II-277 + \SpaceText, III-31 + spacing + French, II-246 + interwords, II-246, II-275 + table columns, IV-230 + \spadesuit, II-167 + *\span, III-315, IV-201, IV-264, IV-265, + IV-327, IV-330 + templates, IV-330 + sparse tables, IV-298 + *\special, III-533, IV-3, IV-22, + IV-43, IV-81 + \vsplit, I-278 + spelling checker, I-12, II-321 + *\splitbotmark, IV-83 + *\splitfirstmark, IV-83 + *\splitmaxdepth, I-89, I-247, + I-293 + splitting vboxes, I-267 + *\splittopskip, I-93, I-282, + IV-102 + spooler, I-12, II-322 + \sqcap, II-168 + \sqcup, II-168 + \sqrt, II-169, II-197 + \sqsubseteq, II-169 + \sqsupseteq, II-169 + \ss, I-23 + \star, II-168 + \StartEndNoteWriting, III-517, III-519 + \StartVerbatimL, III-45, III-55 + static columns, IV-227 + \StepCounter, I-70, I-76 + stomach, III-1 + streams + output, III-472 + number, III-472 + stretch ratio, I-128 + stretchability, I-122 + default, I-123 + exceeding, I-124 + hierarchy, I-137 + infinite, I-135 + none, I-124 + *\string, I-17, III-12, + III-65, III-66, III-68, III-164, III-315 + \StringLength, II-237 + strings + category codes, III-12 + comparison, III-334 + category codes, III-337 + converting from tokens, III-65 + converting to tokens, III-65 + empty string testing, III-335 + extraction, III-292 + prefix, III-302 + replacing substrings, III-297 + suffix, III-307 + \StringsEqualConditional, III-334, III-336, III-343, III-344 + \StringsEqualConditionalCat, III-338 + \StringSwitch, III-340 + \strut, I-236, I-238, II-198 + struts, I-235--I-241 + automatic computation, I-239 + generation of, I-236 + boxes, I-236 + vrules, I-236 + tables, IV-271 + \tabskip, IV-280 + vertical rules, IV-277 + visible, I-238 + style + file, I-9, III-437 + selection, II-197 + uncramped style, II-195 + subformula, III-99 + subscripts, I-4, II-160--II-162 + \SubSection, II-90, III-605 + \SubSectionX, II-96 + \subset, II-169 + \subseteq, II-169 + \SubstituteFont, II-267 + \SubstituteFontX, II-265 + substring extraction, III-292 + \SubStringConditional, III-293 + \SubSubSection, III-605 + \SubSubSectionX, II-96 + \succ, II-169 + \succeq, II-169 + suffix testing, III-307 + \SuffixConditional, III-307 + \sum, II-178, II-190, II-194, II-195 + \sup, II-165 + \supereject, I-159, III-478, III-538, IV-19, IV-51, IV-52, + IV-72, IV-73, IV-91, IV-108, IV-160, IV-161 + superscripts, I-4, I-18, II-160--II-162, IV-98 + suppression + expansion, III-312 + hyphenation, II-144 + interline glue, I-228 + kerning, II-292 + ligatures, II-292 + page numbering, IV-92 + paragraph indentation, II-19, II-35 + \SuppressNextParIndent, II-36 + \supset, II-169 + \supseteq, II-169 + \surd, II-167 + \SwapBoxRegs, I-97 + \swarrow, II-170 + switch statement, III-340 + + + tab character, I-17, I-18, I-24, I-25, I-28 + \halign, IV-201 + writing of, III-505 + table of contents + file, III-499, III-541 + generation of, III-543 + processing of, III-587 + typesetting, II-118--II-130 + \TableFootNote, IV-314 + \TableOfContents, III-540, III-543 + TableOrListOfSomething + \BackslashTt @TableOrListOfSomething, III-557 + \TableRef, III-610 + tables, IV-199--IV-379 + basics, IV-200 + \bgroup and \egroup, III-103 + body, IV-200 + centering of, IV-295--IV-303, IV-333 + \centerline, IV-297 + display math mode, IV-295 + \tabskip, IV-296 + columns + alignment, IV-200 + centered, IV-200, IV-204 + changing justification, IV-226 + eliminating, IV-211 + implicit grouping, IV-210 + left-justified, IV-200, IV-204 + narrow, II-150 + omitting of, IV-222 + repeated entries, IV-217 + spacing, IV-230 + spacing of, IV-240 + spanning multiple, IV-263 + static, IV-227 + display math mode, IV-209 + double, IV-357--IV-371 + entries + repeated use, IV-216 + examples + simple, IV-206 + expansion, IV-376 + font changes, IV-208 + footnotes, IV-313 + glue + templates, IV-226 + heading, IV-214 + horizontal rules, IV-258 + page breaking, IV-351 + selective columns, IV-289 + implicit groups, IV-210 + inputting, IV-291 + leaders, IV-207 + macros + plain format, IV-351 + material not subject to alignment, IV-256 + math + inline, IV-208 + multi page, IV-320 + named columns, IV-301 + nested, IV-309--IV-311 + numerical alignment, IV-242 + numerical computations in, IV-337 + \offinterlineskip, IV-273 + \par + redefining, IV-225 + paragraphs, IV-311--IV-320 + paragraphs between table rows, IV-316 + paragraphs in, IV-304, IV-306 + parentheses, IV-339 + placement, IV-371 + preamble, IV-200--IV-203 + macros, IV-324 + predetermined width, IV-251 + rows + empty, IV-224 + paragraphs between, IV-316 + skipping, IV-222 + rules + horizontal, IV-279 + horizontal, double, IV-260 + vertical, IV-279 + vertical, double, IV-282 + sparse, IV-298 + struts, IV-271 + tab character + spaces, IV-229 + templates, IV-200--IV-203, IV-210 + changing, IV-331 + \edef, IV-328 + macros, IV-200, IV-324, IV-327 + no glue, IV-219 + omitting of, IV-220 + repeated use of, IV-227 + spaces, IV-233 + \span, IV-330 + using hboxes, I-191 + vertical alignment, IV-355 + vertical boxes as entries, IV-304--IV-311 + vertical rules, IV-275 + vertical spacing, IV-255, IV-271 + vertical splitting of, IV-344 + width, IV-212, IV-248 + setting of, IV-248 + tabs + delimited parameters, III-190 + spaces, III-7 + *\tabskip, III-315, IV-201, + IV-230, IV-239, IV-355, IV-357 + default, IV-237 + identical for all columns, IV-230 + incomplete specification, IV-234 + struts, IV-280 + $tab_{0}$, IV-234, IV-237 + $tab_{n}$, IV-234 + \tan, II-165 + tangle, II-317, II-322 + \tanh, II-165 + \td, III-167 + templates, IV-200--IV-203, IV-210 + changing, IV-331 + \edef, IV-328 + glue between, IV-230 + \hfil, IV-226 + macros, IV-200, IV-324, IV-327 + no glue, IV-219 + repeated use of, IV-227 + spaces, IV-233 + \span, IV-330 + standard, IV-204 + temporary registers, I-34 + \tenrm, IV-92 + terminal + reading, III-453 + terminal mode, III-442, III-521 + \TestDef, III-463 + testing + \PrintParPrimitive, III-273 + TeX, I-1, I-3, I-8 + 2.9, I-41, I-42 + 3.0, I-xxxii, I-42, I-129, II-xxxii, II-141, II-296, II-325, III-xxxviii, III-460, IV-xxviii, + xxii + capabilities of, I-3 + debugging, III-439 + diagrams of, I-3, II-320 + electronic mailing lists, I-15 + gullet, III-1 + learning of, I-30 + logo, I-189 + mouth, III-1, III-2 + printing output, II-284, II-321 + public domain, I-1, I-14 + pure, I-7 + source code, I-4 + entering, I-15 + source files, I-5, I-9 + stomach, III-1 + structure of program, III-1 + TeX, I-4, I-141, I-189 + .tex, II-325, III-447 + tex, II-315 + TeX book, I-xxxii, II-xxxii, III-xxxviii, IV-xxviii, xxii + TeX in Practice, I-xxxi, II-xxxi, III-xxxvii, IV-xxvii, xxi + audience, I-xxxii, II-xxxii, III-xxxviii, IV-xxviii, xxii + conditionals, III-351 + contents, I-xxxiii, II-xxxiii, III-xxxix, IV-xxix, xxiii + cross-referencing, III-607 + dimensions, III-597 + list of figures, II-129 + list of tables, II-129 + page numbering, I-xxxii, II-xxxii, III-xxxviii, IV-xxviii, xxii + subdivisions, I-xxxii, II-xxxii, III-xxxviii, IV-xxviii, xxii + TeX Users Group, I-xxxvi, I-xxxix, I-14, II-xxxvi, II-xxxix, III-lxii, III-lxv, IV-xxxii, + IV-xxxv, IV-337, xxvi, xxix + texclean, I-12 + TEXFONTS, II-319 + TEXFORMATS, II-319 + TEXINPUTS, II-319 + TeXIP, III-167 + TeX IP format, III-612 + TEXPOOL, II-319 + text + single spaced, II-258 + underlining, I-200, II-161, II-297 + text editor, I-11 + *TeXtfont, II-201, II-204 + TeXtindent, II-88 + *TeXtstyle, II-195, II-196 + TeXX, I-189 + .tfm, II-325 + tfm files, I-9 + information, II-238 + \TfmSizeTable, II-234 + tftopl, II-292, II-316, II-322 + *\the, I-35--I-37, I-47, + I-87, I-88, I-92, I-101, + III-12, III-282, III-313, IV-91, 6 + \edef, III-208 + \message, I-37 + tokens generated, III-313 + \TheArabicCounter, I-70, I-74 + \TheCounter, I-70, I-73 + \Theta, II-166 + \theta, II-166 + \thickmuskip, II-185 + thin space, II-207 + \thinmuskip, II-185 + \thinspace, I-83, I-142 + \ThreeMonthlyCalendars, III-388 + tie, I-24, I-25 + tight + boxes, I-131 + lines, II-143 + \tilde, II-177 + tilde, I-22, I-25, I-159, III-15 + category code, III-15 + \TildeText, III-31 + \TildeTt, III-31 + *\time, I-51, I-53 + time + printing current, I-51 + \times, II-168 + timing + paragraphs parameters, II-110 + .tip, I-xxxv, II-xxxv, II-325, III-lxi, III-447, IV-xxxi, xxv + \Title, IV-185 + .toc, II-325, III-447 + \TocEntry, II-118, II-121, II-124, III-501 + \Today, III-163 + \TodayX, III-383 + \TodayY, III-383 + \TodayZ, III-383 + tokens, III-1--III-149 + basics, III-1 + characters, III-3 + conditionals related to, III-321 + control sequences, III-3 + testing, III-339 + control words, I-27, III-3, III-65 + converting from strings, III-65 + converting to strings, III-65 + definition + testing, III-172 + lists, III-3, III-99 + comparing, III-343 + main token list, III-158 + mouth, III-153 + parameters, III-4, III-118 + registers, I-36, III-117 + undefined + \PrintIfX, III-345 + \TokensToTeXList, III-136 + \toks0, III-315 + *\toksdef, III-117, III-152, + III-314 + *\tolerance, I-53, II-138, + II-149 + \top, II-167 + \topins, IV-97, IV-103, IV-105, IV-117 + *\topinsert, II-115, II-116, IV-32, + IV-90, IV-97, IV-103--IV-106, IV-113, IV-129, IV-130 + *\topmark, IV-82 + *\topskip, I-93, I-257, + IV-10, IV-12--IV-14, IV-70, + IV-80 + \baselineskip, I-257 + tracing + computations in TeX, III-114 + macro expansion, III-216 + \tracingall, I-55, III-440, III-441 + *\tracingcommands, I-55, III-217 + *\tracinglostchars, I-55, II-297, + III-440 + *\tracingmacros, I-55, III-216, + III-440 + *\tracingonline, I-55, I-106, + III-217, III-440 + *\tracingoutput, I-55 + *\tracingpages, I-55, IV-4 + *\tracingparagraphs, I-55, II-137 + *\tracingrestores, I-55, III-114 + *\tracingstats, I-55, III-217, + III-440 + \TreatAsRobust, III-481 + \triangle, II-167 + \triangleleft, II-168 + \triangleright, II-168 + true dimension units, I-86, II-229 + true text, III-317 + \tt, I-4, I-20, II-256, III-26, III-43, III-44 + TUG, I-xxxvi, I-xxxix, I-14, II-xxxvi, II-xxxix, III-lxii, III-lxv, IV-xxxii, IV-xxxv, IV-337, + xxvi, xxix + {\sc TUGBoat}, I-14 + typefaces, II-263 + typewriter font, I-4, II-256 + + + *\uccode, III-62 + *\uchyph, I-55, II-143 + undelimited parameters, III-181 + spaces, III-183 + Under, II-192 + \underbar, I-200, II-297 + underfull boxes, I-131 + *\underline, I-200, II-170, II-197 + underlining + math mode, II-170 + text, I-200, II-161, II-297 + underscore, I-18, II-160 + \UnderscoreText, III-31 + \UnderscoreTt, III-31 + undump, II-314 + *\unhbox, I-96, I-211, + I-261, II-10 + *\unhcopy, I-97, I-211, + I-236, I-261 + units + dimensions, I-81, I-84 + \unkern, I-301 + \unpenalty, I-301 + *\unskip, I-191, I-301, I-308, + II-124 + *\unvbox, I-96, I-211, + I-261, I-263, IV-9, IV-95 + *\unvcopy, I-97, I-211, + I-261, I-263 + \Uparrow, II-170 + \uparrow, II-170 + \upbracefill, I-150, I-153 + \Updownarrow, II-170 + \updownarrow, II-170 + \uplus, II-168 + *\uppercase, I-16, III-62, III-63, III-68, + III-212, III-315 + \edef, III-212 + \Upsilon, II-166 + utilities, I-11, II-321 + dvi file processors, IV-136 + spelling checker, I-12, II-321 + + + *\vadjust, II-29, II-112, + II-115, II-116, III-107, IV-19 + *\valign, I-256, III-315, IV-355 + \ValueOfDecimalPosition, I-59 + \VarArgs, III-264 + \varepsilon, II-166 + \varphi, II-166 + \varrho, II-166 + \vartheta, II-166 + *\vbadness, I-55, I-131 + *\vbox, I-99, I-206, + I-209, I-210, I-319, II-8, + IV-2 + spread, I-144, I-251 + to, I-144, I-237, I-251, I-252, II-181, IV-9, IV-31, IV-59, + IV-94, IV-95, IV-104, IV-162 + \VboxR, I-144, I-209, I-319, I-334, I-336 + Vcent, II-192 + *\vcenter, I-97, I-99, + I-206, I-209, I-210, I-242, + I-248, II-192 + spread, I-251 + to, I-251, I-252 + \VcenterR, I-209, I-335 + \VcenterX, I-248, I-336 + \VcenterXR, I-335, I-336 + \vdash, II-169 + \vdots, II-223 + \vec, II-177 + \vee, II-168 + \Verb, III-31, III-32 + \VerbAsSource, III-513 + \VerbAsVerb, III-513 + verbatim + character + caret, I-4 + listing of file, III-41, III-42, 80, 81 + macros + auxiliary, III-27 + mode, I-16, I-17, III-26 + display, I-25, III-26, III-36 + inline, III-26, III-31 + inline, advanced, III-35 + writing, III-485, III-504 + \VerbatimFont, III-45 + \VerbatimTab, III-44, III-45 + \VerbatimTokBegin, III-44, III-46 + \VerbatimTokEnd, III-44, III-46 + \VerbatimTokLine, III-44, III-46 + \VerbControlSpace, III-31 + \VerbLineNumtrue, III-45 + \VerifyInitDate, III-358 + vertical + alignment, IV-355 + boxes, I-161 + horizontal rules, I-211 + glue, I-121, I-142--I-145, I-227, IV-3 + vertical boxes, I-211, I-213 + kerning, IV-4 + leaders, I-145, I-211 + lines, I-154 + list, I-210 + main, IV-1 + material + generated by output routine, IV-53 + mode, III-437 + inner, I-210, III-437 + penalties, I-158 + rules, I-154 + spaces, I-27 + rules, I-154 + rules and \multispan, IV-287 + rules and struts, IV-277 + rules in tables, IV-279 + shifting of pages, I-12 + space + computation, IV-6 + spacing + display math mode, II-216 + in tables, IV-255, IV-271 + macros, I-309 + spacing between paragraphs, II-25 + splitting of tables, IV-344 + *\vfil, I-143, IV-18 + *\vfill, I-143, II-115, + IV-18, IV-27 + *\vfilneg, I-143, IV-18 + \vfootnote, IV-99 + *\vfuzz, I-88, I-132 + virtex, II-141, II-313, II-314 + undump, II-314 + virtual fonts, 68 + visible + boxes, I-163 + output routines, IV-44 + glue, I-147 + space, I-23, I-24 + struts, I-238 + vboxes, I-209 + \VisibleSpaceTt, I-24, III-31 + visually incompatible lines, II-143 + *\voffset, I-12, I-28, + I-89, IV-46, IV-54 + void box registers, I-103, III-322 + \vphantom, II-209 + *\vrule, I-154, I-164, I-236, + I-240, II-11, III-438 + *\vsize, I-28, III-597, + IV-5, IV-8, IV-28, IV-46, + IV-166 + \VsizeTeXIP, III-597 + *\vskip, I-87, I-94, + I-121, I-142, IV-14, IV-27 + *\vsplit, I-97, I-267--I-298, + IV-1, IV-81, IV-83, IV-345 + double column text, I-267 + glue, I-270 + leaders, I-280 + penalty, I-285 + \special, I-278 + syntax, I-267 + *\vss, I-143 + \Vtbox, I-264, I-265 + *\vtop, I-99, I-206, + I-209, I-210, I-264, I-319, + IV-2, IV-366 + spread, I-251 + to, I-237, I-251, I-252 + \VtopR, I-209, I-319, I-334 + + + *\wd, I-87, I-100 + weave, II-317 + WEB, I-13, II-317 + \WEB, III-167 + .web, II-325 + \wedge, II-168 + week days, III-360 + \WeekOfYear, III-392 + whatsits, IV-3 + \While, III-408 + while loops + do loops, III-413 + logical, III-408 + numerical, III-406 + \WhileNum, III-406 + wide accents, II-177 + \widehat, II-177 + \widetilde, II-177 + widow line, IV-20 + *\widowpenalty, I-54, + III-597, III-598, IV-20--IV-22, IV-24, IV-25 + width, I-28, I-156 + width + boxes, I-176, I-242 + natural, I-125, I-176 + characters, I-165, II-231 + columns + predetermined, IV-251 + determination in tables, IV-212 + horizontal boxes, I-176 + zero, I-180 + keyword width, I-28, I-156 + rules, I-154 + default, I-154, I-155 + setting table width, IV-248 + table, IV-212, IV-248 + tables, IV-212 + \WidthSavingBox, IV-212 + *\wlog, I-37, III-219, III-523 + words + converting to a list, III-133 + \WordsToTeXList, III-133 + workstations, I-1 + \wp, II-167 + \wr, II-168 + *\write, II-35, III-313, + III-315, III-472, III-473, IV-3 + \WriteAuxFileComment, III-562 + \WriteCountersToAuxFile, III-554, III-606 + \WriteProtocol, III-526 + \WriteToAuxSpecial, II-95, III-543, III-555 + \WriteToc, III-501 + \WriteVerbatimArgument, III-485 + writing + boxes to log file, I-105 + comments to auxiliary files, III-562 + control sequences, III-479 + delayed, III-473, III-476, IV-3 + dvi file, III-531 + file, III-472 + immediate, III-473, III-475, III-476 + log file + parameters, I-116 + verbatim, III-485, III-504 + WYSIWYG, I-xxxiii, I-3, II-xxxiii, III-xxxix, IV-xxix, xxiii + + + *\xdef, III-73, III-108, III-215, + III-314, III-315, IV-218 + \XDefinedConditional, III-345 + \Xi, II-166 + *\xleaders, I-145, I-147, I-148 + \XParShape, II-107, II-108 + *\xspaceskip, II-8, II-99, + II-150, II-277 + + + *\year, I-35, I-53, + IV-62 + year + leap, III-369 + \YearlyCalendar, III-390 + + + zero + depth of hboxes, I-185 + height of hboxes, I-185 + penalty value, I-158 + width of hboxes, I-180 + \ZeroBox, I-104 + \ZeroBoxOut, I-104, IV-80 diff --git a/info/examples/tex-in-practice/texipexp.tex b/info/examples/tex-in-practice/texipexp.tex new file mode 100644 index 0000000000..710fc3013e --- /dev/null +++ b/info/examples/tex-in-practice/texipexp.tex @@ -0,0 +1,6888 @@ +% This is the inputd format source code file in a flat version +% This file is generated based on running initex with all files +% belonging to this format. Do NOT change this file, because +% it is automatically generated directly from all the .tip +% files. The same copyright which applies to the individual .tip +% files applies to this file too, obviously +% 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. +\input plain.tex +\def\InputD #1{} \def\InputDList{} +\catcode`\@ = 11 +\def\NameDef #1{% + \expandafter\def\csname #1\endcsname +} +\def\NameEdef #1{% + \expandafter\edef\csname #1\endcsname +} +\def\NameGdef #1{% + \expandafter\gdef\csname #1\endcsname +} +\def\NameXdef #1{% + \expandafter\xdef\csname #1\endcsname +} +\def\NameNewDef #1{% + \if\NameDefinedConditional{#1}% + \errmessage{\string\NameNewDef: "#1" already defined.}% + \fi + \NameDef{#1}% +} +\def\NameReDef #1{% + \if\NameDefinedConditional{#1}% + \else + \errmessage{\string\NameReDef: "#1" never defined before.}% + \fi + \NameDef{#1}% +} +\def\NameUse #1{\csname #1\endcsname} +\def\NameUseFlagUndefined #1{% + \if\NameDefinedConditional{#1}% + \NameUse{#1}% + \else + \errmessage{\string\NameUseFlagUndefined: token "#1" + is undefined.}% + \fi +} +\newif\if@NameDefined +\def\NameDefinedConditional #1{% + TT\fi + \expandafter\ifx\csname #1\endcsname \relax + \@NameDefinedfalse + \else + \@NameDefinedtrue + \fi + \if@NameDefined +} +\catcode`\@ = 12 +\NameDef{@InputD-namedef.tip}{} +\def\AbsoluteDimension #1#2{% + \ifdim #1 < 0pt + #2 = -#1\relax + \else + #2 = #1\relax + \fi +} +\NameDef{@InputD-absdimen.tip}{} +\def\AbsoluteValue #1#2{% + \ifnum #1<0 + #2 = -#1\relax + \else + #2 = #1\relax + \fi +} +\NameDef{@InputD-absval.tip}{} +\def\DefineAcronym #1#2#3{% + \def #1{% + #2 (#3)% + \gdef#1{#2}% + }% +} +\NameDef{@InputD-acronym.tip}{} +\catcode`\@ = 11 +\newcount\@DoLoopNesting +\@DoLoopNesting = 0 +\newcount\@DoLoopLimit +\newcount\@DoLoopLimitTwo +\newcount\@DoLoopLimitThree +\def\DoLoop #1#2#3#4#5{% + \global\advance\@DoLoopNesting by 1 + \ifnum\@DoLoopNesting > 3 + \errmessage{\string\DoLoop: nesting beyond three levels + is not supported.}% + \fi + \ifnum #3 = 0 + \errmessage{\string\DoLoop: step value (parameter 3) is 0!}% + \else + \ifcase\@DoLoopNesting + \or + \@DoLoop{#1}{#2}{#3}{#4}{#5}% + {\@DoLoopLimit}{\DoLoopBody}% + \or + \@DoLoop{#1}{#2}{#3}{#4}{#5}% + {\@DoLoopLimitTwo}{\DoLoopBodyTwo}% + \or + \@DoLoop{#1}{#2}{#3}{#4}{#5}% + {\@DoLoopLimitThree}{\DoLoopBodyThree}% + \fi + \fi + \global\advance\@DoLoopNesting by -1 +} +\def\@DoLoop #1#2#3#4#5#6#7{% + \ifnum #3 > 0 + #6 = #4% + \advance#6 by 1 + #1 = #2% + \@DoLoopBodyPositive{#1}{#3}{#5}% + {#6}{#7}% + \else + #6 = #4% + \advance#6 by -1 + #1 = #2% + \@DoLoopBodyNegative{#1}{#3}{#5}% + {#6}{#7}% + \fi + \@DoLoopIterate{#7}% +} +\def\@DoLoopBodyPositive #1#2#3#4#5{% + \def #5{% + \ifnum #1 < #4\relax + #3% + \advance #1 by #2% + }% +} +\def\@DoLoopBodyNegative #1#2#3#4#5{% + \def #5{% + \ifnum #1 > #4\relax + #3% + \advance #1 by #2% + }% +} +\def\@DoLoopIterate #1{% + #1\relax + \def\@DoLoopNext{\@DoLoopIterate{#1}}% + \else + \def\@DoLoopNext{\relax}% + \fi + \@DoLoopNext +} +\catcode`\@ = 12 +\NameDef{@InputD-doloop.tip}{} +\catcode`\@ = 11 +\newcount\AdvanceByTabStopsCount +\def\AdvanceByTabStops #1{% + \def\@MakeTabChars{}% + \DoLoop{\AdvanceByTabStopsCount}{2}{1}{#1}% + {\edef\@MakeTabChars{\@MakeTabChars&}}% + \@MakeTabChars +} +\catcode`\@ = 12 +\NameDef{@InputD-advtabst.tip}{} +\newtoks\AfterEveryPar +\AfterEveryPar = {} +\catcode`\@ = 11 +\def\SetUpAfterEveryPar{% + \def\par{% + \ifhmode + \ifinner + \else + \endgraf + \the\AfterEveryPar + \fi + \fi + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-aevpar.tip}{} +\catcode`\@ = 11 +\newif\if@InRange +\def\InRangeConditional #1#2#3{% + TT\fi + \@InRangetrue + \ifnum #1<#2\relax + \@InRangefalse + \fi + \ifnum #1>#3\relax + \@InRangefalse + \fi + \if@InRange +} + +\def\CheckRange #1#2#3#4{% + \ifnum #1 < #2\relax + \errmessage{Value \number#1 \space out of range #2..#3: #4}% + \fi + \ifnum #1>#3\relax + \errmessage{Value \number#1 \space out of range #2..#3: #4}% + \fi +} +\def\CheckZeroOneRange #1#2{% + \CheckRange{#1}{0}{1}{#2}% +} +\catcode`\@ = 12 +\NameDef{@InputD-rangetst.tip}{} +\catcode`\@ = 11 +\def\Sunday{0} +\def\Monday{1} +\def\Tuesday{2} +\def\Wednesday{3} +\def\Thursday{4} +\def\Friday{5} +\def\Saturday{6} +\def\ProvideDayOfWeek #1#2#3{% + \CheckRange{#1}{0}{6}% + {\string\ProvideDayOfWeek: day of week outside + of 0 .. 6 range.}% + \ifcase #1\relax + \def#3{Sunday}\or + \def#3{Monday}\or + \def#3{Tuesday}\or + \def#3{Wednesday}\or + \def#3{Thursday}\or + \def#3{Friday}\or + \def#3{Saturday}% + \fi + \ifnum #2 = 0 + \else + \def\@ProvideDayOfWeek ##1##2##3##4;{% + \def#3{##1##2##3}% + }% + \expandafter\@ProvideDayOfWeek#3;% + \fi +} +\def\PrintDayOfWeek #1#2{% + \ProvideDayOfWeek{#1}{#2}{\@PrintDayOfWeek}% + \@PrintDayOfWeek +} +\catcode`\@ = 12 +\NameDef{@InputD-dateofw.tip}{} +\def\CheckLegalMonth #1{% + \CheckRange{#1}{1}{12}% + {\string\CheckLegalMonth: month #1 out of range.}% +} +\NameDef{@InputD-legmonth.tip}{} +\def\CheckLegalYear #1{% + \ifnum #1 < \EarliestYearDate + \errmessage{\string\CheckLegalYear: year #1 + < \the\EarliestYearDate\space + encountered, illegal.}% + \fi +} +\NameDef{@InputD-legyear.tip}{} +\catcode`\@ = 11 +\newcount\@IModNCount +\newcount\@IModNCountCopy +\def\IModN #1#2#3{% + \@IModNCount = #1\relax + \@IModNCountCopy = #1\relax + \ifnum \@IModNCount < 0 + \errmessage{\string\IModN: \string#1 + (value \the\@IModNCount) is negative.}% + \fi + \ifnum #2< 1 + \errmessage{\string\IModN: \string#2 + (value #2) is negative or zero.}% + \fi + \divide\@IModNCount by #2\relax + \multiply\@IModNCount by #2\relax + #3 = \@IModNCountCopy + \advance #3by -\@IModNCount +} +\catcode`\@ = 12 +\NameDef{@InputD-imodn.tip}{} +\catcode`\@ = 11 +\newif\if@LeapYear +\def\LeapYearConditional #1{% + TT\fi + {% + \count0 = #1\relax + \IModN{\count0}{4}{\count1}% + \ifnum\count1 = 0 + \global\@LeapYeartrue + \IModN{\count0}{100}{\count2}% + \IModN{\count0}{400}{\count3}% + \ifnum\count2 = 0 + \global\@LeapYearfalse + \fi + \ifnum\count3 = 0 + \global\@LeapYeartrue + \fi + \else + \global\@LeapYearfalse + \fi + }% + \if@LeapYear +} +\catcode`\@ = 12 +\NameDef{@InputD-isleapyr.tip}{} +\def\NumberOfDaysInMonth #1#2#3{% + \CheckLegalYear{#1}% + \CheckLegalMonth{#2}% + \ifcase #2\relax + \or + #3 = 31 + \or + #3 = 28 + \if\LeapYearConditional{#1}% + #3 = 29 + \fi + \or + #3 = 31 + \or + #3 = 30 + \or + #3 = 31 + \or + #3 = 30 + \or + #3 = 31 + \or + #3 = 31 + \or + #3 = 30 + \or + #3 = 31 + \or + #3 = 30 + \or + #3 = 31 + \fi +} +\NameDef{@InputD-ndaysmo.tip}{} +\catcode`\@ = 11 +\newcount\@TempCheckDate +\def\CheckDate #1#2#3{% + \CheckLegalYear{#1}% + \CheckLegalMonth{#2}% + \NumberOfDaysInMonth{#1}{#2}{\@TempCheckDate}% + \CheckRange{#3}{1}{\@TempCheckDate}% + {\string\CheckDate: provided date #1-#2-#3 is illegal.}% +} +\catcode`\@ = 12 +\NameDef{@InputD-legdate.tip}{} +\def\CopyDate #1#2#3#4#5#6{% + #4 = #1\relax + #5 = #2\relax + #6 = #3\relax +} +\NameDef{@InputD-copydate.tip}{} +\catcode`\@ = 11 +\newcount\@TempNextDay +\def\NextDay #1#2#3#4#5#6{% + \CheckDate{#1}{#2}{#3}% + \CopyDate{#1}{#2}{#3}{#4}{#5}{#6}% + \advance #6 by 1 + \NumberOfDaysInMonth{#1}{#2}{\@TempNextDay}% + \ifnum #6 > \@TempNextDay + #6 = 1 + \advance #5 by 1 + \ifnum #5 = 13 + #5 = 1 + \advance #4 by 1 + \fi + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-nextday.tip}{} +\def\NumberOfDaysInYear #1#2{% + \if\LeapYearConditional{#1}% + #2 = 366 + \else + #2 = 365 + \fi +} +\NameDef{@InputD-numdyr.tip}{} +\catcode`\@ = 11 +\def\ProvideMonth #1#2#3{% + \CheckLegalMonth{#1}% + \ifcase #1\relax + \or + \def#3{January}\or + \def#3{February}\or + \def#3{March}\or + \def#3{April}\or + \def#3{May}\or + \def#3{June}\or + \def#3{July}\or + \def#3{August}\or + \def#3{September}\or + \def#3{October}\or + \def#3{November}\or + \def#3{December}% + \fi + \ifnum #2 = 1 + \def\@TempProvideMonth ##1##2##3##4\@Del{% + \xdef#3{##1##2##3}% + }% + \expandafter\@TempProvideMonth#3\@Del + \fi +} +\def\PrintMonth #1#2{% + {% + \ProvideMonth{#1}{#2}{\@PrintMonth}% + \@PrintMonth + }% +} +\def\PrintCurrentMonth{% + \PrintMonth{\month}{0}% +} +\catcode`\@ = 12 +\NameDef{@InputD-prmonth.tip}{} +\catcode`\@ = 11 +\newcount\@YearTemp +\newcount\@YearTop +\newcount\@MonthTemp +\newcount\@MonthTop +\newcount\@TempAD +\def\ArbitraryDayOfWeek #1#2#3#4{% + \CheckDate{#1}{#2}{#3}% + #4 = \DayOfWeekOfEarliestDate + \@YearTop = #1\relax + \advance\@YearTop by -1 + \DoLoop{\@YearTemp}{\EarliestYearDate}{1}{\@YearTop}{% + \NumberOfDaysInYear{\@YearTemp}{\@TempAD}% + \advance #4 by \@TempAD + }% + \IModN{#4}{7}{#4}% + \@MonthTop = #2\relax + \advance\@MonthTop by -1 + \DoLoop{\@MonthTemp}{1}{1}{\@MonthTop}{% + \NumberOfDaysInMonth{#1}{\@MonthTemp}{\@TempAD}% + \advance #4 by \@TempAD + }% + \IModN{#4}{7}{#4}% + \advance #4 by #3\relax + \advance #4 by -1 + \IModN{#4}{7}{#4}% +} +\catcode`\@ = 12 +\NameDef{@InputD-arbday.tip}{} +\catcode`\@ = 11 +\newcount\@TempEarliest +\newcount\EarliestYearDate +\EarliestYearDate = 1583 +\newcount\DayOfWeekOfEarliestDate +\DayOfWeekOfEarliestDate = \Saturday +\def\VerifyInitDate{% + {% + \ArbitraryDayOfWeek{2000}{1}{1}{\@TempEarliest}% + \ifnum\@TempEarliest = \Saturday + \message{\string\VerifyInitDate: initialization + correct (initialization year: + \the\EarliestYearDate).}% + \else + \errmessage{\string\VerifyInitDate: January 1 of 2000 + is a Saturday! Computation reports it is + day \the\@TempEarliest\space. Initialization error.}% + \fi + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-earliest.tip}{} +\catcode`\@ = 11 +\newcount\@TempPrevDay +\def\PrevDay #1#2#3#4#5#6{% + \CheckDate{#1}{#2}{#3}% + \CopyDate{#1}{#2}{#3}{#4}{#5}{#6}% + \advance #6 by -1 + \ifnum #6 = 0 + \advance #5 by -1 + \ifnum #5 = 0 + #5 = 12 + \advance #4 by -1 + \fi + \NumberOfDaysInMonth{#4}{#5}{#6}% + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-prevday.tip}{} +\catcode`\@ = 11 +\def\NextMonth #1#2#3#4{% + \CheckDate{#1}{#2}{1}% + #3 = #1\relax + #4 = #2\relax + \advance #4 by 1 + \ifnum #4 = 13 + #4 = 1 + \advance #3 by 1 + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-nextmon.tip}{} +\catcode`\@ = 11 +\def\PrevMonth #1#2#3#4{% + \CheckDate{#1}{#2}{1}% + #3 = #1\relax + #4 = #2\relax + \advance #4 by -1 + \ifnum #4 = 0 + #4 = 12 + \advance #3 by -1 + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-prevmon.tip}{} +\catcode`\@ = 11 +\newcount\@LeadingZCount +\def\LeadingZ #1{% + \@LeadingZCount = #1\relax + \ifnum \@LeadingZCount < 10 + 0% + \fi + \the\@LeadingZCount +} +\catcode`\@ = 12 +\NameDef{@InputD-leadingz.tip}{} +\newcount\Hour +\newcount\Minute +\def\PrintMilTime{% + \Hour = \time + \divide\Hour by 60 + \Minute = \Hour + \multiply\Minute by 60 + \advance\Minute by -\time + \Minute = -\Minute + \LeadingZ{\the\Hour}:\LeadingZ{\the\Minute}% +} +\NameDef{@InputD-pmtime.tip}{} +\def\TodayX{% + \PrintCurrentMonth~\the\day, \the\year +} +\newcount\TodayYCount +\def\TodayY{% + {% + \ArbitraryDayOfWeek{\year}{\month}{\day}{\TodayYCount}% + \PrintDayOfWeek{\TodayYCount}{0}, + }% + \TodayX +} +\def\TodayZ{% + \TodayY, \PrintMilTime +} +\NameDef{@InputD-todayx.tip}{} +\catcode`\@ = 11 +\newcount\@InitialDayOfMonth +\newcount\@MCDays +\newcount\@MonthlyCalendarBodyTemp +\def\MonthlyCalendarBody #1#2#3{% + {% + \CheckDate{#1}{#2}{1}% + \ArbitraryDayOfWeek{#1}% + {#2}{1}{\@InitialDayOfMonth}% + \gdef #3{}% + \DoLoop{\@MonthlyCalendarBodyTemp}% + {1}{1}{\@InitialDayOfMonth}% + {\xdef#3{#3&}} + \NumberOfDaysInMonth{#1}{#2}{\@MCDays}% + \DoLoop{\@MonthlyCalendarBodyTemp}{1}{1}{\@MCDays}{% + \xdef#3{#3\the\@MonthlyCalendarBodyTemp}% + \ifnum\@InitialDayOfMonth = \Saturday + \xdef#3{#3\cr}% + \else + \xdef#3{#3&}% + \fi + \advance\@InitialDayOfMonth by 1 + \IModN{\@InitialDayOfMonth}{7}{\@InitialDayOfMonth}% + }% + }% + \xdef#3{#3\crcr}% +} +\newcount\@MonthlyCalendarCount +\def\MonthlyCalendar #1#2#3{% + {% + \MonthlyCalendarBody{#1}{#2}{\TableBody}% + \vtop{ + \hsize = #3\relax + \ProvideMonth{#2}{0}{\MonthNameTemp}% + \@MonthlyCalendarCount = #1\relax + \centerline{\MyStrut\MonthNameTemp\space + \the\@MonthlyCalendarCount}% + \smallskip + \hrule + \smallskip + \tabskip = 0pt + \halign to \hsize{ + % So + \hfil##\relax \tabskip = 0pt plus 1fil& + \hfil##& % Mo + \hfil##& % Tu + \hfil##& % We + \hfil##& % Th + \hfil##& % Fr + \hfil##\relax \tabskip = 0pt + \cr + \omit\hfil So\hfil& + \omit\hfil Mo\hfil& + \omit\hfil Tu\hfil& + \omit\hfil We\hfil& + \omit\hfil Th\hfil& + \omit\hfil Fr\hfil& + \omit\hfil Sa\hfil\cr + \TableBody + }% + \smallskip + \hrule + }% + }% +}% +\catcode`\@ = 12 +\NameDef{@InputD-mocal.tip}{} +\def\ThreeMonthlyCalendars #1#2#3{% + \hbox{% + \count0 = #1 + \count1 = #2 + \MonthlyCalendar{\count0}{\count1}{#3}% + \hskip 10pt + \NextMonth{\count0}{\count1}{\count0}{\count1}% + \MonthlyCalendar{\count0}{\count1}{#3}% + \NextMonth{\count0}{\count1}{\count0}{\count1}% + \hskip 10pt + \MonthlyCalendar{\count0}{\count1}{#3}% + } +} +\NameDef{@InputD-mocal3.tip}{} +\def\YearlyCalendar #1#2#3{% + \vbox{% + \dimen0 = #2\relax + \ifdim\dimen0 = 0.0pt + \dimen0 = \hsize + \fi + \dimen1 = #3\relax + \ifdim\dimen1 = 0.0pt + \dimen1 = \dimen0 + \divide\dimen1 by 3 + \advance\dimen1 by -5pt + \fi + \hsize = \dimen0 + \centerline{\Large\bf Year #1} + \bigskip + \line{% + \MonthlyCalendar{#1}{1}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{2}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{3}{\dimen1}% + }% + \bigskip + \line{% + \MonthlyCalendar{#1}{4}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{5}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{6}{\dimen1}% + }% + \bigskip + \line{% + \MonthlyCalendar{#1}{7}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{8}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{9}{\dimen1}% + }% + \bigskip + \line{% + \MonthlyCalendar{#1}{10}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{11}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{12}{\dimen1}% + }% + } +} +\NameDef{@InputD-yearcal.tip}{} +\catcode`\@ = 11 +\newcount\@ComputeMondayOfDateDay +\newcount\@ComputeMondayOfDateDayTwo +\def\ComputeMondayOfDate #1#2#3#4#5#6{% + #4 = #1\relax + #5 = #2\relax + #6 = #3\relax + \ArbitraryDayOfWeek{#4}{#5}{#6}{\@ComputeMondayOfDateDay}% + \ifnum\@ComputeMondayOfDateDay = \Sunday + \@ComputeMondayOfDateDay = 6 + \else + \advance\@ComputeMondayOfDateDay by -1 + \fi + \DoLoop{\@ComputeMondayOfDateDayTwo} + {\@ComputeMondayOfDateDay}{-1}{1}% + {\PrevDay{#4}{#5}{#6}{#4}{#5}{#6}}% +} +\catcode`\@ = 12 +\NameDef{@InputD-mondofda.tip}{} +\catcode`\@ = 11 +\newcount\@NextOrPrevWeekSameDayCount +\def\@NextOrPrevWeekSameDay #1#2#3#4#5#6#7{% + #4 = #1\relax + #5 = #2\relax + #6 = #3\relax + \DoLoop{\@NextOrPrevWeekSameDayCount}{1}{1}{7}% + {#7{#4}{#5}{#6}{#4}{#5}{#6}}% +} +\def\NextWeekSameDay #1#2#3#4#5#6{% + \@NextOrPrevWeekSameDay + {#1}{#2}{#3}{#4}{#5}{#6}{\NextDay}% +} +\def\PrevWeekSameDay #1#2#3#4#5#6{% + \@NextOrPrevWeekSameDay + {#1}{#2}{#3}{#4}{#5}{#6}{\PrevDay}% +} +\catcode`\@ = 12 +\NameDef{@InputD-norpweek.tip}{} +\catcode`\@ = 11 +\newcount\@WeekOfYearCounter +\newcount\@WeekOfYearYear +\newcount\@WeekOfYearMonth +\newcount\@WeekOfYearDay +\newcount\@WeekOfYearCopy +\def\WeekOfYear #1#2#3#4{% + \@WeekOfYearCopy = #1\relax + \ComputeMondayOfDate{#1}{#2}{#3}% + {\@WeekOfYearYear}{\@WeekOfYearMonth}{\@WeekOfYearDay}% + \def\@WeekOfYearCounter{#4}% + \@WeekOfYearCounter = 1 + \@WeekOfYear +} +\newif\if@YearStop +\def\@WeekOfYear{% + \@YearStopfalse + \ifnum\@WeekOfYearCopy > \@WeekOfYearYear + \@YearStoptrue + \else + \ifnum\@WeekOfYearMonth = 1 + \ifnum\@WeekOfYearDay = 1 + \@YearStoptrue + \fi + \fi + \fi + \if@YearStop + \def\@WeekOfYearNext{\relax}% + \else + \def\@WeekOfYearNext{\@WeekOfYear}% + \expandafter\advance\@WeekOfYearCounter by 1 + \PrevWeekSameDay{\@WeekOfYearYear}{\@WeekOfYearMonth}% + {\@WeekOfYearDay}% + {\@WeekOfYearYear}{\@WeekOfYearMonth}% + {\@WeekOfYearDay}% + \fi + \@WeekOfYearNext +} +\catcode`\@ = 12 +\NameDef{@InputD-weekofyr.tip}{} +\NameDef{@InputD-alldate.tip}{} +\def\AlwaysBaselineskip{% + \lineskiplimit = -\maxdimen +} +\NameDef{@InputD-alwbase.tip}{} +\def\angt #1{% + \leavevmode + \hbox{$\langle$}% + {\rm #1}% + \hbox{$\rangle$}% +} +\NameDef{@InputD-angt.tip}{} +\newif\ifShowX +\ShowXfalse +\def\ShowX #1{% + \ifShowX + {% + \nonstopmode + \show #1% + }% + \fi +} +\NameDef{@InputD-showx.tip}{} +\catcode`\@ = 11 +\newif\if@TestSubString +\def\SubStringConditional #1#2{% + TT\fi + \edef\@MainString{#1}% + \edef\@SubStringConditionalTemp{{#1}{#2}}% + \expandafter\@SubStringConditional\@SubStringConditionalTemp +} +\def\@SubStringConditional #1#2{% + \def\@TestSubS ##1#2##2\@Del{% + \def\@TestTemp{##1}% + }% + \ShowX{\@TestSubS}% + \@TestSubS #1#2\@Del + \ShowX{\@TestTemp}% + \ifx\@MainString\@TestTemp + \@TestSubStringfalse + \else + \@TestSubStringtrue + \fi + \if@TestSubString +} +\catcode`\@ = 12 +\NameDef{@InputD-testsubs.tip}{} +\catcode`\@ = 11 +\def\RecursionMacroEnd #1#2#3{% + #1\relax + \def\@RecursionMacroEndNext{#2}% + \else + \def\@RecursionMacroEndNext{#3}% + \fi + \@RecursionMacroEndNext +} +\catcode`\@ = 12 +\NameDef{@InputD-endrec.tip}{} +\catcode`\@ = 11 +\def\ReplaceSubStrings #1#2#3#4{% + \def\@ReplaceResult{#1}% + \edef\@ReplaceMain{#2}% + \edef\@ReplaceSub{#3}% + \edef\@ReplaceSubRep{#4}% + \@ReplaceSubStrings +} +\def\@ReplaceSubStrings{% + \RecursionMacroEnd + {\if\SubStringConditional{\@ReplaceMain}{\@ReplaceSub}}% + {\@ReplaceSubStringsDo}{\@ReplaceSubStringsDone}% +} +\def\@ReplaceSubStringsDoX{% + \def\@ReplaceSubStringsDoA ##1% +}% +\def\@ReplaceSubStringsDo{% + \expandafter\@ReplaceSubStringsDoX \@ReplaceSub + ##2\@EndReplaceSubStrings{% + \edef\@ReplaceMain{##1\@ReplaceSubRep ##2}% + }% + \ShowX{\@ReplaceSubStringsDoA}% + \ShowX{\@ReplaceMain}% + \expandafter\@ReplaceSubStringsDoA\@ReplaceMain + \@EndReplaceSubStrings + \ShowX{\@ReplaceMain}% + \@ReplaceSubStrings +} +\def\@ReplaceSubStringsDone{% + \expandafter\edef\@ReplaceResult{\@ReplaceMain}% +} +\catcode`\@ = 12 +\NameDef{@InputD-restring.tip}{} +\catcode`\@ = 11 +\def\StringsEqualConditional #1#2{% + TT\fi + \edef\@StringsEqualOneConditional{#1}% + \edef\@StringsEqualTwoConditional{#2}% + \ifx\@StringsEqualOneConditional\@StringsEqualTwoConditional +} +\def\EmptyStringConditional #1{% + TT\fi + \if\StringsEqualConditional{#1}{}% +} +\def\EmptyStringConditionalISpaces #1{% + TT\fi + \ReplaceSubStrings{\@EmptyStringConditionalISpaces}{#1}% + { }{}% + \if\EmptyStringConditional + {\@EmptyStringConditionalISpaces}% +} +\catcode`\@ = 12 +\NameDef{@InputD-compst.tip}{} +\catcode`\@ = 11 +\def\@EmptyRefList{} +\def\EmptyListConditional #1{% + TT\fi + \ifx#1\@EmptyRefList +} +\newtoks\@AppendTokOne +\newtoks\@AppendTokTwo +\def\LeftAppendElement #1#2{% + \edef\@AppendTemp{\noexpand\\{#2}}% + \@AppendTokOne = \expandafter{\@AppendTemp}% + \@AppendTokTwo = \expandafter{#1}% + \edef#1{\the\@AppendTokOne \the\@AppendTokTwo}% +} +\def\RightAppendElement #1#2{% + \edef\@AppendTemp{\noexpand\\{#2}}% + \@AppendTokOne = \expandafter{\@AppendTemp}% + \@AppendTokTwo = \expandafter{#1}% + \edef#1{\the\@AppendTokTwo \the\@AppendTokOne}% +} +\def\CarOfList #1#2{% + \def\@CarTemp \\##1##2\@EndCarList{\def#2{##1}}% + \expandafter\@CarTemp#1\@EndCarList +} +\def\CdrOfList #1#2{% + \def\@CdrTemp \\##1##2\@EndCdrList{\def#2{##2}}% + \expandafter\@CdrTemp#1\@EndCdrList +} +\def\DropFirstElementOfList #1{% + \if\EmptyListConditional{#1}% + \errhelp = {\string\DropFirstElementOfList: list is + empty. No first element to drop.}% + \errmessage{\string\DropFirstElementOfList: List + \noexpand#1 is empty.}% + \else + \def\@DropFirstElementTemp \\##1##2\@EndCdrList{\def#1{##2}}% + \expandafter\@DropFirstElementTemp#1\@EndCdrList + \fi +} +\def\CarCarOfList #1#2{% + \let\@CarCarOfListList = #1% + \DropFirstElementOfList{\@CarCarOfListList}% + \CarOfList{\@CarCarOfListList}{#2} +} +\def\ForEveryListElement #1#2{% + \let\@ForEveryList = #1% + \let\@ForEveryListElementMacro = #2% + \@ForEveryListElement +} +\def\@ForEveryListElement{% + \if\EmptyListConditional{\@ForEveryList}% + \let\@ForEveryListElementNext = \relax + \else + \CarOfList{\@ForEveryList}{\@ForEveryListElementElement}% + \@ForEveryListElementMacro{\@ForEveryListElementElement}% + \DropFirstElementOfList{\@ForEveryList}% + \let\@ForEveryListElementNext = \@ForEveryListElement + \fi + \@ForEveryListElementNext +} +\newif\if@MemberList +\def\MemberOfListConditional #1#2{% + TT\fi + \@MemberListfalse + {% + \def\\##1{% + \if\StringsEqualConditional{#2}{##1}% + \global\@MemberListtrue + \fi + }% + #1% + }% + \if@MemberList +} +\def\ReverseList #1#2{% + \def\@ReverseListOut{}% + \ForEveryListElement{#1}{\@ReverseList}% + \let#2 = \@ReverseListOut +} +\def\@ReverseList #1{% + \LeftAppendElement{\@ReverseListOut}{#1}% +} +\def\LastElementOfList #1#2{% + \ReverseList{#1}{#1}% + \CarOfList{#1}{#2}% + \ReverseList{#1}{#1}% +} +\def\DropLastElementOfList #1{% + \ReverseList{#1}{#1}% + \DropFirstElementOfList{#1}% + \ReverseList{#1}{#1}% +} +\def\NumberOfListElements #1#2{% + \let\@NumberOfListElementsList = #1% + \def\@NumberOfListElementsCount{#2}% + \@NumberOfListElementsCount = 0 + \@NumberOfListElements +} +\def\@NumberOfListElements{% + \if\EmptyListConditional{\@NumberOfListElementsList}% + \let\@NumberOfListElementsNext = \relax + \else + \advance\@NumberOfListElementsCount by 1 + \DropFirstElementOfList{\@NumberOfListElementsList}% + \let\@NumberOfListElementsNext = \@NumberOfListElements + \fi + \@NumberOfListElementsNext +} +\newcount\@NumberOfListElCCount +\def\NumberOfListElementsNumConditional #1{% + 0=0\fi + \NumberOfListElements{#1}{\@NumberOfListElCCount}% + \ifnum\@NumberOfListElCCount +} +\def\CombineTwoLists #1#2#3{% + \def\@CombineTwoLists{\def\@CombineTwoListsResult}% + \expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter + \expandafter\@CombineTwoLists + \expandafter\expandafter\expandafter{\expandafter#1#2}% + \let #3 = \@CombineTwoListsResult +} +\catcode`\@ = 12 +\NameDef{@InputD-list-mac.tip}{} +\catcode`\@ = 11 +\def\IndexLastElement #1#2{% + \NumberOfListElements{#1}{#2}% + \advance #2 by -1 +} +\newcount\@ArrayIndexCheckCount +\def\ArrayIndexCheck #1#2{% + \IndexLastElement{#1}{\@ArrayIndexCheckCount}% + \ifnum\@ArrayIndexCheckCount = -1 + \errmessage{\string\ArrayIndexCheck: array \string#2 + is empty.}% + \else + \CheckRange{#2}{0}{\@ArrayIndexCheckCount}% + {\string\ArrayIndexCheck: index \number#2 out + of range in list \string#1}% + \fi +} +\newcount\@AccessArrayElementLimit +\newcount\@AccessArrayElementCount +\def\AccessArrayElement #1#2#3{% + \ArrayIndexCheck{#1}{#2}% + \let\@AccessArrayElementList = #1% + \@AccessArrayElementLimit = #2\relax + \DoLoop{\@AccessArrayElementCount}% + {1}{1}{\@AccessArrayElementLimit}% + {\DropFirstElementOfList{\@AccessArrayElementList}}% + \CarOfList{\@AccessArrayElementList}{#3}% +} +\newcount\@ModifyArrayElementCount +\newcount\@ModifyArrayElementLimit +\def\ModifyArrayElement #1#2#3{% + \ArrayIndexCheck{#1}{2}% + \IndexLastElement{#1}{\@ModifyArrayElementLimit}% + \let\@ModifyArrayList = #1% + \def\@ModifyArrayRet{}% + \DoLoop{\@ModifyArrayElementCount}% + {0}{1}{\@ModifyArrayElementLimit}% + {% + \CarOfList{\@ModifyArrayList}% + {\@ModifyArrayElement}% + \DropFirstElementOfList{\@ModifyArrayList}% + \ifnum\@ModifyArrayElementCount = #2\relax + \RightAppendElement{\@ModifyArrayRet}{#3}% + \else + \RightAppendElement + {\@ModifyArrayRet}% + {\@ModifyArrayElement}% + \fi + }% + \let #1 = \@ModifyArrayRet +} +\newcount\@InsertArrayElementCount +\newcount\@InsertArrayElementCountTwo +\def\InsertArrayElement #1#2#3{% + \ifnum\NumberOfListElementsNumConditional{#1}=0 + \errmessage{\string\InsertArrayElement: empty array}% + \fi + \ifnum\NumberOfListElementsNumConditional{#1}=#2 + \else + \ArrayIndexCheck{#1}{#2}% + \fi + \def\@InsertArrayElementListPre{}% + \ifnum #2>0 + \@InsertArrayElementCount = #2\relax + \advance\@InsertArrayElementCount by -1 + \ExtractSubArray{#1}{0}{\@InsertArrayElementCount}% + {\@InsertArrayElementListPre}% + \fi + \def\@InsertArrayElementListPost{}% + \IndexLastElement{#1}{\@InsertArrayElementCount}% + \ifnum #2 > \@InsertArrayElementCount + \else + \ExtractSubArray{#1}{#2}{\@InsertArrayElementCount}% + {\@InsertArrayElementListPost}% + \fi + \RightAppendElement{\@InsertArrayElementListPre}{#3}% + \CombineTwoLists + {\@InsertArrayElementListPre}% + {\@InsertArrayElementListPost}% + {\@InsertArrayElementListPre}% + \let #1 = \@InsertArrayElementListPre +} +\newcount\@DeleteArrayElementCount +\newcount\@DeleteArrayElementLimit +\def\DeleteArrayElement #1#2{% + \ArrayIndexCheck{#1}{#2}% + \let\@DeleteArrayElementList = #1% + \IndexLastElement{#1}{\@DeleteArrayElementLimit}% + \ifnum\@DeleteArrayElementLimit = -1 + \errmessage{\string\DeleteArrayElement: empty array.}% + \fi + \def\@DeleteArrayElementResultList{}% + \DoLoop{\@DeleteArrayElementCount}% + {0}{1}{\@DeleteArrayElementLimit}% + {% + \CarOfList{\@DeleteArrayElementList}% + {\@DeleteArrayElement}% + \DropFirstElementOfList{\@DeleteArrayElementList}% + \ifnum\@DeleteArrayElementCount = #2\relax + \else + \RightAppendElement + {\@DeleteArrayElementResultList}% + {\@DeleteArrayElement}% + \fi + }% + \let #1=\@DeleteArrayElementResultList +} +\newcount\@DeleteArrayElementRangeCount +\newcount\@DeleteArrayElementRangeLimit +\def\DeleteArrayElementRange #1#2#3{% + \ArrayIndexCheck{#1}{#2}% + \ArrayIndexCheck{#1}{#3}% + \ifnum #2>#3 + \errmessage{\string\DeleteArrayElementRange: + first index larger than second. Makes no + sense}% + \fi + \@DeleteArrayElementRangeLimit = #3\relax + \advance\@DeleteArrayElementRangeLimit by -#2% + \advance\@DeleteArrayElementRangeLimit by 1 + \DoLoop{\@DeleteArrayElementRangeCount}{1}{1}% + {\@DeleteArrayElementRangeLimit}% + {\DropArrayElement{#1}{#2}}% +} +\newcount\@ShowArrayCount +\newcount\@ShowArrayLimit +\def\ShowArray #1{% + \wlog{\string\ShowArray: begin}% + \IndexLastElement{#1}{\@ShowArrayLimit}% + \ifnum\@ShowArrayLimit = -1 + \wlog{** empty array **}% + \else + \DoLoop{\@ShowArrayCount}{0}{1}{\@ShowArrayLimit}{% + \AccessArrayElement{#1}{\@ShowArrayCount}% + {\@ShowArrayElement}% + \wlog{Index \the\@ShowArrayCount: + "\@ShowArrayElement"}% + }% + \fi + \wlog{\string\ShowArray: end}% + \wlog{}% +} +\def\@TokenToListDoneMacro{\@TokensToListDone}% +\def\TokensToTeXList #1#2{% + \def#1{}% + \def\@TokensToListName{#1}% + \@TokensToList #2\@TokensToListDone +} +\def\@TokensToList #1{% + \def\@TokensToListMacArgOne{#1}% + \ifx\@TokensToListMacArgOne\@TokenToListDoneMacro + \let\@TokensToListNext = \relax + \else + \expandafter\RightAppendElement\@TokensToListName{#1}% + \let\@TokensToListNext = \@TokensToList + \fi + \@TokensToListNext +} +\newcount\@ExtractArrayCount +\newcount\@ExtractArrayLimit +\newif\if@ExtractCopy +\def\ExtractSubArray #1#2#3#4{% + \ArrayIndexCheck{#1}{#2}% + \ArrayIndexCheck{#1}{#3}% + \ifnum #3<#2 + \errmessage{\string\ExtractSubArray: first index > + second index, error}% + \fi + \def\@ExtractSubArrayResult{}% + \IndexLastElement{#1}{\@ExtractArrayLimit}% + \DoLoop{\@ExtractArrayCount}{0}{1}{\@ExtractArrayLimit}% + {% + \@ExtractCopytrue + \ifnum\@ExtractArrayCount < #2\relax + \@ExtractCopyfalse + \fi + \ifnum\@ExtractArrayCount > #3\relax + \@ExtractCopyfalse + \fi + \if@ExtractCopy + \AccessArrayElement + {#1}% + {\@ExtractArrayCount}% + {\@SubArrayElement}% + \RightAppendElement + {\@ExtractSubArrayResult}% + {\@SubArrayElement}% + \fi + }% + \let #4 = \@ExtractSubArrayResult +} +\catcode`\@ = 12 +\NameDef{@InputD-arraymac.tip}{} +\def\ZeroBox #1{% + \wd#1 = 0pt + \ht#1 = 0pt + \dp#1 = 0pt +} +\def\ZeroBoxOut #1{% + \ZeroBox{#1}% + \box#1% +} +\NameDef{@InputD-box-zero.tip}{} +\catcode`\@ = 11 +\newbox\@PrintAtPositionBox +\def\PrintAtPosition #1#2#3#4{% + \setbox\@PrintAtPositionBox = \hbox{% + \hskip #1\relax + \lower #2\hbox{% + #3% + }% + }% + #4 = \dp\@PrintAtPositionBox + \ZeroBoxOut{\@PrintAtPositionBox}% +} +\catcode`\@ = 12 +\def\SetUpPrintAtPosition{% + \nopagenumbers + \topskip = 0pt + \offinterlineskip +} +\NameDef{@InputD-atpos.tip}{} +\catcode`\@ = 11 +\def\NewEnvironment #1{% + \wlog{\string\NewEnvironment: new environment #1.}% + \NameNewDef{@@B-#1}{% + \bgroup + \def\@CurEnvName{#1}% + \NameUse{@Begin#1}% + }% + \NameNewDef{@@E-#1}{% + \NameUse{@End#1}% + \if\StringsEqualConditional{#1}{\@CurEnvName}% + \else + \errmessage{Ending environment: mismatch in + environment names: specified: #1, + expected: \@CurEnvName}% + \fi + \egroup + }% +} +\def\B #1{% + \NameUse{@@B-#1}% +} +\def\E #1{% + \NameUse{@@E-#1}% +} +\catcode`\@ = 12 +\NameDef{@InputD-be-env.tip}{} +\catcode`\@ = 11 +\newbox\@BulletBox +\setbox\@BulletBox = + \hbox{% + \hskip -2.3pt + \lower 2.5pt \hbox{$\bullet$}% + } +\ZeroBox{\@BulletBox} +\catcode`\@ = 12 +\NameDef{@InputD-box-bul.tip}{} +\catcode`\@ = 11 +\newbox\@BoxingBox +\newbox\@BaseLineLeaders +\catcode`\@ = 12 +\NameDef{@InputD-box-bb.tip}{} +\newdimen\BoxRuleThickness +\BoxRuleThickness = 0.4pt +\NameDef{@InputD-box-thck.tip}{} +\catcode`\@ = 11 +\newif\ifBulletAndBaseLine +\BulletAndBaseLinetrue +\def\RulesOutSide #1#2#3{% + {% + \setbox 0 = \hbox{% + \ifBulletAndBaseLine + \copy\@BulletBox + \fi + \hskip -\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip #3% + \vrule width \BoxRuleThickness height #1 depth #2% + \dimen0 = #3% + \advance \dimen0 by 2\BoxRuleThickness + \hskip -\dimen0 + \dimen2 = #1% + \advance\dimen2 by \BoxRuleThickness + \vrule width \dimen0 height \dimen2 depth -#1% + \hskip -\dimen0 + \dimen2 = #2% + \advance\dimen2 by \BoxRuleThickness + \vrule width \dimen0 height -#2 depth \dimen2 + }% + \ZeroBoxOut{0}% + }% +} +\def\RulesInSide #1#2#3{% + {% + \setbox 0 = \hbox{% + \ifBulletAndBaseLine + \copy\@BulletBox + \fi + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip #3% + \hskip -\BoxRuleThickness + \hskip -\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip -#3% + \dimen2 = #1% + \advance\dimen2 by -\BoxRuleThickness + \vrule width #3 height #1 depth -\dimen2 + \hskip -#3% + \dimen2 = #2% + \advance\dimen2 by -\BoxRuleThickness + \vrule width #3 height -\dimen2 depth #2% + }% + \ZeroBoxOut{0}% + }% +} +\def\RulesOnSide #1#2#3{% + {% + \setbox 0 = \hbox{% + \ifBulletAndBaseLine + \copy\@BulletBox + \fi + \hskip -0.5\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip #3% + \hskip -\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip -#3% + \hskip -\BoxRuleThickness + \dimen0 = #3% + \advance\dimen0 by \BoxRuleThickness + \dimen2 = #1% + \advance\dimen2 by 0.5\BoxRuleThickness + \dimen4 = #1% + \advance\dimen4 by -0.5\BoxRuleThickness + \dimen4 = -\dimen4 + \vrule width \dimen0 height \dimen2 depth \dimen4 + \hskip -\dimen0 + \dimen2 = #2% + \advance\dimen2 by -0.5\BoxRuleThickness + \dimen2 = -\dimen2 + \dimen4 = #2% + \advance\dimen4 by 0.5\BoxRuleThickness + \vrule width \dimen0 height \dimen2 depth \dimen4 + }% + \ZeroBoxOut{0}% + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-boxing5.tip}{} +\catcode`\@ = 11 +\def\BoxingE #1{% + \hbox{% + \setbox\@BoxingBox = #1% + \setbox\@BaseLineLeaders = \hbox to \wd\@BoxingBox{% + \xleaders\hbox to 4pt{% + \hskip 1pt + \vrule depth 0.4pt height 0.4pt width 2pt + \hfil + }% + \hfil + }% + \ZeroBox{\@BaseLineLeaders}% + \ifBulletAndBaseLine + \box\@BaseLineLeaders + \fi + \RulesOnSide + {\ht\@BoxingBox}% + {\dp\@BoxingBox}% + {\wd\@BoxingBox}% + \box\@BoxingBox + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-boxing6.tip}{} +\catcode`\@ = 11 +\newbox\@VcenterXBox +\newdimen\@VcenterDimen +\def\VcenterX{% + \hbox\bgroup + \mathsurround = 0pt + \futurelet\@VCenterXToken\@VCenterXA +} +\def\@VCenterXA{% + \ifx\@VCenterXToken\bgroup + \let\@VcenterXNext = \@VcenterXOrdinary + \else + \ifx\@VCenterXToken t% + \let\@VcenterXNext = \@VcenterXTo + \else + \let\@VcenterXNext = \@VcenterXSpread + \fi + \fi + \@VcenterXNext +} +\def\@VcenterXOrdinary{% + \def\@VcenterCommand{\vcenter}% + \afterassignment\@VcenterXB + \let\@VcenterDrop = +} +\def\@VcenterXTo to{% + \def\@VcenterCommand{to}% + \afterassignment\@VcenterXToSpread + \@VcenterDimen = +} +\def\@VcenterXSpread spread{% + \def\@VcenterCommand{spread}% + \afterassignment\@VcenterXToSpread + \@VcenterDimen = +} +\def\@VcenterXToSpread{% + \edef\@VcenterCommand{% + \vcenter\@VcenterCommand \the\@VcenterDimen + }% + \afterassignment\@VcenterXB + \let\@VcenterDrop = +} +\def\@VcenterXB{% + \setbox\@VcenterXBox = \hbox\bgroup + $% + \@VcenterCommand\bgroup + \aftergroup\@VcenterXC +} +\def\@VcenterXC{% + $% + \egroup + \box\@VcenterXBox + \egroup +} +\catcode`\@ = 12 +\NameDef{@InputD-vcentx.tip}{} +\catcode`\@ = 11 +\newdimen\@BoxRDimen +\newbox\@BoxRBox +\newcount\@BoxRNumber +\def\HboxR{% + \hbox\bgroup + \def\@WhichBox{\hbox}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\VboxR{% + \vbox\bgroup + \def\@WhichBox{\vbox}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\VtopR{% + \vtop\bgroup + \def\@WhichBox{\vtop}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\VcenterXR{% + \hbox\bgroup + \def\@WhichBox{\VcenterX}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\BoxR{% + \hbox\bgroup + \def\@WhichBox{\hbox}% + \def\@WhichBoxDimen{}% + \afterassignment\@BoxRB + \@BoxRNumber = +} +\def\@BoxRB{% + \HboxR{\box\@BoxRNumber}% + \egroup +} +\def\CopyR{% + \hbox\bgroup + \def\@WhichBox{\hbox}% + \def\@WhichBoxDimen{}% + \afterassignment\@CopyRbb + \@BoxRNumber = +} +\def\@CopyRbb{% + \HboxR{\copy\@BoxRNumber}% + \egroup +} +\def\@BoxRaa{% + \futurelet\@BoxRSymbol\@BoxRA +} +\def\@BoxRA{% + \ifx\@BoxRSymbol\bgroup + \let\@BoxitNext = \@BoxRb + \else + \if\@BoxRSymbol t% + \let\@BoxitNext = \@BoxRbTo + \else + \let\@BoxitNext = \@BoxRbSpread + \fi + \fi + \@BoxitNext +} +\def\@BoxRb{% + \afterassignment\@BoxRbTwo + \let\@BoxDrop = +} +\def\@BoxRbTwo{% + \setbox\@BoxRBox = \expandafter\@WhichBox\@WhichBoxDimen\bgroup + \aftergroup\@BoxRbThree +} +\def\@BoxRbThree{% + \BoxingE{\box\@BoxRBox}% + \egroup +} +\def\@BoxRbTo to{% + \def\@WhichBoxDimen{to}% + \afterassignment\@BoxRbMoreSpreadTo + \@BoxRDimen = +} +\def\@BoxRbSpread spread{% + \def\@WhichBoxDimen{spread}% + \afterassignment\@BoxRbMoreSpreadTo + \@BoxRDimen = +} +\def\@BoxRbMoreSpreadTo{% + \edef\@WhichBoxDimen{\@WhichBoxDimen \the\@BoxRDimen}% + \afterassignment\@BoxRbTwo + \let\@BoxDrop = +} +\catcode`\@ = 12 +\NameDef{@InputD-boxing7.tip}{} +\def\BoxLarger #1#2{% + \vbox{% + \vskip #2 + \hbox{% + \hskip #2% + \hbox{#1}% + \hskip #2% + }% + \vskip #2 + }% +} +\NameDef{@InputD-box-larg.tip}{} +\def\EmptyBox #1#2#3{% + \hbox{% + \setbox 0 = \hbox{}% + \ht0 = #1% + \dp0 = #2% + \wd0 = #3% + \box 0% + }% +} +\NameDef{@InputD-emptybox.tip}{} +\catcode`\@ = 11 +\newbox\@EmptyRuledBox +\def\EmptyRuledBox #1#2#3{% + \setbox\@EmptyRuledBox = \hbox{}% + \ht\@EmptyRuledBox = #1\relax + \dp\@EmptyRuledBox = #2\relax + \wd\@EmptyRuledBox = #3\relax + \HboxR{\box\@EmptyRuledBox}% +} +\catcode`\@ = 12 +\NameDef{@InputD-emprubox.tip}{} +\def\EliminateRuledBoxes{% + \let\HboxR = \hbox + \let\VboxR = \vbox + \let\VtopR = \vtop + \let\VcenterXR = \VcenterX + \let\BoxR = \box + \let\CopyR = \copy +} +\NameDef{@InputD-boxrelim.tip}{} +\def\LineR{\HboxR to \hsize} +\def\LeftlineR #1{\LineR{#1\hss}} +\def\RightlineR #1{\LineR{\hss#1}} +\def\CenterlineR #1{\LineR{\hss#1\hss}} +\NameDef{@InputD-linesr.tip}{} +\NameDef{@InputD-box-mac.tip}{} +\catcode`\@ = 11 +\newdimen\@BigLetDown +\newdimen\@BigLetDimen +\newcount\@BigLetCount +\newbox\@BigLetBox +\newdimen\BigLetSep +\BigLetSep = 2pt +\newdimen\BigLetH +\BigLetH = 2pt +\def\BigLetPar #1{% + \par + \setbox\@BigLetBox = \hbox{#1\hskip\BigLetSep}% + \setbox\@BigLetBox = \vtop{% + \dimen0 = \baselineskip + \offinterlineskip + \hbox{} + \vskip -0.7\dimen0 + \box\@BigLetBox + \vbox to \BigLetH{} + }% + \@BigLetDimen = \dp\@BigLetBox + \advance\@BigLetDimen by 0.7\baselineskip + \advance\@BigLetDimen by 1.0\baselineskip + \divide\@BigLetDimen by \baselineskip + \@BigLetCount = \@BigLetDimen + \dp\@BigLetBox = 0pt + \hangafter = -\@BigLetCount + \hangindent = \wd\@BigLetBox + \noindent + \hskip -\hangindent + \box \@BigLetBox + \ignorespaces +} +\catcode`\@ = 12 +\NameDef{@InputD-bletpar.tip}{} +\def\BoxingA #1{% + \vbox{% + \hrule + \hbox{% + \vrule + #1% + \vrule + }% + \hrule + }% +} +\NameDef{@InputD-boxing1.tip}{} + +\def\BoxingB #1{% + \vbox{% + \hrule height \BoxRuleThickness + \hbox{% + \vrule width \BoxRuleThickness + #1% + \vrule width \BoxRuleThickness + }% + \hrule height \BoxRuleThickness + }% +} +\NameDef{@InputD-boxing2.tip}{} +\catcode`\@ = 11 +\def\BoxingC #1{% + \vbox{% + \hrule height \BoxRuleThickness + \hbox{% + \vrule width \BoxRuleThickness + \copy\@BulletBox + #1% + \vrule width \BoxRuleThickness + }% + \hrule height \BoxRuleThickness + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-boxing3.tip}{} +\catcode`\@ = 11 +\def\BoxingD #1{% + \vbox{% + \setbox\@BoxingBox = #1% + \setbox\@BaseLineLeaders = \hbox to \wd\@BoxingBox{% + \xleaders\hbox to 4pt{% + \hskip 1pt + \vrule depth 0.4pt height 0.4pt width 2pt + \hfil + }% + \hfil + }% + \ZeroBox{\@BaseLineLeaders}% + \hrule height \BoxRuleThickness + \hbox{% + \vrule width \BoxRuleThickness + \copy\@BulletBox + \box\@BaseLineLeaders + \box\@BoxingBox + \vrule width \BoxRuleThickness + }% + \hrule height \BoxRuleThickness + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-boxing4.tip}{} +\catcode`\@ = 11 +\def\newcountOF{\alloc@0\count\countdef\insc@unt} +\def\newdimenOF{\alloc@1\dimen\dimendef\insc@unt} +\def\newskipOF{\alloc@2\skip\skipdef\insc@unt} +\def\newmuskipOF{\alloc@3\muskip\muskipdef\@cclvi} +\def\newboxOF{\alloc@4\box\chardef\insc@unt} +\def\newhelpOF#1#2{\newtoksOF#1#1\expandafter{\csname#2\endcsname}} +\def\newtoksOF{\alloc@5\toks\toksdef\@cclvi} +\def\newreadOF{\alloc@6\read\chardef\sixt@@n} +\def\newwriteOF{\alloc@7\write\chardef\sixt@@n} +\def\newfamOF{\alloc@8\fam\chardef\sixt@@n} +\def\newifOF#1{\count@\escapechar \escapechar\m@ne + \expandafter\expandafter\expandafter + \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% + \expandafter\expandafter\expandafter + \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% + \@if#1{false}\escapechar\count@} % the condition starts out false +\def\newlanguageOF{\alloc@9\language\chardef\@cclvi} +\catcode`\@ = 12 +\NameDef{@InputD-newoutfr.tip}{} +\edef\FourSpaces{\space\space\space\space} +\edef\EightSpaces{\FourSpaces\FourSpaces} +\NameDef{@InputD-mspaces.tip}{} +\catcode`\@ = 11 +\newcount\@BoxRQStart +\newcount\@BoxRQEnd +\newcount\@BoxRQLength +\newcount\@BoxRQCount +\newcount\@BoxRQLast +\newcount\@BoxRQFirst +\def\@LoadBRQCounters #1{% + \if\NameDefinedConditional{@BoxRQ-Start-#1}% + \@BoxRQStart = \NameUse{@BoxRQ-Start-#1}% + \@BoxRQEnd = \NameUse{@BoxRQ-End-#1}% + \@BoxRQLength= \NameUse{@BoxRQ-Length-#1}% + \@BoxRQCount = \NameUse{@BoxRQ-Count-#1}% + \@BoxRQLast = \NameUse{@BoxRQ-Last-#1}% + \@BoxRQFirst = \NameUse{@BoxRQ-First-#1}% + \else + \errmessage{\string\@LoadBRQCounters: no queue "#1".}% + \fi +} +\def\@RestoreBRQCounters #1{% + \NameXdef{@BoxRQ-Start-#1}{\the\@BoxRQStart}% + \NameXdef{@BoxRQ-End-#1}{\the\@BoxRQEnd}% + \NameXdef{@BoxRQ-Length-#1}{\the\@BoxRQLength}% + \NameXdef{@BoxRQ-Count-#1}{\the\@BoxRQCount}% + \NameXdef{@BoxRQ-Last-#1}{\the\@BoxRQLast}% + \NameXdef{@BoxRQ-First-#1}{\the\@BoxRQFirst}% +} +\newcount\@BoxRQTempA \newcount\@BoxRQTempB +\def\SetUpBoxRegisterQueue #1#2{% + \@BoxRQStart = \count14 + \advance\@BoxRQStart by 1 + \@BoxRQTempA = \@BoxRQStart + \DoLoop{\@BoxRQTempB}{1}{1}{#2}% + {\newboxOF\@WhoCaresBoxRegisterIndexA + \advance\@BoxRQTempA by 1 } + \advance\@BoxRQTempA by -1 + \@BoxRQEnd = \@BoxRQTempA + \wlog{\string\SetUpBoxRegisterQueue: queue "#1."}% + \wlog{\EightSpaces Box registers + \the\@BoxRQStart\space through + \the\@BoxRQEnd\space allocated.}% + \wlog{\EightSpaces (#2 registers).}% + \@BoxRQCount = 0 + \@BoxRQLength = #2 + \@RestoreBRQCounters{#1}% +} +\def\AddBoxToQueue #1#2{% + \@LoadBRQCounters{#1}% + \wlog{\string\AddBoxToQueue: length: \the\@BoxRQLength, + count: \the\@BoxRQCount}% + \ifnum\@BoxRQCount = \@BoxRQLength + \errmessage{\string\AddBoxToQueue: Queue "#1" is full.}% + \else + \ifnum\@BoxRQCount = 0 + \@BoxRQLast = \@BoxRQStart + \@BoxRQFirst = \@BoxRQStart + \fi + \global\setbox\@BoxRQLast = #2% + \advance\@BoxRQLast by 1 + \ifnum\@BoxRQLast > \@BoxRQEnd + \@BoxRQLast = \@BoxRQStart + \fi + \advance\@BoxRQCount by 1 + \@RestoreBRQCounters{#1}% + \fi +} +\def\CopyFirstElementFromQueue #1#2{% + \@LoadBRQCounters{#1}% + \ifnum\@BoxRQCount = 0 + \errmessage{\string\CopyFirstElementFromQueue: empty "#1"}% + \else + \setbox #2 = \copy\@BoxRQFirst + \fi +} +\def\DropFirstBoxOfQueue #1{% + \@LoadBRQCounters{#1}% + \ifnum\@BoxRQCount = 0 + \errmessage{\string\DropFirstBoxOfQueue: "#1" is empty.}% + \else + \advance\@BoxRQCount by -1 + \ifnum\@BoxRQCount = 0 + \else + \advance\@BoxRQFirst by 1 + \ifnum\@BoxRQFirst > \@BoxRQEnd + \@BoxRQFirst = \@BoxRQStart + \fi + \fi + \fi + \@RestoreBRQCounters{#1}% +} +\def\EmptyBoxRegisterQueueConditional #1{% + TT\fi + \@LoadBRQCounters{#1}% + \ifnum\@BoxRQCount = 0 +} +\catcode`\@ = 12 +\NameDef{@InputD-boxrqu.tip}{} +\def\CenterlineP #1{% + \centerline{#1\unskip .} +} +\NameDef{@InputD-centerlp.tip}{} +\def\BeginCenter{% + \par + \begingroup + \rightskip = 1in plus 4em + \leftskip = \rightskip + \spaceskip = .3333em + \xspaceskip = .5em + \parfillskip = 0pt + \noindent +} +\def\EndCenter{% + \par + \endgroup +} +\NameDef{@InputD-centerng.tip}{} +\def\CenterOrParagraph #1{% + {% + \par + \setbox 0 = \hbox{#1}% + \ifdim\wd0 > \hsize + \noindent #1\par + \else + \centerline{\box0}% + \fi + }% +} +\NameDef{@InputD-centpar.tip}{} +\def\hboxE #1{% + {% + \setbox0 = \hbox{#1}% + \setbox1 = \hbox{}% + \wd1 = \wd0 + \ht1 = \ht0 + \dp1 = \dp0 + \HboxR{\box 1}% + }% +} +\NameDef{@InputD-charbo.tip}{} +\catcode`\@ = 11 +\newdimen\@AdvanceBoxD +\def\AdvanceBoxDimension #1#2{% + \@AdvanceBoxD = #1\relax + \advance\@AdvanceBoxD by #2\relax + #1 = \@AdvanceBoxD +} +\catcode`\@ = 12 +\NameDef{@InputD-chboxd.tip}{} +\catcode`\@ = 11 +\def\ClearBoxReg #1{% + \setbox #1 = \box\voidb@x +} +\catcode`\@ = 12 +\NameDef{@InputD-clearb.tip}{} +\def\InitialCollectInfo{% + \gdef\Collect{}% +} +\InitialCollectInfo +\long\def\AddInfo #1{% + \xdef\Collect{\Collect #1}% +} +\NameDef{@InputD-collect.tip}{} +\newtoks\CollectTokens +\CollectTokens = {} +\def\AddInfo #1{% + \expandafter\expandafter\expandafter + \CollectTokens\expandafter{% + \the\CollectTokens #1} +} +\NameDef{@InputD-coltok.tip}{} +\catcode`\@ = 11 +\def\MakeOther #1{\catcode `#1 = 12 } +\def\MakeActive #1{\catcode `#1 = \active\relax} +\def\MakeEolActive{\MakeActive{\^^M}} +\def\MakeTabActive{\MakeActive{\^^I}} +\def\MkOthersNoCB{% + \MakeOther{\ }% + \MakeOther{\\}% + \MakeOther{\$}% + \MakeOther{\&}% + \MakeOther{\#}% + \MakeOther{\^}\MakeOther{\^^K}% + \MakeOther{\_}\MakeOther{\^^A}% + \MakeOther{\%}% + \MakeOther{\~}% +} +\def\MkOthers{% + \MakeOther{\{}% + \MakeOther{\}}% + \MkOthersNoCB +} +{\catcode`\^^I = 11 +\gdef\@TabAsLiteral{^^I}% +} +\catcode`\[ = 1 +\catcode`\] = 2 +[ + \catcode`\{ = 12 + \catcode`\} = 12 + \gdef\LeftBraceText[{] + \gdef\RightBraceText[}] +] +\catcode`\[ = 12 +\catcode`\] = 12 +\def\AcuteAccentText{\'{}} +\def\AcuteAccentTt{{\tt\AcuteAccentText}} +\def\AmpersandText{\char`\&} +\def\AmpersandTt{{\tt\AmpersandText}} +\def\ApostropheText{'{}} +\def\ApostropheTt{{\tt\ApostropheText}} +\def\AtSignText{@} +\def\AtSignTt{{\tt\AtSignText}} +{% + \catcode`| = 0 + |catcode`\\ = 12 + |gdef|Backslash{\} +} +\def\BackslashTt{{\tt\char`\\}} +\def\CaretText{\char`\^{}} +\def\CaretTt{{\tt\CaretText}} +\def\DollarSignText{\$} +\def\DollarSignTt{{\tt\DollarSignText}} +{ + \catcode`\# = 12 + \gdef\PoundSign{#} +} +\def\pounds{{\it\char'44 }} +\def\DoubleQuoteTt{{\tt"}} +\def\EmDashText{{}---{}} +\def\EmDashTt{{\tt\EmDashText}} +\def\EnDashText{{}--{}} +\def\EnDashTt{{\tt\EnDashText}} +\def\ExclamationPointText{!} +\def\ExclamationPointTt{{\tt\ExclamationPointText}} +\def\GreaterThanSign{>} +\def\GreaterThanSignTt{{\tt\GreaterThanSign}} +\def\HyphenText{-} +\def\HyphenTt{{\tt\HyphenText}} +\def\OpenExclamationText{>} +\def\OpenExclamationTt{{\tt\OpenExclamationText}} +\def\LeftBraceTt{{\tt\LeftBraceText}} +\def\LeftBracketText{[} +\def\LeftBracketTt{{\tt\LeftBracketText}} +\def\LeftParenthesisText{(} +\def\LeftParenthesisTt{{\tt\LeftParenthesisText}} +\def\LeftQuoteText{`{}} +\def\LeftQuoteTt{{\tt\LeftQuoteText}} +\def\LessThanSign{<} +\def\LessThanSignTt{{\tt\LessThanSign}} +\def\MinusSignText{-} +\def\MinusSignTt{{\tt\MinusSignText}} +\def\OpenQuestionText{<} +\def\OpenQuestionTt{{\tt\OpenQuestionText}} +\def\PlusSignText{+} +\def\PlusSignTt{{\tt\PlusSignText}} +\def\PercentSignText{\%} +\def\PercentSignTt{{\tt\PercentSignText}} +{ + \catcode`\% = 12 + \gdef\PercentSignPure{%} +} +\def\PeriodText{.} +\def\PeriodTt{{\tt\PeriodText}} +\def\PoundSignText{\#} +\def\PoundSignTt{{\tt\PoundSignText}} +\def\QuestionMarkText{?} +\def\QuestionMarkTt{{\tt\QuestionMarkText}} +\def\RightBraceTt{{\tt\RightBraceText}} +\def\RightBracketText{]} +\def\RightBracketTt{{\tt\RightBracketText}} +\def\RightQuoteText{'{}} +\def\RightQuoteTt{{\tt\RightQuoteText}} +\def\RightParenthesisText{)} +\def\RightParenthesisTt{{\tt\RightParenthesisText}} +\def\SpaceText{ } +\def\VisibleSpaceTt{{\tt\char"20}} +\def\TildeText{\char`\~{}} +\def\TildeTt{{\tt\TildeText}} +\def\UnderscoreText{\char`\_} +\def\UnderscoreTt{{\tt\UnderscoreText}} +\def\VerbControlSpace{\ } +\catcode`\@ = 12 +\NameDef{@InputD-verb-bas.tip}{} +\catcode`\@ = 11 +\newread\@FileExistsS +\newif\if@FileExistsAnswer +\def\FileExistsConditional #1{% + TT\fi + \openin\@FileExistsS = #1 + \ifeof\@FileExistsS + \@FileExistsAnswerfalse + \else + \closein\@FileExistsS + \@FileExistsAnswertrue + \fi + \if@FileExistsAnswer +} +\catcode`\@ = 12 +\NameDef{@InputD-fexist.tip}{} +\catcode`\@ = 11 +\newcount\@CompareFilesResult +\newread\@ReadCompareOne +\newread\@ReadCompareTwo +\def\CompareFilesConditional #1#2{% + TT\fi + \if\FileExistsConditional{#1}% + \else + \errmessage{\string\CompareFilesConditional: first file "#1" + does not exist.}% + \fi + \if\FileExistsConditional{#2}% + \else + \errmessage{\string\CompareFilesConditional: second file "#2" + does not exist.}% + \fi + \global\@CompareFilesResult = 0 + \begingroup + \MkOthers + \openin\@ReadCompareOne = #1 + \openin\@ReadCompareTwo = #2 + \@CompareFiles +} + +\def\@CompareFiles{% + \read\@ReadCompareOne to \@CompareOneString + \read\@ReadCompareTwo to \@CompareTwoString + \ifeof\@ReadCompareOne + \ifeof\@ReadCompareOne + \global\@CompareFilesResult = 1 + \else + \global\@CompareFilesResult = 2 + \fi + \else + \ifeof\@ReadCompareOne + \global\@CompareFilesResult = 2 + \else + \ifx\@CompareOneString\@CompareTwoString + \else + \global\@CompareFilesResult = 2 + \fi + \fi + \fi + \RecursionMacroEnd + {\ifnum \@CompareFilesResult = 0\relax}% + {\@CompareFiles}{\@EndCompareFiles}% +} +\def\@EndCompareFiles{% + \endgroup + \closein\@ReadCompareOne + \closein\@ReadCompareTwo + \ifnum\@CompareFilesResult = 1 +} +\catcode`\@ = 12 +\NameDef{@InputD-comfiles.tip}{} +\catcode`\@ = 11 +\newwrite\GenericOStream +\newif\if@GenericOStreamOpen +\@GenericOStreamOpenfalse +\def\OpenGenericOStream #1{% + \if@GenericOStreamOpen + \errmessage{\string\OpenGenericOStream: generic + output stream currently open.}% + \else + \global\@GenericOStreamOpentrue + \immediate\openout\GenericOStream = #1% + \fi +} +\def\CloseGenericOStream{% + \if@GenericOStreamOpen + \global\@GenericOStreamOpenfalse + \immediate\closeout\GenericOStream + \else + \errhelp{Stream not in use.}% + \errmessage{\string\CloseGenericOStream: + stream is NOT open for output.}% + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-genostr.tip}{} +\catcode`\@ = 11 +\newread\@StringsEqualConditionalCatInput +\def\StringsEqualConditionalCat #1#2{% + TT\fi + \edef\@StringsEqualOneConditionalCat{#1}% + \edef\@StringsEqualTwoConditionalCat{#2}% + \OpenGenericOStream{compst.tmp}% + \immediate\write\GenericOStream{% + \@StringsEqualOneConditionalCat{#1}% + }% + \immediate\write\GenericOStream{% + \@StringsEqualTwoConditionalCat{#1}% + }% + \CloseGenericOStream + \openin\@StringsEqualConditionalCatInput = compst.tmp + \read\@StringsEqualConditionalCatInput to + \@StringsEqualOneConditionalCatR + \read\@StringsEqualConditionalCatInput to + \@StringsEqualTwoConditionalCatR + \closein\@StringsEqualConditionalCatInput + \ifx + \@StringsEqualOneConditionalCatR + \@StringsEqualTwoConditionalCatR +} +\catcode`\@ = 12 +\NameDef{@InputD-compstca.tip}{} +\catcode`\@ = 11 +\newif\if@LetterConditional +\newcount\@LetterConditionalCounter +\def\@LetterConditional #1#2;{% + \@LetterConditionalCounter = `#1\relax +} +\def\LetterConditional #1{% + TT\fi + \@LetterConditionalfalse + \edef\@LetterConditionalString{#1}% + \expandafter\@LetterConditional\@LetterConditionalString ; + \if\InRangeConditional{\@LetterConditionalCounter}{`\a}{`\z}% + \@LetterConditionaltrue + \fi + \if\InRangeConditional{\@LetterConditionalCounter}{`\A}{`\Z}% + \@LetterConditionaltrue + \fi + \if@LetterConditional +} +\catcode`\@ = 12 +\NameDef{@InputD-condltr.tip}{} +\catcode`\@ = 11 +\def\@TestTrail #1 #2\@Del{% + \def\@RemTspTemp{#1}% +} +\def\RemTsp #1#2{% + \edef\@RemTspTempOne{#2#2 }% + \expandafter\@TestTrail\@RemTspTempOne\@Del + \if\StringsEqualConditional{#2#2}{\@RemTspTemp}% + \def#1{#2}% + \else + \edef\@RemTspTempA{\noexpand\edef\noexpand#1{\@RemTspTemp}}% + \@RemTspTempA + \fi +} +\def\@TestLead #1 #2\@Del{\def\@RemLspOne{#1}} +\def\RemLsp #1#2{% + \edef\@TempRemLsp{#2#2\space}% + \expandafter\@TestLead\@TempRemLsp\@Del + \if\EmptyStringConditional{\@RemLspOne}% + \expandafter\@RemLspThree #2\@Del{#1}% + \else + \def#1{#2}% + \fi +} +\edef\@RemLspTwo{% + \def\noexpand\@RemLspThree\space ##1\noexpand\@Del##2{% + \def##2{##1}% + }% +} +\@RemLspTwo +\catcode`\@ = 12 +\NameDef{@InputD-remtlsp.tip}{} +\newcount\StringLengthResult +\catcode`\@ = 11 +\newbox\@StringLengthBoxA +\newbox\@StringLengthBoxB +\def\StringLength #1{% + \setbox\@StringLengthBoxA = \hbox{\tt #1}% + \setbox\@StringLengthBoxB = \hbox{\tt A}% + \StringLengthResult = \wd\@StringLengthBoxA + \divide\StringLengthResult by \wd\@StringLengthBoxB +} +\catcode`\@ = 12 +\NameDef{@InputD-strleng.tip}{} +\catcode`\@ = 11 +\def\ConvertArgsToListAndAppend #1#2{% + \def\@Co{#1}% + \@ItemRec #2,\@Delimiter +} +\def\@ItemRec #1,{% + \RemLsp{\@ItemTemp}{#1}% + \expandafter\RightAppendElement\@Co{\@ItemTemp}% + \futurelet\@ItemRecTok\@ItemRecOne +} +\def\@ItemRecOne{% + \RecursionMacroEnd{\ifx\@ItemRecTok\@Delimiter}% + {\@ItemRecEnd}{\@ItemRec}% +} +\def\@ItemRecEnd\@Delimiter{} +\catcode`\@ = 12 +\NameDef{@InputD-conval.tip}{} +\catcode`\@ = 11 +\def\arabic #1{\number#1} +\def\roman #1{% + \romannumeral #1% +} +\def\Roman #1{% + \ifcase #1\or + I\or II\or III\or IV\or V\or + VI\or VII\or VIII\or IX\or X\or + XI\or XII\or XIII\or XIV\or XV\or + XVI\or XVII\or XVIII\or XIX\or XX\or + XXI\or XXII\or XXIII\or XXIV\or XV% + \else + \errmessage{\string\Roman: argument \number#1 out + of range, larger than 25.}% + \fi +} +\def\alph #1{% + \ifcase #1% + \or a\or b\or c\or d\or e\or f\or g\or h\or i% + \else + \@Morealph{#1}% + \fi +} +\def\@Morealph #1{% + \ifcase #1% + \or \or \or \or \or \or \or \or \or + \or j\or k\or l\or m\or n\or o\or p\or q\or r% + \or s\or t\or u\or v\or w\or x\or y\or z% + \else + \errmessage{\string\@Morealph: argument too large.}% + \fi +} +\def\Alph #1{% + \ifcase #1% + \or A\or B\or C\or D\or E\or F\or G\or H\or I% + \else + \@MoreAlph{#1}% + \fi +} +\def\@MoreAlph #1{% + \ifcase #1% + \or \or \or \or \or \or \or \or \or + \or J\or K\or L\or M\or N\or O\or P\or Q\or R% + \or S\or T\or U \or V\or W\or X\or Y\or Z% + \else + \errmessage{\string\@MoreAlph: argument too large.}% + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-printco.tip}{} +\catcode`\@ = 11 +\def\NewCounter #1#2#3#4{% + \wlog{\string\NewCounter: allocating new counter "#1."}% + \if\NameDefinedConditional{@C-#1}% + \errmessage{\string\NewCounter: counter "#1" was + allocated previously.}% + \fi + \expandafter\newcountOF\csname @C-#1\endcsname + \ReassignCounter{#1}{#2}{#3}{#4}% + \NameDef{@ResetC-#1}{}% +} +\def\ReassignCounter #1#2#3#4{% + \if\NameDefinedConditional{@C-#1}% + \else + \errmessage{\string\ReassignCounter: counter "#1" + not defined before.}% + \fi + \NameDef{@TheC-#1}{% + \expandafter\expandafter\expandafter#2% + \expandafter{\csname @C-#1\endcsname}% + }% + \NameDef{@TheArabicC-#1}{% + \expandafter\the\csname @C-#1\endcsname + }% + \NameDef{@PriC-#1}{#3}% + \NameDef{@RefC-#1}{#4}% +} +\def\TheCounter #1{% + \NameUse{@TheC-#1}% +} +\def\TheArabicCounter #1{% + \NameUse{@TheArabicC-#1}% +} +\def\PrintCounter #1{% + \NameUse{@PriC-#1}% +} +\def\RefCounter #1{% + \NameUse{@RefC-#1}% +} +\let\RefCounterTwo = \RefCounter +\def\CounterToRegister #1#2{% + #1 = \csname @C-#2\endcsname\relax +} +\def\AddCounterToResetList #1#2{% + {% + \def\@ResetCounter{\noexpand\@ResetCounter}% + \expandafter\xdef\csname @ResetC-#2\endcsname{% + \csname @ResetC-#2\endcsname\@ResetCounter{#1}% + }% + }% +} +\def\StepCounter #1{% + \global\expandafter\advance\csname @C-#1\endcsname by 1 + \NameUse{@ResetC-#1}% +} +\def\SetCounter #1#2{% + \global\expandafter\csname @C-#1\endcsname = #2\relax +} +\def\AssignCounterToReg #1#2{% + #2 = \expandafter\csname @C-#1\endcsname + \relax +} +\def\@ResetCounter #1{% + \global\csname @C-#1\endcsname = 0 +} +\catcode`\@ = 12 +\NameDef{@InputD-counters.tip}{} +\newcount\ReturnNumberOfLinesInFile +\catcode`\@ = 11 +\newcount\@CharCodeNumberOfLines +{ + \catcode`\^^M = \active % + \gdef\@SetUpLineCounting{% + \gdef + {\global\advance\ReturnNumberOfLinesInFile by 1 }% + }% +} +\def\NumberOfLinesInFile #1{% + \begingroup + \global\ReturnNumberOfLinesInFile = 0 + \DoLoop{\@CharCodeNumberOfLines}{0}{1}{127}% + {\catcode\@CharCodeNumberOfLines = 9 } + \@SetUpLineCounting + \catcode`\^^M = \active + \input #1 + \endgroup + \ifnum\ReturnNumberOfLinesInFile = 1 + \if\CompareFilesConditional{#1}{nul}% + \ReturnNumberOfLinesInFile = 0 + \fi + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-countl.tip}{} +\def\CenterRightLines #1#2{ + \setbox 0 = \hbox{#1} + \dimen0 = \hsize + \advance\dimen0 by -\wd0 + \divide\dimen0 by 2 + \rightline{#1\hskip\dimen0} + \rightline{#2\hskip\dimen0} +} +\NameDef{@InputD-crline.tip}{} +\catcode`\@ = 11 +\newcount\@CreateArrayCount +\def\CCreateArray #1#2#3{% + \NameEdef{#1-low}{\number#2}% + \NameEdef{#1-high}{#3}% + \ifnum #3<#2 + \errmessage{\string\CCreateArray: low array boundary + \number#2 is larger than upper array boundary + \number#3}% + \fi + \DoLoop{\@CreateArrayCount}{#2}{1}{#3}{% + \NameDef{#1-\the\@CreateArrayCount}{}% + } +} +\newcount\@ConvertStringIntoArrayLength +\newcount\@ConvertStringIntoArrayCount +\def\ConvertStringIntoArray #1#2{% + \def\@ConvertArrayName{#1}% + \edef\@ConvertArrayString{#2}% + \StringLength{\@ConvertArrayString}% + \@ConvertStringIntoArrayLength = \StringLengthResult + \advance\@ConvertStringIntoArrayLength by -1 + \CCreateArray{\@ConvertArrayName}% + {0}{\the\@ConvertStringIntoArrayLength}% + \@ConvertStringIntoArrayCount = 0 + \expandafter\@ConvertStringIntoArray + \@ConvertArrayString\@ConvertEnd +} +\def\@ConvertStringIntoArray #1#2\@ConvertEnd{% + \CLoadArrayElementEdef{\@ConvertArrayName}% + {\the\@ConvertStringIntoArrayCount}{#1}% + \if\EmptyStringConditional{#2}% + \def\@ConvertStringIntoArrayNext{}% + \else + \advance\@ConvertStringIntoArrayCount by 1\relax + \def\@ConvertStringIntoArrayNext{% + \@ConvertStringIntoArray #2\@ConvertEnd% + }% + \fi + \@ConvertStringIntoArrayNext +} +\def\CCheckIndex #1#2{% + \expandafter\ifx\csname #1-low\endcsname\relax + \errmessage{\string\CCheckIndex: no array #1.}% + \fi + \ifnum #2<\NameUse{#1-low}% + \errmessage{Index #2 for array #1 too small.}% + \fi + \ifnum #2>\NameUse{#1-high}% + \errmessage{Index #2 for array #1 too large.}% + \fi +} +\def\CArrayAccess #1#2#3{% + \CCheckIndex{#1}{#2}% + \edef#3{\NameUse{#1-#2}}% +} +\newcount\@CArrayAccessIntervalCount +\def\CArrayAccessInterval #1#2#3#4{% + \CCheckIndex{#1}{#2}% + \CCheckIndex{#1}{#3}% + \ifnum #2>#3\relax + \errmessage{\string\CArrayAccessInterval: low index + (\PoundSignText 2) > high index + (PoundSignText 3).}% + \fi + \def#4{}% + \DoLoop + {\@CArrayAccessIntervalCount}{#2}{1}{#3}{% + \CArrayAccess{#1}{\the\@CArrayAccessIntervalCount}% + {\@CArrayAccessInterval}% + \edef#4{#4\@CArrayAccessInterval}% + }% +} +\def\CLoadArrayElement #1#2#3{% + \CCheckIndex{#1}{#2}% + \NameDef{#1-#2}{#3}% +} +\def\CLoadArrayElementEdef #1#2#3{% + \CCheckIndex{#1}{#2}% + \NameEdef{#1-#2}{#3}% +} +\newcount\@CShowArrayCount +\def\CShowArray #1{% + \DoLoop + {\@CShowArrayCount}% + {\NameUse{#1-low}}% + {1}% + {\NameUse{#1-high}}% + {\wlog{Index \the\@CShowArrayCount: + \NameUse{#1-\the\@CShowArrayCount}}}% +} +\catcode`\@ = 12 +\NameDef{@InputD-csar.tip}{} +\newcount\BackslashCharCode +\BackslashCharCode = `\\ +\edef\mac #1{% + {% + \noexpand\tt + \char\the\BackslashCharCode\space + #1% + }% +} +\NameDef{@InputD-cssprint.tip}{} +\def\CSToString #1#2{% + {% + \escapechar = -1 + \xdef#1{\string #2}% + }% +} +\NameDef{@InputD-cstostr.tip}{} +\catcode`\@ = 11 +\newread\@CatIn +\def\CSToStringCat #1#2{% + {% + \escapechar = -1 + \OpenGenericOStream{cstostrc.tmp}% + \immediate\write\GenericOStream{\string#2\%}% + \CloseGenericOStream + \openin\@CatIn = cstostrc.tmp + \global\read\@CatIn to #1% + \closein\@CatIn + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-cstostrc.tip}{} +\catcode`\@ = 11 +\newif\if@ControlSequenceConditional +\def\ControlSequenceConditional #1{% + TT\fi + {% + \escapechar = -1 + \xdef\@ControlSequenceConditionalOne{\string#1}% + \escapechar = `:\relax + \xdef\@ControlSequenceConditionalTwo{\string#1}% + }% + \ifx\@ControlSequenceConditionalOne + \@ControlSequenceConditionalTwo + \@ControlSequenceConditionalfalse + \else + \@ControlSequenceConditionaltrue + \fi + \if@ControlSequenceConditional +} +\catcode`\@ = 12 +\NameDef{@InputD-ctestcs.tip}{} +\catcode`\@ = 11 +\long\def\DoLongFutureLet #1#2#3#4{% + \def\@FutureLetDecide{% + #1#2\@FutureLetToken + \def\@FutureLetNext{#3}% + \else + \def\@FutureLetNext{#4}% + \fi + \@FutureLetNext + }% + \futurelet\@FutureLetToken\@FutureLetDecide +} +\def\DoFutureLet #1#2#3#4{\DoLongFutureLet{#1}{#2}{#3}{#4}} +\catcode`\@ = 12 +\NameDef{@InputD-futlet.tip}{} +\catcode`\@ = 11 +\def\DblArg #1{% + \def\@DblArgTemp{#1}% + \DoFutureLet{\ifx}{[}{\@DblArgTemp}{\@DblArgB}% +} +\def\@DblArgB #1{\@DblArgTemp[#1]{#1}} +\catcode`\@ = 12 +\NameDef{@InputD-dblarg.tip}{} +\catcode`\@ = 11 +\def\GobbleDoMore #1#2{% + \def\@GobbleDoMore ##1#1{}% + \expandafter#2\@GobbleDoMore +} +\catcode`\@ = 12 +\NameDef{@InputD-gobblemo.tip}{} +\catcode`\@ = 11 +\def\DefaultArg #1#2#3{% + \def\@DefaultArgMacro{#1}% + \edef\@EmptyOtherArg{#2}% + \edef\@DefaultArgDefault{#3}% + \@DefaultArg #2\@DefaultArgEnd +} +\def\@DefaultArg{% + \futurelet\@DefaultArgSymbol\@DefaultArgOne +} +\def\@DefaultArgOne{% + \ifx\@DefaultArgSymbol\@DefaultArgEnd + \expandafter\edef\@DefaultArgMacro{\@DefaultArgDefault}% + \else + \expandafter\edef\@DefaultArgMacro{\@EmptyOtherArg}% + \fi + \GobbleDoMore{\@DefaultArgEnd}{\relax}% +} +\catcode`\@ = 12 +\NameDef{@InputD-defauarg.tip}{} +\def\DicEntry #1{% + \par + \hangafter = 1 + \hangindent = 5pt + \noindent + {\bf #1}% + \mark{#1}% + \hskip 1em plus .2em minus .2em + \ignorespaces +} +\NameDef{@InputD-dicentry.tip}{} +\catcode`\@ = 11 +\newif\if@PrefixResult +\newcount\@LengthPrefixString +\newcount\@LengthMainString +\def\PrefixConditional #1#2{% + TT\fi + \StringLength{#1}% + \@LengthMainString = \StringLengthResult + \StringLength{#2}% + \@LengthPrefixString = \StringLengthResult + \ifnum\@LengthMainString < \@LengthPrefixString + \@PrefixResultfalse + \else + \@PrefixConditionalTwo{#1}{#2}% + \fi + \if@PrefixResult +} +\def\@PrefixConditionalTwo #1#2{% + \edef\@PrefixBoth{#1#2}% + \edef\@PrefixTemp{% + \def\noexpand\@TestPrefix ####1#2####2\noexpand\@Del{% + \noexpand\if\noexpand\EmptyStringConditional{####1}% + }% + }% + \ShowX\@PrefixTemp + \@PrefixTemp + \ShowX{\@TestPrefix}% + \expandafter\@TestPrefix\@PrefixBoth\@Del + \@PrefixResulttrue + \else + \@PrefixResultfalse + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-isprefix.tip}{} +\catcode`\@ = 11 +\def\DropPrefix #1#2#3{% + \if\PrefixConditional{#1}{#2}% + \edef\@PrefixConditionalTemp{% + \def\noexpand\@PrefixConditionalTempTwo #2####1% + \noexpand\@Del{% + \def\noexpand #3{####1}}% + }% + \@PrefixConditionalTemp + \ShowX{\@PrefixConditionalTemp}% + \expandafter\@PrefixConditionalTempTwo #1\@Del + \else + \wlog{\string\DropPrefix: "#2" is NOT a prefix of "#1"}% + \edef#3{#1}% + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-droppre.tip}{} +{ + \catcode`\p = 12 + \catcode`\t = 12 + \NameGdef{DropPoints}#1pt{\NameGdef{DropPointsResult}{#1}} +} +\NameDef{@InputD-droppt.tip}{} +\def\DumpOneReg #1{% + \wlog{Parameter "\string#1", value = \the#1}% +} +\def\DumpAllRegs{% + \wlog{\string\DumpAllRegs: Counter parameters first.}% + \DumpOneReg{\time}% + \DumpOneReg{\day}% + \DumpOneReg{\month}% + \DumpOneReg{\year}% + \DumpOneReg{\pretolerance}% + \DumpOneReg{\tolerance}% + \DumpOneReg{\doublehyphendemerits}% + \DumpOneReg{\finalhyphendemerits}% + \DumpOneReg{\adjdemerits}% + \DumpOneReg{\linepenalty}% + \DumpOneReg{\looseness}% + \DumpOneReg{\linepenalty}% + \DumpOneReg{\hyphenpenalty}% + \DumpOneReg{\exhyphenpenalty}% + \DumpOneReg{\binoppenalty}% + \DumpOneReg{\relpenalty}% + \DumpOneReg{\clubpenalty}% + \DumpOneReg{\widowpenalty}% + \DumpOneReg{\displaywidowpenalty}% + \DumpOneReg{\brokenpenalty}% + \DumpOneReg{\predisplaypenalty}% + \DumpOneReg{\postdisplaypenalty}% + \DumpOneReg{\interlinepenalty}% + \DumpOneReg{\floatingpenalty}% + \DumpOneReg{\outputpenalty}% + \DumpOneReg{\pausing}% + \DumpOneReg{\tracingonline}% + \DumpOneReg{\tracinglostchars}% + \DumpOneReg{\tracingmacros}% + \DumpOneReg{\tracingstats}% + \DumpOneReg{\tracingparagraphs}% + \DumpOneReg{\tracingpages}% + \DumpOneReg{\tracingoutput}% + \DumpOneReg{\tracingcommands}% + \DumpOneReg{\tracingrestores}% + \DumpOneReg{\mag}% + \DumpOneReg{\uchyph}% + \DumpOneReg{\lefthyphenmin}% + \DumpOneReg{\righthyphenmin}% + \DumpOneReg{\defaultskewchar}% + \DumpOneReg{\escapechar}% + \DumpOneReg{\endlinechar}% + \DumpOneReg{\newlinechar}% + \DumpOneReg{\fam}% + \DumpOneReg{\hbadness}% + \DumpOneReg{\vbadness}% + \DumpOneReg{\badness}% + \DumpOneReg{\showboxdepth}% + \DumpOneReg{\showboxbreadth}% + \DumpOneReg{\deadcycles}% + \DumpOneReg{\maxdeadcycles}% + \DumpOneReg{\holdinginserts}% + \DumpOneReg{\hangafter}% + \DumpOneReg{\globaldefs}% + \DumpOneReg{\delimiterfactor}% + \DumpOneReg{\inputlineno}% + \DumpOneReg{\language}% + \wlog{\string\DumpAllRegs: Dimension parameters next.}% + \DumpOneReg{\hfuzz}% + \DumpOneReg{\vfuzz}% + \DumpOneReg{\overfullrule}% + \DumpOneReg{\lineskiplimit}% + \DumpOneReg{\maxdepth}% + \DumpOneReg{\splitmaxdepth}% + \DumpOneReg{\boxmaxdepth}% + \DumpOneReg{\delimitershortfall}% + \DumpOneReg{\nulldelimiterspace}% + \DumpOneReg{\scriptspace}% + \DumpOneReg{\mathsurround}% + \DumpOneReg{\predisplaysize}% + \DumpOneReg{\displaywidth}% + \DumpOneReg{\displayindent}% + \DumpOneReg{\parindent}% + \DumpOneReg{\hangindent}% + \DumpOneReg{\hoffset}% + \DumpOneReg{\voffset}% + \wlog{\string\DumpAllRegs: Glue parameters last.}% + \DumpOneReg{\baselineskip}% + \DumpOneReg{\lineskip}% + \DumpOneReg{\topskip}% + \DumpOneReg{\splittopskip}% + \DumpOneReg{\parskip}% + \DumpOneReg{\leftskip}% + \DumpOneReg{\rightskip}% + \DumpOneReg{\emergencystretch}% + \DumpOneReg{\abovedisplayskip}% + \DumpOneReg{\abovedisplayshortskip}% + \DumpOneReg{\belowdisplayskip}% + \DumpOneReg{\belowdisplayshortskip}% + \wlog{\string\DumpAllRegs: done.}% +}% +\NameDef{@InputD-dumppars.tip}{} +\catcode`\@ = 11 +\def\GenAeol #1{% + \edef #1{% + \bgroup + \noexpand\MakeEolActive + \noexpand\@GenAeolOne{% + \csname\string #1-2\endcsname}% + }% + \NameDef{\string #1-2}##1% +} +{ + \MakeEolActive + \gdef\@GenAeolOne #1#2 + {% + \egroup% + #1{#2}% + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-genaeol.tip}{} +\catcode`\@ = 11 +\newif\if@VerbFirstLineSuppress +\def\OpenVerbWrFile #1#2#3{% + \immediate\openout #3 = #1.#2 + \wlog{\string\OpenVerbWrFile: opened "#1.#2" for + literal writing.}% +} +\def\CloseVerbWrFile #1{% + \immediate\closeout #1 + \wlog{\string\CloseVerbWrFile: closed file for literal writing.}% +} +\def\BeginVerbWr #1#2{% + \begingroup + \def\@VerbWrStream{#1}% + \CSToStringCat{\@EndVerbWrSt}{#2}% + \wlog{\string\BeginVerbWr: begin}% + \MkOthers + \MakeEolActive + \@VerbWrTabHandling + \@VerbFirstLineSuppresstrue + \expandafter\expandafter\expandafter + \@BeginVerbWrY\expandafter{\@EndVerbWrSt}% +} +{ + \catcode `| = 0 + \catcode`\\ =12 + |gdef|@BeginVerbWrY #1{% + |def|@BeginVerbWrX ##1\#1{% + |@BeginVerbWr ##1% + |@VerbWrDoneToken + |@VerbWrDone + } + |@BeginVerbWrX + } +} +\def\@VerbWrTabHandling{% + \MakeTabActive + \@VerbWrTabHandlingOne +} +{\MakeTabActive +\gdef\@VerbWrTabHandlingOne{\def^^I{\@TabAsLiteral}}% +} +\def\@BeginVerbWr{% + \DoFutureLet{\ifx}% + {\@VerbWrDoneToken}% + {\GobbleDoMore + {\@VerbWrDoneToken}{\relax}}% + {\@BeginVerbWrTwo}% +} +\GenAeol{\@BeginVerbWrTwo}{% + \if@VerbFirstLineSuppress + \@VerbFirstLineSuppressfalse + \else + \immediate\write\@VerbWrStream{#1}% + \fi + \@BeginVerbWr +} +\def\@VerbWrDone{% + \endgroup + \wlog{\string\@VerbWrDone: done}% +} +\catcode`\@ = 12 +\NameDef{@InputD-verbwr.tip}{} +\catcode`\@ = 11 +\def\@DefEndNoteFileExt{eno} +\newwrite\@EndNoteStream +\newcount\@EndNoteCounter +\def\StartEndNoteWriting #1#2#3#4{% + \@EndNoteCounter = 0 + \DefaultArg{\@EndNoteBaseName}{#1}{\jobname}% + \DefaultArg{\@EndNoteFileExt}{#2}{\@DefEndNoteFileExt}% + \edef\@EndNoteFileName{\@EndNoteBaseName.\@EndNoteFileExt}% + \wlog{\string\StartEndNoteWriting: output will be written to file + "\@EndNoteFileName".} + \edef\@EndNoteBefore{\string#3}% + \edef\@EndNoteAfter{\string#4}% + \OpenVerbWrFile{\@EndNoteBaseName}{\@EndNoteFileExt}% + {\@EndNoteStream}% +} +\def\BeginEndNote{% + \advance\@EndNoteCounter by 1 + \ifnum\@EndNoteCounter > 1 + \immediate\write\@EndNoteStream{\@EndNoteAfter}% + \fi + \immediate\write\@EndNoteStream{\@EndNoteBefore}% + \BeginVerbWr{\@EndNoteStream}{\EndEndNote} +} +\def\EndEndNoteWriting{% + \immediate\write\@EndNoteStream{\@EndNoteAfter}% + \CloseVerbWrFile{\@EndNoteStream}% +} +\def\ReadInEndNotes{% + \input \@EndNoteFileName +} +\catcode`\@ = 12 +\NameDef{@InputD-endn-mac.tip}{} +\catcode`\@ = 11 +\newdimen \Delta@XY +\newskip\@ParListBeforeAfter +\newskip\@ParListBetweenLabels +\newskip\@ParListAfterLabel +\newcount\@LabeledParNesting \@LabeledParNesting = 0 +\newcount\@LabelCounter +\def\BeginAList #1#2#3#4#5#6#7{% + \par + \bgroup + \advance\leftskip by #1 + \advance\rightskip by #2 + \advance \@LabeledParNesting by 1 + \@LabelCounter = 0 + \Delta@XY = #3 + \ifdim\Delta@XY < 0pt + \errmessage{\string\BeginAList: negative Delta{xy}, + made positive.}% + \fi + \@ParListBeforeAfter = #4 + \@ParListBetweenLabels = #5 + \@ParListAfterLabel = #6 + \SetParIndent{#7} +} +\def\EndAList{% + \par + \vskip\@ParListBeforeAfter + \egroup +} +\def\@GenLabel #1{% + \par + \advance\@LabelCounter by 1 + \ifnum\@LabelCounter = 1 + \parskip = \@ParListBeforeAfter + \else + \parskip = \@ParListBetweenLabels + \fi + \noindent + \hbox to 0pt{#1}% + \parskip = \@ParListAfterLabel + \ignorespaces +} +\def\ItemLL #1{% + \@GenLabel{% + \hskip -\Delta@XY + #1% + \hfil + }% +} +\def\ItemLR #1{% + \@GenLabel{% + \hss + #1% + \hskip\Delta@XY + }% +} +\def\ItemRL #1{% + \@GenLabel{% + \hskip\Delta@XY + #1% + \hss + }% +} +\def\ItemRR #1{% + \@GenLabel{% + \hfil + #1% + \hskip -\Delta@XY + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-parv-1.tip}{} +\catcode`\@ = 11 +\newcount\@EnumerateListDepth +\@EnumerateListDepth = 0 +\NewCounter{Enumerate1}{\arabic}% + {\TheCounter{Enumerate1}.}{\TheCounter{Enumerate1}} +\NewCounter{Enumerate2}{\alph}% + {(\TheCounter{Enumerate2})}% + {\TheCounter{Enumerate1}.\TheCounter{Enumerate2}} +\NewCounter{Enumerate3}{\roman}% + {\TheCounter{Enumerate3}.}% + {\RefCounter{Enumerate2}.\TheCounter{Enumerate3}} +\NewCounter{Enumerate4}{\Alph}% + {\TheCounter{Enumerate4}.}% + {\RefCounter{Enumerate3}.\TheCounter{Enumerate4}} +\def\BeginEnumerate{% + \begingroup + \global\advance\@EnumerateListDepth by 1 + \ifcase\@EnumerateListDepth + \errmessage{\string\BeginEnumerate: no level + zero.}% + \or + \SetCounter{Enumerate1}{0}% + \@BeginEnumerateLevelOne + \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate1}}{1}}% + \def\Item{% + \StepCounter{Enumerate1}% + \ItemLR{\PrintCounter{Enumerate1}}% + }% + \or + \SetCounter{Enumerate2}{0}% + \@BeginEnumerateLevelTwo + \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate2}}{1}}% + \def\Item{% + \StepCounter{Enumerate2}% + \ItemLR{\PrintCounter{Enumerate2}}% + }% + \or + \SetCounter{Enumerate3}{0}% + \@BeginEnumerateLevelThree + \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate3}}{1}}% + \def\Item{% + \StepCounter{Enumerate3}% + \ItemLR{\PrintCounter{Enumerate3}}% + }% + \or + \SetCounter{Enumerate4}{0}% + \@BeginEnumerateLevelFour + \def\Label ##1{\@Label{##1}{\RefCounter{Enumerate4}}{1}}% + \def\Item{% + \StepCounter{Enumerate4}% + \ItemLR{\PrintCounter{Enumerate4}}% + }% + \else + \errmessage{\string\BeginEnumerate: maximum + nesting level of 4 exceeded.}% + \fi +} +\def\EndEnumerate{% + \EndAList + \endgroup + \global\advance\@EnumerateListDepth by -1 +} +\catcode`\@ = 12 +\NameDef{@InputD-enumlist.tip}{} +\def\ErrMessage #1{% + \errmessage{#1}% + \end +} +\NameDef{@InputD-errmess.tip}{} +\def\PrintEven #1{% + \ifodd #1\relax + \else + Number #1 is even. + \fi +} +\NameDef{@InputD-evenprin.tip}{} +\everypar = {% + \EvalEveryPars + \ClearEveryPars +} +\def\EvalEveryParsCE{% + \EveryParC + \EveryParD + \EveryParE +} +\def\EvalEveryPars{% + \EveryParA + \EveryParB + \EvalEveryParsCE + \EveryParZ +} +\def\ClearEveryPars{% + \gdef\EveryParA{}% + \gdef\EveryParB{}% + \gdef\EveryParC{}% + \gdef\EveryParD{}% + \gdef\EveryParE{}% +} +\def\ClearEveryParsAll{% + \ClearEveryPars + \gdef\EveryParZ{}% +} +\ClearEveryParsAll +\NameDef{@InputD-everypar.tip}{} +\def\FigureBox #1#2{% + \BoxingA{% + \EmptyBox{#1}{0pt}{#2}% + }% +} +\NameDef{@InputD-figbox.tip}{} +\def\OverallSize #1#2{% + #1 = \ht#2\relax + \advance#1 by \dp#2\relax +} +\NameDef{@InputD-sumhd.tip}{} +\def\LogPageTG #1{% + \wlog{\string\LogPageTG [#1]:}% + \wlog{\string\pagetotal: \the\pagetotal, + \string\pagegoal: \the\pagegoal}% +} +\NameDef{@InputD-lpagetg.tip}{} +\newdimen\FreePageSpace +\def\ComputeFreeSpaceOnPage{% + \par + \LogPageTG{\string\ComputeFreeSpaceOnPage}% + \ifdim\pagetotal = 0pt + \FreePageSpace = \vsize + \else + \FreePageSpace = \pagegoal + \advance\FreePageSpace by -\pagetotal + \fi +} +\def\FreeSpaceConditional{% + 0pt = 0pt \fi + \ComputeFreeSpaceOnPage + \ifdim\FreePageSpace +} +\NameDef{@InputD-freespac.tip}{} +\def\FigureInPar #1#2#3#4#5{% + \par + \message{\string\FigureInPar: start}% + {% + \setbox 0 = \vbox{#1} + \OverallSize{\dimen0}{0}% + \advance\dimen0 by #2 + \advance\dimen0 by #3 + \advance\dimen0 by #4 + \advance\dimen0 by #4 + \advance\dimen0 by \parskip + \message{\string\FigureInPar: + available space: \the\FreePageSpace}% + \setbox 0 = \HboxR{\EmptyBox{#2}{0pt}{\hsize}}% + \ifdim\FreeSpaceConditional < \dimen0 + \message{\string\FigureInPar: + insufficient space: make it a \string\topinsert.}% + #1\unskip + \space + #5% + \par + \topinsert + \box0 + \endinsert + \else + \message{\string\FigureInPar: + Sufficient space: put it here.}% + #1\unskip + \space + \vadjust{% + \vskip #4 + \box0 + \vskip #4 + }% + #5\par + \fi + } +} +\NameDef{@InputD-figinpar.tip}{} +\catcode`\@ = 11 +\def\FirstLineSpecial #1{% + \par + \begingroup + #1 + \def\@FLDTemp{}% + \dimen0 = \parindent + \setbox0 = \hbox{ }% + \advance\dimen0 by -\wd0 + \@FLDOne +} +\def\@FLDOne #1 {% + \wlog{\string\@FLDOne: called with "#1".}% + \xdef\@FLDTempa{#1\ }% + \@FLDTwo +} +\def\@FLDTwo{% + \wlog{\string\@FLDTwo: called}% + \setbox0 = \hbox{\@FLDTempa}% + \advance\dimen0 by \wd0 + \ifdim\dimen0 < \hsize + \edef\@FLDTemp{\@FLDTemp\@FLDTempa}% + \let\@FLDNext = \@FLDOne + \else + \leavevmode + \@FLDTemp + \unskip + \break + \aftergroup\@FLDTempa + \let\@FLDNext = \endgroup + \fi + \@FLDNext +} +\catcode`\@ = 12 +\NameDef{@InputD-firstldi.tip}{} +\def\ReportCharSize #1#2{% + {% + \count0 = #2\relax + \setbox 0 = \hbox{#1\char\count0}% + \wlog{\string\ReportCharSize: Font \string#1, + character code \the\count0}% + \wlog{ht / dp / wd: \the\ht0 \space / \the\dp0 + \space / \the\wd0}% + }% +} +\NameDef{@InputD-fo-char.tip}{} +\def\CharactersPerPica #1{% + \setbox0 = \hbox{% + #1\relax + This paragraph has 423 characters. We know that + because we counted it. It is very simple to count, because + the Emacs editor we are using has a function ``advance + by one character.'' And with the prefix command (that's + Emacs terminology) you can execute ``advance by + one character'' 423~times. Now, let's hope that this text + is representative of ordinary text so that our average + number of characters per pica is correct. + }% + {% + \count1 = \wd0 + \divide\count1 by 100 + \count0 = 423 + \multiply\count0 by 65536 + \multiply\count0 by 12 + \divide\count0 by \count1 + \count2 = \count0 + \divide\count2 by 100 + \IModN{\count0}{100}{\count3}% + \the\count2.\LeadingZ{\count3}% + }% +} +\NameDef{@InputD-font-cpp.tip}{} +\def\FormLine #1#2#3{% + {% + \setbox0 = \hbox{#2}% + \dimen0 = #1% + \advance\dimen0 by -\wd0 + \hbox{% + \box0 + \hbox to 0pt{% + \vrule width \dimen0 height 0.4pt depth 0pt + \hss + }% + \raise 3pt \hbox to \dimen0 {\hfil #3\hfil}% + }% + }% +} +\NameDef{@InputD-formline.tip}{} +\catcode`\@ = 11 +\def\@OctPrintFontTable#1{% + \hbox{% + \rm\'{}% + \kern-.2em + \it #1\/% + \kern.05em + }% +} +\def\@HexPrintFontTable#1{% + \hbox{\rm\H{}\tt#1}% +} +\def\@OddLineFontTable#1{% + \cr + \noalign{\nointerlineskip} + \multispan{19}\hrulefill& + \setbox0 = \hbox{% + \lower 2.3pt\hbox{% + \@HexPrintFontTable{#1x}% + }% + }% + \smash{\box0}% + \cr + \noalign{\nointerlineskip} +} +\def\@EvenLineFontTable{\cr\noalign{\hrule}} +\def\@FontTableStrut{\lower4.5pt\vbox to 14pt{}} +\def\BeginFontTable #1{% + $$ + \postdisplaypenalty = 0 + \global\count@=0 + #1 + \halign to\hsize\bgroup + \@FontTableStrut##\relax \tabskip = 0pt plus 10pt& + &\hfil##\hfil&\vrule##% + \cr + \lower6.5pt\null + &&& + \@OctPrintFontTable0&& + \@OctPrintFontTable1&& + \@OctPrintFontTable2&& + \@OctPrintFontTable3&& + \@OctPrintFontTable4&& + \@OctPrintFontTable5&& + \@OctPrintFontTable6&& + \@OctPrintFontTable7& + \@EvenLineFontTable +} +\def\EndFontTable{% + \raise 11.5pt\null + &&& + \@HexPrintFontTable 8&& + \@HexPrintFontTable 9&& + \@HexPrintFontTable A&& + \@HexPrintFontTable B&& + \@HexPrintFontTable C&& + \@HexPrintFontTable D&& + \@HexPrintFontTable E&& + \@HexPrintFontTable F& + \cr + \egroup + $$% +} +\def\:{% + \setbox0 = \hbox{% + \char\count@ + }% + \ifdim\ht0 > 7.5pt + \@RepositionFontTable + \else + \ifdim\dp0 > 2.5pt + \@RepositionFontTable + \fi + \fi + \box0 + \global\advance\count@ by 1 +} +\def\@RepositionFontTable{% + \setbox0 = \hbox{% + $ + \vcenter{% + \kern 2pt + \box0 + \kern 2pt + } + $% + }% +} +\def\NormalFontTable{% + &\@OctPrintFontTable{00x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable0 + &\@OctPrintFontTable{01x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{02x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable1 + &\@OctPrintFontTable{03x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{04x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable2 + &\@OctPrintFontTable{05x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{06x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable3 + &\@OctPrintFontTable{07x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{10x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable4 + &\@OctPrintFontTable{11x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{12x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable5 + &\@OctPrintFontTable{13x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{14x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable6 + &\@OctPrintFontTable{15x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{16x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable7 + &\@OctPrintFontTable{17x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable +} +\def\MoreFontTable{% + &\@OctPrintFontTable{20x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable8 + &\@OctPrintFontTable{21x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{22x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable9 + &\@OctPrintFontTable{23x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{24x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable A + &\@OctPrintFontTable{25x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{26x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable B + &\@OctPrintFontTable{27x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{30x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable C + &\@OctPrintFontTable{31x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{32x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable D + &\@OctPrintFontTable{33x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{34x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable E + &\@OctPrintFontTable{35x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable + &\@OctPrintFontTable{36x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&&\@OddLineFontTable F + &\@OctPrintFontTable{37x}&&\:&&\:&&\:&&\:&&\:&&\:&& + \:&&\:&\@EvenLineFontTable +} +\catcode`\@ = 12 +\NameDef{@InputD-fotable.tip}{} +\catcode`\@ = 11 +\def\ForEachToken #1#2{% + \def\@ForEachTokenMacro{#2}% + \expandafter\@ForEachToken\the#1\@ForEachTokenDel +} +\def\@ForEachToken #1{% + \if\StringsEqualConditional{\string\@ForEachTokenDel}{\string#1}% + \let\@ForEachTokenNext = \relax % Done. + \else + \@ForEachTokenMacro{#1}% % Call macro and continue. + \let\@ForEachTokenNext = \@ForEachToken + \fi + \@ForEachTokenNext +} +\catcode`\@ = 12 +\NameDef{@InputD-fotok.tip}{} +\def\frac #1#2{% + {#1 \over #2}% +} +\NameDef{@InputD-frac.tip}{} +\newdimen\CurrentFontSize +\def\DefineFontSizeGroup #1#2{% + \wlog{\string\DefineFontSizeGroup: defining group "#1" (#2 pt)}% + \NameDef{FontSize#1}{% + \def\rm{\fam = 0 \NameUse{#1rm}}% + \def\bf{\fam = \bffam \NameUse{#1bf}}% + \def\it{\fam = \itfam \NameUse{#1it}}% + \def\tt{\fam = \ttfam \NameUse{#1tt}}% + \def\sc{\NameUse{#1sc}}% + \def\sl{\fam = \slfam \NameUse{#1sl}}% + \CurrentFontSize = #2pt + \baselineskip = \LineSpaceMultFactor\CurrentFontSize + \rm + } +} +\def\LineSpaceMultFactor{1.2} +\NameDef{@InputD-fsized.tip}{} +\catcode`\@ = 11 +\def\FutureLetNoSpace #1#2{% + \def\@FutureLetTokenA{#1}% + \def\@FutureLetTokenB{#2}% + \@FutureLetOne +} +\def\@FutureLetOne{% + \DoFutureLet{\ifx}{ }% + {\@FutureLetThree}{\@FutureLetOk}% +} +\edef\@FutureLetNoSpaceTemp{% + \def\noexpand\@FutureLetThree\space{\noexpand\@FutureLetOne}% +} +\@FutureLetNoSpaceTemp +\def\@FutureLetOk{% + \expandafter\futurelet\@FutureLetTokenA\@FutureLetTokenB +} +\long\def\DoLongFutureLetNoSpace #1#2#3#4{% + \def\@FutureLetDecideNoSpace{% + #1#2\@FutureLetTokenNoSpace + \def\@FutureLetNextNoSpace{#3}% + \else + \def\@FutureLetNextNoSpace{#4}% + \fi + \@FutureLetNextNoSpace + }% + \FutureLetNoSpace{\@FutureLetTokenNoSpace}% + {\@FutureLetDecideNoSpace}% +} +\def\DoFutureLetNoSpace #1#2#3#4{% + \DoLongFutureLetNoSpace{#1}{#2}{#3}{#4}% +} +\catcode`\@ = 12 +\NameDef{@InputD-funospac.tip}{} +\def\ParLookAhead #1#2{% + \DoLongFutureLetNoSpace{\ifx}{\par}% + {#1}{#2}% +} +\NameDef{@InputD-futpar.tip}{} +\catcode`\@ = 11 +\newskip\@MaxVskipGlue +\def\MaxVskip #1{% + \par + \@MaxVskipGlue = #1\relax + \ifdim\lastskip < \@MaxVskipGlue + \ifdim\lastskip = 0pt + \else + \vskip -\lastskip + \fi + \vskip\@MaxVskipGlue + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-vsmax.tip}{} +\newdimen\NormalParIndent +\def\SetParIndent #1{% + \NormalParIndent = #1% + \parindent = #1% +} +\def\SuppressNextParIndent{% + \global\parindent = 0pt + \gdef\EveryParA{% + \global\parindent = \NormalParIndent + % \hskip-\parindent + }% +} +\def\CancelSuppressNextParIndent{% + \global\parindent = \NormalParIndent + \gdef\EveryParA{}% +} +\NameDef{@InputD-parin.tip}{} +\newtoks\EveryHeading +\EveryHeading = {} +\catcode`\@ = 11 +\newcount\@GenericHeadingCount +\newcount\@GenericHeadingIndent +\def\LineBreakHeading{% + \errmessage{% + \string\LineBreakHeading/\string\LineBreakToc: + can only be used inside a heading.}% +} +\let\LineBreakToc = \LineBreakHeading +\def\IgnoreInRunnningHead #1{% + #1% +} +\def\GenericHeading #1#2#3#4#5{% + \par + \the\EveryHeading + \@GenericHeadingCount = #1 + \@GenericHeadingIndent = #5 + \MaxVskip{#2}% + \ifdim\leftskip = 0pt + \else + \message{\string\GenericHeading: \noexpand\leftskip + is non-zero, forgotten to terminate a list?}% + \fi + \begingroup + \interlinepenalty = 10000 + \parindent = 0pt + \parskip = 0pt + \ifnum #4 = 1 + \hyphenpenalty = 10000 + \fi + \ifnum #3 = 1 + \rightskip = 0pt plus 50pt + \fi + \@GenericHeading +} +\def\@GenericHeading #1#2#3#4#5#6#7{% + #3% + \def\LineBreakHeading{\hfil\break}% + \def\LineBreakToc{ }% + \ifdim #4 > 0pt + \ifnum\@GenericHeadingIndent = 0 + \hangindent = #4 + \hangafter = 1 + \leavevmode + \hbox to #4{#5\hfil}% + \else + \leavevmode + \hbox to #4{#5\hfil}% + \fi + \else + \setbox0 = \hbox{#5\hskip -#4} + \ifnum\@GenericHeadingIndent = 0 + \hangindent = \wd0 + \hangafter = 1 + \leavevmode + \box0 + \else + \leavevmode + \box0 + \fi + \fi + #6% + \if\NameDefinedConditional{WriteToAuxSpecial}% + \def\LineBreakToc{\hfil\break}% + \def\LineBreakHeading{ }% + \WriteToAuxSpecial{toc}{\the\@GenericHeadingCount}% + {#5}{#7}{\PrintCounter{PageNo}}% + \fi + \par + \endgroup + \nobreak + \vskip #1 + \ifnum #2 = 0 + \SuppressNextParIndent + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-genhead.tip}{} +\newcount\ResultNumberOfLines +\def\GetNumberOfLines #1#2{% + {% + \setbox 0 = \vbox{% + \hsize = #2 + #1 + \par + \global\ResultNumberOfLines = \prevgraf + }% + }% +} +\NameDef{@InputD-getnuml.tip}{} +\def\GobbleOne #1{} +\def\GobbleTwo #1#2{} +\def\GobbleThree#1#2#3{} +\def\GobbleFour #1#2#3#4{} +\def\GobbleFive #1#2#3#4#5{} +\def\GobbleSix #1#2#3#4#5#6{} +\def\GobbleSeven#1#2#3#4#5#6#7{} +\def\GobbleEight#1#2#3#4#5#6#7#8{} +\def\GobbleNine #1#2#3#4#5#6#7#8#9{} +\NameDef{@InputD-gobble.tip}{} +\catcode`\@ = 11 +\newdimen\@ScaleLength +\def\SetScale #1{% + \@ScaleLength = #1 +} +\SetScale{1mm} +\newdimen\@LineThickness +\def\SetLineThickness #1{% + \@LineThickness = #1 +} +\SetLineThickness{0.3mm} +\newbox\@GraphDataBox +\def\SetGraphDataBox #1{% + \dimen0 = #1% + \setbox\@GraphDataBox = + \hbox{% + \hskip -0.5\dimen0 + \vrule height 0.5\dimen0 + depth 0.5\dimen0 + width 1.0\dimen0 + }% + \ZeroBox{\@GraphDataBox}% +} +\SetGraphDataBox{2mm} +\def\DrawDataBox (#1,#2){% + {% + \setbox0 = \hbox{% + \hskip #1\@ScaleLength + \raise #2\@ScaleLength\copy\@GraphDataBox + }% + \ZeroBoxOut{0}% + }% +} +\def\DrawHLine (#1,#2)#3{% + {% + \setbox0 = \hbox{% + \hskip #1\@ScaleLength + \raise #2\@ScaleLength + \hbox{% + \vrule height 0.5\@LineThickness + depth 0.5\@LineThickness + width #3\@ScaleLength + }% + }% + \ZeroBoxOut{0}% + }% +} +\def\DrawVLine (#1,#2)#3{% + {% + \setbox0 = \hbox{% + \hskip #1\@ScaleLength + \hskip -0.5\@LineThickness + \raise #2\@ScaleLength + \hbox{% + \vrule height #3\@ScaleLength + depth 0pt + width \@LineThickness + }% + }% + \ZeroBoxOut{0}% + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-graphmac.tip}{} +\def\Hex #1{% + {% + \count0 = #1% + \count1 = #1% + \divide\count0 by 16 + \count2 = \count0 + \multiply \count2 by -16 + \advance \count1 by \count2 + \ifnum \count0 > 0 + \Hex{\count0}% + \fi + \HexDigit{\count1}% + }% +} +\def\HexDigit #1{% + {% + \count0 = #1\relax + \ifnum \count0 < 10 + \number\count0 % or \the\count0 + \else + \advance\count0 by -10 + \advance\count0 by `A + \char\count0 + \fi + }% +} +\NameDef{@InputD-hex.tip}{} +\newif\ifEvenConditionalResult +\def\EvenConditional #1{% + TT\fi + \ifodd #1\relax + \EvenConditionalResultfalse + \else + \EvenConditionalResulttrue + \fi + \ifEvenConditionalResult +} +\NameDef{@InputD-ifeven.tip}{} +\catcode`\@ = 11 +\newif\if@Def +\def\XDefinedConditional #1{% + TT\fi + \ifx #1\@AlwaysUndefinedToken + \@Deffalse + \else + \@Deftrue + \fi + \if@Def +} +\catcode`\@ = 12 +\NameDef{@InputD-ifx-def.tip}{} +\catcode`\@ = 11 +\def\IfXConditional #1#2{% + TT\fi + \def\@IfXConditionalOne{#1}% + \def\@IfXConditionalTwo{#2}% + \ifx\@IfXConditionalOne\@IfXConditionalTwo +} +\catcode`\@ = 12 +\NameDef{@InputD-ifx-mac.tip}{} +\def\InputAt #1{% + \catcode`\@ = 11 + \input #1 + \catcode`\@ = 12 +} +\NameDef{@InputD-input-at.tip}{} +\catcode`\@ = 11 +\def\InputC #1{% + \if\FileExistsConditional{#1}% + \input #1 + \else + \message{\string\InputC: there is no file "#1".}% + \fi +} +\def\InputCWithAt #1{% + \catcode`@ = 11 + \InputC{#1}% + \catcode`@ = 12 +} +\catcode`\@ = 12 +\NameDef{@InputD-inputc.tip}{} +\catcode`\@ = 11 +\def\ReverseString #1#2{% + \def\@ReverseStringName{#1}% + \def\@ReversedString{}% + \edef\@ReverseTemp{#2}% + \ShowX\@ReverseTemp + \expandafter\@ReverseString\@ReverseTemp\@Del +} +\def\@ReverseString #1{% + \ifx #1\@Del + \expandafter\edef\@ReverseStringName{\@ReversedString}% + \let\@ReverseStringNext = \relax + \else + \edef\@ReversedString{#1\@ReversedString}% + \let\@ReverseStringNext = \@ReverseString + \def\@ReverseStringNext{\@ReverseString}% + \fi + \@ReverseStringNext +} +\catcode`\@ = 12 +\NameDef{@InputD-reverses.tip}{} +\catcode`\@ = 11 +\def\SuffixConditional #1#2{% + TT\fi + \ReverseString{\@MainSuffixString}{#1}% + \ReverseString{\@SuffixSuffixString}{#2}% + \if\PrefixConditional{\@MainSuffixString}{\@SuffixSuffixString}% +} +\catcode`\@ = 12 +\NameDef{@InputD-issuffix.tip}{} +\catcode`\@ = 11 +\newcount\@ItemListDepth +\@ItemListDepth = 0 +\def\BeginItemize{% + \begingroup + \global\advance\@ItemListDepth by 1 + \ifcase\@ItemListDepth\or + \@BeginItemizeLevelOne + \def\Item{\ItemLL{$\bullet$}}% + \or + \@BeginItemizeLevelTwo + \def\Item{\ItemLL{--}}% + \or + \@BeginItemizeLevelThree + \def\Item{\ItemLL{*}}% + \or + \@BeginItemizeLevelFour + \def\Item{\ItemLL{+}}% + \else + \errmessage{\string\BeginItemize: maximum nesting of + 4 exceeded.}% + \fi +} +\def\EndItemize{% + \EndAList + \endgroup + \global\advance\@ItemListDepth by -1 +} +\catcode`\@ = 12 +\NameDef{@InputD-itemizel.tip}{} +\def\hang{% + \hangindent = \parindent +} +\def\item{% + \par + \hang + \textindent +} +\def\itemitem{% + \par + \indent + \hangindent = 2\parindent + \textindent +} +\def\textindent #1{% + \indent + \llap{#1\enspace}% + \ignorespaces +} +\def\itemitemitem{% + \par + \indent + \indent + \hangindent = 3\parindent + \textindent +} +\NameDef{@InputD-itemplan.tip}{} +\catcode`\@ = 11 +\def\WordsToTeXList #1#2\EndWordsToTeXList{% + \def\@WordsToTeXListName{#1}% + \expandafter\def\@WordsToTeXListName{}% + \@WordsToTeXListNextName #2 \EndWordsToTeXList +} +\def\@WordsToTeXListNextName #1 {% + \if\EmptyStringConditional{#1}% + \else + \expandafter\RightAppendElement\@WordsToTeXListName{#1}% + \fi + \DoFutureLet{\ifx}{\EndWordsToTeXList}% + {\@WordsToTeXListEnd}{\@WordsToTeXListNextName}% +} +\def\@WordsToTeXListEnd\EndWordsToTeXList{} +\catcode`\@ = 12 +\NameDef{@InputD-wtolist.tip}{} +\catcode`\@ = 11 +\newdimen\@MaximumCurrentLineWidth +\newdimen\@LineWidthLastLine +\newdimen\@LineWidthMinDiff +\newbox\@IPCurrentLineBox +\newbox\@IPCurrentLineBoxTry +\def\InvertedPyramid #1#2#3{% + \WordsToTeXList{\IVList}#3\EndWordsToTeXList + \def\LineLengthList{#1}% + \@LineWidthLastLine = 0pt + \@LineWidthMinDiff = #2 + \CarOfList{\IVList}{\@IVListTemp} + \DropFirstElementOfList{\IVList} + \setbox\@IPCurrentLineBox = \hbox{\@IVListTemp}% + \CarOfList{\LineLengthList}{\@IVListTemp}% + \@MaximumCurrentLineWidth = \@IVListTemp + \DropFirstElementOfList{\LineLengthList}% + \ForEveryListElement{\IVList}{\@IVListTypeset}% + \ifvoid\@IPCurrentLineBox + \errmessage{\string\InvertedPyramid: + empty \string\@IPCurrentLineBox}% + \else + \centerline{\box\@IPCurrentLineBox}% + \fi +} +\def\@IVListTypeset #1{% + \setbox\@IPCurrentLineBoxTry = + \hbox{\copy\@IPCurrentLineBox \space#1}% + \ifdim\wd\@IPCurrentLineBoxTry < \@MaximumCurrentLineWidth + \setbox\@IPCurrentLineBox = \box\@IPCurrentLineBoxTry + \else + \@LineWidthLastLine = \wd\@IPCurrentLineBox + \centerline{\box\@IPCurrentLineBox}% + \setbox\@IPCurrentLineBox = \hbox{#1}% + \CarOfList{\LineLengthList}{\@IVListTemp}% + \@MaximumCurrentLineWidth = \@IVListTemp + \DropFirstElementOfList{\LineLengthList}% + \dimen0 = \@LineWidthLastLine + \advance\dimen0 by -\@MaximumCurrentLineWidth + \ifdim\dimen0 < \@LineWidthMinDiff + \@MaximumCurrentLineWidth = \@LineWidthLastLine + \advance\@MaximumCurrentLineWidth by -\@LineWidthMinDiff + \fi + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-ivpyr.tip}{} +\catcode`\@ = 11 +\newcount\@ValueOfDecimalPosition +\newcount\@ValueOfDecimalPositionLoopCount +\def\ValueOfDecimalPosition #1#2#3{% + \CheckRange{#2}{0}{9}{\string\ValueOfDecimalPosition: + \#2 must be in the range 0 .. 9}% + \AbsoluteValue{#1}{\@ValueOfDecimalPosition}% + \DoLoop{\@ValueOfDecimalPositionLoopCount}{1}{1}{#2}% + {\global\divide\@ValueOfDecimalPosition by 10}% + \IModN{\@ValueOfDecimalPosition}{10}{#3}% +} +\catcode`\@ = 12 +\NameDef{@InputD-valdecpo.tip}{} +\catcode`\@ = 11 +\newcount\@LargestDecimalPlaceCount +\def\LargestDecimalPlace #1#2{% + \AbsoluteValue{#1}{\@LargestDecimalPlaceCount}% + \wlog{We make progress}% + #2 = 0 + \@LargestDecimalPlaceMore{#2}% +} +\def\@LargestDecimalPlaceMore #1{% + \wlog{One round: \the#1}% + \ifnum\@LargestDecimalPlaceCount < 10 + \def\@LargestDecimalPlaceMoreNext{}% + \else + \advance #1 by 1 + \divide\@LargestDecimalPlaceCount by 10 + \def\@LargestDecimalPlaceMoreNext{% + \@LargestDecimalPlaceMore{#1}% + }% + \fi + \@LargestDecimalPlaceMoreNext +} +\catcode`\@ = 12 +\NameDef{@InputD-largdp.tip}{} +\catcode`\@ = 11 +\def\\{% + \hfil\break + \hbox{}% + \DoFutureLet{\ifx}{[}{\@HfilBreakHskip}{\ignorespaces}% +} +\def\@HfilBreakHskip [#1]{% + \hskip #1% + \ignorespaces +} +\catcode`\@ = 12 +\NameDef{@InputD-lbpar.tip}{} +\catcode`\@ = 11 +\def\LoadCountZeroToNine #1#2#3#4#5#6#7#8#9{% + \count0 = #1\relax + \count1 = #2\relax + \count2 = #3\relax + \count3 = #4\relax + \count4 = #5\relax + \count5 = #6\relax + \count6 = #7\relax + \count7 = #8\relax + \count8 = #9\relax + \@LoadCountNine +} +\def\@LoadCountNine #1{% + \count9 = #1\relax +} +\catcode`\@ = 12 +\NameDef{@InputD-lc0to9.tip}{} +\def\RightLeaderLine #1{% + \line{\leaders\hrule\hss #1}% +} + +\def\LeftLeaderLine #1{% + \line{#1\leaders\hrule\hss}% +} + +\def\CenterLeaderLine #1{% + \line{\leaders\hrule\hss #1\leaders\hrule\hss}% +} +\NameDef{@InputD-leadline.tip}{} +\def\LeftDisplay #1$${% + \leftline{% + \hskip 20pt + $ + \displaystyle {#1} + $% + }% + $$ +} +\NameDef{@InputD-leftdm.tip}{} +\def\LoadFontOnDemand #1#2{% + \def #1{% + \global\font#1 = #2\relax + #1% + \message{\string\LoadFontOnDemand: font \string#1 + (#2) loaded on demand.}% + }% +} +\NameDef{@InputD-lfondem.tip}{} +\catcode`\@ = 11 +\newif\if@Defined +\def\DefinedConditional #1{% + TT\fi + \ifx\@UndefinedToken #1% + \@Definedfalse + \else + \@Definedtrue + \fi + \if@Defined +} +\catcode`\@ = 12 +\NameDef{@InputD-testdef.tip}{} +\def\FormatIsLaTeXConditional{% + TT\fi + \if\DefinedConditional{\documentstyle}% +} +\NameDef{@InputD-loadedla.tip}{} +\def\BeginMath{% + \ifmath + \ifinner + \errmessage{\string\BeginMath: already in math + mode, \string\BeginMath ignored.}% + \else + \errmessage{\string\BeginMath: in display math + mode, terminated and math mode started.}% + $$ + $ + \fi + \else + $\relax + \fi +} +\def\EndMath{% + \ifmath + \ifinner + $% + \else + \errmessage{\string\EndMath: you are in display math + mode! Should have used \string\EndDisplayMath!}% + $$ + \fi + \else + \errmessage{\string\EndMath: already in math + mode, \string\EndMath ignored.}% + \fi +} +\def\BeginDisplayMath{% + \ifmath + \ifinner + \errmessage{\string\BeginDisplayMath: in inline + math mode, terminate it, start display math.}% + $ + $$ + \else + \errmessage{\string\BeginDisplayMath: already in math + mode, \string\BeginDisplayMath ignored.}% + \fi + \else + $$ + \fi +} +\def\EndDisplayMath{% + \ifmath + \ifinner + \errmessage{\string\EndDisplayMath: inline + math mode in effect, did you intend to + write \string\EndMath?}% + $% + \else + $$ + \fi + \else + \errmessage{\string\EndDisplayMath: not in math + mode, \string\EndDisplayMath ignored.}% + \fi +} +\NameDef{@InputD-mathenv.tip}{} +\def\MaxDimen #1#2#3#4{% + \ifdim #2<#3\relax + #4#1 = #3\relax + \else + #4#1 = #2\relax + \fi +} +\def\MinDimen #1#2#3#4{% + \ifdim #2<#3\relax + #4#1 = #2\relax + \else + #4#1 = #3\relax + \fi +} +\NameDef{@InputD-maxmindi.tip}{} +\def\ModuloOneAdvanceNumCond #1#2{% + 0=0\fi + \global\advance #1 by 1 + \ifnum #1 = #2\relax + \global #1 = 0 + \fi + \ifnum #1% +} +\NameDef{@InputD-modonead.tip}{} +\def\MultiRowDel #1#2{% + {% + \mathsurround = 0pt + \setbox 0 = \hbox{% + $% + \vcenter{% + \hbox{% + $ + \left#1% + \vrule height #2 depth #2 width 0pt + \right. + $% + }% + }% + $% + }% + \ht0 = 0pt + \dp0 = 0pt + \box 0 + }% +} +\def\MultiRowDel #1#2{% + {% + \mathsurround = 0pt + \setbox 0 = \hbox{% + $ + \left#1% + \vrule height #2 depth #2 width 0pt + \right. + $% + }% + \ht0 = 0pt + \dp0 = 0pt + \box 0 + }% +} +\NameDef{@InputD-mrdel.tip}{} +\catcode`\@ = 11 +\newbox\@NBox +\def\NaturalHeight #1#2{% + \setbox\@NBox = \vbox{\unvcopy #2} + #1 = \ht\@NBox +} +\def\NaturalDepth #1#2{% + \setbox\@NBox = \vbox{\unvcopy #2} + #1 = \dp\@NBox +} +\catcode`\@ = 12 +\NameDef{@InputD-nathd.tip}{} +\catcode`\@ = 11 +\def\NextCharTest #1#2#3{% + \def\@NextCharTestYes #1{#2}% + \def\@NextCharTestNo {#3}% + \DoFutureLet{\ifx}{#1}{\@NextCharTestYes}{\@NextCharTestNo}% +} +\catcode`\@ = 12 +\NameDef{@InputD-nctest.tip}{} +\catcode`\@ = 11 +\def\pagecontents{% + \wlog{\noexpand\pagecontents from op-pagec.tip called.}% + \NameUse{@ShowPlainLists}% + \ifvoid\topins + \wlog{\string\pagecontents: no topinserts.}% + \if\NameDefinedConditional{@TopInsertSize}% + \ifdim\@TopInsertSize < 20pt + \global\@TopInsertSize = 0pt + \fi + \fi + \else + \NameUse{ChangeBarPush}% + \NameUse{@UpdateTopInsertSize}% + \unvbox\topins + \NameUse{ChangeBarPop}% + \fi + \dimen@ = \dp 255 + \unvbox 255 + \ifvoid\footins + \else + \@PrintFootnotePlain + \fi + \ifr@ggedbottom + \kern -\dimen@ + \vfil + \fi +} +\def\@PrintFootnotePlain{% + \vskip\skip\footins + \footnoterule + \unvbox\footins +} +\catcode`\@ = 12 +\NameDef{@InputD-op-pagec.tip}{} +\catcode`\@ = 11 +\def\endinsert{% + \egroup + \if@mid + \dimen@ = \ht0 + \advance\dimen@ by \dp0 + \advance\dimen@ by 12pt + \advance\dimen@ by \pagetotal + \ifdim\dimen@ > \pagegoal + \@midfalse + \p@gefalse + \fi + \fi + \NameUse{MidInsertFix}% + \if@mid + \bigskip + \box 0 + \bigbreak + \else + \insert\topins{% + \penalty 100 + \splittopskip = 0pt + \splitmaxdepth = \maxdimen + \floatingpenalty = 0 + \ifp@ge + \dimen@ = \dp0 + \vbox to \vsize{ + \unvbox 0 + \kern -\dimen@ + }% + \NameUse{MidInsertFixPage}% + \else + \NameUse{EndInsertTopInsFix}% + \NameUse{MidInsertFixTop}% + \box 0 + \nobreak + \bigskip + \fi + } + \fi + \endgroup +} +\catcode`\@ = 12 +\NameDef{@InputD-op-endin.tip}{} +\catcode`\@ = 11 +\newdimen\@TopInsertSize +\@TopInsertSize = 0pt +\def\ReportTopInsertSize #1{% + \wlog{\string\@TopInsertSize: "#1"}% + \wlog{\EightSpaces The value of \noexpand\@TopInsertSize is + \the\@TopInsertSize}% +} +\def\MidInsertFix{% + \ReportTopInsertSize{\string\MidInsertFix}% + \ifdim\@TopInsertSize > 0pt + \@midfalse + \p@gefalse + \fi +} +\def\MidInsertFixPage{% + \ReportTopInsertSize{\string\MidInsertFixPage[1]}% + \global\advance\@TopInsertSize by \vsize + \ReportTopInsertSize{\string\MidInsertFixPage[2]}% +} +\def\MidInsertFixTop{% + \ReportTopInsertSize{\string\MidInsertFixTop[1]}% + \global\advance\@TopInsertSize by \ht0 + \global\advance\@TopInsertSize by \dp0 + \ReportTopInsertSize{\string\MidInsertFixTop[2]}% +} +\def\@UpdateTopInsertSize{% + \ReportTopInsertSize{\string\@UpdateTopInsertSize[1]}% + \global\advance\@TopInsertSize by -\ht\topins + \global\advance\@TopInsertSize by -\dp\topins + \ReportTopInsertSize{\string\@UpdateTopInsertSize[2]}% +} +\catcode`\@ = 12 +\NameDef{@InputD-new-midi.tip}{} +\catcode`\@ = 11 +\def\NewDef #1{% + \ifx #1\@UndefinedToken + \else + \errhelp = {\string\NewDef: + The name of the macro to be defined which you + provided is already in use. Use \show to find out + what the name is used for. The macro definition + will nevertheless be executed.}% + \errmessage{\string\NewDef: "\string#1" already defined.}% + \fi + \def #1% +} +\def\ReDef #1{% + \ifx #1\@UndefinedToken + \errhelp = {\string\ReDef: + The name of the macro to be redefined which you + provided has never been used before. The macro definition + will nevertheless be executed. }% + \errmessage{\string\ReDef: "\string#1" never defined + before.}% + \fi + \def #1% +} +\catcode`\@ = 12 +\NameDef{@InputD-newdef.tip}{} +\def\NewFont #1{% + \if\DefinedConditional{#1}% + \errmessage{\string\NewFont: intended font name + "\string#1" already used.} + \fi + \font #1% +} +\NameDef{@InputD-newfont.tip}{} +\catcode`\@ = 11 +\let\@input = \input +\def\input{% + \DoFutureLet{\ifx}{\bgroup}{\@InputA}{\@input}% +} +\def\@InputA #1{\@input #1} +\catcode`\@ = 12 +\NameDef{@InputD-newinput.tip}{} +\def\NewPage{% + \vfill + \eject +} +\NameDef{@InputD-newpage.tip}{} +\def\NewLineMessage #1{% + {% + \newlinechar = `\|% + \message{|#1}% + }% +} +\NameDef{@InputD-nlm.tip}{} +\def\NewPageRightHand{% + \vfill\supereject + \ifodd\count0 + \else + \hbox{} + \vfill\eject + \fi +} +\def\ShouldBeRightHandPage{% + \ifodd\count0 + \else + \errmessage{\string\ShouldBeRightHandPage: + current page number is \the\count0. + Should be odd and NOT EVEN.}% + \NewPageRightHand + \fi +} +\def\NewPageLeftHand{% + \vfill\supereject + \ifodd\count0 + \hbox{} + \vfill\eject + \fi +} +\NameDef{@InputD-npright.tip}{} +\catcode`\@ = 11 +\def\@OneDigitNumberText #1#2{% + \ifcase #2\relax + \ifnum #1=0 + \else + zero% + \fi + \or + one\or + two\or + three\or + four\or + five\or + six\or + seven\or + eight\or + nine% + \else + \errmessage{\string\@OneDigitNumberText: number + \number#2 out of range.}% + \fi +} +\newcount\@NumberToConvert +\newcount\@NumberToConvertTwo +\newcount\@NumberToConvertAndFlag +\def\NumberToText #1{% + \@NumberToConvert = #1\relax + \ifnum\@NumberToConvert < 0 + minus + \@NumberToConvert = -\@NumberToConvert + \fi + \CheckRange{\@NumberToConvert}{0}{999999}% + {\string\NumberToText: numbers >= 1.000.000 + not handled.}% + \@NumberToConvertAndFlag = 0 + \ifnum\@NumberToConvert > 999 + \@NumberToConvertTwo = \@NumberToConvert + \divide\@NumberToConvert by 1000 + \@NumberToText + \space thousand and + \IModN{\@NumberToConvertTwo}{1000}{\@NumberToConvert}% + \fi + \CheckRange{\@NumberToConvert}{0}{999}% + {\string\NumberToText: internal error 1}% + \@NumberToText +} +\newcount\@NumberToTextTmp +\def\@NumberToText{% + \ifnum\@NumberToConvert > 99 + \ValueOfDecimalPosition{\@NumberToConvert}{2}% + {\@NumberToTextTmp}% + \@OneDigitNumberText{1}{\@NumberToTextTmp}% + \space hundred and + \IModN{\@NumberToConvert}{100}{\@NumberToConvert}% + \fi + \ValueOfDecimalPosition{\@NumberToConvert}{1}% + {\@NumberToTextTmp}% + \ifnum\@NumberToTextTmp > 1 + \ifcase\@NumberToTextTmp + \errmessage{\string\@NumberToText: + internal error 1.}% + \or + \errmessage{\string\@NumberToText: + internal error 2.}% + \or + twenty\or + thirty\or + forty\or + fifty\or + sixty\or + seventy\or + eighty\or + ninety% + \else + \errmessage{\string\@NumberToText: + internal error 4.}% + \fi + \IModN{\@NumberToConvert}{10}{\@NumberToTextTmp}% + \@OneDigitNumberText{0}{\@NumberToTextTmp}% + \else + \ifnum\@NumberToTextTmp = 1 + \advance\@NumberToConvert by -10 + \ifcase\@NumberToConvert + ten\or + eleven\or + twelve\or + thirteen\or + fourteen\or + fifteen\or + sixteen\or + seventeen\or + eighteen\or + nineteen% + \fi + \else + \@OneDigitNumberText{1}{\@NumberToConvert}% + \fi + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-ntotext.tip}{} +\catcode`\@ = 11 +\newcount\@NumberConditionalCounter +\def\@NumberConditional #1#2;{% + \@NumberConditionalCounter = `#1\relax +} +\def\NumberConditional #1{% + TT\fi + \edef\@NumberConditionalString{#1}% + \expandafter\@NumberConditional\@NumberConditionalString ; + \if\InRangeConditional{\@NumberConditionalCounter}{`\0}{`\9}% +} +\catcode`\@ = 12 +\NameDef{@InputD-numcond.tip}{} +\catcode`\@ = 11 +\newcount\@WhileNesting +\@WhileNesting = 0 +\def\WhileNum #1#2{% + \global\advance\@WhileNesting by 1 + \edef\@WhileArgOne{{\the\@WhileNesting}}% + \expandafter\@WhileNum\@WhileArgOne{#1}{#2}% + \global\advance\@WhileNesting by -1 +} +\def\@WhileNum #1#2#3{% + \ifnum #2\relax + #3\relax + \NameDef{@WhileNum-#1}{\@WhileNum{#1}{#2}{#3}}% + \else + \NameDef{@WhileNum-#1}{}% + \fi + \NameUse{@WhileNum-#1}{}% +} +\catcode`\@ = 12 +\NameDef{@InputD-numwhile.tip}{} +\catcode`\@ = 11 +\def\ObeyLines{% + \catcode`\^^M = \active + \@EnableActiveEndOfLine +} +{ + \catcode`\^^M=\active % Lines must end with '%'. + \gdef\@EnableActiveEndOfLine{% + \def + {\leavevmode\par}% + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-oblines.tip}{} +\catcode`\@ = 11 +\def\ObeySpaces{% + \catcode`\ = \active + \@InitActiveSpace +} +{\catcode`\ = \active +\gdef\@InitActiveSpace{\edef {\VerbControlSpace}}} +\catcode`\@ = 12 +\NameDef{@InputD-obspaces.tip}{} +\def\Oct #1{% + {% + \count4 = #1% + \count0 = \count4 + \divide\count0 by 8 + \ifnum \count0 > 0 + \Oct{\count0}% + \fi + \count2 = \count0 + \multiply \count2 by -8 + \advance \count4 by \count2 + \the\count4 + }% +} +\NameDef{@InputD-oct.tip}{} +\def\PrintOdd #1{% + \ifodd #1\relax + Number #1 is odd. + \fi +} +\NameDef{@InputD-oddprin.tip}{} +\def\PrintOddEven #1{% + \ifodd #1\relax + The number #1 is odd. + \else + The number #1 is even. + \fi +} +\NameDef{@InputD-oeprin.tip}{} +\catcode`\@ = 11 +\def\OptArgX #1#2{% + \let\@OptArgXTemp = #1% + \def\@OptArgXDefault{[#2]}% + \DoLongFutureLet{\ifx}{[}{\@OptArgXTemp}{\@OptArgXB}% +} +\def\@OptArgXB{\expandafter\@OptArgXTemp\@OptArgXDefault} +\catcode`\@ = 12 +\NameDef{@InputD-optargx.tip}{} +\def\ParFl #1#2\par{% + \par + $$ + \vbox{ + \setbox 0 = \hbox{#1} + \hsize = \wd0 + \noindent + \unhbox 0 + \space + #2 + } + $$ + \par +} +\NameDef{@InputD-par-fl.tip}{} +\def\PickFirstOfTwo #1#2{#1} +\def\PickSecondOfTwo #1#2{#2} +\NameDef{@InputD-pickfs.tip}{} +\catcode`\@ = 11 +\newif\if@LabelsOk +\def\@LabelRefPrefix{@REF-} +\def\@LabelIsDefined #1{% + TT\fi + \if\NameDefinedConditional{\@LabelRefPrefix#1}% +} +\def\@NewLabel #1#2#3{% + \if\@LabelIsDefined{#1}% + \wlog{\string\@NewLabel: warning: label "#1" + already defined.}% + \fi + \NameGdef{\@LabelRefPrefix #1}{{#2}{#3}}% +} +\let\Saved@NewLabel = \@NewLabel +\def\Ref #1{% + \@ref{0}{#1}% + \if\StringsEqualConditional{\@TheExpandedLabel}{??}% + {??}% + \else + \@TheExpandedLabel + \fi + \@PrintAfterLabel +} +\def\PageRef #1{% + \@ref{1}{#1}% + \if\StringsEqualConditional{\@TheExpandedLabel}{??}% + {??}% + \else + \@TheExpandedLabel + \fi + \@PrintAfterLabel +} +\def\@MostRecentLabel{} +\def\@ref #1#2{% + \xdef\@PrintAfterLabel{}% + \DefaultArg{\@ThisLabel}{#2}{\@MostRecentLabel}% + \if\StringsEqualConditional{\@ThisLabel}{.}% + \xdef\@ThisLabel{\@MostRecentLabel}% + \xdef\@PrintAfterLabel{.}% + \fi + \if\StringsEqualConditional{\@ThisLabel}{,}% + \xdef\@ThisLabel{\@MostRecentLabel}% + \xdef\@PrintAfterLabel{,}% + \fi + \if\StringsEqualConditional{\@ThisLabel}{)}% + \xdef\@ThisLabel{\@MostRecentLabel}% + \xdef\@PrintAfterLabel{)}% + \fi + \if\StringsEqualConditional{\@ThisLabel}{;}% + \xdef\@ThisLabel{\@MostRecentLabel}% + \xdef\@PrintAfterLabel{;}% + \fi + \xdef\@MostRecentLabel{\@ThisLabel}% + \if\@LabelIsDefined{\@ThisLabel}% + \edef\@CrefTemp{\NameUse{\@LabelRefPrefix\@ThisLabel}}% + \ifcase #1\relax + \edef\@TheExpandedLabel{% + \expandafter\PickFirstOfTwo\@CrefTemp}% + \or + \edef\@TheExpandedLabel{% + \expandafter\PickSecondOfTwo\@CrefTemp}% + \fi + \else + \def\@TheExpandedLabel{??} + \wlog{\string\@ref: Label \@ThisLabel\space undefined.}% + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-part-cr.tip}{} +\def\PrintInDollar #1{% + {% + \ifnum #1 < 0 + $-$% + \count0 = -#1\relax + \else + \count0 = #1\relax + \fi + \count2 = \count0 + \divide\count0 by 100 + \the\count0.% + \multiply\count0 by 100 + \advance\count2 by -\count0 + \ifnum\count2 < 10 + 0% + \fi + \the\count2 + }% +} +\NameDef{@InputD-pdollars.tip}{} +\catcode`\@ = 11 +\def\PartSourceFileNameExtension{tex} +\def\AuxFileNameExtension{aux} +\def\TocFileNameExtension{toc} +\def\LofFileNameExtension{lof} +\def\LotFileNameExtension{lot} +\def\TmpFileNameExtension{tmp} +\newwrite\@PartAuxStream +\newwrite\@TmpFileStream +\def\i@write{\immediate\write} +\def\i@openout{\immediate\openout} +\def\i@closeout{\immediate\closeout} + +\def\@ip@write{\i@write\@PartAuxStream} +\def\@p@write{\write\@PartAuxStream} +\def\@IgnoreAuxStuff{% + \let\@NewLabel = \GobbleThree + \let\@SetCounter = \GobbleTwo + \let\@ForSpecialFile = \GobbleFive +} +\def\@ReadInAuxFiles{% + {% + \def\\##1{\InputCWithAt{##1.aux}}% + \@AllPartsOfDocumentList + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-pm-bas.tip}{} +\catcode`\@ = 11 +\def\WriteAuxFileComment #1{% + \@p@write{\PercentSignPure\space #1.}% +} +\catcode`\@ = 12 +\NameDef{@InputD-pm-auxco.tip}{} +\catcode`\@ = 11 +\NewCounter{PageNo}{\arabic}{\TheCounter{PageNo}}% + {\TheCounter{PageNo}} +\NewCounter{SWPageNo}{\arabic}% + {\TheCounter{SWPageNo}}{\TheCounter{SWPageNo}} +\def\@PageNumbersToCounterRegs{% + \CounterToRegister{\global\pageno}{PageNo}% +} +\SetCounter{PageNo}{1} +\@PageNumbersToCounterRegs +\def\advancepageno{% + \StepCounter{PageNo}% + \StepCounter{SWPageNo}% + \@PageNumbersToCounterRegs +} +\def\folio{% + \PrintCounter{PageNo}% +} +\catcode`\@ = 12 +\NameDef{@InputD-pm-pagen.tip}{} +\catcode`\@ = 11 +\def\WriteCountersToAuxFile{% + \@WriteCounter{ChapterNo}% + \@WriteCounter{SectionNo}% + \@WriteCounter{PageNo}% +} +\def\@WriteCounter #1{% + \@ip@write{% + \noexpand\@SetCounter + {#1}% + {\expandafter\the\csname @C-#1\endcsname}}% +} +\catcode`\@ = 12 +\NameDef{@InputD-pm-wrc.tip}{} +\def\BoldfaceFake #1#2{% + \hbox{% + \hbox to #2{#1\hss}% + \hbox to #2{#1\hss}% + \hbox {#1}% % Last time print text with reg. width. + }% +} +\NameDef{@InputD-poorbold.tip}{} +\def\PrintAlph #1{% + {% + \count0 = #1% + \advance\count0 by -1 + \advance\count0 by `\a + \char\count0 + }% +} +\NameDef{@InputD-pralph.tip}{} +\def\ShowBoxAll #1{% + {% + \nonstopmode + \showboxdepth = 10000 + \showboxbreadth = 10000 + \showbox #1% + }% +} +\def\ShowBoxDepthOne #1{% + {% + \nonstopmode + \showboxdepth = 1 + \showboxbreadth = 10000 + \showbox #1% + }% +} +\def\ShowBoxDepthTwo #1{% + {% + \nonstopmode + \showboxdepth = 2 + \showboxbreadth = 10000 + \showbox #1% + }% +} +\NameDef{@InputD-shboxes.tip}{} +\def\PrintHyphens #1{% + {% + \setbox 0 = \vbox{% + \pretolerance = -1 + \hyphenpenalty = -10000 + \hsize = 0pt + \leftskip = 0pt + \rightskip = 0pt + \parfillskip = 0pt + \parindent = 0pt + \hfuzz = \maxdimen + \interlinepenalty = 0 + \clubpenalty = 0 + \widowpenalty = 0 + \brokenpenalty = 0 + \hskip 0pt + #1 + }% + \setbox2 = \hbox{}% + \setbox 9 = \vbox{% + \unvbox 0 + \loop + \unskip + \setbox 1 = \lastbox + \ifhbox 1 + \global\setbox 2 = \hbox{% + \unhbox 1 + \discretionary{}{}{}% + \unhbox 2 + }% + \repeat + }% + \unhbox 2 + }% +} +\NameDef{@InputD-prhyph.tip}{} +\def\PrimitiveMarker{% + \leavevmode + {% + \footnotesize\tt + \llap{*}% + }% +} +\NameDef{@InputD-primmark.tip}{} +\newcount\AstCount +\def\PrintAsterisk #1{% + \AstCount = #1 + \ifnum\AstCount < 0 + \errmessage{\string\PrintAsterisk: negative counter.}% + \AstCount = 0 + \fi + \PrintAsteriskRec +} +\def\PrintAsteriskRec{% + *% + \advance\AstCount by -1 + \ifnum\AstCount = 0 + \let\next = \relax + \else + \let\next = \PrintAsteriskRec + \fi + \next +} +\NameDef{@InputD-printast.tip}{} +\def\PrintRegister #1{% + The current value of {\tt\string #1} is \the#1.% +} +\def\LogRegister #1{% + \message{The current value of \string#1 is \the#1.} +} +\NameDef{@InputD-printreg.tip}{} +\def\PrintMode{% + \ifinner + \ifvmode \message{Current mode: inner vertical}\fi + \ifhmode \message{Current mode: restricted horizontal}\fi + \ifmmode \message{Current mode: (inline) math}\fi + \else + \ifvmode \message{Current mode: (regular) vertical}\fi + \ifhmode \message{Current mode: (regular) horizontal}\fi + \ifmmode \message{Current mode: display math}\fi + \fi +} +\NameDef{@InputD-prmode.tip}{} +\catcode`\@ = 11 +\newif\ifProtWrite +\ProtWritetrue +\newcount\@ProtCount +\newcount\@ProtCountX +\newwrite\@ProtWrite +\def\InitProtWrite{% + \ifProtWrite + \immediate\openout\@ProtWrite = \jobname.prt + \fi +} +\def\CloseProtWrite{% + \immediate\closeout\@ProtWrite +} +\def\WriteProtocol #1#2{% + \ifProtWrite + {% + \@ProtCount = #1\relax + \def\@WriteSpace{}% + \DoLoop{\count1}{1}{1}{\@ProtCount}% + {\edef\@WriteSpace{\@WriteSpace\FourSpaces}}% + \immediate\write\@ProtWrite{\@WriteSpace #2}% + }% + \fi +} +\def\BoxToProtocol #1#2#3{% + \ifProtWrite + {% + \WriteProtocol {#1}{\string\BoxToProtocol: #3}% + \@ProtCountX = #1\relax + \advance\@ProtCountX by 1 + \ifvoid #2% + \WriteProtocol{\@ProtCountX}{Box register #2 + is void.}% + \else + \ifhbox #2% + \WriteProtocol{\@ProtCountX}{Box register #2 + is an hbox.}% + \else + \WriteProtocol{\@ProtCountX}{Box register #2 + is a vbox.}% + \fi + \fi + \ifvoid #2% + \else + \WriteProtocol{\@ProtCountX}% + {Dimensions: (\the\ht#2+\the\dp#2)*\the\wd#2.}% + \fi + }% + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-prot.tip}{} +\def\ReportBoxType #1{% + \message{\string\ReportBoxType: }% + \ifvoid #1\message{Box register #1 is void.}\fi + \ifhbox #1\message{Box register #1 contains a horizontal box.}\fi + \ifvbox #1\message{Box register #1 contains a vertical box.}\fi +} +\NameDef{@InputD-rboxt.tip}{} +\catcode`\@ = 11 +\newread\@ReadNumberStream +\newcount\ReadANumberResult +\def\InitReadNumbers #1{% + \openin\@ReadNumberStream = #1 +} +\def\@ReadANumberPar{\par} +\def\ReadANumber{% + \ifeof\@ReadNumberStream + \ReadANumberResult = -1 + \else + \read\@ReadNumberStream to \@ReadANumberTemp + \ifx\@ReadANumberTemp\@ReadANumberPar + \ReadANumberResult = -1 + \else + \ReadANumberResult = \@ReadANumberTemp + \fi + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-readnu.tip}{} +\catcode`\@ = 11 +\newbox\@ReduceToStrutBox +\def\ReduceToStrut #1{% + \setbox\@ReduceToStrutBox = \hbox{#1}% + \vrule height \ht\@ReduceToStrutBox + depth \dp\@ReduceToStrutBox + width 0pt +} +\catcode`\@ = 12 +\NameDef{@InputD-redtost.tip}{} +\catcode`\@ = 11 +\def\MakeRobust{} +\def\TreatAsRobust #1{% + \def #1{% + \noexpand #1% + }% +} +\newtoks\@RobustTokenList +\@RobustTokenList = {} +\def\AddToRobustList #1{% + \@RobustTokenList = \expandafter{\the\@RobustTokenList #1}% +} +\def\Robusting{% + \ForEachToken{\@RobustTokenList}{\TreatAsRobust}% +} +\catcode`\@ = 12 +\NameDef{@InputD-robust.tip}{} +\catcode`\@ = 11 +\newcount\@SampleParCounter +\newcount\@SampleParSentenceCounter +\@SampleParCounter = 1 +\def\SamplePar #1#2{% + \@SampleParSentenceCounter = 0 + Identification of this paragraph: {\it #1}. + {\it Sample paragraph~\the\@SampleParCounter, + with~#2 sentences}. So here we go, + and when you check the number of sentences, then note + that these first two sentences do {\it not\/} count. + \loop + \advance\@SampleParSentenceCounter by 1 + This is one of the many sentences this macro + generates, to be more specific it is sentence + number~\the\@SampleParSentenceCounter\space of~#2. + \ifnum\@SampleParSentenceCounter < #2 + \repeat + \par + \global\advance\@SampleParCounter by 1 +} +\catcode`\@ = 12 +\NameDef{@InputD-samplepa.tip}{} +\catcode`\@ = 11 +\newdimen\@StrutBaseDimension +\newdimen\@StrutSkipTemp +\def\ComputeStrut{% + \@StrutBaseDimension = \baselineskip + \ifdim\baselineskip < 0pt + \errhelp = {You probably called \string\offinterlineskip + before \string\ComputeStrut} + \errmessage{\string\ComputeStrut: negative + \string\baselineskip (\the\baselineskip)}% + \fi +} +\def\MyStrut{% + \vrule height 0.7\@StrutBaseDimension + depth 0.3\@StrutBaseDimension + width 0pt +} +\def\HigherStrut #1{% + \@StrutSkipTemp = 0.7\@StrutBaseDimension + \advance\@StrutSkipTemp by #1% + \vrule height \@StrutSkipTemp + depth 0.3\@StrutBaseDimension + width 0pt +} +\def\DeeperStrut #1{% + \@StrutSkipTemp = 0.3\@StrutBaseDimension + \advance\@StrutSkipTemp by #1% + \vrule height 0.7\@StrutBaseDimension + depth \@StrutSkipTemp + width 0pt +} +\ComputeStrut +\catcode`\@ = 12 +\NameDef{@InputD-setstrut.tip}{} +\def\ShiftRefPointUpOrDown #1#2{% + \AdvanceBoxDimension{\ht#1}{#2}% + \ifdim\ht#1 < 0pt + \ht#1 = 0pt + \fi + \AdvanceBoxDimension{\dp#1}{-#2}% + \ifdim\dp#1 < 0pt + \dp#1 = 0pt + \fi +} +\NameDef{@InputD-shiftudb.tip}{} +\catcode`\@ = 11 +\newif\ifShowPlainLists +\ShowPlainListsfalse +\def\@ShowPlainLists{% + \ifShowPlainLists + \wlog{*** \string\@ShowPlainLists: main vertical list ***}% + \wlog{*** Page number (\string\count0): \the\count0 + \space***}% + \ShowBoxDepthOne{255}% + \ifvoid\footins + \wlog{\string\@ShowPlainLists: no footnotes.}% + \else + \wlog{*** \string\@ShowPlainLists: footnote box ***}% + \ShowBoxDepthOne{\footins}% + \fi + \ifvoid\topins + \wlog{\string\@ShowPlainLists: no topinserts.}% + \else + \wlog{*** \string\@ShowPlainLists: top inserts ***}% + \ShowBoxDepthTwo{\topins}% + \fi + \wlog{*** \string\@ShowPlainLists: end dump of + page: \the\count0 \space ***}% + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-showpll.tip}{} +\def\SignatureLine #1#2{% + \hbox{% + \hbox to 0pt{% + \vrule width #1 height 0.6pt depth 0pt + \hss % Equivalent to \hskip -#1. + }% + \lower 10pt \hbox to #1{\hfil #2\hfil}% + }% +} +\NameDef{@InputD-sigline.tip}{} +\catcode`\@ = 11 +\def\SaveSpaceFactor{% + \xdef\@SavedSpaceFactor{% + \spacefactor = \the\spacefactor + }% +} +\def\RestoreSpaceFactor{% + \@SavedSpaceFactor +} +\catcode`\@ = 12 +\NameDef{@InputD-spacefac.tip}{} +\catcode`\@ = 11 +\newcount\@PPLineNumber +\newbox\@PrintParWithLinesBox +\newbox\@PrintParWithLinesTemp +\def\PrintParWithLineNumbers #1{% + \par + \@PPLineNumber = 1 + \splittopskip = 0.6666\baselineskip + \setbox\@PrintParWithLinesBox = \vbox{#1} + \@PrintParWithLineNumbers +} +\def\@PrintParWithLineNumbers{ + \ifvoid\@PrintParWithLinesBox + \let\@PPNext = \relax + \else + \setbox\@PrintParWithLinesTemp = + \vsplit\@PrintParWithLinesBox to 0.666\baselineskip + \hbox{% + \llap{% + \the\@PPLineNumber:% + \hskip 10pt + }% + \box \@PrintParWithLinesTemp + }% + \advance\@PPLineNumber by 1 + \wlog{Line \the\@PPLineNumber}% + \let\@PPNext = \@PrintParWithLineNumbers + \fi + \@PPNext +} +\catcode`\@ = 12 +\NameDef{@InputD-splitpar.tip}{} +\def\SameSizeMath{ + \textfont0 = \tenrm + \scriptfont0 = \tenrm + \scriptscriptfont0 = \tenrm + \textfont1 = \tenit + \scriptfont1 = \tenit + \scriptscriptfont1 = \tenit + \textfont2 = \tensy + \scriptfont2 = \tensy + \scriptscriptfont2 = \tensy + \textfont3 = \tenex + \scriptfont3 = \tenex + \scriptscriptfont3 = \tenex + \textfont\itfam = \tenit + \textfont\slfam = \tensl + \textfont\bffam = \tenbf + \scriptfont\bffam = \tenbf + \scriptscriptfont\bffam = \tenbf + \textfont\ttfam = \tentt +} +\NameDef{@InputD-ssmath.tip}{} +\catcode`\@ = 11 +\newcount\@StringSwitchMatchCount +\def\StringSwitch #1#2{% + \edef\@StringSwitchMasterString{#1}% + \if\EmptyStringConditional{#1}% + \errmessage{\string\StringSwitch: master string + must not be the empty string.}% + \fi + \def\@StringSwitchMatchCommonCode{#2}% + \@StringSwitchMatchCount = 0 + \@StringSwitch +} +\def\@StringSwitchOne #1#2{% + \def\@StringSwitchString{#1}% + \def\@StringSwitchAction{#2}% +} +\def\@StringSwitch #1{% + \@StringSwitchOne #1% + \if\EmptyStringConditional{\@StringSwitchString}% + \ifcase\@StringSwitchMatchCount + \@StringSwitchAction + \or + \else + \errmessage{\string\StringSwitch: double match.}% + \fi + \def\@StringSwitchNext{}% + \else + \if\StringsEqualConditional{\@StringSwitchMasterString}% + {\@StringSwitchString}% + \advance\@StringSwitchMatchCount by 1 + \@StringSwitchMatchCommonCode + \@StringSwitchAction + \fi + \def\@StringSwitchNext{\@StringSwitch}% + \fi + \@StringSwitchNext +} +\catcode`\@ = 12 +\NameDef{@InputD-stswitch.tip}{} +\def\SubstituteFontX #1#2#3#4{% + \def#1{% + \message{% + \string\SubstituteFontX: No \string#2 font of + #3pt, using \noexpand\rm instead.% + }% + \global\let #1 = #4% + #1% + }% +} +\NameDef{@InputD-substf.tip}{} +\catcode`\@ = 11 +\newbox\@SwapBox +\def\SwapBoxRegs #1#2{% + \setbox\@SwapBox = \box#1% + \setbox#1 = \box#2% + \setbox#2 = \box\@SwapBox +} +\catcode`\@ = 12 +\NameDef{@InputD-swapbox.tip}{} +\def\TableBeginCentered{% + $$ + \vbox\bgroup + \offinterlineskip + \tabskip = 0pt + \halign\bgroup +} +\def\TableEndCentered{% + \crcr + \egroup + \egroup + $$ +} +\NameDef{@InputD-tabcent.tip}{} +\catcode`\@ = 11 +\newbox\@WidthSavingBox +\def\WidthSavingBox #1#2{% + \setbox\@WidthSavingBox = \hbox{#1}% + \MaxDimen{#2}{#2}{\wd\@WidthSavingBox}{\global}% + \box\@WidthSavingBox +} +\catcode`\@ = 12 +\NameDef{@InputD-tabswb.tip}{} +\catcode`\@ = 11 +\newcount\@GenTocEntryLevel +\def\GenTocEntry #1#2#3#4{% + \par + \bgroup + \global\@GenTocEntryLevel = #1 + \leftskip = #4 + \parindent = #2 + \advance\parindent by -#4 + \dimen0 = #3 + \advance\dimen0 by -#2 + \@GenTocEntry +} +\def\@GenTocEntry #1#2#3#4#5#6#7#8{% + \rightskip = #1 plus 1in + \parfillskip = #2 + \advance\parfillskip by -#1 + #7 + \ifdim #3 > 0pt + \setbox0 = \hbox to #3{\hfil.\hfil} + \else + \setbox0 = \box\voidb@x + \fi + \leavevmode + \hbox to \dimen0 {#5\hfil}% + {% + #6% + \unskip + }% + \ifvoid 0 + \hfill + \else + \nobreak\leaders\copy0\hskip #4plus 1fil + \fi + #8% + \par + \egroup +} +\catcode`\@ = 12 +\NameDef{@InputD-toc-mac.tip}{} +\def\Today{% + \the\month/\the\day/\the\year +} +\NameDef{@InputD-today.tip}{} +\catcode`\@ = 11 +\def\EndInsertTopInsFix{% + \ifdim\dp0 > 10pt + \wlog{\string\endinsert: \string\topinsert + material deeper than 10pt}% + \dp0 = 10pt + \fi + \MaxDimen{\dimen0}{\dp0}{0pt}{} + \dimen1 = \vsize + \advance\dimen1 by -\dimen0 + \advance\dimen1 by -12pt + \ifdim\ht0 > \dimen1 + \wlog{\string\endinsert: \noexpand\topinsert + material too long (\the\ht0),}% + \wlog{\EightSpaces shortened to \the\dimen1.}% + \ht0 = \dimen1 + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-topinfix.tip}{} +\def\Bref #1#2#3{% + #1 (19#2#3)% +} +\NameDef{@InputD-ts-brefm.tip}{} +\def\td{% + \hskip 0.5em plus 0.1em minus 0.1em + $\bullet$% + \hskip 0.5em plus 0.1em minus 0.1em +} +\NameDef{@InputD-ts-bul.tip}{} +\def\ChapterHeadingTeXIP #1#2{% + \setbox 1 = + \vbox to 13pc{ + \hyphenpenalty = 10000 + \parindent = 0pt + \huge + \bf + \baselineskip = 21pt + \AlwaysBaselineskip + \setbox 0 = \hbox{#1}% + \copy0 + \parskip = 3pc + \advance\parskip by -\dp0 + \advance\parskip by -\ht0 + \advance\parskip by -\baselineskip + \wlog{\string\ChapterHeadingTeXIP: computed value + of \noexpand\parskip is \the\parskip.}% + \spaceskip = 0.3333em + \xspaceskip = \spaceskip + \rightskip = 0pt plus 4em + #2 + \par + \vfil + } + \box 1 + \SuppressNextParIndent +} +\NameDef{@InputD-ts-chhe.tip}{} +\catcode`\@ = 11 +\NewCounter{ChapterNo}{\arabic}% + {\TheCounter{ChapterNo}}{\TheCounter{ChapterNo}} +\def\Chapter{\DblArg{\@Chapter}}% +\def\@Chapter [#1]#2{% + \ShouldBeRightHandPage + \StepCounter{ChapterNo}% + \gdef\@LeftRunningHead{#2}% + \SetPageLayout{4} + \ChapterHeadingTeXIP{\PrintCounter{ChapterNo}}{#2} + \WriteToAuxSpecial{toc}{1}% + {\PrintCounter{ChapterNo}}{#1}{\PrintCounter{PageNo}}% + \WriteToAuxSpecial{lof}{0}{}{}{}% + \WriteToAuxSpecial{lot}{0}{}{}{}% + \def\Label ##1{\@Label{##1}{\RefCounter{ChapterNo}}{1}}% +} +\NewCounter{AppendixNo}{\Alph}% + {\TheCounter{AppendixNo}}{\TheCounter{AppendixNo}} +\AddCounterToResetList{SectionNo}{AppendixNo} +\AddCounterToResetList{AppendixNo}{VolumeNo} +\def\Appendix{\DblArg{\@Appendix}}% +\def\@Appendix [#1]#2{% + \NewPageRightHand + \StepCounter{AppendixNo}% + \ReassignCounter{SectionNo}{\arabic}% + {\PrintCounter{AppendixNo}.\TheCounter{SectionNo}}% + {\PrintCounter{AppendixNo}.\TheCounter{SectionNo}}% + \SetPageLayout{4} + \ChapterHeadingTeXIP{Appendix \PrintCounter{AppendixNo}}{#2} + \WriteToAuxSpecial{toc}{1}% + {\PrintCounter{AppendixNo}}{#1}{\PrintCounter{PageNo}}% + \def\Label ##1{\@Label{##1}{\RefCounter{AppendixNo}}{1}}% + \ignorespaces +} +\def\DoneWithAppendices{% + \ReassignCounter{SectionNo}{\alph}% + {\TheCounter{ChapterNo}.\TheCounter{SectionNo}}% + {\TheCounter{ChapterNo}.\TheCounter{SectionNo}} + \def\Label ##1{\@Label{##1}{\RefCounter{ChapterNo}}{1}}% +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-chap.tip}{} +\catcode`\@ = 11 +\def\@PageRef #1{% + \def\@PageRefResult{}% + \@ref{1}{#1}% + \if\StringsEqualConditional{\@TheExpandedLabel}{??}% + \def\@PageRefResult{??}% + \else + \if\PrefixConditional{\@TheExpandedLabel}% + {\TheCounter{VolumeNo}-}% + \DropPrefix{\@TheExpandedLabel}{\TheCounter{VolumeNo}-}% + {\@TheShortenedLabel}% + \edef\@PageRefResult{\@TheShortenedLabel}% + \else + \edef\@PageRefResult{\@TheExpandedLabel}% + \fi + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-pager.tip}{} +\catcode`\@ = 11 +\newcount\@PageRefLimitLow +\newcount\@PageRefLimitHigh +\newif\if@CloseByReference +\newcount\@PageCloseRefCount +\newcount\@PageNumberActual +\def\NoSpecialPageRef{% + \global\@NoSpecialPageReftrue +} +\newif\if@NoSpecialPageRef +\@NoSpecialPageReffalse +\def\@PageRef #1{% + \def\@PageRefResult{}% + \global\@CloseByReferencefalse + \StepCounter{CloseByReferenceCount}% + \CounterToRegister{\global\@PageCloseRefCount}% + {CloseByReferenceCount}% + \@ref{1}{#1}% + \if\StringsEqualConditional{\@TheExpandedLabel}{??}% + \def\@PageRefResult{??}% + \else + \if\PrefixConditional + {\@TheExpandedLabel}% + {\TheCounter{VolumeNo}-}% + \DropPrefix{\@TheExpandedLabel}{\TheCounter{VolumeNo}-}% + {\@TheShortenedLabel}% + \def\@PageRefResult{\@TheShortenedLabel}% + \Label{@READ@-% + \@ThisLabel-\the\@PageCloseRefCount}% + \@PageRefLimitLow = \@TheShortenedLabel + \advance\@PageRefLimitLow by -1 + \@PageRefLimitHigh = \@TheShortenedLabel + \advance\@PageRefLimitHigh by 1 + \edef\@Ref@Temp@Name{% + \@LabelRefPrefix @READ@-% + \@ThisLabel-\the\@PageCloseRefCount + }% + \if\NameDefinedConditional{\@Ref@Temp@Name}% + \edef\@Ref@Temp@NameTwo{% + \NameUse{\@Ref@Temp@Name}% + }% + \wlog{@READ@: 1 \@Ref@Temp@Name / + \@Ref@Temp@NameTwo}% + \edef\@Ref@Temp@NameThree{% + \expandafter\PickSecondOfTwo + \@Ref@Temp@NameTwo + }% + \wlog{@READ@ 1a: \@Ref@Temp@NameThree}% + \DropPrefix + {\@Ref@Temp@NameThree}% + {\TheCounter{VolumeNo}-}% + {\@ResultLocalRef}% + \@PageNumberActual = \@ResultLocalRef + \else + \wlog{@READ@ 2}% + \@PageNumberActual = \count0 + \@PageRefLimitLow = -10 + \@PageRefLimitHigh = -10 + \fi + \if\InRangeConditional + {\@PageNumberActual}% + {\@PageRefLimitLow}% + {\@PageRefLimitHigh}% + \wlog{@READ@ 3}% + \@CloseByReferencetrue + \if@NoSpecialPageRef + \@CloseByReferencefalse + \fi + \else + \wlog{@READ@ 4}% + \@CloseByReferencefalse + \fi + \global\@NoSpecialPageReffalse + \if@CloseByReference + \ifnum\@PageNumberActual = \@PageRefLimitLow + \wlog{\string\PageRef: Reference "\@ThisLabel," + on page \the\@PageNumberActual + \space refers to the next page.}% + \def\@PageRefResult{the next}% + \fi + \ifnum\@PageNumberActual = \@TheShortenedLabel + \wlog{\string\PageRef: Reference "\@ThisLabel" + on page \the\@PageNumberActual + \space refers to the current page.}% + \def\@PageRefResult{this}% + \fi + \ifnum\@PageNumberActual = \@PageRefLimitHigh + \wlog{\string\PageRef: Reference "\@ThisLabel" + on page \the\@PageNumberActual + \space refers to the preceding page.}% + \def\@PageRefResult{the previous}% + \fi + \fi + \else + \def\@PageRefResult{\@TheExpandedLabel}% + \fi + \fi + \edef\@PageRefResult{\@PageRefResult}% +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-page2.tip}{} +\catcode`\@ = 11 +\def\PageRef #1{% + \@PageRef{#1}% + \@PageRefResult + \@PrintAfterLabel +} +\def\Page #1{% + \PageShortForm~\@PageRef{#1}% + \@PageRefResult + \@PrintAfterLabel +} +\def\OnPage #1{% + \@PageRef{#1}% + \if@CloseByReference + on \@PageRefResult\space page% + \else + on \PageShortForm~\@PageRefResult + \fi + \@PrintAfterLabel +} +\def\AtPage #1{% + \@PageRef{#1}% + \if@CloseByReference + at \@PageRefResult\space page% + \else + at \PageShortForm~\@PageRefResult + \fi + \@PrintAfterLabel +} +\def\CommaPage #1{% + \@PageRef{#1}% + \if@CloseByReference + \space on \@PageRefResult\space page% + \@PrintAfterLabel + \else + ,\space + \PageShortForm~\@PageRefResult + \@PrintAfterLabel + \fi +} +\def\CommaPageComma{% + \@PageRef{,}% + \if@CloseByReference + \space on \@PageRefResult\space page\space + \else + ,\space + \PageShortForm~\@PageRefResult + \@PrintAfterLabel + \space + \fi +} +\def\PageShortForm{p.} +\def\PagesShortForm{pp.} +\def\see #1#2{% + see \@SeeSee{#1}{#2}% +} +\def\See #1#2{% + See \@SeeSee{#1}{#2}% +} +\def\@SeeSee #1#2{% + \SectionRef{#1}% + \if\StringsEqualConditional{#2}{,}% + \CommaPageComma + \let\@SeeSeeEnd = \ignorespaces + \else + \CommaPage + #2% + \let\@SeeSeeEnd = \relax + \fi + \@SeeSeeEnd +} +\def\ChapterRef #1{% + Chapter~\Ref{#1}% +} +\def\SectionRef #1{% + \Ref{#1}% +} +\def\ItemRef #1{% + item~\Ref{#1}% +} +\def\FigRef #1{% + Fig.~\Ref{#1}% +} +\def\FigureRef #1{% + Figure~\Ref{#1}% +} +\def\TableRef #1{% + Table~\Ref{#1}% +} +\def\AppendixRef #1{% + Appendix~\Ref{#1}% +} +\def\PagesRef #1#2{% + \PagesShortForm~\PageRef{#1}--\PageRef{#2}% +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-crm.tip}{} +\newdimen\HsizeTeXIP +\newdimen\VsizeTeXIP +\newcount\ClubPenalty +\newcount\WidowPenalty +\newcount\InterlinePenalty +\newcount\BrokenPenalty +\NameDef{@InputD-ts-dime1.tip}{} +\newif\ifWritePageLog +\WritePageLogfalse +\newwrite\PageLogStream +\def\WritePageLogFile{% + \immediate\openout\PageLogStream = \jobname.plog + \WritePageLogtrue +} +\newcount\BadnessSave +\ShowPlainListsfalse +\catcode`\@ = 11 +\newcount\@PageLayoutCode +\def\SetPageLayout #1{% + \global\@PageLayoutCode = #1 + \CheckRange{\@PageLayoutCode}{0}{5}% + {\string\SetPageLayout: } +} +\SetPageLayout{0}% +\def\@LeftRunningHead{} +\def\@RightRunningHead{} +\newcount\@SavedPageLayoutCode +\def\NewPageRightHandSpecial{% + \vfill + \supereject + \ifodd\count0 + \wlog{\string\NewPageRightHandSpecial: no empty + page to generate (\string\count0 = \the\count0)}% + \else + \hbox{} + \@SavedPageLayoutCode = \@PageLayoutCode + \SetPageLayout{1}% + \wlog{\string\NewPageRightHandSpecial: empty page + generated, + (\string\count0 = \the\count0).}% + \vfill + \eject + \SetPageLayout{\@SavedPageLayoutCode}% + \fi +} +\newdimen\OddPagesHorizontalShift +\newdimen\EvenPagesHorizontalShift +\newdimen\CurrentPageShift +\def\plainoutput{% + \@ShowPlainLists + \edef\@LeftRunningHead{\@LeftRunningHead}% + \edef\@RightRunningHead{\@RightRunningHead}% + \ifnum\@PageLayoutCode = 0 + \else + \headline = {} + \footline = {} + \fi + \ifcase\@PageLayoutCode + \or + \or + \global\@PageLayoutCode = 3 + \or + \@PageLayoutCodeThree + \or + \global\@PageLayoutCode = 5 + \or + \ifodd\count0 + \headline = {% + \small\rm + \hfil + \botmark + \hskip 18pt + \PrintCounter{PageNo}% + }% + \else + \headline = {% + \small\rm + \PrintCounter{PageNo}% + \hskip 18pt + \@LeftRunningHead + \hfil + }% + \fi + \else + \errmessage{\string\plainoutput: \string\@PageLayoutCode + out of range.}% + \fi + \setbox 4 = \vbox{% + \pagebody + }% + \ifWritePageLog + \immediate\write\PageLogStream{% + Part name: \CurrentPartName, Page \the\count0 + }% + \immediate\write\PageLogStream{% + Page \the\count0: + stretch: \the\pagestretch, + shrink: \the\pageshrink, + outputpenalty: \the\outputpenalty + }% + \immediate\write\PageLogStream{% + pagefilstretch: \the\pagefilstretch, + pagefillstretch: \the\pagefillstretch + }% + \immediate\write\PageLogStream{% + ht 255: \the\ht255, + dp 255: \the\dp255 + }% + \NaturalHeight{\dimen0}{255}% + \NaturalDepth{\dimen1}{255}% + \immediate\write\PageLogStream{% + Natural height: \the\dimen0, + Natural depth: \the\dimen1 + }% + \dimen2 = \vsize + \advance\dimen2 by -\dimen0 + \immediate\write\PageLogStream{% + Ideal height: \the\vsize, + Difference: \the\dimen2 + }% + \immediate\write\PageLogStream{% + badness: \the\BadnessSave, + height: \the\ht4, + depth: \the\dp4 + }% + \immediate\write\PageLogStream{}% + \fi + \setbox 5 = \vbox{% + \makeheadline + \box 4 + \makefootline + }% + \@MakeRobustMacros + \ifodd\count0 + \CurrentPageShift = \OddPagesHorizontalShift + \else + \CurrentPageShift = \EvenPagesHorizontalShift + \fi + \wlog{Redefined \string\plainoutput (ts-outpu.tip): + Shifting: shift amount is \the\CurrentPageShift\space\space + (page is \the\pageno).}% + \setbox 6 = \vbox{% + \moveright\CurrentPageShift \box5 + }% + \shipout\box6 + \advancepageno + \ifnum\outputpenalty > -10000 + \else + \dosupereject + \fi +} +\def\@PageLayoutCodeThree{% + \ifodd\count0 + \headline = {% + \small\rm + \hfil + \@RightRunningHead + \hskip 18pt + \PrintCounter{PageNo}% + }% + \else + \headline = {% + \small\rm + \PrintCounter{PageNo}% + \hskip 18pt + \@LeftRunningHead + \hfil + }% + \fi +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-outpu.tip}{} +\def\SetUpTeXIPValues #1#2#3#4#5#6#7#8#9{% + \HsizeTeXIP = #1\relax + \hsize = \HsizeTeXIP + \VsizeTeXIP = #2\relax + \vsize = \VsizeTeXIP + \SetParIndent{20pt} + \ClubPenalty = #4\relax + \clubpenalty = \ClubPenalty + \WidowPenalty = #5\relax + \widowpenalty = \WidowPenalty + \InterlinePenalty = #6\relax + \interlinepenalty = \InterlinePenalty + \BrokenPenalty = #7\relax + \brokenpenalty = \BrokenPenalty + \OddPagesHorizontalShift = 0pt + \EvenPagesHorizontalShift = 0pt + \overfullrule = #8\relax + \parskip = #9\relax +} +\SetUpTeXIPValues{6.5in}{8.9in}{20pt}{100}{100}{100}{100}% + {5pt}{0pt plus 1pt} +\NameDef{@InputD-ts-dime2.tip}{} +\def\SubstituteFont #1#2#3#4{% + \expandafter\newifOF \csname if-\string#1\endcsname + \csname if-\string#1true\endcsname + \def#1{% + \csname if-\string#1\endcsname + \message{% + \string\SubstituteFont: No \string#2 font at + size #3pt, using \noexpand\rm instead.% + }% + \global\csname if-\string#1false\endcsname + \fi + #4% + }% +} +\NameDef{@InputD-ts-subst.tip}{} +\font\RmLargerThanLife = cmr17 scaled \magstep5 +\NewFont\Vrm = cmr5 +\NewFont\Vit = cmti7 at 5pt +\NewFont\Vbf = cmbx5 +\NewFont\Vsc = cmcsc10 at 5pt +\SubstituteFont{\Vtt}{\tt}{7}{\VIIrm} +\SubstituteFont{\Vsc}{\sc}{7}{\VIIrm} +\SubstituteFont{\Vsl}{\sl}{7}{\VIIrm} +\NewFont\VIIrm = cmr7 +\NewFont\VIIit = cmti7 +\NewFont\VIIbf = cmbx7 +\NewFont\VIIsc = cmcsc10 at 7pt +\SubstituteFont{\VIItt}{\tt}{7}{\VIIrm} +\SubstituteFont{\VIIsl}{\sl}{7}{\VIIrm} +\NewFont\VIIIrm = cmr8 +\NewFont\VIIIit = cmti8 +\NewFont\VIIIbf = cmbx8 +\NewFont\VIIItt = cmtt8 +\NewFont\VIIIsc = cmcsc10 at 8pt +\SubstituteFont{\VIIIsl}{\sl}{8}{\VIIIrm} +\NewFont\IXrm = cmr9 +\NewFont\IXit = cmti9 +\NewFont\IXbf = cmbx9 +\NewFont\IXtt = cmtt9 +\NewFont\IXsc = cmcsc10 at 9pt +\SubstituteFont{\IXsl}{\sl}{9}{\IXrm} +\NewFont\Xrm = cmr10 +\NewFont\Xit = cmti10 +\NewFont\Xbf = cmbx10 +\NewFont\Xtt = cmtt10 +\NewFont\Xsc = cmcsc10 +\NewFont\Xsl = cmcsc10 +\NewFont\XIIrm = cmr12 +\NewFont\XIIit = cmti12 +\NewFont\XIIbf = cmbx12 +\NewFont\XIItt = cmtt12 +\NewFont\XIIsc = cmcsc10 scaled \magstep 1 +\NewFont\XIIsl = cmcsc10 scaled \magstep 1 +\NewFont\XIIIrm = cmr12 scaled \magstephalf +\NewFont\XIIIit = cmti12 scaled \magstephalf +\NewFont\XIIIbf = cmbx12 scaled \magstephalf +\NewFont\XIIItt = cmtt12 scaled \magstephalf +\NewFont\XIIIsc = cmcsc10 scaled \magstephalf +\NewFont\XIIIsl = cmcsc10 scaled \magstephalf +\NewFont\XVIIrm = cmr12 scaled \magstep 2 +\NewFont\XVIIit = cmti12 scaled \magstep 2 +\NewFont\XVIIbf = cmbx12 scaled \magstep 2 +\NewFont\XVIItt = cmtt12 scaled \magstep 2 +\NewFont\XVIIsc = cmcsc10 scaled \magstep 3 +\NewFont\XVIIsl = cmcsc10 scaled \magstep 3 +\NewFont\XXIrm = cmr17 scaled \magstep 1 +\NewFont\XXIit = cmti12 scaled \magstep 3 +\NewFont\XXIbf = cmbx12 scaled \magstep 3 +\NewFont\XXIsc = cmcsc10 scaled \magstep 4 +\LoadFontOnDemand{\XXItt}{cmtt12 scaled \magstep 3} +\SubstituteFont{\XXIsl}{\sl}{20.74}{\XXIrm} +\NewFont\XXVrm = cmr17 scaled \magstep 2 +\NewFont\XXVit = cmti12 scaled \magstep 4 +\NewFont\XXVbf = cmbx12 scaled \magstep 4 +\NewFont\XXVsc = cmcsc10 at 5pt +\LoadFontOnDemand{\XXVtt}{cmtt12 scaled \magstep 4} +\SubstituteFont{\XXVsl}{\sl}{20.74}{\XXVrm} +\DefineFontSizeGroup{V}{5} +\DefineFontSizeGroup{VII}{7} +\DefineFontSizeGroup{VIII}{8} +\DefineFontSizeGroup{IX}{9} +\DefineFontSizeGroup{X}{10} +\DefineFontSizeGroup{XII}{12} +\DefineFontSizeGroup{XIII}{13.14} +\DefineFontSizeGroup{XVII}{17.28} +\DefineFontSizeGroup{XXI}{20.74} +\DefineFontSizeGroup{XXV}{24.88} +\let\tiny = \FontSizeV +\let\scriptsize = \FontSizeVII +\let\footnotesize = \FontSizeVIII +\let\small = \FontSizeIX +\let\normalsize = \FontSizeX +\let\large = \FontSizeXII +\let\Large = \FontSizeXIII +\let\LARGE = \FontSizeXVII +\let\huge = \FontSizeXXI +\let\Huge = \FontSizeXXV +\def\LineSpaceMultFactor{1.2} +\normalsize +\NameDef{@InputD-ts-fonts.tip}{} +\catcode`\@ = 11 +\newcount\@WidestLoopCounter +\newbox\@WidestLoopBox +\def\FindWidestChar #1#2#3#4{% + #1 = 0pt + \DoLoop{\@WidestLoopCounter}{#3}{1}{#4}{% + \setbox\@WidestLoopBox = \hbox{% + #2% + \char\@WidestLoopCounter + }% + \MaxDimen{#1}{#1}{\wd\@WidestLoopBox}{}% + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-widestc.tip}{} +\catcode`\@ = 11 +\newdimen\@WidthLevelOneLabels +\FindWidestChar{\@WidthLevelOneLabels}{\normalsize\rm}% + {`\0}{`\9} +\setbox 0 = \hbox{.\hskip 1em} +\advance\@WidthLevelOneLabels by \wd0 +\def\@BeginEnumerateLevelOne{% + \BeginAList{\@WidthLevelOneLabels}{0pt}{1em}% + {12pt}{0pt}% + {0pt}{15pt}% +} +\newdimen\@WidthLevelTwoLabels +\FindWidestChar{\@WidthLevelTwoLabels}{\normalsize\rm}% + {`\a}{`\j} +\setbox 0 = \hbox{()\hskip 1em} +\advance\@WidthLevelTwoLabels by \wd0 +\def\@BeginEnumerateLevelTwo{% + \BeginAList{\@WidthLevelTwoLabels}{0pt}{10pt}% + {6pt}{0pt}% + {0pt}{15pt}% +} +\newdimen\@WidthLevelThreeLabels +\setbox 0 = \hbox{viii.\hskip 1em} +\@WidthLevelThreeLabels = \wd0 +\def\@BeginEnumerateLevelThree{% + \BeginAList{\@WidthLevelThreeLabels}{0pt}{10pt}% + {6pt}{0pt}% + {0pt}{15pt}% +} +\newdimen\@WidthLevelFourLabels +\FindWidestChar{\@WidthLevelFourLabels}{\normalsize\rm}% + {`\A}{`\J} +\setbox0 = \hbox{()\hskip 1em} +\advance\@WidthLevelFourLabels by \wd0 +\def\@BeginEnumerateLevelFour{% + \BeginAList{\@WidthLevelFourLabels}{0pt}{10pt}% + {6pt}{0pt}% + {0pt}{15pt}% +} +\def\EnumerateLevelOneExtended{% + \par + \FindWidestChar{\@WidthLevelOneLabels}{\normalsize\rm}% + {`\0}{`\9} + \multiply\@WidthLevelOneLabels by 2 + \setbox 0 = \hbox{.\hskip 1em}% + \advance\@WidthLevelOneLabels by \wd0 +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-enum.tip}{} +\catcode`\@ = 11 +\NewCounter{FigureNo}{\arabic}% + {\TheCounter{ChapterNo}.\TheCounter{FigureNo}}% + {\TheCounter{ChapterNo}.\TheCounter{FigureNo}}% +\NewCounter{TableNo}{\arabic}% + {\TheCounter{ChapterNo}.\TheCounter{TableNo}}% + {\TheCounter{ChapterNo}.\TheCounter{TableNo}}% +\AddCounterToResetList{FigureNo}{ChapterNo} +\AddCounterToResetList{TableNo}{ChapterNo} +\def\Caption{\DblArg{\@Caption}} +\def\@Caption [#1]#2{% + \errmessage{\string\@Caption: caption out of place, caption + text = #1.}% +} +\def\BeginFigure{% + \DoFutureLet{\ifx}{[}{\@BeginFigure}{\@BeginFigure[t]}% +} +\newif\if@FigureInsertOk +\def\@BeginFigure[#1]{% + \begingroup + \def\@UseThisInsert{}% + \@FigureInsertOkfalse + \if\StringsEqualConditional{#1}{t}% + \def\@UseThisInsert{\topinsert}% + \@FigureInsertOktrue + \fi + \if\StringsEqualConditional{#1}{p}% + \def\@UseThisInsert{\pageinsert}% + \@FigureInsertOktrue + \fi + \if@FigureInsertOk + \else + \errmessage{\string\@BeginFigure: illegal argument + "#1." Use [t] instead.}% + \def\@UseThisInsert{\topinsert}% + \fi + \gdef\FigureCaptionText{}% + \gdef\FigureCaptionTextLof{}% + \StepCounter{FigureNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{FigureNo}}{0}}% + \def\@Caption [##1]##2{% + \gdef\FigureCaptionTextLof{##1}% + \gdef\FigureCaptionText{##2}% + \wlog{\noexpand\@Caption (figures), caption text saved: + ##2.}% + }% + \setbox 0 = \vbox\bgroup +} +\def\EndFigure{% + \egroup + \@UseThisInsert + \box0 + \if\EmptyStringConditional{\FigureCaptionText}% + \else + \bigskip + \CenterOrParagraph{% + \small + Figure~\PrintCounter{FigureNo}. + \FigureCaptionText + }% + \WriteToAuxSpecial{lof}{1}{\PrintCounter{FigureNo}}% + {\FigureCaptionTextLof}{\PrintCounter{PageNo}}% + \fi + \endinsert + \endgroup +} +\def\BeginTable{% + \begingroup + \gdef\TableCaptionText{}% + \gdef\TableCaptionTextLot{}% + \StepCounter{TableNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{TableNo}}{0}}% + \def\@Caption [##1]##2{% + \gdef\TableCaptionText{##2}% + \gdef\TableCaptionTextLot{##1}% + \wlog{\noexpand\@Caption for tables: ##2}% + }% + \setbox 0 = \vbox\bgroup +} +\def\EndTable{% + \egroup + \topinsert + \if\EmptyStringConditional{\TableCaptionText}% + \else + \smallskip + \CenterOrParagraph{% + \small + Table~\PrintCounter{TableNo}. + \TableCaptionText}% + \WriteToAuxSpecial{lot}{1}{\PrintCounter{TableNo}}% + {\TableCaptionTextLot}{\PrintCounter{PageNo}}% + \smallskip + \fi + \box0 + \endinsert + \endgroup +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-float.tip}{} +\catcode`\@ = 11 +\NewCounter{FootNote}{\arabic}% + {\TheCounter{FootNote}}% + {\PrintCounter{FootNote}} +\AddCounterToResetList{FootNote}{ChapterNo} +\def\FootNote #1{% + \StepCounter{FootNote}% + \footnote{$^{\PrintCounter{FootNote}}$}% + {% + \small + \baselineskip = 9pt + #1% + }% +} +\skip\footins = 18.4pt +\def\@PrintFootnotePlain{% + \vskip 12pt plus 2pt minus 1pt + \hrule width 5pc height 0.4pt depth 0pt + \vskip 6pt plus 1pt minus 0.5pt + \unvbox\footins +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-foot.tip}{} +\NewCounter{VolumeNo}{\Roman}% + {\TheCounter{VolumeNo}}{\TheCounter{VolumeNo}} +\ReassignCounter{PageNo}{\arabic}% + {\TheCounter{PageNo}}% + {\TheCounter{VolumeNo}-\TheCounter{PageNo}} +\NameDef{@InputD-ts-vol.tip}{} +\catcode`\@ = 11 +\NewCounter{SectionNo}{\arabic}% + {\PrintCounter{ChapterNo}.\TheCounter{SectionNo}}% + {\PrintCounter{ChapterNo}.\TheCounter{SectionNo}}% +\NewCounter{SubSectionNo}{\arabic}% + {\PrintCounter{SectionNo}.\TheCounter{SubSectionNo}}% + {\PrintCounter{SectionNo}.\TheCounter{SubSectionNo}}% +\NewCounter{SubSubSectionNo}{\arabic}% + {\PrintCounter{SubSectionNo}.\TheCounter{SubSubSectionNo}}% + {\PrintCounter{SubSectionNo}.\TheCounter{SubSubSectionNo}}% +\NewCounter{CloseByReferenceCount}{\arabic}% + {\PrintCounter{CloseByReferenceCount}}% + {\PrintCounter{CloseByReferenceCount}}% +\AddCounterToResetList{SectionNo}{ChapterNo}% +\AddCounterToResetList{SubSectionNo}{SectionNo}% +\AddCounterToResetList{SubSubSectionNo}{SubSectionNo}% +\def\Section{\DblArg{\@Section}}% +\def\@Section [#1]#2{% + \StepCounter{SectionNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{SectionNo}}{1}}% + \GenericHeading{2}{36pt plus 10pt minus 2pt}% + {1}{1}{1}{24pt}{0}% + {\Large\baselineskip = 15pt}{-13pt}% + {\PrintCounter{SectionNo}}{#2}{#1}% + \gdef\EveryParB{% + {% + \@MakeRobustMacros + \def\LineBreakToc{ }% + \def\LineBreakHeading{ }% + \def\IgnoreInRunningHead ####1{% + \relax$\ldots$% + }% + \mark{#2}% + }% + }% +} +\def\SubSection{\DblArg{\@SubSection}}% +\def\@SubSection [#1]#2{% + \StepCounter{SubSectionNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{SubSectionNo}}{1}}% + \GenericHeading{3}{30pt plus 8pt minus 2pt}% + {1}{1}{1}{18pt}{0}% + {\large\baselineskip = 14pt}{-12pt}% + {\PrintCounter{SubSectionNo}}{#2}{#1}% +} +\def\SubSubSection{\DblArg{\@SubSubSection}}% +\def\@SubSubSection [#1]#2{% + \ifnum\TheCounter{SubSectionNo} = 0 + \errhelp = {The reason is probably that \string\Section + occurred directly followed by \string\SubSubSection + (that is you forgot a \string\SubSection in between).}% + \errmessage{\string\@SubSubSection: Counter "SubSectionNo" + is zero.}% + \fi + \StepCounter{SubSubSectionNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{SubSubSectionNo}}{1}}% + \GenericHeading{4}{24pt plus 6pt minus 1pt}% + {1}{1}{1}{18pt}{0}% + {\normalsize}{-10pt}% + {\PrintCounter{SubSubSectionNo}}{#2}{#1}% +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-shead.tip}{} +\NameDef{@InputD-ts-hall.tip}{} +\catcode`\@ = 11 +\def\label{\Label} +\def\WriteCountersToAuxFile{% + \@WriteCounter{VolumeNo}% + \@WriteCounter{ChapterNo}% + \@WriteCounter{AppendixNo}% + \@WriteCounter{SectionNo}% + \@WriteCounter{SubSectionNo}% + \@WriteCounter{SubSubSectionNo}% + \@WriteCounter{PageNo}% + \@WriteCounter{SWPageNo}% + \@WriteCounter{FigureNo}% + \@WriteCounter{TableNo}% + \@WriteCounter{CloseByReferenceCount}% +} +\def\Label #1{% + \message{\noexpand\Label currently undefined, + label "#1" ignored.}% +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-hmore.tip}{} +\lefthyphenmin = 2 +\righthyphenmin = 3 +\hyphenation{Ado-be} +\hyphenation{after} +\hyphenation{base-line-skip} +\hyphenation{man-u-script} +\hyphenation{obey-lines} +\hyphenation{obey-spaces} +\hyphenation{other-wise} +\NameDef{@InputD-ts-hyph.tip}{} +\catcode`\@ = 11 +\def\@BeginItemizeLevelOne{% + \BeginAList + {15pt}{0pt}{15pt}% + {12pt}{0pt}% + {0pt}{15pt}% +} +\def\@BeginItemizeLevelTwo{% + \BeginAList + {15pt}{0pt}{15pt}% + {6pt}{0pt}% + {0pt}{15pt}% +} +\def\@BeginItemizeLevelThree{% + \BeginAList + {15pt}{0pt}{15pt}% + {4pt}{0pt}% + {0pt}{15pt}% +} +\def\@BeginItemizeLevelFour{% + \BeginAList + {15pt}{0pt}{15pt}% + {4pt}{0pt}% + {0pt}{15pt}% +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-itize.tip}{} +\def\TeXIP{% + \TeX{} in Practice% +} +\def\WEB{% + {\tt WEB}% +} +\NameDef{@InputD-ts-lazy.tip}{} +\def\EntryIntolof #1#2#3#4{% + \ifcase #1 + \MaxVskip{12pt}% + \or + \GenTocEntry{#1}{10pt}{50pt}{50pt}{25pt}% + {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4} + \else + \errmessage{\string\EntryIntolof/lot: illegal level.}% + \fi +} +\let\EntryIntolot = \EntryIntolof +\NameDef{@InputD-ts-loft.tip}{} +\def\PS{{\sc Post\-Script}} +\font\MetafontLogoFont = logo10 scaled \magstep0 +\def\MF{{\MetafontLogoFont METAFONT}} +\def\textfontii{\the\textfont2} +\def\AmSTeX{{\textfontii A}\kern-.1667em\lower.5ex\hbox + {\textfontii M}\kern-.125em{\textfontii S}-\TeX} +\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} +\NameDef{@InputD-ts-logo.tip}{} +\catcode`\@ = 11 +\def\@MakeRobustMacros{% + \TreatAsRobust\rm + \TreatAsRobust\bf + \TreatAsRobust\it + \TreatAsRobust\tt + \TreatAsRobust\sc + \TreatAsRobust\mac + \TreatAsRobust\break + \TreatAsRobust\dots + \TreatAsRobust\MF + \TreatAsRobust\TeX + \TreatAsRobust\LaTeX + \TreatAsRobust\PS + \TreatAsRobust\AmSTeX + \TreatAsRobust\ldots + \TreatAsRobust\cdots + \TreatAsRobust\dots + \def\MakeRobust ##1{% + \noexpand\MakeRobust + \noexpand##1% + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-robst.tip}{} +\def\TeXIPVersionNumber{1.0} +\NameDef{@InputD-ts-vers.tip}{} +\def\MyNarrower{\narrower\narrower} +\frenchspacing +\NameDef{@InputD-ts-set.tip}{} +\def\EntryIntotoc #1#2#3#4{% + \par + \ifcase #1 + \bigskip + \or + \bigskip + \else + \relax + \fi + \ifcase #1 + \GenTocEntry{0}{0pt}{20pt}{20pt}{30pt}% + {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4} + \or + \GenTocEntry{1}{0pt}{40pt}{40pt}{30pt}% + {0pt}{10pt}{0.5in}{#2}{#3}{\bf}{#4} + \or + \GenTocEntry{2}{10pt}{50pt}{50pt}{30pt}% + {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4} + \or + \GenTocEntry{#1}{20pt}{60pt}{60pt}{30pt}% + {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4} + \or + \else + \errmessage{\string\EntryIntotoc: no level #1 subdivision + in this series.} + \fi +} +\NameDef{@InputD-ts-toc.tip}{} +\newdimen\LeftSkipVerbatim +\LeftSkipVerbatim = 0.3in +\def\VerbatimFont{\tt} +\newcount\VerbatimTab +\VerbatimTab = 8 +\newif\ifVerbLineNum +\VerbLineNumtrue +\newskip\DisplayVerbatimVskip +\DisplayVerbatimVskip = 0pt plus 2pt minus 1pt +\newif\ifCaretTab +\CaretTabfalse +\newtoks\VerbatimTokBegin \VerbatimTokBegin = {} +\newtoks\VerbatimTokLine \VerbatimTokLine = {} +\newtoks\VerbatimTokEnd \VerbatimTokEnd = {} +\catcode`\@ = 11 +\newdimen\@VerbatimLr +\@VerbatimLr = 1.5pt +\newif\if@IgnoreFirstNewLine +\if\FormatIsLaTeXConditional + \def\@VerbatimPar{\par\@@par}% + \def\@VerbatimNlf{\tiny}% +\else + \def\@VerbatimPar{\par}% + \def\@VerbatimNlf{\tiny}% +\fi +\newcount\@VerbatimLineNumber +\newif\if@VerbatimL +\newdimen\Verb@TabSize +\def\@VObeySpaces{% + \MakeActive{\ }% + \@@VObeySpaces +} +{% +\MakeActive{\ }% +\gdef\@@VObeySpaces{% +\def {\VerbControlSpace}% +}% +} +\def\@VObeyTabs{% + \MakeTabActive + \@@VObeyTabs +} +{ + \MakeTabActive + \gdef\@@VObeyTabs{% + \def^^I{\Verb@Tab}% + } +} +\def\Verb@Tab{% + \leavevmode + \egroup + \dimen0 = \wd0 + \divide\dimen0 by \Verb@TabSize + \advance\dimen0 by 1sp + \multiply\dimen0 by \Verb@TabSize + \wd0 = \dimen0 + \box0 + \setbox 0 = \hbox\bgroup +} +\def\@VObeyEol{% + \MakeEolActive % + \@@VObeyEol +} +{ + \MakeEolActive % + \gdef\@@VObeyEol{% + \let^^M = \Verb@Eol% + }% +} +\def\Verb@Eol{% + \if@IgnoreFirstNewLine + \else + \leavevmode + \egroup + \box 0 + \endgraf + \fi + \@IgnoreFirstNewLinefalse +} +\def\@VCaret{% + \MakeActive{\^}% + \@@VCaret +} +{ + \MakeActive{\^}% + \gdef\@@VCaret{% + \def^{% + \futurelet\@VSymbol\@@VCaretTwo + }% + \def\@@VCaretTwo{% + \ifx \@VSymbol^% + \let\@VerbNext = \@@VCaretThree + \else + \CaretText + \let\@VerbNext = \relax + \fi + \@VerbNext + }% + \def\@@VCaretThree ^{% + \futurelet\@VSymbol\@@VCaretFour + }% + \def\@@VCaretFour{% + \ifx \@VSymbol I% + \Verb@Tab + \else + \CaretText\CaretText\@VSymbol + \fi + \GobbleOne + }% + }% +} +\def\@StartVerbatim #1{% + \begingroup + \@VerbatimPar + \vskip\DisplayVerbatimVskip + \if\FormatIsLaTeXConditional + \else + \CancelSuppressNextParIndent + \fi + \setbox0 = \hbox{\VerbatimFont X} + \Verb@TabSize = \wd0 + \multiply\Verb@TabSize by \VerbatimTab + \parskip = 0pt + \parindent = 0pt + \leftskip = \LeftSkipVerbatim + \rightskip = 0pt + \parfillskip = 0pt plus 1fil + \spaceskip = 0pt + \xspaceskip = 0pt + \VerbatimFont + \if@VerbatimL + \else + \global\@VerbatimLineNumber = 0 + \fi + \global\@VerbatimLfalse + \ifnum #1 = 0 + \@IgnoreFirstNewLinetrue + \else + \@IgnoreFirstNewLinefalse + \fi + \if\FormatIsLaTeXConditional + \everypar = {\EveryParZ}% + \fi + \def\EveryParZ{% + \the\VerbatimTokLine + \global\advance\@VerbatimLineNumber by 1 + \ifVerbLineNum + \raise \@VerbatimLr \hbox to 0pt{% + \hss + \@VerbatimNlf + \the\@VerbatimLineNumber + \hskip 10pt + }% + \fi + \setbox 0 = \hbox\bgroup + }% + \MkOthers + \@VObeySpaces + \@VObeyTabs + \@VObeyEol + \ifCaretTab + \@VCaret + \fi +} +\def\@DoneVerbatim{% + \endgroup + \vskip\DisplayVerbatimVskip + \def\@VerbatimEndSpecialDeal{}% + \if\FormatIsLaTeXConditional + \else + \def\@VerbatimEndSpecialDeal{% + \ParLookAhead + {\SuppressNextParIndent}% + {} + }% + \fi + \@VerbatimEndSpecialDeal +} +\def\BeginVerbatim{% + \@StartVerbatim{0}% + \@BeginVerbatim +} +{ \catcode `| = 0 % | becomes escape character. + \catcode`\\ =12 % \ becomes regular character. + |gdef|@BeginVerbatim #1\EndVerbatim{% + #1% + |@DoneVerbatim + } +} +\def\BVerB{% + \@StartVerbatim{0}% + \@BVerB +} +{ + \catcode `| = 0 % | becomes escape character. + \catcode`\\ =12 % \ becomes regular character. + |gdef|@BVerB #1\EVerB{% + #1% + |@DoneVerbatim + } +} +\def\AppendVerbatimL #1{% + \global\@VerbatimLtrue + \global\advance\@VerbatimLineNumber by #1\relax +} +\def\StartVerbatimL #1{% + \global\@VerbatimLtrue + \global\@VerbatimLineNumber = #1\relax +} +\newcount\@SaveVerbatimLineNumber +\def\PushVerbatimL{% + \global\@SaveVerbatimLineNumber = \@VerbatimLineNumber + \global\VerbLineNumfalse +} +\def\PopVerbatimL{% + \global\@VerbatimLineNumber = \@SaveVerbatimLineNumber + \global\VerbLineNumtrue +} +\catcode`\@ = 12 +\NameDef{@InputD-verbdisp.tip}{} +\catcode`\@ = 11 +\def\ListVerb #1{% + \@StartVerbatim{1}% + \input #1 + \@DoneVerbatim +} +\def\ListVerbIfFileExists #1{% + \par + \if\FileExistsConditional{#1}% + \ListVerb{#1}% + \else + \centerline{$\bullet$ File {\tt #1} not found. $\bullet$}% + \wlog{\string\ListVerbIfFileExists: no file "#1".}% + \fi +} +\def\ListVerbAndSource #1{% + \ListVerb{#1}% + \input #1 +} +\catcode`\@ = 12 +\NameDef{@InputD-verb-mac.tip}{} +\catcode`\@ = 11 +{\catcode`\ = \active +\gdef\@InitActiveSpace{\edef {\VerbControlSpace}}} +\newif\if@VerbSpaceControl +\def\Verb{% + \NextCharTest{*}{\@VerbSpaceControltrue \@VerbA}% + {\@VerbSpaceControlfalse\@VerbA}% +} +\def\@VerbA #1{% + \bgroup + \tt + \MkOthers + \if@VerbSpaceControl + \else + \catcode`\ = \active + \@InitActiveSpace + \fi + \def\@VerbTemp ##1#1{% + ##1% % Simply print the argument. + \egroup % Undo font change and category code changes. + }% + \@VerbTemp +} +\catcode`\@ = 12 +\NameDef{@InputD-verb.tip}{} +\catcode`\@ = 11 +\newwrite\@VStream +\newif\if@VStreamOpen +\@VStreamOpenfalse +\newcount\@VerbWriteCount +\@VerbWriteCount = 0 +\def\BeginVerbWrite #1#2{% + \global\advance\@VerbWriteCount by 1 + \wlog{\string\BeginVerbWrite: [\the\@VerbWriteCount]}% + \DefaultArg{\@VerbWriteBaseName}{#1}{\jobname}% + \DefaultArg{\@VerbWriteFileExt}{#2}{ver}% + \xdef\@VerbWriteFileName{\@VerbWriteBaseName.\@VerbWriteFileExt}% + \if@VStreamOpen + \errmessage{\string\BeginVerbWrite: ERROR, file still open.}% + \fi + \OpenVerbWrFile{\@VerbWriteBaseName}{\@VerbWriteFileExt}% + {\@VStream}% + \global\@VStreamOpentrue + \BeginVerbWr{\@VStream}{\EndVerbWrite}% +} +\def\CloseVerbWriteFile{% + \if@VStreamOpen + \CloseVerbWrFile{\@VStream}% + \global\@VStreamOpenfalse + \fi +} +\def\AppendVerbWrite{% + \wlog{\string\AppendVerbWrite: [\the\@VerbWriteCount]}% + \if@VStreamOpen + \else + \errmessage{\string\AppendVerbWrite: no file open.}% + \fi + \xdef\@VerbWriteFileName{\@VerbWriteBaseName.\@VerbWriteFileExt}% + \BeginVerbWr{\@VStream}{\EndVerbWrite}% +} +\def\VerbAsVerb{% + \CloseVerbWriteFile + {% + \CaretTabtrue + \ListVerb{\@VerbWriteFileName}% + }% +} +\def\VerbAsSource{% + \CloseVerbWriteFile + \input \@VerbWriteFileName \relax +} +\catcode`\@ = 12 +\NameDef{@InputD-vwrt-mac.tip}{} +\catcode`\@ = 11 +\def\@btex{% + \par + \bgroup + \small +} +\def\@etex{% + \nobreak + \egroup + \if\FormatIsLaTeXConditional + \def\@EtexEnd{}% + \else + \def\@EtexEnd{% + \ParLookAhead + {}% + {\SuppressNextParIndent}% + }% + \fi + \@EtexEnd +} +\def\btex{% + \@btex + \@StartVerbatim{0}% + \btex@more +} +{ + \catcode `| = 0 % | becomes escape character. + \catcode`\\ = 12 % \ now prints. + |gdef|btex@more #1\etex{% + #1% + |@DoneVerbatim + |@etex + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-verb1.tip}{} +\catcode`\@ = 11 +\def\Btexalt{% + \@btex + \@StartVerbatim{0}% + \btex@morealt +} +{ + \catcode `| = 0 % | becomes escape character. + \catcode`\\ = 12 % \ now prints. + |gdef|btex@morealt #1\Etexalt{% + #1% + |@DoneVerbatim + |@etex + }% +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-verb2.tip}{} +\catcode`\@ = 11 +\def\verb{\Verb} +\VerbLineNumtrue +\VerbatimTab = 4 +\DisplayVerbatimVskip = 5pt +\def\VerbatimFont{\small\tt}% +\def\ListVerbTeXIP #1{% + \par + \medskip + \vskip 60pt + \vskip -60pt + \def\ListAsFileName{#1}% + \def\LabelName{code-#1}% + \if\SuffixConditional{#1}{.flf}% + \def\ListAsFileName ##1.flf{\def\ListAsFileName{##1.log}}% + \ListAsFileName #1% + \def\LabelName{}% + \else + \if\SuffixConditional{#1}{.flf2}% + \def\ListAsFileName ##1.flf2{\def\ListAsFileName{##1.log}}% + \ListAsFileName #1% + \def\LabelName{}% + \fi + \fi + \if\StringsEqualConditional{#1}{\jobname.ver}% + \def\ListAsFileName{}% + \def\LabelName{}% + \fi + \if\StringsEqualConditional{#1}{ex-verbwr.ver} + \def\LabelName{}% + \fi + \if\EmptyStringConditional{\LabelName}% + \else + \Label{code-#1}% + \fi + \if\EmptyStringConditional{\ListAsFileName} + \else + \centerline{% + $\bullet$% + \space + \tt\ListAsFileName + \space + $\bullet$% + }% + \fi + \@btex + \@StartVerbatim{1}% + \wlog{[\string\ListVerbTeXIP:}% + \input #1 + \wlog{]}% svb: this was \message before + \@DoneVerbatim + \@etex +} +\catcode`\@ = 12 +\NameDef{@InputD-ts-verb.tip}{} +\newif\ifIndexSpecial +\IndexSpecialfalse +\catcode`\@ = 11 +\newwrite\IdxStream +\newwrite\IdxStreamSource +\newif\if@IndexFilesOpen +\@IndexFilesOpenfalse +\def\OpenIndexFiles #1{% + \if\EmptyStringConditional{#1}% + \gdef\@IndexFileBaseName{\jobname}% + \else + \gdef\@IndexFileBaseName{#1}% + \fi + \if@IndexFilesOpen + \message{\string\OpenIndexFiles: index files + already open.}% + \message{\string\OpenIndexFiles: will close + old files, open new ones with basename + "\@IndexFileBaseName".}% + \immediate\closeout\IdxStream + \immediate\closeout\IdxStreamSource + \fi + \@IndexFilesOpentrue + \immediate\openout\IdxStream = \@IndexFileBaseName.idx + \immediate\openout\IdxStreamSource = \@IndexFileBaseName.idx2 + \SetIndexStream{\IdxStream}% +} +\def\CloseIndexFiles{% + \if@IndexFilesOpen + \immediate\closeout\IdxStream + \immediate\closeout\IdxStreamSource + \@IndexFilesOpenfalse + \fi +} +\def\SetIndexStream #1{% + \let\IdxStreamUse = #1% +} +\def\Index{% + \begingroup + \MkOthersNoCB + \@Index +} +\xdef\@IndexSuffixMod{}% +\def\@Index #1{% + \let\PrintCounter = \relax + \xdef\IndexTemp{% + \write\IdxStreamUse{% + \string\indexentry{#1\@IndexSuffixMod}% + {\PrintCounter{SWPageNo}}}% + }% + \ifIndexSpecial + \SideNoteText{I: #1}% + \fi + \xdef\@IndexSuffixMod{}% + \endgroup + \IndexTemp +} +\def\IndexP #1{% + \Index{#1}% + #1% +} +\def\IndexCS #1{% + \CSToString{\@IndexCSTemp}{#1}% + \expandafter\expandafter\expandafter + \Index{% + \@IndexCSTemp + @% + {% + \string\tt + \string\string + \string#1% + }% + }% +} +\def\IndexCSX #1{% + \CSToString{\@IndexCSTemp}{#1}% + \expandafter\expandafter\expandafter + \Index{% + #1% + @% + {% + \string\tt + \string\string + \Backslash#1% + }% + }% +} +\def\IndexCSP #1{% + \IndexCS{#1}% + {\tt\string#1}% +} +\def\IndexPrim #1{% + \CSToString{\@IndexCSTemp}{#1}% + \expandafter\expandafter\expandafter + \Index{\@IndexCSTemp @% + {\string\tt\string\string\string#1}|PRIMITIVE}% +} +\def\IndexPrimP #1{% + \IndexPrim{#1}% + {\tt\string #1}% +} +\def\IndexPar{\Index{par@\string\PrintParPrimitive}} +\def\PrintParPrimitive{\BackslashTt{\tt par}} +\def\IndexBye{\Index{bye@\string\PrintByePrimitive}} +\def\PrintByePrimitive{\BackslashTt{\tt bye}} +\def\IndexIf{\Index{if@\string\PrintIf|PRIMITIVE}} +\def\PrintIf{{\tt\string\if}} +\def\IndexElse{\Index{else@\string\PrintElse|PRIMITIVE}} +\def\PrintElse{{\tt\string\else}} +\def\IndexFi{\Index{fi@\string\PrintFi|PRIMITIVE}} +\def\PrintFi{{\tt\string\fi}} +\def\IndexIfCase{\Index{ifcase@\string\PrintIfCase|PRIMITIVE}} +\def\PrintIfCase{{\tt\string\ifcase}} +\def\IndexIfCat{\Index{ifcat@\string\PrintIfCat|PRIMITIVE}} +\def\PrintIfCat{{\tt\string\ifcat}} +\def\IndexIfX{\Index{ifx@\string\PrintIfX|PRIMITIVE}} +\def\PrintIfX{{\tt\string\ifx}} +\def\IndexIfOdd{\Index{ifodd@\string\PrintIfOdd|PRIMITIVE}} +\def\PrintIfOdd{{\tt\string\ifodd}} +\def\IndexIfHbox{\Index{ifhbox@\string\PrintIfHbox|PRIMITIVE}} +\def\PrintIfHbox{{\tt\string\ifhbox}} +\def\IndexIfVbox{\Index{ifvbox@\string\PrintIfVbox|PRIMITIVE}} +\def\PrintIfVbox{{\tt\string\ifvbox}} +\def\IndexIfVoid{\Index{ifvoid@\string\PrintIfVoid|PRIMITIVE}} +\def\PrintIfVoid{{\tt\string\ifvoid}} +\def\IndexIfNum{\Index{ifnum@\string\PrintIfNum|PRIMITIVE}} +\def\PrintIfNum{{\tt\string\ifnum}} +\def\IndexIfDim{\Index{ifdim@\string\PrintIfDim|PRIMITIVE}} +\def\PrintIfDim{{\tt\string\ifdim}} +\def\IndexIfHmode{\Index{ifhmode@\string\PrintIfHmode|PRIMITIVE}} +\def\PrintIfHmode{{\tt\string\ifhmode}} +\def\IndexIfVmode{\Index{ifvmode@\string\PrintIfVmode|PRIMITIVE}} +\def\PrintIfVmode{{\tt\string\ifvmode}} +\def\IndexIfMmode{\Index{ifvmode@\string\PrintIfMmode|PRIMITIVE}} +\def\PrintIfMmode{{\tt\string\ifvmode}} +\def\IndexIfInner{\Index{ifinner@\string\PrintIfInner|PRIMITIVE}} +\def\PrintIfInner{{\tt\string\ifinner}} +\def\IndexIfEof{\Index{ifeof@\string\PrintIfEof|PRIMITIVE}} +\def\PrintIfEof{{\tt\string\ifeof}}% +\def\IndexIfTrue{\Index{iftrue@\string\PrintIfTrue|PRIMITIVE}} +\def\PrintIfTrue{{\tt\string\iftrue}}% +\def\IndexIfFalse{\Index{iffalse@\string\PrintIfFalse|PRIMITIVE}} +\def\PrintIfFalse{{\tt\string\iffalse}}% +\def\IndexRepeat{\Index{repeat@\string\PrintRepeat}} +\def\PrintRepeat{{\tt\string\repeat}}% +\xdef\@IndexSuffixMod{}% +\def\IndexPSet #1{% + \CSToString{\@IndexPSetResult}{#1}% + \xdef\@IndexSuffixMod{|IndexP\@IndexPSetResult}% +} +\def\IndexPit #1{{\it #1}} +\def\IndexPbf #1{{\bf #1}} +\catcode`\@ = 12 +\NameDef{@InputD-ts-wind.tip}{} +\def\WriteCounterOutImmediately #1#2{% + \OpenGenericOStream{#1}% + \immediate\write\GenericOStream + {\PrintCounter{#2}}% + \CloseGenericOStream +} +\NameDef{@InputD-ts-writc.tip}{} +\catcode`\@ = 11 +\newdimen\@VtboxDim +\newbox\@VtboxBox +\def\Vtbox #1#2{% + \@VtboxDim = \ht#1% + \advance\@VtboxDim by \dp#1% + \setbox\@VtboxBox = \vbox{\unvcopy #1}% + \advance\@VtboxDim by -\ht\@VtboxBox + \advance\@VtboxDim by -\dp\@VtboxBox + #2\setbox #1 = \vtop spread \@VtboxDim {\unvbox #1}% +} +\catcode`\@ = 12 +\NameDef{@InputD-vtbox.tip}{} +\def\WritingParShape{% + \wlog{\string\WritingParShape: begin}% + \wlog{}% + \wlog{\string\pretolerance: \the\pretolerance}% + \wlog{\string\tolerance: \the\tolerance}% + \wlog{\string\prevgraf: \the\prevgraf}% + \wlog{}% + \wlog{\string\parskip: \the\parskip}% + \wlog{\string\baselineskip: \the\baselineskip}% + \wlog{\string\lineskip: \the\lineskip}% + \wlog{\string\lineskiplimit: \the\lineskiplimit}% + \wlog{}% + \wlog{\string\parindent: \the\parindent}% + \wlog{\string\hsize: \the\hsize}% + \wlog{\string\leftskip: \the\leftskip}% + \wlog{\string\rightskip: \the\rightskip}% + \wlog{\string\parfillskip: \the\parfillskip}% + \wlog{\string\spaceskip: \the\spaceskip}% + \wlog{\string\xspaceskip: \the\xspaceskip}% + \wlog{}% + \wlog{\string\hyphenpenalty: \the\hyphenpenalty}% + \wlog{\string\exhyphenpenalty: \the\exhyphenpenalty}% + \wlog{\string\lefthyphenmin: \the\lefthyphenmin}% + \wlog{\string\righthyphenmin: \the\righthyphenmin}% + \wlog{\string\lefthyphenmin: \the\lefthyphenmin}% + \wlog{}% + \wlog{\string\adjdemerits: \the\adjdemerits}% + \wlog{\string\doublehyphendemerits: \the\doublehyphendemerits}% + \wlog{\string\finalhyphendemerits: \the\finalhyphendemerits}% + \wlog{\string\linepenalty: \the\linepenalty}% + \wlog{\string\sfcode\string\`.: \the\sfcode`\.}% + \wlog{\string\hyphenchar: \the\hyphenchar\tenrm}% + \wlog{}% + \wlog{\string\binoppenalty: \the\binoppenalty}% + \wlog{\string\relpenalty: \the\relpenalty}% + \wlog{}% + \wlog{\string\everypar: \the\everypar}% + \wlog{\string\WritingParShape: end}% +} +\NameDef{@InputD-wl-parcp.tip}{} +\catcode`\@ = 11 +\newwrite\@VerbArgStream +\def\WriteVerbatimArgument #1#2{% + \immediate\openout\@VerbArgStream = #1 + \def\@AfterWriteVerbatimArgument{#2}% + \begingroup + \MkOthersNoCB + \@WriteVerbatimArgument +} +\def\@WriteVerbatimArgument #1{% + \immediate\write\@VerbArgStream{#1}% + \immediate\closeout\@VerbArgStream + \endgroup + \@AfterWriteVerbatimArgument +} +\catcode`\@ = 12 +\NameDef{@InputD-wrverbar.tip}{} +\catcode`\@ = 11 +\newcount\X@ParShapeCountA +\newcount\X@ParShapeCountB +\newcount\X@ParShapeCountC +\newdimen\X@ParShapeDimenA +\newdimen\X@ParShapeDimenB +\def\XParShape{% + \def\X@ParShapeCollect{ }% + \X@ParShapeCountC = 0 + \afterassignment\X@ParShapeB + \X@ParShapeCountA +} +\def\X@ParShapeB{% + \ifnum\X@ParShapeCountA = 0 + \let\@XParShapeNext = \X@ParShapeD + \else + \advance\X@ParShapeCountA by -1 + \let\@XParShapeNext = \X@ParShapeC + \fi + \@XParShapeNext +} +\def\X@ParShapeD{% + \parshape = \X@ParShapeCountC\X@ParShapeCollect +} +\def\X@ParShapeC #1 #2 #3 #4 #5 {% + \message{\string\X@ParShapeC: #1, #2, #3, #4, #5}% + \X@ParShapeDimenA = #2% + \X@ParShapeDimenB = #4% + \DoLoop{\X@ParShapeCountB}{1}{1}{#1}% + {% + \edef\X@ParShapeCollect{% + \space + \X@ParShapeCollect + \the\X@ParShapeDimenA + \space + \the\X@ParShapeDimenB + \space + }% + \advance\X@ParShapeCountC by 1 + \advance\X@ParShapeDimenA by #3\relax + \advance\X@ParShapeDimenB by #5\relax + }% + \X@ParShapeB +} +\catcode`\@ = 12 +\NameDef{@InputD-x-parsh.tip}{} +\newif\ifInputDVerbose +\InputDVerbosefalse +\catcode`\@ = 11 +\newif\if@InputDList +\@InputDListfalse +\def\@InputDPrefix{@InputD-} +\NameDef{\@InputDPrefix namedef.tip}{} +\def\InputD #1{% + \if\NameDefinedConditional{\@InputDPrefix #1}% + \ifInputDVerbose + \wlog{\string\InputD: file "#1" was read-in before.}% + \fi + \else + \NameDef{\@InputDPrefix #1}{}% + \input #1 + \if@InputDList + \immediate\write\@InputDStream{#1}% + \fi + \fi +} +\catcode`\@ = 12 +\dump diff --git a/info/examples/tex-in-practice/tip-bugs.tex b/info/examples/tex-in-practice/tip-bugs.tex new file mode 100644 index 0000000000..ad2c2b1fbf --- /dev/null +++ b/info/examples/tex-in-practice/tip-bugs.tex @@ -0,0 +1,3153 @@ +% Here the output of program inputd begins! +\def\InputD #1{} +\def\ListInputD{} + + +% Here begins "namedef.tip". +% 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 19.1.8, p. III-73. +% Original source in file "tokens2.TEX", starting line 414. +\wlog{L: "namedef.tip" ["tokens2.TEX," l. 414, p. III-73]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\NameDef #1{% + \expandafter\def\csname #1\endcsname +} +\def\NameEdef #1{% + \expandafter\edef\csname #1\endcsname +} +\def\NameGdef #1{% + \expandafter\gdef\csname #1\endcsname +} +\def\NameXdef #1{% + \expandafter\xdef\csname #1\endcsname +} +\def\NameNewDef #1{% + \if\NameDefinedConditional{#1}% + \errmessage{\string\NameNewDef: "#1" already defined.}% + \fi + \NameDef{#1}% +} +\def\NameReDef #1{% + \if\NameDefinedConditional{#1}% + \else + \errmessage{\string\NameReDef: "#1" never defined before.}% + \fi + \NameDef{#1}% +} +\def\NameUse #1{\csname #1\endcsname} +\def\NameUseFlagUndefined #1{% + \if\NameDefinedConditional{#1}% + \NameUse{#1}% + \else + \errmessage{\string\NameUseFlagUndefined: token "#1" + is undefined.}% + \fi +} +\newif\if@NameDefined +\def\NameDefinedConditional #1{% + TT\fi + \expandafter\ifx\csname #1\endcsname \relax + \@NameDefinedfalse + \else + \@NameDefinedtrue + \fi + \if@NameDefined +} +\catcode`\@ = 12 +% Here the output of inputd ends "namedef.tip". + + +% Here begins "everypar.tip". +% 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 10.9.3, p. II-34. +% Original source in file "par1.TEX", starting line 1707. +\wlog{L: "everypar.tip" ["par1.TEX," l. 1707, p. II-34]}% +% This file DOES belong to format "texip." +\everypar = {% + \EvalEveryPars + \ClearEveryPars +} +\def\EvalEveryParsCE{% + \EveryParC + \EveryParD + \EveryParE +} +\def\EvalEveryPars{% + \EveryParA + \EveryParB + \EvalEveryParsCE + \EveryParZ +} +\def\ClearEveryPars{% + \gdef\EveryParA{}% + \gdef\EveryParB{}% + \gdef\EveryParC{}% + \gdef\EveryParD{}% + \gdef\EveryParE{}% +} +\def\ClearEveryParsAll{% + \ClearEveryPars + \gdef\EveryParZ{}% +} +\ClearEveryParsAll +% Here the output of inputd ends "everypar.tip". + + +% Here begins "futlet.tip". +% 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 23.4.3, p. III-256. +% Original source in file "macros3.TEX", starting line 1021. +\wlog{L: "futlet.tip" ["macros3.TEX," l. 1021, p. III-256]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\long\def\DoLongFutureLet #1#2#3#4{% + \def\@FutureLetDecide{% + #1#2\@FutureLetToken + \def\@FutureLetNext{#3}% + \else + \def\@FutureLetNext{#4}% + \fi + \@FutureLetNext + }% + \futurelet\@FutureLetToken\@FutureLetDecide +} +\def\DoFutureLet #1#2#3#4{\DoLongFutureLet{#1}{#2}{#3}{#4}} +\catcode`\@ = 12 +% Here the output of inputd ends "futlet.tip". + + +% Here begins "funospac.tip". +% 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 23.4.10.1, p. III-271. +% Original source in file "macros3.TEX", starting line 1710. +\wlog{L: "funospac.tip" ["macros3.TEX," l. 1710, p. III-271]}% +% This file DOES belong to format "texip." +\InputD{futlet.tip} +\catcode`\@ = 11 +\def\FutureLetNoSpace #1#2{% + \def\@FutureLetTokenA{#1}% + \def\@FutureLetTokenB{#2}% + \@FutureLetOne +} +\def\@FutureLetOne{% + \DoFutureLet{\ifx}{ }% + {\@FutureLetThree}{\@FutureLetOk}% +} +\edef\@FutureLetNoSpaceTemp{% + \def\noexpand\@FutureLetThree\space{\noexpand\@FutureLetOne}% +} +\@FutureLetNoSpaceTemp +\def\@FutureLetOk{% + \expandafter\futurelet\@FutureLetTokenA\@FutureLetTokenB +} +\long\def\DoLongFutureLetNoSpace #1#2#3#4{% + \def\@FutureLetDecideNoSpace{% + #1#2\@FutureLetTokenNoSpace + \def\@FutureLetNextNoSpace{#3}% + \else + \def\@FutureLetNextNoSpace{#4}% + \fi + \@FutureLetNextNoSpace + }% + \FutureLetNoSpace{\@FutureLetTokenNoSpace}% + {\@FutureLetDecideNoSpace}% +} +\def\DoFutureLetNoSpace #1#2#3#4{% + \DoLongFutureLetNoSpace{#1}{#2}{#3}{#4}% +} +\catcode`\@ = 12 +% Here the output of inputd ends "funospac.tip". + + +% Here begins "futpar.tip". +% 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 23.4.11, p. III-274. +% Original source in file "macros3.TEX", starting line 1899. +\wlog{L: "futpar.tip" ["macros3.TEX," l. 1899, p. III-274]}% +% This file DOES belong to format "texip." +\InputD{funospac.tip} +\def\ParLookAhead #1#2{% + \DoLongFutureLetNoSpace{\ifx}{\par}% + {#1}{#2}% +} +% Here the output of inputd ends "futpar.tip". + + +% Here begins "parin.tip". +% 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 10.9.4, p. II-35. +% Original source in file "par1.TEX", starting line 1808. +\wlog{L: "parin.tip" ["par1.TEX," l. 1808, p. II-35]}% +% This file DOES belong to format "texip." +\InputD{everypar.tip} +\newdimen\NormalParIndent +\def\SetParIndent #1{% + \NormalParIndent = #1% + \parindent = #1% +} +\def\SuppressNextParIndent{% + \global\parindent = 0pt + \gdef\EveryParA{% + \global\parindent = \NormalParIndent + % \hskip-\parindent + }% +} +\def\CancelSuppressNextParIndent{% + \global\parindent = \NormalParIndent + \gdef\EveryParA{}% +} +% Here the output of inputd ends "parin.tip". + + +% Here begins "verb-bas.tip". +% 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 18.3.1, p. III-27. +% Original source in file "tokens1.TEX", starting line 1625. +\wlog{L: "verb-bas.tip" ["tokens1.TEX," l. 1625, p. III-27]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\MakeOther #1{\catcode `#1 = 12 } +\def\MakeActive #1{\catcode `#1 = \active\relax} +\def\MakeEolActive{\MakeActive{\^^M}} +\def\MakeTabActive{\MakeActive{\^^I}} +\def\MkOthersNoCB{% + \MakeOther{\ }% + \MakeOther{\\}% + \MakeOther{\$}% + \MakeOther{\&}% + \MakeOther{\#}% + \MakeOther{\^}\MakeOther{\^^K}% + \MakeOther{\_}\MakeOther{\^^A}% + \MakeOther{\%}% + \MakeOther{\~}% +} +\def\MkOthers{% + \MakeOther{\{}% + \MakeOther{\}}% + \MkOthersNoCB +} +{\catcode`\^^I = 11 +\gdef\@TabAsLiteral{^^I}% +} +\catcode`\[ = 1 +\catcode`\] = 2 +[ + \catcode`\{ = 12 + \catcode`\} = 12 + \gdef\LeftBraceText[{] + \gdef\RightBraceText[}] +] +\catcode`\[ = 12 +\catcode`\] = 12 +\def\AcuteAccentText{\'{}} +\def\AcuteAccentTt{{\tt\AcuteAccentText}} +\def\AmpersandText{\char`\&} +\def\AmpersandTt{{\tt\AmpersandText}} +\def\ApostropheText{'{}} +\def\ApostropheTt{{\tt\ApostropheText}} +\def\AtSignText{@} +\def\AtSignTt{{\tt\AtSignText}} +{% + \catcode`| = 0 + |catcode`\\ = 12 + |gdef|Backslash{\} +} +\def\BackslashTt{{\tt\char`\\}} +\def\CaretText{\char`\^{}} +\def\CaretTt{{\tt\CaretText}} +\def\DollarSignText{\$} +\def\DollarSignTt{{\tt\DollarSignText}} +{ + \catcode`\# = 12 + \gdef\PoundSign{#} +} +\def\pounds{{\it\char'44 }} +\def\DoubleQuoteTt{{\tt"}} +\def\EmDashText{{}---{}} +\def\EmDashTt{{\tt\EmDashText}} +\def\EnDashText{{}--{}} +\def\EnDashTt{{\tt\EnDashText}} +\def\ExclamationPointText{!} +\def\ExclamationPointTt{{\tt\ExclamationPointText}} +\def\GreaterThanSign{>} +\def\GreaterThanSignTt{{\tt\GreaterThanSign}} +\def\HyphenText{-} +\def\HyphenTt{{\tt\HyphenText}} +\def\OpenExclamationText{>} +\def\OpenExclamationTt{{\tt\OpenExclamationText}} +\def\LeftBraceTt{{\tt\LeftBraceText}} +\def\LeftBracketText{[} +\def\LeftBracketTt{{\tt\LeftBracketText}} +\def\LeftParenthesisText{(} +\def\LeftParenthesisTt{{\tt\LeftParenthesisText}} +\def\LeftQuoteText{`{}} +\def\LeftQuoteTt{{\tt\LeftQuoteText}} +\def\LessThanSign{<} +\def\LessThanSignTt{{\tt\LessThanSign}} +\def\MinusSignText{-} +\def\MinusSignTt{{\tt\MinusSignText}} +\def\OpenQuestionText{<} +\def\OpenQuestionTt{{\tt\OpenQuestionText}} +\def\PlusSignText{+} +\def\PlusSignTt{{\tt\PlusSignText}} +\def\PercentSignText{\%} +\def\PercentSignTt{{\tt\PercentSignText}} +{ + \catcode`\% = 12 + \gdef\PercentSignPure{%} +} +\def\PeriodText{.} +\def\PeriodTt{{\tt\PeriodText}} +\def\PoundSignText{\#} +\def\PoundSignTt{{\tt\PoundSignText}} +\def\QuestionMarkText{?} +\def\QuestionMarkTt{{\tt\QuestionMarkText}} +\def\RightBraceTt{{\tt\RightBraceText}} +\def\RightBracketText{]} +\def\RightBracketTt{{\tt\RightBracketText}} +\def\RightQuoteText{'{}} +\def\RightQuoteTt{{\tt\RightQuoteText}} +\def\RightParenthesisText{)} +\def\RightParenthesisTt{{\tt\RightParenthesisText}} +\def\SpaceText{ } +\def\VisibleSpaceTt{{\tt\char"20}} +\def\TildeText{\char`\~{}} +\def\TildeTt{{\tt\TildeText}} +\def\UnderscoreText{\char`\_} +\def\UnderscoreTt{{\tt\UnderscoreText}} +\def\VerbControlSpace{\ } +\catcode`\@ = 12 +% Here the output of inputd ends "verb-bas.tip". + + +% Here begins "testdef.tip". +% 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 21.5.6, p. III-173. +% Original source in file "macros1.TEX", starting line 1179. +\wlog{L: "testdef.tip" ["macros1.TEX," l. 1179, p. III-173]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newif\if@Defined +\def\DefinedConditional #1{% + TT\fi + \ifx\@UndefinedToken #1% + \@Definedfalse + \else + \@Definedtrue + \fi + \if@Defined +} +\catcode`\@ = 12 +% Here the output of inputd ends "testdef.tip". + + +% Here begins "gobble.tip". +% 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 21.8.6, p. III-186. +% Original source in file "macros1.TEX", starting line 1836. +\wlog{L: "gobble.tip" ["macros1.TEX," l. 1836, p. III-186]}% +% This file DOES belong to format "texip." +\def\GobbleOne #1{} +\def\GobbleTwo #1#2{} +\def\GobbleThree#1#2#3{} +\def\GobbleFour #1#2#3#4{} +\def\GobbleFive #1#2#3#4#5{} +\def\GobbleSix #1#2#3#4#5#6{} +\def\GobbleSeven#1#2#3#4#5#6#7{} +\def\GobbleEight#1#2#3#4#5#6#7#8{} +\def\GobbleNine #1#2#3#4#5#6#7#8#9{} +% Here the output of inputd ends "gobble.tip". + + +% Here begins "loadedla.tip". +% 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 21.5.6, p. III-174. +% Original source in file "macros1.TEX", starting line 1267. +\wlog{L: "loadedla.tip" ["macros1.TEX," l. 1267, p. III-174]}% +% This file DOES belong to format "texip." +\InputD{testdef.tip} +\def\FormatIsLaTeXConditional{% + TT\fi + \if\DefinedConditional{\documentstyle}% +} +% Here the output of inputd ends "loadedla.tip". + + +% Here begins "verbdisp.tip". +% 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 18.3.13, p. III-45. +% Original source in file "tokens1.TEX", starting line 2639. +\wlog{L: "verbdisp.tip" ["tokens1.TEX," l. 2639, p. III-45]}% +% This file DOES belong to format "texip." +\InputD{everypar.tip} +\InputD{futpar.tip} +\InputD{parin.tip} +\InputD{verb-bas.tip} +\InputD{testdef.tip} +\InputD{gobble.tip} +\InputD{loadedla.tip} +\newdimen\LeftSkipVerbatim +\LeftSkipVerbatim = 0.3in +\def\VerbatimFont{\tt} +\newcount\VerbatimTab +\VerbatimTab = 8 +\newif\ifVerbLineNum +\VerbLineNumtrue +\newskip\DisplayVerbatimVskip +\DisplayVerbatimVskip = 0pt plus 2pt minus 1pt +\newif\ifCaretTab +\CaretTabfalse +\newtoks\VerbatimTokBegin \VerbatimTokBegin = {} +\newtoks\VerbatimTokLine \VerbatimTokLine = {} +\newtoks\VerbatimTokEnd \VerbatimTokEnd = {} +\catcode`\@ = 11 +\newdimen\@VerbatimLr +\@VerbatimLr = 1.5pt +\newif\if@IgnoreFirstNewLine +\if\FormatIsLaTeXConditional + \def\@VerbatimPar{\par\@@par}% + \def\@VerbatimNlf{\tiny}% +\else + \def\@VerbatimPar{\par}% + \def\@VerbatimNlf{\tiny}% +\fi +\newcount\@VerbatimLineNumber +\newif\if@VerbatimL +\newdimen\Verb@TabSize +\def\@VObeySpaces{% + \MakeActive{\ }% + \@@VObeySpaces +} +{% +\MakeActive{\ }% +\gdef\@@VObeySpaces{% +\def {\VerbControlSpace}% +}% +} +\def\@VObeyTabs{% + \MakeTabActive + \@@VObeyTabs +} +{ + \MakeTabActive + \gdef\@@VObeyTabs{% + \def^^I{\Verb@Tab}% + } +} +\def\Verb@Tab{% + \leavevmode + \egroup + \dimen0 = \wd0 + \divide\dimen0 by \Verb@TabSize + \advance\dimen0 by 1sp + \multiply\dimen0 by \Verb@TabSize + \wd0 = \dimen0 + \box0 + \setbox 0 = \hbox\bgroup +} +\def\@VObeyEol{% + \MakeEolActive % + \@@VObeyEol +} +{ + \MakeEolActive % + \gdef\@@VObeyEol{% + \let^^M = \Verb@Eol% + }% +} +\def\Verb@Eol{% + \if@IgnoreFirstNewLine + \else + \leavevmode + \egroup + \box 0 + \endgraf + \fi + \@IgnoreFirstNewLinefalse +} +\def\@VCaret{% + \MakeActive{\^}% + \@@VCaret +} +{ + \MakeActive{\^}% + \gdef\@@VCaret{% + \def^{% + \futurelet\@VSymbol\@@VCaretTwo + }% + \def\@@VCaretTwo{% + \ifx \@VSymbol^% + \let\@VerbNext = \@@VCaretThree + \else + \CaretText + \let\@VerbNext = \relax + \fi + \@VerbNext + }% + \def\@@VCaretThree ^{% + \futurelet\@VSymbol\@@VCaretFour + }% + \def\@@VCaretFour{% + \ifx \@VSymbol I% + \Verb@Tab + \else + \CaretText\CaretText\@VSymbol + \fi + \GobbleOne + }% + }% +} +\def\@StartVerbatim #1{% + \begingroup + \@VerbatimPar + \vskip\DisplayVerbatimVskip + \if\FormatIsLaTeXConditional + \else + \CancelSuppressNextParIndent + \fi + \setbox0 = \hbox{\VerbatimFont X} + \Verb@TabSize = \wd0 + \multiply\Verb@TabSize by \VerbatimTab + \parskip = 0pt + \parindent = 0pt + \leftskip = \LeftSkipVerbatim + \rightskip = 0pt + \parfillskip = 0pt plus 1fil + \spaceskip = 0pt + \xspaceskip = 0pt + \VerbatimFont + \if@VerbatimL + \else + \global\@VerbatimLineNumber = 0 + \fi + \global\@VerbatimLfalse + \ifnum #1 = 0 + \@IgnoreFirstNewLinetrue + \else + \@IgnoreFirstNewLinefalse + \fi + \if\FormatIsLaTeXConditional + \everypar = {\EveryParZ}% + \fi + \def\EveryParZ{% + \the\VerbatimTokLine + \global\advance\@VerbatimLineNumber by 1 + \ifVerbLineNum + \raise \@VerbatimLr \hbox to 0pt{% + \hss + \@VerbatimNlf + \the\@VerbatimLineNumber + \hskip 10pt + }% + \fi + \setbox 0 = \hbox\bgroup + }% + \MkOthers + \@VObeySpaces + \@VObeyTabs + \@VObeyEol + \ifCaretTab + \@VCaret + \fi +} +\def\@DoneVerbatim{% + \endgroup + \vskip\DisplayVerbatimVskip + \def\@VerbatimEndSpecialDeal{}% + \if\FormatIsLaTeXConditional + \else + \def\@VerbatimEndSpecialDeal{% + \ParLookAhead + {\SuppressNextParIndent}% + {} + }% + \fi + \@VerbatimEndSpecialDeal +} +\def\BeginVerbatim{% + \@StartVerbatim{0}% + \@BeginVerbatim +} +{ \catcode `| = 0 % | becomes escape character. + \catcode`\\ =12 % \ becomes regular character. + |gdef|@BeginVerbatim #1\EndVerbatim{% + #1% + |@DoneVerbatim + } +} +\def\BVerB{% + \@StartVerbatim{0}% + \@BVerB +} +{ + \catcode `| = 0 % | becomes escape character. + \catcode`\\ =12 % \ becomes regular character. + |gdef|@BVerB #1\EVerB{% + #1% + |@DoneVerbatim + } +} +\def\AppendVerbatimL #1{% + \global\@VerbatimLtrue + \global\advance\@VerbatimLineNumber by #1\relax +} +\def\StartVerbatimL #1{% + \global\@VerbatimLtrue + \global\@VerbatimLineNumber = #1\relax +} +\newcount\@SaveVerbatimLineNumber +\def\PushVerbatimL{% + \global\@SaveVerbatimLineNumber = \@VerbatimLineNumber + \global\VerbLineNumfalse +} +\def\PopVerbatimL{% + \global\@VerbatimLineNumber = \@SaveVerbatimLineNumber + \global\VerbLineNumtrue +} +\catcode`\@ = 12 +% Here the output of inputd ends "verbdisp.tip". + + +% Here begins "lfondem.tip". +% 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 16.1.2.2, p. II-265. +% Original source in file "fonts2.TEX", starting line 121. +\wlog{L: "lfondem.tip" ["fonts2.TEX," l. 121, p. II-265]}% +% This file DOES belong to format "texip." +\def\LoadFontOnDemand #1#2{% + \def #1{% + \global\font#1 = #2\relax + #1% + \message{\string\LoadFontOnDemand: font \string#1 + (#2) loaded on demand.}% + }% +} +% Here the output of inputd ends "lfondem.tip". + + +% Here begins "substf.tip". +% 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 16.1.3, p. II-265. +% Original source in file "fonts2.TEX", starting line 159. +\wlog{L: "substf.tip" ["fonts2.TEX," l. 159, p. II-265]}% +% This file DOES belong to format "texip." +\def\SubstituteFontX #1#2#3#4{% + \def#1{% + \message{% + \string\SubstituteFontX: No \string#2 font of + #3pt, using \noexpand\rm instead.% + }% + \global\let #1 = #4% + #1% + }% +} +% Here the output of inputd ends "substf.tip". + + +% Here begins "newoutfr.tip". +% 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 4.6.2, p. I-113. +% Original source in file "reg2.TEX", starting line 1610. +\wlog{L: "newoutfr.tip" ["reg2.TEX," l. 1610, p. I-113]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\newcountOF{\alloc@0\count\countdef\insc@unt} +\def\newdimenOF{\alloc@1\dimen\dimendef\insc@unt} +\def\newskipOF{\alloc@2\skip\skipdef\insc@unt} +\def\newmuskipOF{\alloc@3\muskip\muskipdef\@cclvi} +\def\newboxOF{\alloc@4\box\chardef\insc@unt} +\def\newhelpOF#1#2{\newtoksOF#1#1\expandafter{\csname#2\endcsname}} +\def\newtoksOF{\alloc@5\toks\toksdef\@cclvi} +\def\newreadOF{\alloc@6\read\chardef\sixt@@n} +\def\newwriteOF{\alloc@7\write\chardef\sixt@@n} +\def\newfamOF{\alloc@8\fam\chardef\sixt@@n} +\def\newifOF#1{\count@\escapechar \escapechar\m@ne + \expandafter\expandafter\expandafter + \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% + \expandafter\expandafter\expandafter + \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% + \@if#1{false}\escapechar\count@} % the condition starts out false +\def\newlanguageOF{\alloc@9\language\chardef\@cclvi} +\catcode`\@ = 12 +% Here the output of inputd ends "newoutfr.tip". + + +% Here begins "ts-subst.tip". +% 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 16.1.4, p. II-267. +% Original source in file "fonts2.TEX", starting line 227. +\wlog{L: "ts-subst.tip" ["fonts2.TEX," l. 227, p. II-267]}% +% This file DOES belong to format "texip." +\InputD{substf.tip} +\InputD{newoutfr.tip} +\def\SubstituteFont #1#2#3#4{% + \expandafter\newifOF \csname if-\string#1\endcsname + \csname if-\string#1true\endcsname + \def#1{% + \csname if-\string#1\endcsname + \message{% + \string\SubstituteFont: No \string#2 font at + size #3pt, using \noexpand\rm instead.% + }% + \global\csname if-\string#1false\endcsname + \fi + #4% + }% +} +% Here the output of inputd ends "ts-subst.tip". + + +% Here begins "fsized.tip". +% 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 16.1.7, p. II-270. +% Original source in file "fonts2.TEX", starting line 373. +\wlog{L: "fsized.tip" ["fonts2.TEX," l. 373, p. II-270]}% +% This file DOES belong to format "texip." +\newdimen\CurrentFontSize +\InputD{namedef.tip} +\def\DefineFontSizeGroup #1#2{% + \wlog{\string\DefineFontSizeGroup: defining group "#1" (#2 pt)}% + \NameDef{FontSize#1}{% + \def\rm{\fam = 0 \NameUse{#1rm}}% + \def\bf{\fam = \bffam \NameUse{#1bf}}% + \def\it{\fam = \itfam \NameUse{#1it}}% + \def\tt{\fam = \ttfam \NameUse{#1tt}}% + \def\sc{\NameUse{#1sc}}% + \def\sl{\fam = \slfam \NameUse{#1sl}}% + \CurrentFontSize = #2pt + \baselineskip = \LineSpaceMultFactor\CurrentFontSize + \rm + } +} +\def\LineSpaceMultFactor{1.2} +% Here the output of inputd ends "fsized.tip". + + +% Here begins "newfont.tip". +% 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 16.1.1, p. II-263. +% Original source in file "fonts2.TEX", starting line 53. +\wlog{L: "newfont.tip" ["fonts2.TEX," l. 53, p. II-263]}% +% This file DOES belong to format "texip." +\InputD{testdef.tip} +\def\NewFont #1{% + \if\DefinedConditional{#1}% + \errmessage{\string\NewFont: intended font name + "\string#1" already used.} + \fi + \font #1% +} +% Here the output of inputd ends "newfont.tip". + + +% Here begins "ts-fonts.tip". +% 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 16.1.9, p. II-271. +% Original source in file "fonts2.TEX", starting line 447. +\wlog{L: "ts-fonts.tip" ["fonts2.TEX," l. 447, p. II-271]}% +% This file DOES belong to format "texip." +\InputD{lfondem.tip} +\InputD{ts-subst.tip} +\InputD{fsized.tip} +\InputD{newfont.tip} +\InputD{testdef.tip} +\font\RmLargerThanLife = cmr17 scaled \magstep5 +% \newfam\itfam % \it is family 4 +% \newfam\slfam % \sl is family 5 +% \newfam\bffam % \bf is family 6 +% \newfam\ttfam % \tt is family 7 +\NewFont\Vrm = cmr5 +\NewFont\Vit = cmti7 at 5pt +\NewFont\Vbf = cmbx5 +\NewFont\Vsc = cmcsc10 at 5pt +\SubstituteFont{\Vtt}{\tt}{7}{\VIIrm} +\SubstituteFont{\Vsc}{\sc}{7}{\VIIrm} +\SubstituteFont{\Vsl}{\sl}{7}{\VIIrm} +\NewFont\VIIrm = cmr7 +\NewFont\VIIit = cmti7 +\NewFont\VIIbf = cmbx7 +\NewFont\VIIsc = cmcsc10 at 7pt +\SubstituteFont{\VIItt}{\tt}{7}{\VIIrm} +\SubstituteFont{\VIIsl}{\sl}{7}{\VIIrm} +\NewFont\VIIIrm = cmr8 +\NewFont\VIIIit = cmti8 +\NewFont\VIIIbf = cmbx8 +\NewFont\VIIItt = cmtt8 +\NewFont\VIIIsc = cmcsc10 at 8pt +\SubstituteFont{\VIIIsl}{\sl}{8}{\VIIIrm} +\NewFont\IXrm = cmr9 +\NewFont\IXit = cmti9 +\NewFont\IXbf = cmbx9 +\NewFont\IXtt = cmtt9 +\NewFont\IXsc = cmcsc10 at 9pt +\SubstituteFont{\IXsl}{\sl}{9}{\IXrm} +\NewFont\Xrm = cmr10 +\NewFont\Xit = cmti10 +\NewFont\Xbf = cmbx10 +\NewFont\Xtt = cmtt10 +\NewFont\Xsc = cmcsc10 +\NewFont\Xsl = cmcsc10 +\NewFont\XIIrm = cmr12 +\NewFont\XIIit = cmti12 +\NewFont\XIIbf = cmbx12 +\NewFont\XIItt = cmtt12 +\NewFont\XIIsc = cmcsc10 scaled \magstep 1 +\NewFont\XIIsl = cmcsc10 scaled \magstep 1 +\NewFont\XIIIrm = cmr12 scaled \magstephalf +\NewFont\XIIIit = cmti12 scaled \magstephalf +\NewFont\XIIIbf = cmbx12 scaled \magstephalf +\NewFont\XIIItt = cmtt12 scaled \magstephalf +\NewFont\XIIIsc = cmcsc10 scaled \magstephalf +\NewFont\XIIIsl = cmcsc10 scaled \magstephalf +\NewFont\XVIIrm = cmr12 scaled \magstep 2 +\NewFont\XVIIit = cmti12 scaled \magstep 2 +\NewFont\XVIIbf = cmbx12 scaled \magstep 2 +\NewFont\XVIItt = cmtt12 scaled \magstep 2 +\NewFont\XVIIsc = cmcsc10 scaled \magstep 3 +\NewFont\XVIIsl = cmcsc10 scaled \magstep 3 +\NewFont\XXIrm = cmr17 scaled \magstep 1 +\NewFont\XXIit = cmti12 scaled \magstep 3 +\NewFont\XXIbf = cmbx12 scaled \magstep 3 +\NewFont\XXIsc = cmcsc10 scaled \magstep 4 +\LoadFontOnDemand{\XXItt}{cmtt12 scaled \magstep 3} +\SubstituteFont{\XXIsl}{\sl}{20.74}{\XXIrm} +\NewFont\XXVrm = cmr17 scaled \magstep 2 +\NewFont\XXVit = cmti12 scaled \magstep 4 +\NewFont\XXVbf = cmbx12 scaled \magstep 4 +\NewFont\XXVsc = cmcsc10 at 5pt +\LoadFontOnDemand{\XXVtt}{cmtt12 scaled \magstep 4} +\SubstituteFont{\XXVsl}{\sl}{20.74}{\XXVrm} +\DefineFontSizeGroup{V}{5} +\DefineFontSizeGroup{VII}{7} +\DefineFontSizeGroup{VIII}{8} +\DefineFontSizeGroup{IX}{9} +\DefineFontSizeGroup{X}{10} +\DefineFontSizeGroup{XII}{12} +\DefineFontSizeGroup{XIII}{13.14} +\DefineFontSizeGroup{XVII}{17.28} +\DefineFontSizeGroup{XXI}{20.74} +\DefineFontSizeGroup{XXV}{24.88} +\let\tiny = \FontSizeV +\let\scriptsize = \FontSizeVII +\let\footnotesize = \FontSizeVIII +\let\small = \FontSizeIX +\let\normalsize = \FontSizeX +\let\large = \FontSizeXII +\let\Large = \FontSizeXIII +\let\LARGE = \FontSizeXVII +\let\huge = \FontSizeXXI +\let\Huge = \FontSizeXXV +\def\LineSpaceMultFactor{1.2} +\normalsize +% Here the output of inputd ends "ts-fonts.tip". + + +% Here begins "fexist.tip". +% 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 28.4.1, p. III-465. +% Original source in file "io1.TEX", starting line 910. +\wlog{L: "fexist.tip" ["io1.TEX," l. 910, p. III-465]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newread\@FileExistsS +\newif\if@FileExistsAnswer +\def\FileExistsConditional #1{% + TT\fi + \openin\@FileExistsS = #1 + \ifeof\@FileExistsS + \@FileExistsAnswerfalse + \else + \closein\@FileExistsS + \@FileExistsAnswertrue + \fi + \if@FileExistsAnswer +} +\catcode`\@ = 12 +% Here the output of inputd ends "fexist.tip". + + +% Here begins "verb-mac.tip". +% 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 18.3.8, p. III-41. +% Original source in file "tokens1.TEX", starting line 2427. +\wlog{L: "verb-mac.tip" ["tokens1.TEX," l. 2427, p. III-41]}% +% This file DOES belong to format "texip." +\InputD{ts-fonts.tip} +\InputD{verbdisp.tip} +\InputD{fexist.tip} +\catcode`\@ = 11 +\def\ListVerb #1{% + \@StartVerbatim{1}% + \input #1 + \@DoneVerbatim +} +\def\ListVerbIfFileExists #1{% + \par + \if\FileExistsConditional{#1}% + \ListVerb{#1}% + \else + \centerline{$\bullet$ File {\tt #1} not found. $\bullet$}% + \wlog{\string\ListVerbIfFileExists: no file "#1".}% + \fi +} +\def\ListVerbAndSource #1{% + \ListVerb{#1}% + \input #1 +} +\catcode`\@ = 12 +% Here the output of inputd ends "verb-mac.tip". + + +% Here begins "nctest.tip". +% 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 23.4.6.1, p. III-262. +% Original source in file "macros3.TEX", starting line 1335. +\wlog{L: "nctest.tip" ["macros3.TEX," l. 1335, p. III-262]}% +% This file DOES belong to format "texip." +\InputD{futlet.tip} +\catcode`\@ = 11 +\def\NextCharTest #1#2#3{% + \def\@NextCharTestYes #1{#2}% + \def\@NextCharTestNo {#3}% + \DoFutureLet{\ifx}{#1}{\@NextCharTestYes}{\@NextCharTestNo}% +} +\catcode`\@ = 12 +% Here the output of inputd ends "nctest.tip". + + +% Here begins "verb.tip". +% 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 18.3.4, p. III-35. +% Original source in file "tokens1.TEX", starting line 2077. +\wlog{L: "verb.tip" ["tokens1.TEX," l. 2077, p. III-35]}% +% This file DOES belong to format "texip." +\InputD{verb-bas.tip} +\InputD{nctest.tip} +\catcode`\@ = 11 +{\catcode`\ = \active +\gdef\@InitActiveSpace{\edef {\VerbControlSpace}}} +\newif\if@VerbSpaceControl +\def\Verb{% + \NextCharTest{*}{\@VerbSpaceControltrue \@VerbA}% + {\@VerbSpaceControlfalse\@VerbA}% +} +\def\@VerbA #1{% + \bgroup + \tt + \MkOthers + \if@VerbSpaceControl + \else + \catcode`\ = \active + \@InitActiveSpace + \fi + \def\@VerbTemp ##1#1{% + ##1% % Simply print the argument. + \egroup % Undo font change and category code changes. + }% + \@VerbTemp +} +\catcode`\@ = 12 +% Here the output of inputd ends "verb.tip". + + +% Here begins "genaeol.tip". +% 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 21.9.7.1, p. III-192. +% Original source in file "macros1.TEX", starting line 2196. +\wlog{L: "genaeol.tip" ["macros1.TEX," l. 2196, p. III-192]}% +% This file DOES belong to format "texip." +\InputD{namedef.tip} +\InputD{verb-bas.tip} +\catcode`\@ = 11 +\def\GenAeol #1{% + \edef #1{% + \bgroup + \noexpand\MakeEolActive + \noexpand\@GenAeolOne{% + \csname\string #1-2\endcsname}% + }% + \NameDef{\string #1-2}##1% +} +{ + \MakeEolActive + \gdef\@GenAeolOne #1#2 + {% + \egroup% + #1{#2}% + }% +} +\catcode`\@ = 12 +% Here the output of inputd ends "genaeol.tip". + + +% Here begins "gobblemo.tip". +% 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 21.9.11, p. III-197. +% Original source in file "macros1.TEX", starting line 2417. +\wlog{L: "gobblemo.tip" ["macros1.TEX," l. 2417, p. III-197]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\GobbleDoMore #1#2{% + \def\@GobbleDoMore ##1#1{}% + \expandafter#2\@GobbleDoMore +} +\catcode`\@ = 12 +% Here the output of inputd ends "gobblemo.tip". + + +% Here begins "showx.tip". +% 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 21.5.11, p. III-178. +% Original source in file "macros1.TEX", starting line 1413. +\wlog{L: "showx.tip" ["macros1.TEX," l. 1413, p. III-178]}% +% This file DOES belong to format "texip." +\newif\ifShowX +\ShowXfalse +\def\ShowX #1{% + \ifShowX + {% + \nonstopmode + \show #1% + }% + \fi +} +% Here the output of inputd ends "showx.tip". + + +% Here begins "testsubs.tip". +% 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 24.1.15.1, p. III-293. +% Original source in file "macros4.TEX", starting line 661. +\wlog{L: "testsubs.tip" ["macros4.TEX," l. 661, p. III-293]}% +% This file DOES belong to format "texip." +\InputD{showx.tip} +\catcode`\@ = 11 +\newif\if@TestSubString +\def\SubStringConditional #1#2{% + TT\fi + \edef\@MainString{#1}% + \edef\@SubStringConditionalTemp{{#1}{#2}}% + \expandafter\@SubStringConditional\@SubStringConditionalTemp +} +\def\@SubStringConditional #1#2{% + \def\@TestSubS ##1#2##2\@Del{% + \def\@TestTemp{##1}% + }% + \ShowX{\@TestSubS}% + \@TestSubS #1#2\@Del + \ShowX{\@TestTemp}% + \ifx\@MainString\@TestTemp + \@TestSubStringfalse + \else + \@TestSubStringtrue + \fi + \if@TestSubString +} +\catcode`\@ = 12 +% Here the output of inputd ends "testsubs.tip". + + +% Here begins "endrec.tip". +% 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 27.1.2, p. III-399. +% Original source in file "macros7.TEX", starting line 138. +\wlog{L: "endrec.tip" ["macros7.TEX," l. 138, p. III-399]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\RecursionMacroEnd #1#2#3{% + #1\relax + \def\@RecursionMacroEndNext{#2}% + \else + \def\@RecursionMacroEndNext{#3}% + \fi + \@RecursionMacroEndNext +} +\catcode`\@ = 12 +% Here the output of inputd ends "endrec.tip". + + +% Here begins "restring.tip". +% 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 24.1.16, p. III-298. +% Original source in file "macros4.TEX", starting line 866. +\wlog{L: "restring.tip" ["macros4.TEX," l. 866, p. III-298]}% +% This file DOES belong to format "texip." +\InputD{testsubs.tip} +\InputD{endrec.tip} +\catcode`\@ = 11 +\def\ReplaceSubStrings #1#2#3#4{% + \def\@ReplaceResult{#1}% + \edef\@ReplaceMain{#2}% + \edef\@ReplaceSub{#3}% + \edef\@ReplaceSubRep{#4}% + \@ReplaceSubStrings +} +\def\@ReplaceSubStrings{% + \RecursionMacroEnd + {\if\SubStringConditional{\@ReplaceMain}{\@ReplaceSub}}% + {\@ReplaceSubStringsDo}{\@ReplaceSubStringsDone}% +} +\def\@ReplaceSubStringsDoX{% + \def\@ReplaceSubStringsDoA ##1% +}% +\def\@ReplaceSubStringsDo{% + \expandafter\@ReplaceSubStringsDoX \@ReplaceSub + ##2\@EndReplaceSubStrings{% + \edef\@ReplaceMain{##1\@ReplaceSubRep ##2}% + }% + \ShowX{\@ReplaceSubStringsDoA}% + \ShowX{\@ReplaceMain}% + \expandafter\@ReplaceSubStringsDoA\@ReplaceMain + \@EndReplaceSubStrings + \ShowX{\@ReplaceMain}% + \@ReplaceSubStrings +} +\def\@ReplaceSubStringsDone{% + \expandafter\edef\@ReplaceResult{\@ReplaceMain}% +} +\catcode`\@ = 12 +% Here the output of inputd ends "restring.tip". + + +% Here begins "compst.tip". +% 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 25.1.17.1, p. III-334. +% Original source in file "macros5.TEX", starting line 1018. +\wlog{L: "compst.tip" ["macros5.TEX," l. 1018, p. III-334]}% +% This file DOES belong to format "texip." +\InputD{restring.tip} +\catcode`\@ = 11 +\def\StringsEqualConditional #1#2{% + TT\fi + \edef\@StringsEqualOneConditional{#1}% + \edef\@StringsEqualTwoConditional{#2}% + \ifx\@StringsEqualOneConditional\@StringsEqualTwoConditional +} +\def\EmptyStringConditional #1{% + TT\fi + \if\StringsEqualConditional{#1}{}% +} +\def\EmptyStringConditionalISpaces #1{% + TT\fi + \ReplaceSubStrings{\@EmptyStringConditionalISpaces}{#1}% + { }{}% + \if\EmptyStringConditional + {\@EmptyStringConditionalISpaces}% +} +\catcode`\@ = 12 +% Here the output of inputd ends "compst.tip". + + +% Here begins "remtlsp.tip". +% 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 24.1.20.1, p. III-309. +% Original source in file "macros4.TEX", starting line 1412. +\wlog{L: "remtlsp.tip" ["macros4.TEX," l. 1412, p. III-309]}% +% This file DOES belong to format "texip." +\InputD{compst.tip} +\catcode`\@ = 11 +\def\@TestTrail #1 #2\@Del{% + \def\@RemTspTemp{#1}% +} +\def\RemTsp #1#2{% + \edef\@RemTspTempOne{#2#2 }% + \expandafter\@TestTrail\@RemTspTempOne\@Del + \if\StringsEqualConditional{#2#2}{\@RemTspTemp}% + \def#1{#2}% + \else + \edef\@RemTspTempA{\noexpand\edef\noexpand#1{\@RemTspTemp}}% + \@RemTspTempA + \fi +} +\def\@TestLead #1 #2\@Del{\def\@RemLspOne{#1}} +\def\RemLsp #1#2{% + \edef\@TempRemLsp{#2#2\space}% + \expandafter\@TestLead\@TempRemLsp\@Del + \if\EmptyStringConditional{\@RemLspOne}% + \expandafter\@RemLspThree #2\@Del{#1}% + \else + \def#1{#2}% + \fi +} +\edef\@RemLspTwo{% + \def\noexpand\@RemLspThree\space ##1\noexpand\@Del##2{% + \def##2{##1}% + }% +} +\@RemLspTwo +\catcode`\@ = 12 +% Here the output of inputd ends "remtlsp.tip". + + +% Here begins "genostr.tip". +% 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 28.5.3, p. III-474. +% Original source in file "io1.TEX", starting line 1339. +\wlog{L: "genostr.tip" ["io1.TEX," l. 1339, p. III-474]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newwrite\GenericOStream +\newif\if@GenericOStreamOpen +\@GenericOStreamOpenfalse +\def\OpenGenericOStream #1{% + \if@GenericOStreamOpen + \errmessage{\string\OpenGenericOStream: generic + output stream currently open.}% + \else + \global\@GenericOStreamOpentrue + \immediate\openout\GenericOStream = #1% + \fi +} +\def\CloseGenericOStream{% + \if@GenericOStreamOpen + \global\@GenericOStreamOpenfalse + \immediate\closeout\GenericOStream + \else + \errhelp{Stream not in use.}% + \errmessage{\string\CloseGenericOStream: + stream is NOT open for output.}% + \fi +} +\catcode`\@ = 12 +% Here the output of inputd ends "genostr.tip". + + +% Here begins "cstostrc.tip". +% 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 19.1.2, p. III-67. +% Original source in file "tokens2.TEX", starting line 146. +\wlog{L: "cstostrc.tip" ["tokens2.TEX," l. 146, p. III-67]}% +% This file DOES belong to format "texip." +\InputD{remtlsp.tip} +\InputD{genostr.tip} +\catcode`\@ = 11 +\newread\@CatIn +\def\CSToStringCat #1#2{% + {% + \escapechar = -1 + \OpenGenericOStream{cstostrc.tmp}% + \immediate\write\GenericOStream{\string#2\%}% + \CloseGenericOStream + \openin\@CatIn = cstostrc.tmp + \global\read\@CatIn to #1% + \closein\@CatIn + }% +} +\catcode`\@ = 12 +% Here the output of inputd ends "cstostrc.tip". + + +% Here begins "verbwr.tip". +% 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 29.3.2, p. III-506. +% Original source in file "io2.TEX", starting line 973. +\wlog{L: "verbwr.tip" ["io2.TEX," l. 973, p. III-506]}% +% This file DOES belong to format "texip." +\InputD{verb-bas.tip} +\InputD{futlet.tip} +\InputD{genaeol.tip} +\InputD{futlet.tip} +\InputD{gobblemo.tip} +\InputD{cstostrc.tip} +\catcode`\@ = 11 +\newif\if@VerbFirstLineSuppress +\def\OpenVerbWrFile #1#2#3{% + \immediate\openout #3 = #1.#2 + \wlog{\string\OpenVerbWrFile: opened "#1.#2" for + literal writing.}% +} +\def\CloseVerbWrFile #1{% + \immediate\closeout #1 + \wlog{\string\CloseVerbWrFile: closed file for literal writing.}% +} +\def\BeginVerbWr #1#2{% + \begingroup + \def\@VerbWrStream{#1}% + \CSToStringCat{\@EndVerbWrSt}{#2}% + \wlog{\string\BeginVerbWr: begin}% + \MkOthers + \MakeEolActive + \@VerbWrTabHandling + \@VerbFirstLineSuppresstrue + \expandafter\expandafter\expandafter + \@BeginVerbWrY\expandafter{\@EndVerbWrSt}% +} +{ + \catcode `| = 0 + \catcode`\\ =12 + |gdef|@BeginVerbWrY #1{% + |def|@BeginVerbWrX ##1\#1{% + |@BeginVerbWr ##1% + |@VerbWrDoneToken + |@VerbWrDone + } + |@BeginVerbWrX + } +} +\def\@VerbWrTabHandling{% + \MakeTabActive + \@VerbWrTabHandlingOne +} +{\MakeTabActive +\gdef\@VerbWrTabHandlingOne{\def^^I{\@TabAsLiteral}}% +} +\def\@BeginVerbWr{% + \DoFutureLet{\ifx}% + {\@VerbWrDoneToken}% + {\GobbleDoMore + {\@VerbWrDoneToken}{\relax}}% + {\@BeginVerbWrTwo}% +} +\GenAeol{\@BeginVerbWrTwo}{% + \if@VerbFirstLineSuppress + \@VerbFirstLineSuppressfalse + \else + \immediate\write\@VerbWrStream{#1}% + \fi + \@BeginVerbWr +} +\def\@VerbWrDone{% + \endgroup + \wlog{\string\@VerbWrDone: done}% +} +\catcode`\@ = 12 +% Here the output of inputd ends "verbwr.tip". + + +% Here begins "defauarg.tip". +% 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 23.4.8.1, p. III-266. +% Original source in file "macros3.TEX", starting line 1514. +\wlog{L: "defauarg.tip" ["macros3.TEX," l. 1514, p. III-266]}% +% This file DOES belong to format "texip." +\InputD{gobblemo.tip} +\catcode`\@ = 11 +\def\DefaultArg #1#2#3{% + \def\@DefaultArgMacro{#1}% + \edef\@EmptyOtherArg{#2}% + \edef\@DefaultArgDefault{#3}% + \@DefaultArg #2\@DefaultArgEnd +} +\def\@DefaultArg{% + \futurelet\@DefaultArgSymbol\@DefaultArgOne +} +\def\@DefaultArgOne{% + \ifx\@DefaultArgSymbol\@DefaultArgEnd + \expandafter\edef\@DefaultArgMacro{\@DefaultArgDefault}% + \else + \expandafter\edef\@DefaultArgMacro{\@EmptyOtherArg}% + \fi + \GobbleDoMore{\@DefaultArgEnd}{\relax}% +} +\catcode`\@ = 12 +% Here the output of inputd ends "defauarg.tip". + + +% Here begins "vwrt-mac.tip". +% 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 29.3.3.1, p. III-511. +% Original source in file "io2.TEX", starting line 1192. +\wlog{L: "vwrt-mac.tip" ["io2.TEX," l. 1192, p. III-511]}% +% This file DOES belong to format "texip." +\InputD{verbwr.tip} +\InputD{defauarg.tip} +\InputD{verb-mac.tip} +\catcode`\@ = 11 +\newwrite\@VStream +\newif\if@VStreamOpen +\@VStreamOpenfalse +\newcount\@VerbWriteCount +\@VerbWriteCount = 0 +\def\BeginVerbWrite #1#2{% + \global\advance\@VerbWriteCount by 1 + \wlog{\string\BeginVerbWrite: [\the\@VerbWriteCount]}% + \DefaultArg{\@VerbWriteBaseName}{#1}{\jobname}% + \DefaultArg{\@VerbWriteFileExt}{#2}{ver}% + \xdef\@VerbWriteFileName{\@VerbWriteBaseName.\@VerbWriteFileExt}% + \if@VStreamOpen + \errmessage{\string\BeginVerbWrite: ERROR, file still open.}% + \fi + \OpenVerbWrFile{\@VerbWriteBaseName}{\@VerbWriteFileExt}% + {\@VStream}% + \global\@VStreamOpentrue + \BeginVerbWr{\@VStream}{\EndVerbWrite}% +} +\def\CloseVerbWriteFile{% + \if@VStreamOpen + \CloseVerbWrFile{\@VStream}% + \global\@VStreamOpenfalse + \fi +} +\def\AppendVerbWrite{% + \wlog{\string\AppendVerbWrite: [\the\@VerbWriteCount]}% + \if@VStreamOpen + \else + \errmessage{\string\AppendVerbWrite: no file open.}% + \fi + \xdef\@VerbWriteFileName{\@VerbWriteBaseName.\@VerbWriteFileExt}% + \BeginVerbWr{\@VStream}{\EndVerbWrite}% +} +\def\VerbAsVerb{% + \CloseVerbWriteFile + {% + \CaretTabtrue + \ListVerb{\@VerbWriteFileName}% + }% +} +\def\VerbAsSource{% + \CloseVerbWriteFile + \input \@VerbWriteFileName \relax +} +\catcode`\@ = 12 +% Here the output of inputd ends "vwrt-mac.tip". + + +% Here begins "lpagetg.tip". +% 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 32.2.3, p. IV-5. +% Original source in file "page.TEX", starting line 298. +\wlog{L: "lpagetg.tip" ["page.TEX," l. 298, p. IV-5]}% +% This file DOES belong to format "texip." +\def\LogPageTG #1{% + \wlog{\string\LogPageTG [#1]:}% + \wlog{\string\pagetotal: \the\pagetotal, + \string\pagegoal: \the\pagegoal}% +} +% Here the output of inputd ends "lpagetg.tip". + + +% Here begins "freespac.tip". +% 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 32.2.4, p. IV-6. +% Original source in file "page.TEX", starting line 340. +\wlog{L: "freespac.tip" ["page.TEX," l. 340, p. IV-6]}% +% This file DOES belong to format "texip." +\InputD{lpagetg.tip} +\newdimen\FreePageSpace +\def\ComputeFreeSpaceOnPage{% + \par + \LogPageTG{\string\ComputeFreeSpaceOnPage}% + \ifdim\pagetotal = 0pt + \FreePageSpace = \vsize + \else + \FreePageSpace = \pagegoal + \advance\FreePageSpace by -\pagetotal + \fi +} +\def\FreeSpaceConditional{% + 0pt = 0pt \fi + \ComputeFreeSpaceOnPage + \ifdim\FreePageSpace +} +% Here the output of inputd ends "freespac.tip". + + +% Here begins "ts-verb1.tip". +% 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 18.3.14.1, p. III-56. +% Original source in file "tokens1.TEX", starting line 3223. +\wlog{L: "ts-verb1.tip" ["tokens1.TEX," l. 3223, p. III-56]}% +% This file DOES belong to format "texip." +\InputD{verbdisp.tip} +\catcode`\@ = 11 +\def\@btex{% + \par + \bgroup + \small +} +\def\@etex{% + \nobreak + \egroup + \if\FormatIsLaTeXConditional + \def\@EtexEnd{}% + \else + \def\@EtexEnd{% + \ParLookAhead + {}% + {\SuppressNextParIndent}% + }% + \fi + \@EtexEnd +} +\def\btex{% + \@btex + \@StartVerbatim{0}% + \btex@more +} +{ + \catcode `| = 0 % | becomes escape character. + \catcode`\\ = 12 % \ now prints. + |gdef|btex@more #1\etex{% + #1% + |@DoneVerbatim + |@etex + }% +} +\catcode`\@ = 12 +% Here the output of inputd ends "ts-verb1.tip". + + +% Here begins "ts-verb2.tip". +% 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 18.3.14.2, p. III-57. +% Original source in file "tokens1.TEX", starting line 3279. +\wlog{L: "ts-verb2.tip" ["tokens1.TEX," l. 3279, p. III-57]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\Btexalt{% + \@btex + \@StartVerbatim{0}% + \btex@morealt +} +{ + \catcode `| = 0 % | becomes escape character. + \catcode`\\ = 12 % \ now prints. + |gdef|btex@morealt #1\Etexalt{% + #1% + |@DoneVerbatim + |@etex + }% +} +\catcode`\@ = 12 +% Here the output of inputd ends "ts-verb2.tip". + + +% Here begins "ts-verb.tip". +% 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.1 +% Date: Sep 9, 1993 +% +% +% This source code is documented in 18.3.15, p. III-57. +% Original source in file "tokens1.TEX", starting line 3306. +\wlog{L: "ts-verb.tip" ["tokens1.TEX," l. 3306, p. III-57]}% +% This file DOES belong to format "texip." +\InputD{verbdisp.tip} +\InputD{verb-mac.tip} +\InputD{verb.tip} +\InputD{verbwr.tip} +\InputD{vwrt-mac.tip} +\InputD{defauarg.tip} +\InputD{compst.tip} +\InputD{testsubs.tip} +\InputD{freespac.tip} +\InputD{fexist.tip} +\InputD{ts-verb1.tip} +\InputD{ts-verb2.tip} +\catcode`\@ = 11 +\def\verb{\Verb} +\VerbLineNumtrue +\VerbatimTab = 4 +\DisplayVerbatimVskip = 5pt +\def\VerbatimFont{\small\tt}% +\def\ListVerbTeXIP #1{% + \par + \medskip + \vskip 60pt + \vskip -60pt + \def\ListAsFileName{#1}% + \def\LabelName{code-#1}% + \if\SuffixConditional{#1}{.flf}% + \def\ListAsFileName ##1.flf{\def\ListAsFileName{##1.log}}% + \ListAsFileName #1% + \def\LabelName{}% + \else + \if\SuffixConditional{#1}{.flf2}% + \def\ListAsFileName ##1.flf2{\def\ListAsFileName{##1.log}}% + \ListAsFileName #1% + \def\LabelName{}% + \fi + \fi + \if\StringsEqualConditional{#1}{\jobname.ver}% + \def\ListAsFileName{}% + \def\LabelName{}% + \fi + \if\StringsEqualConditional{#1}{ex-verbwr.ver} + \def\LabelName{}% + \fi + \if\EmptyStringConditional{\LabelName}% + \else + \Label{code-#1}% + \fi + \if\EmptyStringConditional{\ListAsFileName} + \else + \centerline{% + $\bullet$% + \space + \tt\ListAsFileName + \space + $\bullet$% + }% + \fi + \@btex + \@StartVerbatim{1}% + \wlog{[\string\ListVerbTeXIP:}% + \input #1 + \wlog{]}% svb: this was \message before + \@DoneVerbatim + \@etex +} +\catcode`\@ = 12 +% Here the output of inputd ends "ts-verb.tip". + + +% Here begins "ts-lazy.tip". +% 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 21.4.10, p. III-167. +% Original source in file "macros1.TEX", starting line 849. +\wlog{L: "ts-lazy.tip" ["macros1.TEX," l. 849, p. III-167]}% +% This file DOES belong to format "texip." +\def\TeXIP{% + \TeX{} in Practice% +} +\def\WEB{% + {\tt WEB}% +} +% Here the output of inputd ends "ts-lazy.tip". + + +% Here begins "ts-brefm.tip". +% 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 21.4.11, p. III-167. +% Original source in file "macros1.TEX", starting line 881. +\wlog{L: "ts-brefm.tip" ["macros1.TEX," l. 881, p. III-167]}% +% This file DOES belong to format "texip." +\def\Bref #1#2#3{% + #1 (19#2#3)% +} +% Here the output of inputd ends "ts-brefm.tip". + + +% Here begins "parv-1.tip". +% 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 11.2.1, p. II-67. +% Original source in file "par2.TEX", starting line 956. +\wlog{L: "parv-1.tip" ["par2.TEX," l. 956, p. II-67]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newdimen \Delta@XY +\newskip\@ParListBeforeAfter +\newskip\@ParListBetweenLabels +\newskip\@ParListAfterLabel +\newcount\@LabeledParNesting \@LabeledParNesting = 0 +\newcount\@LabelCounter +\def\BeginAList #1#2#3#4#5#6#7{% + \par + \bgroup + \advance\leftskip by #1 + \advance\rightskip by #2 + \advance \@LabeledParNesting by 1 + \@LabelCounter = 0 + \Delta@XY = #3 + \ifdim\Delta@XY < 0pt + \errmessage{\string\BeginAList: negative Delta{xy}, + made positive.}% + \fi + \@ParListBeforeAfter = #4 + \@ParListBetweenLabels = #5 + \@ParListAfterLabel = #6 + \SetParIndent{#7} +} +\def\EndAList{% + \par + \vskip\@ParListBeforeAfter + \egroup +} +\def\@GenLabel #1{% + \par + \advance\@LabelCounter by 1 + \ifnum\@LabelCounter = 1 + \parskip = \@ParListBeforeAfter + \else + \parskip = \@ParListBetweenLabels + \fi + \noindent + \hbox to 0pt{#1}% + \parskip = \@ParListAfterLabel + \ignorespaces +} +\def\ItemLL #1{% + \@GenLabel{% + \hskip -\Delta@XY + #1% + \hfil + }% +} +\def\ItemLR #1{% + \@GenLabel{% + \hss + #1% + \hskip\Delta@XY + }% +} +\def\ItemRL #1{% + \@GenLabel{% + \hskip\Delta@XY + #1% + \hss + }% +} +\def\ItemRR #1{% + \@GenLabel{% + \hfil + #1% + \hskip -\Delta@XY + }% +} +\catcode`\@ = 12 +% Here the output of inputd ends "parv-1.tip". + + +% Here begins "itemizel.tip". +% 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 11.3.3, p. II-77. +% Original source in file "par2.TEX", starting line 1465. +\wlog{L: "itemizel.tip" ["par2.TEX," l. 1465, p. II-77]}% +% This file DOES belong to format "texip." +\InputD{parv-1.tip} +\catcode`\@ = 11 +\newcount\@ItemListDepth +\@ItemListDepth = 0 +\def\BeginItemize{% + \begingroup + \global\advance\@ItemListDepth by 1 + \ifcase\@ItemListDepth\or + \@BeginItemizeLevelOne + \def\Item{\ItemLL{$\bullet$}}% + \or + \@BeginItemizeLevelTwo + \def\Item{\ItemLL{--}}% + \or + \@BeginItemizeLevelThree + \def\Item{\ItemLL{*}}% + \or + \@BeginItemizeLevelFour + \def\Item{\ItemLL{+}}% + \else + \errmessage{\string\BeginItemize: maximum nesting of + 4 exceeded.}% + \fi +} +\def\EndItemize{% + \EndAList + \endgroup + \global\advance\@ItemListDepth by -1 +} +\catcode`\@ = 12 +% Here the output of inputd ends "itemizel.tip". + + +% Here begins "ts-itize.tip". +% 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 11.3.4, p. II-78. +% Original source in file "par2.TEX", starting line 1523. +\wlog{L: "ts-itize.tip" ["par2.TEX," l. 1523, p. II-78]}% +% This file DOES belong to format "texip." +\InputD{itemizel.tip} +\InputD{ts-fonts.tip} +\catcode`\@ = 11 +\def\@BeginItemizeLevelOne{% + \BeginAList + {15pt}{0pt}{15pt}% + {12pt}{0pt}% + {0pt}{15pt}% +} +\def\@BeginItemizeLevelTwo{% + \BeginAList + {15pt}{0pt}{15pt}% + {6pt}{0pt}% + {0pt}{15pt}% +} +\def\@BeginItemizeLevelThree{% + \BeginAList + {15pt}{0pt}{15pt}% + {4pt}{0pt}% + {0pt}{15pt}% +} +\def\@BeginItemizeLevelFour{% + \BeginAList + {15pt}{0pt}{15pt}% + {4pt}{0pt}% + {0pt}{15pt}% +} +\catcode`\@ = 12 +% Here the output of inputd ends "ts-itize.tip". + + +% Here begins "box-zero.tip". +% 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 4.5.13, p. I-104. +% Original source in file "reg2.TEX", starting line 1348. +\wlog{L: "box-zero.tip" ["reg2.TEX," l. 1348, p. I-104]}% +% This file DOES belong to format "texip." +\def\ZeroBox #1{% + \wd#1 = 0pt + \ht#1 = 0pt + \dp#1 = 0pt +} +\def\ZeroBoxOut #1{% + \ZeroBox{#1}% + \box#1% +} +% Here the output of inputd ends "box-zero.tip". + + +% Here begins "box-bul.tip". +% 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 9.3.4.1, p. I-322. +% Original source in file "boxit.TEX", starting line 472. +\wlog{L: "box-bul.tip" ["boxit.TEX," l. 472, p. I-322]}% +% This file DOES belong to format "texip." +\InputD{box-zero.tip} +\catcode`\@ = 11 +\newbox\@BulletBox +\setbox\@BulletBox = + \hbox{% + \hskip -2.3pt + \lower 2.5pt \hbox{$\bullet$}% + } +\ZeroBox{\@BulletBox} +\catcode`\@ = 12 +% Here the output of inputd ends "box-bul.tip". + + +% Here begins "box-bb.tip". +% 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 9.3.4.1, p. I-323. +% Original source in file "boxit.TEX", starting line 495. +\wlog{L: "box-bb.tip" ["boxit.TEX," l. 495, p. I-323]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newbox\@BoxingBox +\newbox\@BaseLineLeaders +\catcode`\@ = 12 +% Here the output of inputd ends "box-bb.tip". + + +% Here begins "box-thck.tip". +% 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 9.3.3, p. I-321. +% Original source in file "boxit.TEX", starting line 405. +\wlog{L: "box-thck.tip" ["boxit.TEX," l. 405, p. I-321]}% +% This file DOES belong to format "texip." +\newdimen\BoxRuleThickness +\BoxRuleThickness = 0.4pt +% Here the output of inputd ends "box-thck.tip". + + +% Here begins "boxing5.tip". +% 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 9.3.6.1, p. I-327. +% Original source in file "boxit.TEX", starting line 719. +\wlog{L: "boxing5.tip" ["boxit.TEX," l. 719, p. I-327]}% +% This file DOES belong to format "texip." +\InputD{box-zero.tip} +\InputD{box-bul.tip} +\InputD{box-bb.tip} +\InputD{box-thck.tip} +\catcode`\@ = 11 +\newif\ifBulletAndBaseLine +\BulletAndBaseLinetrue +\def\RulesOutSide #1#2#3{% + {% + \setbox 0 = \hbox{% + \ifBulletAndBaseLine + \copy\@BulletBox + \fi + \hskip -\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip #3% + \vrule width \BoxRuleThickness height #1 depth #2% + \dimen0 = #3% + \advance \dimen0 by 2\BoxRuleThickness + \hskip -\dimen0 + \dimen2 = #1% + \advance\dimen2 by \BoxRuleThickness + \vrule width \dimen0 height \dimen2 depth -#1% + \hskip -\dimen0 + \dimen2 = #2% + \advance\dimen2 by \BoxRuleThickness + \vrule width \dimen0 height -#2 depth \dimen2 + }% + \ZeroBoxOut{0}% + }% +} +\def\RulesInSide #1#2#3{% + {% + \setbox 0 = \hbox{% + \ifBulletAndBaseLine + \copy\@BulletBox + \fi + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip #3% + \hskip -\BoxRuleThickness + \hskip -\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip -#3% + \dimen2 = #1% + \advance\dimen2 by -\BoxRuleThickness + \vrule width #3 height #1 depth -\dimen2 + \hskip -#3% + \dimen2 = #2% + \advance\dimen2 by -\BoxRuleThickness + \vrule width #3 height -\dimen2 depth #2% + }% + \ZeroBoxOut{0}% + }% +} +\def\RulesOnSide #1#2#3{% + {% + \setbox 0 = \hbox{% + \ifBulletAndBaseLine + \copy\@BulletBox + \fi + \hskip -0.5\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip #3% + \hskip -\BoxRuleThickness + \vrule width \BoxRuleThickness height #1 depth #2% + \hskip -#3% + \hskip -\BoxRuleThickness + \dimen0 = #3% + \advance\dimen0 by \BoxRuleThickness + \dimen2 = #1% + \advance\dimen2 by 0.5\BoxRuleThickness + \dimen4 = #1% + \advance\dimen4 by -0.5\BoxRuleThickness + \dimen4 = -\dimen4 + \vrule width \dimen0 height \dimen2 depth \dimen4 + \hskip -\dimen0 + \dimen2 = #2% + \advance\dimen2 by -0.5\BoxRuleThickness + \dimen2 = -\dimen2 + \dimen4 = #2% + \advance\dimen4 by 0.5\BoxRuleThickness + \vrule width \dimen0 height \dimen2 depth \dimen4 + }% + \ZeroBoxOut{0}% + }% +} +\catcode`\@ = 12 +% Here the output of inputd ends "boxing5.tip". + + +% Here begins "boxing6.tip". +% 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 9.3.7, p. I-332. +% Original source in file "boxit.TEX", starting line 996. +\wlog{L: "boxing6.tip" ["boxit.TEX," l. 996, p. I-332]}% +% This file DOES belong to format "texip." +\InputD{box-zero.tip} +\InputD{boxing5.tip} +\catcode`\@ = 11 +\def\BoxingE #1{% + \hbox{% + \setbox\@BoxingBox = #1% + \setbox\@BaseLineLeaders = \hbox to \wd\@BoxingBox{% + \xleaders\hbox to 4pt{% + \hskip 1pt + \vrule depth 0.4pt height 0.4pt width 2pt + \hfil + }% + \hfil + }% + \ZeroBox{\@BaseLineLeaders}% + \ifBulletAndBaseLine + \box\@BaseLineLeaders + \fi + \RulesOnSide + {\ht\@BoxingBox}% + {\dp\@BoxingBox}% + {\wd\@BoxingBox}% + \box\@BoxingBox + }% +} +\catcode`\@ = 12 +% Here the output of inputd ends "boxing6.tip". + + +% Here begins "vcentx.tip". +% 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 7.5.5, p. I-249. +% Original source in file "vboxes1.TEX", starting line 2107. +\wlog{L: "vcentx.tip" ["vboxes1.TEX," l. 2107, p. I-249]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newbox\@VcenterXBox +\newdimen\@VcenterDimen +\def\VcenterX{% + \hbox\bgroup + \mathsurround = 0pt + \futurelet\@VCenterXToken\@VCenterXA +} +\def\@VCenterXA{% + \ifx\@VCenterXToken\bgroup + \let\@VcenterXNext = \@VcenterXOrdinary + \else + \ifx\@VCenterXToken t% + \let\@VcenterXNext = \@VcenterXTo + \else + \let\@VcenterXNext = \@VcenterXSpread + \fi + \fi + \@VcenterXNext +} +\def\@VcenterXOrdinary{% + \def\@VcenterCommand{\vcenter}% + \afterassignment\@VcenterXB + \let\@VcenterDrop = +} +\def\@VcenterXTo to{% + \def\@VcenterCommand{to}% + \afterassignment\@VcenterXToSpread + \@VcenterDimen = +} +\def\@VcenterXSpread spread{% + \def\@VcenterCommand{spread}% + \afterassignment\@VcenterXToSpread + \@VcenterDimen = +} +\def\@VcenterXToSpread{% + \edef\@VcenterCommand{% + \vcenter\@VcenterCommand \the\@VcenterDimen + }% + \afterassignment\@VcenterXB + \let\@VcenterDrop = +} +\def\@VcenterXB{% + \setbox\@VcenterXBox = \hbox\bgroup + $% + \@VcenterCommand\bgroup + \aftergroup\@VcenterXC +} +\def\@VcenterXC{% + $% + \egroup + \box\@VcenterXBox + \egroup +} +\catcode`\@ = 12 +% Here the output of inputd ends "vcentx.tip". + + +% Here begins "boxing7.tip". +% 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 9.3.9.1, p. I-335. +% Original source in file "boxit.TEX", starting line 1131. +\wlog{L: "boxing7.tip" ["boxit.TEX," l. 1131, p. I-335]}% +% This file DOES belong to format "texip." +\InputD{boxing6.tip} +\InputD{vcentx.tip} +\catcode`\@ = 11 +\newdimen\@BoxRDimen +\newbox\@BoxRBox +\newcount\@BoxRNumber +\def\HboxR{% + \hbox\bgroup + \def\@WhichBox{\hbox}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\VboxR{% + \vbox\bgroup + \def\@WhichBox{\vbox}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\VtopR{% + \vtop\bgroup + \def\@WhichBox{\vtop}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\VcenterXR{% + \hbox\bgroup + \def\@WhichBox{\VcenterX}% + \def\@WhichBoxDimen{}% + \@BoxRaa +} +\def\BoxR{% + \hbox\bgroup + \def\@WhichBox{\hbox}% + \def\@WhichBoxDimen{}% + \afterassignment\@BoxRB + \@BoxRNumber = +} +\def\@BoxRB{% + \HboxR{\box\@BoxRNumber}% + \egroup +} +\def\CopyR{% + \hbox\bgroup + \def\@WhichBox{\hbox}% + \def\@WhichBoxDimen{}% + \afterassignment\@CopyRbb + \@BoxRNumber = +} +\def\@CopyRbb{% + \HboxR{\copy\@BoxRNumber}% + \egroup +} +\def\@BoxRaa{% + \futurelet\@BoxRSymbol\@BoxRA +} +\def\@BoxRA{% + \ifx\@BoxRSymbol\bgroup + \let\@BoxitNext = \@BoxRb + \else + \if\@BoxRSymbol t% + \let\@BoxitNext = \@BoxRbTo + \else + \let\@BoxitNext = \@BoxRbSpread + \fi + \fi + \@BoxitNext +} +\def\@BoxRb{% + \afterassignment\@BoxRbTwo + \let\@BoxDrop = +} +\def\@BoxRbTwo{% + \setbox\@BoxRBox = \expandafter\@WhichBox\@WhichBoxDimen\bgroup + \aftergroup\@BoxRbThree +} +\def\@BoxRbThree{% + \BoxingE{\box\@BoxRBox}% + \egroup +} +\def\@BoxRbTo to{% + \def\@WhichBoxDimen{to}% + \afterassignment\@BoxRbMoreSpreadTo + \@BoxRDimen = +} +\def\@BoxRbSpread spread{% + \def\@WhichBoxDimen{spread}% + \afterassignment\@BoxRbMoreSpreadTo + \@BoxRDimen = +} +\def\@BoxRbMoreSpreadTo{% + \edef\@WhichBoxDimen{\@WhichBoxDimen \the\@BoxRDimen}% + \afterassignment\@BoxRbTwo + \let\@BoxDrop = +} +\catcode`\@ = 12 +% Here the output of inputd ends "boxing7.tip". + + +% Here begins "bugreport.tex". +\def\BugReport #1#2#3#4#5#6#7{% + \par + \bigskip + \noindent + {\bf Bug #1} (% + date: #2% + \if\EmptyStringConditional{#3}% + , section #3 + \fi + (internal name: {\tt #4.TEX}), + page~#5% + \if\EmptyStringConditional{#6}% + ). + \else + , #6). + \fi + \if\EmptyStringConditional{#7}% + No macro source file is affected by this bug. + \else + Macro source file(s) affected by this bug: + {\tt #7}. + \fi + \par +} +% Here the output of inputd ends "bugreport.tex". +% Here it ends! +\ListInputD +\def\RCSInfo $#1 ${% + \bigskip + \centerline{\bf RCS Information: \tt#1} +} +\InputD{ts-verb.tip} +\InputD{ts-lazy.tip} +\InputD{ts-brefm.tip} +\InputD{itemizel.tip} +\InputD{ts-itize.tip} +\InputD{boxing7.tip} +\InputD{compst.tip} +\InputD{bugreport.tex} + +\vsize = 7.4in + +\centerline{\bf Bug List, Version 2.0, ``\TeX{} in Practice, '' + September~15, 1993} + \centerline{Stephan v. Bechtolsheim} +% ============================================================ + +\RCSInfo $Id: bugs.TEX,v 1.50 1993/09/15 11:20:13 svb Exp svb $ + + Copyright $\copyright$ 1993 Stephan v.~Bechtolsheim. This file may +be copied as many times as you want, at any place in the world, +{\it as long as you make no changes\/} to this file. + + This is the list of known bugs, grammatical errors, and so forth of +``\TeX{} in Practice.'' + + If you have access to email please send any bug reports to +{\tt svb@rcmcon.com}. If not, please send your corrections to Springer-Verlag +at 175 Fifth Avenue, New York, NY 10010. + + This file can be processed with plain \TeX{} (all required macros are +prepended). + +Note the following history of this document: +\BeginItemize + \Item September 10, 1993, Version 1.0: bugs 1--21. + \Item September 15, 1993, Version 2.0: bugs 22--26. +\EndItemize + +Some further remarks: +\BeginItemize + \Item If the ASCII form of the index changes due to some bug fix, + then this will not be listed here. + \Item If you have access to {\tt ftp} the easiest solution is any + way to always retrieve the complete distribution instead of + relying on patches. +\EndItemize + +And here is where the bug reports start: + +\BugReport{1}{9/9/93}{20}{macros7}{III-376 and 392}{}{norpweek.tip, + weekofyr.tip} + Two files {\tt norpweek.tip} and {\tt weekofyr.tip} were listed as not + belonging to the \TeXIP{} format. Well, that was an oversight which is + fixed now. +\BugReport{2}{9/9/93}{18}{tokens1}{III-58 to III-59}{}{ts-verb.tip} + I added {\tt .flf2} files (besides {\tt .flf} files) + to be treated as {\tt log} files. I have + now two ways of generating {\tt log} files in the series: + {\tt flf} files use the plain format, {\tt flf2} + files use the \TeXIP{} format. Both {\it appear\/} as {\tt log} + files. + + This is more than anything else an internal change, {\it but\/} + it does affect {\tt ts-verb.tip}. +\BugReport{3}{6/12/93}{23}{table1}{III-34}{}{tabswb.tip} + There was an extra \verb+\input inputd.tip+ at the beginning of + {\tt tabswb.tip} which I removed. The file {\tt tabswb.tip} is now + version~1.1. + +\BugReport{4}{7/24/93}{7.3.4}{vboxes1}{I-221}{7th line from top}{} + It should read ``1~pt'' instead of ``1pt.'' + +\BugReport{5}{7/24/93}{2.8.2}{intro}{I-27}{second paragraph of 12. + last line of that paragraph: exchange double quote and period.}{} + +\BugReport{6}{7/24/98}{Bibliography}{biback}{I-346}{after Knuth~DE + 1990}{} Forgotten entry for \Bref{Knuth DE}{92}{} Literate Programming. + CLSI Lecture Notes Number 27, Center for Study of Language and + Information. + +\BugReport{7}{8/4/93}{}{General Remarks $\ldots$}{I-x, II-y, III-z, + IV-a}{Item ``Volume IV''}{} + The chapters listed in this item are in the wrong order. First + the table chapters are listed, then the output routine chapters. + This is an oversight resulting from an attempt to reverse the order + of chapters in Volume~IV\null. This had to be abandoned, because the + covers of the books were already printed. + + Anyway, here is the correct overview of chapters in Volume~IV: + \BeginItemize + \Item Chapter~32 discusses the determination of page breaks + by \TeX. + \Item Chapter~33 discusses the basics of output routines, + and introduces concepts like logical and physical + pages. + \Item Chapter~34 presents some simple output routines. + \Item Chapter~35 discusses the output routine of the + plain format and variations of it. + \Item Chapter~36 discusses output routines with insertions. + \Item Chapter~37 discusses double column output routines. + \Item Chapter~38 begins the discussion of tables typeset + with \TeX's \verb+\halign+ instruction. + \Item Chapter~39 also discusses tables, including vertical + spacing, struts and rules in tables. + \Item Chapter~40 discusses the centering of tables, tables + and paragraphs and preamble related macros. + \Item Chapter~41 discusses numerical computations in tables, + splitting tables, \verb+\valign+ and double tables. + \EndItemize + +\BugReport{8}{8/6/93}{General Notes, 6~Contacting the + Author}{manage/prel*}{I-xxxix} + {End of 4th line of first paragraph after title line}{} + Text omits {\it any\/}: please do not use {\it any\/} of Springer's + FAX numbers. +\BugReport{9}{8/9/93}{3.2.1}{reg1}{I-38}{Beginning of paragraph + preceding ``3.2.2~Arithmetic in \TeX''}{} + The paragraph's beginning should read: ``{\it Here a note to readers + familiar $\ldots\,$}.'' +\BugReport{10}{8/9/93}{3.3.3.1}{reg1}{I-44}{Paragraph after 3.3.3.1 + title}{} + The first paragraph after this title should read: ``The preceding + explanation may have sound very theoretical, so consider the following + example.'' (Delete ``an,'' delete the sentence ``Look $\ldots$ + code:''). +\BugReport{11}{8/9/93}{3.3.8.1}{reg1}{I-50}{8 lines from bottom}{} + Instead of ``The'' write ``Then.'' +\BugReport{12}{8/9/93}{3.3.9}{reg1}{I-52}{14th line from top}{} + Replace ``following'' by ``obey.'' +\BugReport{13}{8/9/93}{5.4.1}{glueetc}{I-136}{14th line from top}{} + Replace ``show'' by ``some.'' +\BugReport{14}{8/9/93}{5.6}{glueetc}{I-145}{Last sentence of~``2.''}{} + Replace second occurrence of ``replicated'' by ``box.'' +\BugReport{15}{8/9/93}{5.6.2}{glueetc}{I-147}{7th line from bottom}{} + Replace ``will be not'' by ``will not be.'' +\BugReport{16}{8/9/93}{5.7}{glueetc}{I-154}{1st line of 1st paragraph + after 5.7~Rules title}{} + Replace ``as it used'' by ``as it is used.'' +\BugReport{17}{8/9/93}{6.2.8}{boxes}{I-167}{5th line from bottom}{} + Replace ``end an box'' by ``end a box.'' +\BugReport{18}{8/9/93}{6.3.1}{boxes}{I-168}{2nd line of first paragraph + after 6.3.1 title}{} + \verb+\HboxR{ABC}+ was not supposed to be printed verbatim, it + was supposed to read \HboxR{ABC}. +\BugReport{19}{8/9/93}{6.3.7}{boxes}{I-173}{8th line from top}{} + Add closing parenthesis at the very end of the sentence. +\BugReport{20}{8/10/93}{16.3.5}{fonts2}{II-289}{1st line after 16.3.5 + title line}{} + Replace the word ``discussed'' by ``computed.'' +\BugReport{21}{9/10/93}{28.4.3.2}{io1}{III-469}{}{inputd.tip} + The order in which information was written to the {\tt .ipd} file + and new files were pulled in through \verb+\InputD+ calls in the + ``current file'' was reversed. That has been fixed. +\BugReport{22}{9/11/93}{2.7.1}{intro}{I-16}{middle of page, 2., line~3}{} + Rewrite as follows: ``The~{\tt @} simply prints as~{\tt @}. Nevertheless + this character requires special attention. It is frequently used + inside macro packages as a letter, whereas outside + macro packages it is used as a non-letter character (which + simply prints when used).'' +\BugReport{23}{9/11/93}{3.1}{reg1}{I-35}{middle of page}{} + Use the following sentence: ``When we will discuss dimensions and glue + parameters this process will become clearer'' instead of a similar to + correctly worded sentence. +\BugReport{24}{9/11/93}{3.3.2.3}{reg1}{I-42}{5th and 6th line from top}{} + Delete the whole sentence ``Preceding \TeX~3.0 (\TeX~2.9 is used as a + generic version number for that purpose below) and version \TeX~3.0.'' +\BugReport{25}{9/11/93}{6.2.5}{boxes}{I-165}{1st and 2nd line of 3rd + paragraph from the top}{} + Rewrite as follows: ``You might want to look {\it at\/} this macro + definition.'' +\BugReport{26}{9/13/93}{15.3.3}{fonts1}{II-248}{3rd line from top}{} + Misspelled ``Cyrilic'' (one~`l' only). This also changes the index + where the word is also misspelled. + +\vfill\eject +\leftline{\large\bf Version Numbers} +% ================================== +This table is structured as follows: +\BeginItemize + \Item Column 1: serial number. + \Item Column 2: file name of macro source file. + \Item Column 3: Version number of that file. + \Item Column 4: file name of the chapter (information for the author). + \Item Column 5: line number in that file (information for the author). +\EndItemize + +{ +\newcount\VersionNumbersLineNumber + + \tabskip = 0pt plus 1fil + \halign to \hsize{ + #\relax % 1. Line number (entry not used). + \global\advance\VersionNumbersLineNumber by 1 + \hfil\the\VersionNumbersLineNumber + \tabskip = 20pt& + \tt#\hfil \tabskip = 20pt& % 2. file name + \def\VersionNumber{#}% % 3. version number + \if\StringsEqualConditional{\VersionNumber}{1.0}% + 1.0% + \else + {\bf \VersionNumber}% + \fi + \hfil \tabskip = 20pt& + \tt#\hfil \tabskip = 20pt& % 4. sourcefile + \hfil# \tabskip = 0pt plus 1fil % 5. line number + \cr + \input macvntip.tex + } + There should be {\it 294\/} files listed in the preceding + table. If this is not the case the table is wrong. + Notify me immediately, please, if that should be the case. + \ifnum\VersionNumbersLineNumber = 294 + \else + {\bf ERROR: PRECEDING TABLE IS WRONG, DOES NOT CONTAIN + CORRECT NUMBER OF FILES (which is 294)}. + \fi + + {\bf I would like to take this opportunity to thank you all for + your feedback.} Thank you again! +} +\bye + + +% Here begins the original definition of "inpud.tip". +% 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.1 +% Date: Sep 10, 1993 +% +% +% This source code is documented in 28.4.3, p. III-468. +% Original source in file "io1.TEX", starting line 1076. +\wlog{L: "inputd.tip" ["io1.TEX," l. 1076, p. III-468]}% +% This file DOES belong to format "texip." +\input namedef.tip +\newif\ifInputDVerbose +\InputDVerbosefalse +\catcode`\@ = 11 +\newif\if@InputDList +\@InputDListfalse +\def\@InputDPrefix{@InputD-} +\NameDef{\@InputDPrefix namedef.tip}{} +\def\InputD #1{% + \if\NameDefinedConditional{\@InputDPrefix #1}% + \ifInputDVerbose + \wlog{\string\InputD: file "#1" was read-in before.}% + \fi + \else + \NameDef{\@InputDPrefix #1}{}% + \input #1 + \if@InputDList + \immediate\write\@InputDStream{#1}% + \fi + \fi +} +\catcode`\@ = 12 +\InputD{inputdl.tip} + + +% Here begins the original definition of "inpudl.tip". +% 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 28.4.3.3, p. III-470. +% Original source in file "io1.TEX", starting line 1175. +\wlog{L: "inputdl.tip" ["io1.TEX," l. 1175, p. III-470]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newwrite\@InputDStream +\def\ListInputD{% + \@InputDListtrue + \immediate\openout\@InputDStream = \jobname.ipd + \immediate\write\@InputDStream{inputd.tip}% + \immediate\write\@InputDStream{namedef.tip}% + \immediate\write\@InputDStream{inputdl.tip}% +} +\catcode`\@ = 12 + + +% End of stuff appended at the end. diff --git a/info/examples/tex-in-practice/toc-mac.tip b/info/examples/tex-in-practice/toc-mac.tip new file mode 100644 index 0000000000..e698de32fb --- /dev/null +++ b/info/examples/tex-in-practice/toc-mac.tip @@ -0,0 +1,57 @@ +% 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 12.4.1, p. II-122. +% Original source in file "par3.TEX", starting line 797. +\wlog{L: "toc-mac.tip" ["par3.TEX," l. 797, p. II-122]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newcount\@GenTocEntryLevel +\def\GenTocEntry #1#2#3#4{% + \par + \bgroup + \global\@GenTocEntryLevel = #1 + \leftskip = #4 + \parindent = #2 + \advance\parindent by -#4 + \dimen0 = #3 + \advance\dimen0 by -#2 + \@GenTocEntry +} +\def\@GenTocEntry #1#2#3#4#5#6#7#8{% + \rightskip = #1 plus 1in + \parfillskip = #2 + \advance\parfillskip by -#1 + #7 + \ifdim #3 > 0pt + \setbox0 = \hbox to #3{\hfil.\hfil} + \else + \setbox0 = \box\voidb@x + \fi + \leavevmode + \hbox to \dimen0 {#5\hfil}% + {% + #6% + \unskip + }% + \ifvoid 0 + \hfill + \else + \nobreak\leaders\copy0\hskip #4plus 1fil + \fi + #8% + \par + \egroup +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/today.tip b/info/examples/tex-in-practice/today.tip new file mode 100644 index 0000000000..3cf716e0a7 --- /dev/null +++ b/info/examples/tex-in-practice/today.tip @@ -0,0 +1,21 @@ +% 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 21.4.5, p. III-163. +% Original source in file "macros1.TEX", starting line 717. +\wlog{L: "today.tip" ["macros1.TEX," l. 717, p. III-163]}% +% This file DOES belong to format "texip." +\def\Today{% + \the\month/\the\day/\the\year +} diff --git a/info/examples/tex-in-practice/todayx.tip b/info/examples/tex-in-practice/todayx.tip new file mode 100644 index 0000000000..4a5cc70eb3 --- /dev/null +++ b/info/examples/tex-in-practice/todayx.tip @@ -0,0 +1,35 @@ +% 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 26.17, p. III-383. +% Original source in file "macros6.TEX", starting line 1220. +\wlog{L: "todayx.tip" ["macros6.TEX," l. 1220, p. III-383]}% +% This file DOES belong to format "texip." +\InputD{prmonth.tip} +\InputD{dateofw.tip} +\InputD{pmtime.tip} +\def\TodayX{% + \PrintCurrentMonth~\the\day, \the\year +} +\newcount\TodayYCount +\def\TodayY{% + {% + \ArbitraryDayOfWeek{\year}{\month}{\day}{\TodayYCount}% + \PrintDayOfWeek{\TodayYCount}{0}, + }% + \TodayX +} +\def\TodayZ{% + \TodayY, \PrintMilTime +} diff --git a/info/examples/tex-in-practice/topinfix.tip b/info/examples/tex-in-practice/topinfix.tip new file mode 100644 index 0000000000..ec2accf885 --- /dev/null +++ b/info/examples/tex-in-practice/topinfix.tip @@ -0,0 +1,40 @@ +% 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 35.5.2, p. IV-110. +% Original source in file "o2.TEX", starting line 1246. +\wlog{L: "topinfix.tip" ["o2.TEX," l. 1246, p. IV-110]}% +% This file DOES belong to format "texip." +\InputD{mspaces.tip} +\InputD{op-endin.tip} +\InputD{maxmindi.tip} +\catcode`\@ = 11 +\def\EndInsertTopInsFix{% + \ifdim\dp0 > 10pt + \wlog{\string\endinsert: \string\topinsert + material deeper than 10pt}% + \dp0 = 10pt + \fi + \MaxDimen{\dimen0}{\dp0}{0pt}{} + \dimen1 = \vsize + \advance\dimen1 by -\dimen0 + \advance\dimen1 by -12pt + \ifdim\ht0 > \dimen1 + \wlog{\string\endinsert: \noexpand\topinsert + material too long (\the\ht0),}% + \wlog{\EightSpaces shortened to \the\dimen1.}% + \ht0 = \dimen1 + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-brefm.tip b/info/examples/tex-in-practice/ts-brefm.tip new file mode 100644 index 0000000000..3c5ba3e1bd --- /dev/null +++ b/info/examples/tex-in-practice/ts-brefm.tip @@ -0,0 +1,21 @@ +% 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 21.4.11, p. III-167. +% Original source in file "macros1.TEX", starting line 881. +\wlog{L: "ts-brefm.tip" ["macros1.TEX," l. 881, p. III-167]}% +% This file DOES belong to format "texip." +\def\Bref #1#2#3{% + #1 (19#2#3)% +} diff --git a/info/examples/tex-in-practice/ts-bul.tip b/info/examples/tex-in-practice/ts-bul.tip new file mode 100644 index 0000000000..8d82b4145c --- /dev/null +++ b/info/examples/tex-in-practice/ts-bul.tip @@ -0,0 +1,23 @@ +% 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 21.4.11, p. III-167. +% Original source in file "macros1.TEX", starting line 862. +\wlog{L: "ts-bul.tip" ["macros1.TEX," l. 862, p. III-167]}% +% This file DOES belong to format "texip." +\def\td{% + \hskip 0.5em plus 0.1em minus 0.1em + $\bullet$% + \hskip 0.5em plus 0.1em minus 0.1em +} diff --git a/info/examples/tex-in-practice/ts-chap.tip b/info/examples/tex-in-practice/ts-chap.tip new file mode 100644 index 0000000000..c59a4a08fb --- /dev/null +++ b/info/examples/tex-in-practice/ts-chap.tip @@ -0,0 +1,63 @@ +% 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 31.2.7, p. III-600. +% Original source in file "pp2.TEX", starting line 717. +\wlog{L: "ts-chap.tip" ["pp2.TEX," l. 717, p. III-600]}% +% This file DOES belong to format "texip." +\InputD{counters.tip} +\InputD{dblarg.tip} +\InputD{ts-chhe.tip} +\InputD{npright.tip} +\catcode`\@ = 11 +\NewCounter{ChapterNo}{\arabic}% + {\TheCounter{ChapterNo}}{\TheCounter{ChapterNo}} +\def\Chapter{\DblArg{\@Chapter}}% +\def\@Chapter [#1]#2{% + \ShouldBeRightHandPage + \StepCounter{ChapterNo}% + \gdef\@LeftRunningHead{#2}% + \SetPageLayout{4} + \ChapterHeadingTeXIP{\PrintCounter{ChapterNo}}{#2} + \WriteToAuxSpecial{toc}{1}% + {\PrintCounter{ChapterNo}}{#1}{\PrintCounter{PageNo}}% + \WriteToAuxSpecial{lof}{0}{}{}{}% + \WriteToAuxSpecial{lot}{0}{}{}{}% + \def\Label ##1{\@Label{##1}{\RefCounter{ChapterNo}}{1}}% +} +\NewCounter{AppendixNo}{\Alph}% + {\TheCounter{AppendixNo}}{\TheCounter{AppendixNo}} +\AddCounterToResetList{SectionNo}{AppendixNo} +\AddCounterToResetList{AppendixNo}{VolumeNo} +\def\Appendix{\DblArg{\@Appendix}}% +\def\@Appendix [#1]#2{% + \NewPageRightHand + \StepCounter{AppendixNo}% + \ReassignCounter{SectionNo}{\arabic}% + {\PrintCounter{AppendixNo}.\TheCounter{SectionNo}}% + {\PrintCounter{AppendixNo}.\TheCounter{SectionNo}}% + \SetPageLayout{4} + \ChapterHeadingTeXIP{Appendix \PrintCounter{AppendixNo}}{#2} + \WriteToAuxSpecial{toc}{1}% + {\PrintCounter{AppendixNo}}{#1}{\PrintCounter{PageNo}}% + \def\Label ##1{\@Label{##1}{\RefCounter{AppendixNo}}{1}}% + \ignorespaces +} +\def\DoneWithAppendices{% + \ReassignCounter{SectionNo}{\alph}% + {\TheCounter{ChapterNo}.\TheCounter{SectionNo}}% + {\TheCounter{ChapterNo}.\TheCounter{SectionNo}} + \def\Label ##1{\@Label{##1}{\RefCounter{ChapterNo}}{1}}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-chhe.tip b/info/examples/tex-in-practice/ts-chhe.tip new file mode 100644 index 0000000000..4ade3e51c9 --- /dev/null +++ b/info/examples/tex-in-practice/ts-chhe.tip @@ -0,0 +1,48 @@ +% 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 8.4, p. I-300. +% Original source in file "vboxes2.TEX", starting line 1294. +\wlog{L: "ts-chhe.tip" ["vboxes2.TEX," l. 1294, p. I-300]}% +% This file DOES belong to format "texip." +\InputD{parin.tip} +\InputD{shboxes.tip} +\InputD{alwbase.tip} +\def\ChapterHeadingTeXIP #1#2{% + \setbox 1 = + \vbox to 13pc{ + \hyphenpenalty = 10000 + \parindent = 0pt + \huge + \bf + \baselineskip = 21pt + \AlwaysBaselineskip + \setbox 0 = \hbox{#1}% + \copy0 + \parskip = 3pc + \advance\parskip by -\dp0 + \advance\parskip by -\ht0 + \advance\parskip by -\baselineskip + \wlog{\string\ChapterHeadingTeXIP: computed value + of \noexpand\parskip is \the\parskip.}% + \spaceskip = 0.3333em + \xspaceskip = \spaceskip + \rightskip = 0pt plus 4em + #2 + \par + \vfil + } + \box 1 + \SuppressNextParIndent +} diff --git a/info/examples/tex-in-practice/ts-crm.tip b/info/examples/tex-in-practice/ts-crm.tip new file mode 100644 index 0000000000..83327431f3 --- /dev/null +++ b/info/examples/tex-in-practice/ts-crm.tip @@ -0,0 +1,116 @@ +% 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 31.2.11, p. III-607. +% Original source in file "pp2.TEX", starting line 1114. +\wlog{L: "ts-crm.tip" ["pp2.TEX," l. 1114, p. III-607]}% +% This file DOES belong to format "texip." +\InputD{pm-wrc.tip} +\InputD{ts-page2.tip} +\catcode`\@ = 11 +\def\PageRef #1{% + \@PageRef{#1}% + \@PageRefResult + \@PrintAfterLabel +} +\def\Page #1{% + \PageShortForm~\@PageRef{#1}% + \@PageRefResult + \@PrintAfterLabel +} +\def\OnPage #1{% + \@PageRef{#1}% + \if@CloseByReference + on \@PageRefResult\space page% + \else + on \PageShortForm~\@PageRefResult + \fi + \@PrintAfterLabel +} +\def\AtPage #1{% + \@PageRef{#1}% + \if@CloseByReference + at \@PageRefResult\space page% + \else + at \PageShortForm~\@PageRefResult + \fi + \@PrintAfterLabel +} +\def\CommaPage #1{% + \@PageRef{#1}% + \if@CloseByReference + \space on \@PageRefResult\space page% + \@PrintAfterLabel + \else + ,\space + \PageShortForm~\@PageRefResult + \@PrintAfterLabel + \fi +} +\def\CommaPageComma{% + \@PageRef{,}% + \if@CloseByReference + \space on \@PageRefResult\space page\space + \else + ,\space + \PageShortForm~\@PageRefResult + \@PrintAfterLabel + \space + \fi +} +\def\PageShortForm{p.} +\def\PagesShortForm{pp.} +\def\see #1#2{% + see \@SeeSee{#1}{#2}% +} +\def\See #1#2{% + See \@SeeSee{#1}{#2}% +} +\def\@SeeSee #1#2{% + \SectionRef{#1}% + \if\StringsEqualConditional{#2}{,}% + \CommaPageComma + \let\@SeeSeeEnd = \ignorespaces + \else + \CommaPage + #2% + \let\@SeeSeeEnd = \relax + \fi + \@SeeSeeEnd +} +\def\ChapterRef #1{% + Chapter~\Ref{#1}% +} +\def\SectionRef #1{% + \Ref{#1}% +} +\def\ItemRef #1{% + item~\Ref{#1}% +} +\def\FigRef #1{% + Fig.~\Ref{#1}% +} +\def\FigureRef #1{% + Figure~\Ref{#1}% +} +\def\TableRef #1{% + Table~\Ref{#1}% +} +\def\AppendixRef #1{% + Appendix~\Ref{#1}% +} +\def\PagesRef #1#2{% + \PagesShortForm~\PageRef{#1}--\PageRef{#2}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-dime1.tip b/info/examples/tex-in-practice/ts-dime1.tip new file mode 100644 index 0000000000..c098bf0690 --- /dev/null +++ b/info/examples/tex-in-practice/ts-dime1.tip @@ -0,0 +1,25 @@ +% 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 31.2.4.1, p. III-597. +% Original source in file "pp2.TEX", starting line 588. +\wlog{L: "ts-dime1.tip" ["pp2.TEX," l. 588, p. III-597]}% +% This file DOES belong to format "texip." +\InputD{parin.tip} +\newdimen\HsizeTeXIP +\newdimen\VsizeTeXIP +\newcount\ClubPenalty +\newcount\WidowPenalty +\newcount\InterlinePenalty +\newcount\BrokenPenalty diff --git a/info/examples/tex-in-practice/ts-dime2.tip b/info/examples/tex-in-practice/ts-dime2.tip new file mode 100644 index 0000000000..32c8524a75 --- /dev/null +++ b/info/examples/tex-in-practice/ts-dime2.tip @@ -0,0 +1,44 @@ +% 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 31.2.4.2, p. III-597. +% Original source in file "pp2.TEX", starting line 617. +\wlog{L: "ts-dime2.tip" ["pp2.TEX," l. 617, p. III-597]}% +% This file DOES belong to format "texip." +\InputD{ts-dime1.tip} +\InputD{ts-outpu.tip} +% %% INPUTD [tex] ovlf-tip +\def\SetUpTeXIPValues #1#2#3#4#5#6#7#8#9{% + \HsizeTeXIP = #1\relax + \hsize = \HsizeTeXIP + \VsizeTeXIP = #2\relax + \vsize = \VsizeTeXIP + \SetParIndent{20pt} + \ClubPenalty = #4\relax + \clubpenalty = \ClubPenalty + \WidowPenalty = #5\relax + \widowpenalty = \WidowPenalty + \InterlinePenalty = #6\relax + \interlinepenalty = \InterlinePenalty + \BrokenPenalty = #7\relax + \brokenpenalty = \BrokenPenalty + \OddPagesHorizontalShift = 0pt + \EvenPagesHorizontalShift = 0pt + \overfullrule = #8\relax + \parskip = #9\relax +% svb +% \ComputeOverlayLength +} +\SetUpTeXIPValues{6.5in}{8.9in}{20pt}{100}{100}{100}{100}% + {5pt}{0pt plus 1pt} diff --git a/info/examples/tex-in-practice/ts-dime3.tip b/info/examples/tex-in-practice/ts-dime3.tip new file mode 100644 index 0000000000..a085aef107 --- /dev/null +++ b/info/examples/tex-in-practice/ts-dime3.tip @@ -0,0 +1,20 @@ +% 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 31.2.4.3, p. III-598. +% Original source in file "pp2.TEX", starting line 658. +\wlog{L: "ts-dime3.tip" ["pp2.TEX," l. 658, p. III-598]}% +% This file DOES NOT belong to format "texip." +\InputD{ts-dime2.tip} +\SetUpTeXIPValues{29pc}{47pc}{10pt}{1000}{1000}{1000}{1000}{5pt}{0pt} diff --git a/info/examples/tex-in-practice/ts-enum.tip b/info/examples/tex-in-practice/ts-enum.tip new file mode 100644 index 0000000000..7bdfa97789 --- /dev/null +++ b/info/examples/tex-in-practice/ts-enum.tip @@ -0,0 +1,69 @@ +% 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 11.3.2, p. II-75. +% Original source in file "par2.TEX", starting line 1351. +\wlog{L: "ts-enum.tip" ["par2.TEX," l. 1351, p. II-75]}% +% This file DOES belong to format "texip." +\InputD{enumlist.tip} +\InputD{ts-fonts.tip} +\InputD{widestc.tip} +\catcode`\@ = 11 +\newdimen\@WidthLevelOneLabels +\FindWidestChar{\@WidthLevelOneLabels}{\normalsize\rm}% + {`\0}{`\9} +\setbox 0 = \hbox{.\hskip 1em} +\advance\@WidthLevelOneLabels by \wd0 +\def\@BeginEnumerateLevelOne{% + \BeginAList{\@WidthLevelOneLabels}{0pt}{1em}% + {12pt}{0pt}% + {0pt}{15pt}% +} +\newdimen\@WidthLevelTwoLabels +\FindWidestChar{\@WidthLevelTwoLabels}{\normalsize\rm}% + {`\a}{`\j} +\setbox 0 = \hbox{()\hskip 1em} +\advance\@WidthLevelTwoLabels by \wd0 +\def\@BeginEnumerateLevelTwo{% + \BeginAList{\@WidthLevelTwoLabels}{0pt}{10pt}% + {6pt}{0pt}% + {0pt}{15pt}% +} +\newdimen\@WidthLevelThreeLabels +\setbox 0 = \hbox{viii.\hskip 1em} +\@WidthLevelThreeLabels = \wd0 +\def\@BeginEnumerateLevelThree{% + \BeginAList{\@WidthLevelThreeLabels}{0pt}{10pt}% + {6pt}{0pt}% + {0pt}{15pt}% +} +\newdimen\@WidthLevelFourLabels +\FindWidestChar{\@WidthLevelFourLabels}{\normalsize\rm}% + {`\A}{`\J} +\setbox0 = \hbox{()\hskip 1em} +\advance\@WidthLevelFourLabels by \wd0 +\def\@BeginEnumerateLevelFour{% + \BeginAList{\@WidthLevelFourLabels}{0pt}{10pt}% + {6pt}{0pt}% + {0pt}{15pt}% +} +\def\EnumerateLevelOneExtended{% + \par + \FindWidestChar{\@WidthLevelOneLabels}{\normalsize\rm}% + {`\0}{`\9} + \multiply\@WidthLevelOneLabels by 2 + \setbox 0 = \hbox{.\hskip 1em}% + \advance\@WidthLevelOneLabels by \wd0 +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-float.tip b/info/examples/tex-in-practice/ts-float.tip new file mode 100644 index 0000000000..1ecb25db71 --- /dev/null +++ b/info/examples/tex-in-practice/ts-float.tip @@ -0,0 +1,121 @@ +% 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 35.9.3, p. IV-128. +% Original source in file "o2.TEX", starting line 2156. +\wlog{L: "ts-float.tip" ["o2.TEX," l. 2156, p. IV-128]}% +% This file DOES belong to format "texip." +\InputD{dblarg.tip} +\InputD{centpar.tip} +\InputD{futlet.tip} +\InputD{compst.tip} +\InputD{topinfix.tip} +\catcode`\@ = 11 +\NewCounter{FigureNo}{\arabic}% + {\TheCounter{ChapterNo}.\TheCounter{FigureNo}}% + {\TheCounter{ChapterNo}.\TheCounter{FigureNo}}% +\NewCounter{TableNo}{\arabic}% + {\TheCounter{ChapterNo}.\TheCounter{TableNo}}% + {\TheCounter{ChapterNo}.\TheCounter{TableNo}}% +\AddCounterToResetList{FigureNo}{ChapterNo} +\AddCounterToResetList{TableNo}{ChapterNo} +\def\Caption{\DblArg{\@Caption}} +\def\@Caption [#1]#2{% + \errmessage{\string\@Caption: caption out of place, caption + text = #1.}% +} +\def\BeginFigure{% + \DoFutureLet{\ifx}{[}{\@BeginFigure}{\@BeginFigure[t]}% +} +\newif\if@FigureInsertOk +\def\@BeginFigure[#1]{% + \begingroup + \def\@UseThisInsert{}% + \@FigureInsertOkfalse + \if\StringsEqualConditional{#1}{t}% + \def\@UseThisInsert{\topinsert}% + \@FigureInsertOktrue + \fi + \if\StringsEqualConditional{#1}{p}% + \def\@UseThisInsert{\pageinsert}% + \@FigureInsertOktrue + \fi + \if@FigureInsertOk + \else + \errmessage{\string\@BeginFigure: illegal argument + "#1." Use [t] instead.}% + \def\@UseThisInsert{\topinsert}% + \fi + \gdef\FigureCaptionText{}% + \gdef\FigureCaptionTextLof{}% + \StepCounter{FigureNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{FigureNo}}{0}}% + \def\@Caption [##1]##2{% + \gdef\FigureCaptionTextLof{##1}% + \gdef\FigureCaptionText{##2}% + \wlog{\noexpand\@Caption (figures), caption text saved: + ##2.}% + }% + \setbox 0 = \vbox\bgroup +} +\def\EndFigure{% + \egroup + \@UseThisInsert + \box0 + \if\EmptyStringConditional{\FigureCaptionText}% + \else + \bigskip + \CenterOrParagraph{% + \small + Figure~\PrintCounter{FigureNo}. + \FigureCaptionText + }% + \WriteToAuxSpecial{lof}{1}{\PrintCounter{FigureNo}}% + {\FigureCaptionTextLof}{\PrintCounter{PageNo}}% + \fi + \endinsert + \endgroup +} +\def\BeginTable{% + \begingroup + \gdef\TableCaptionText{}% + \gdef\TableCaptionTextLot{}% + \StepCounter{TableNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{TableNo}}{0}}% + \def\@Caption [##1]##2{% + \gdef\TableCaptionText{##2}% + \gdef\TableCaptionTextLot{##1}% + \wlog{\noexpand\@Caption for tables: ##2}% + }% + \setbox 0 = \vbox\bgroup +} +\def\EndTable{% + \egroup + \topinsert + \if\EmptyStringConditional{\TableCaptionText}% + \else + \smallskip + \CenterOrParagraph{% + \small + Table~\PrintCounter{TableNo}. + \TableCaptionText}% + \WriteToAuxSpecial{lot}{1}{\PrintCounter{TableNo}}% + {\TableCaptionTextLot}{\PrintCounter{PageNo}}% + \smallskip + \fi + \box0 + \endinsert + \endgroup +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-fonts.tip b/info/examples/tex-in-practice/ts-fonts.tip new file mode 100644 index 0000000000..3d3e7a0d13 --- /dev/null +++ b/info/examples/tex-in-practice/ts-fonts.tip @@ -0,0 +1,111 @@ +% 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 16.1.9, p. II-271. +% Original source in file "fonts2.TEX", starting line 447. +\wlog{L: "ts-fonts.tip" ["fonts2.TEX," l. 447, p. II-271]}% +% This file DOES belong to format "texip." +\InputD{lfondem.tip} +\InputD{ts-subst.tip} +\InputD{fsized.tip} +\InputD{newfont.tip} +\InputD{testdef.tip} +\font\RmLargerThanLife = cmr17 scaled \magstep5 +% \newfam\itfam % \it is family 4 +% \newfam\slfam % \sl is family 5 +% \newfam\bffam % \bf is family 6 +% \newfam\ttfam % \tt is family 7 +\NewFont\Vrm = cmr5 +\NewFont\Vit = cmti7 at 5pt +\NewFont\Vbf = cmbx5 +\NewFont\Vsc = cmcsc10 at 5pt +\SubstituteFont{\Vtt}{\tt}{7}{\VIIrm} +\SubstituteFont{\Vsc}{\sc}{7}{\VIIrm} +\SubstituteFont{\Vsl}{\sl}{7}{\VIIrm} +\NewFont\VIIrm = cmr7 +\NewFont\VIIit = cmti7 +\NewFont\VIIbf = cmbx7 +\NewFont\VIIsc = cmcsc10 at 7pt +\SubstituteFont{\VIItt}{\tt}{7}{\VIIrm} +\SubstituteFont{\VIIsl}{\sl}{7}{\VIIrm} +\NewFont\VIIIrm = cmr8 +\NewFont\VIIIit = cmti8 +\NewFont\VIIIbf = cmbx8 +\NewFont\VIIItt = cmtt8 +\NewFont\VIIIsc = cmcsc10 at 8pt +\SubstituteFont{\VIIIsl}{\sl}{8}{\VIIIrm} +\NewFont\IXrm = cmr9 +\NewFont\IXit = cmti9 +\NewFont\IXbf = cmbx9 +\NewFont\IXtt = cmtt9 +\NewFont\IXsc = cmcsc10 at 9pt +\SubstituteFont{\IXsl}{\sl}{9}{\IXrm} +\NewFont\Xrm = cmr10 +\NewFont\Xit = cmti10 +\NewFont\Xbf = cmbx10 +\NewFont\Xtt = cmtt10 +\NewFont\Xsc = cmcsc10 +\NewFont\Xsl = cmcsc10 +\NewFont\XIIrm = cmr12 +\NewFont\XIIit = cmti12 +\NewFont\XIIbf = cmbx12 +\NewFont\XIItt = cmtt12 +\NewFont\XIIsc = cmcsc10 scaled \magstep 1 +\NewFont\XIIsl = cmcsc10 scaled \magstep 1 +\NewFont\XIIIrm = cmr12 scaled \magstephalf +\NewFont\XIIIit = cmti12 scaled \magstephalf +\NewFont\XIIIbf = cmbx12 scaled \magstephalf +\NewFont\XIIItt = cmtt12 scaled \magstephalf +\NewFont\XIIIsc = cmcsc10 scaled \magstephalf +\NewFont\XIIIsl = cmcsc10 scaled \magstephalf +\NewFont\XVIIrm = cmr12 scaled \magstep 2 +\NewFont\XVIIit = cmti12 scaled \magstep 2 +\NewFont\XVIIbf = cmbx12 scaled \magstep 2 +\NewFont\XVIItt = cmtt12 scaled \magstep 2 +\NewFont\XVIIsc = cmcsc10 scaled \magstep 3 +\NewFont\XVIIsl = cmcsc10 scaled \magstep 3 +\NewFont\XXIrm = cmr17 scaled \magstep 1 +\NewFont\XXIit = cmti12 scaled \magstep 3 +\NewFont\XXIbf = cmbx12 scaled \magstep 3 +\NewFont\XXIsc = cmcsc10 scaled \magstep 4 +\LoadFontOnDemand{\XXItt}{cmtt12 scaled \magstep 3} +\SubstituteFont{\XXIsl}{\sl}{20.74}{\XXIrm} +\NewFont\XXVrm = cmr17 scaled \magstep 2 +\NewFont\XXVit = cmti12 scaled \magstep 4 +\NewFont\XXVbf = cmbx12 scaled \magstep 4 +\NewFont\XXVsc = cmcsc10 at 5pt +\LoadFontOnDemand{\XXVtt}{cmtt12 scaled \magstep 4} +\SubstituteFont{\XXVsl}{\sl}{20.74}{\XXVrm} +\DefineFontSizeGroup{V}{5} +\DefineFontSizeGroup{VII}{7} +\DefineFontSizeGroup{VIII}{8} +\DefineFontSizeGroup{IX}{9} +\DefineFontSizeGroup{X}{10} +\DefineFontSizeGroup{XII}{12} +\DefineFontSizeGroup{XIII}{13.14} +\DefineFontSizeGroup{XVII}{17.28} +\DefineFontSizeGroup{XXI}{20.74} +\DefineFontSizeGroup{XXV}{24.88} +\let\tiny = \FontSizeV +\let\scriptsize = \FontSizeVII +\let\footnotesize = \FontSizeVIII +\let\small = \FontSizeIX +\let\normalsize = \FontSizeX +\let\large = \FontSizeXII +\let\Large = \FontSizeXIII +\let\LARGE = \FontSizeXVII +\let\huge = \FontSizeXXI +\let\Huge = \FontSizeXXV +\def\LineSpaceMultFactor{1.2} +\normalsize diff --git a/info/examples/tex-in-practice/ts-foot.tip b/info/examples/tex-in-practice/ts-foot.tip new file mode 100644 index 0000000000..47d3982dd6 --- /dev/null +++ b/info/examples/tex-in-practice/ts-foot.tip @@ -0,0 +1,41 @@ +% 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 35.4.2, p. IV-102. +% Original source in file "o2.TEX", starting line 793. +\wlog{L: "ts-foot.tip" ["o2.TEX," l. 793, p. IV-102]}% +% This file DOES belong to format "texip." +\InputD{op-pagec.tip} +\catcode`\@ = 11 +\NewCounter{FootNote}{\arabic}% + {\TheCounter{FootNote}}% + {\PrintCounter{FootNote}} +\AddCounterToResetList{FootNote}{ChapterNo} +\def\FootNote #1{% + \StepCounter{FootNote}% + \footnote{$^{\PrintCounter{FootNote}}$}% + {% + \small + \baselineskip = 9pt + #1% + }% +} +\skip\footins = 18.4pt +\def\@PrintFootnotePlain{% + \vskip 12pt plus 2pt minus 1pt + \hrule width 5pc height 0.4pt depth 0pt + \vskip 6pt plus 1pt minus 0.5pt + \unvbox\footins +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-gnot.tip b/info/examples/tex-in-practice/ts-gnot.tip new file mode 100644 index 0000000000..811c82287b --- /dev/null +++ b/info/examples/tex-in-practice/ts-gnot.tip @@ -0,0 +1,68 @@ +% 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 31.2.8, p. III-602. +% Original source in file "pp2.TEX", starting line 846. +\wlog{L: "ts-gnot.tip" ["pp2.TEX," l. 846, p. III-602]}% +% This file DOES NOT belong to format "texip." +\catcode`\@ = 11 +\def\GeneralNotes #1#2{% + \NewPageRightHand + \SetPageLayout{4} + \ReassignCounter{PageNo}{\roman}% + {\TheCounter{PageNo}}{\TheCounter{PageNo}} + \ReassignCounter{SectionNo}{\arabic}% + {\TheCounter{SectionNo}}% + {\TheCounter{SectionNo}}% + \SetCounter{SectionNo}{0}% + \def\@LeftRunningHead{#1} + \def\@RightRunningHead{\@LeftRunningHead} + \WriteToAuxSpecial{toc}{0}% + {}{#1 #2}% + {\PrintCounter{PageNo}}% + \ChapterHeadingTeXIP{#1}% + {#2} +} +\def\GSection{\DblArg{\@GSection}}% +\def\@GSection [#1]#2{% + \StepCounter{SectionNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{SectionNo}}{1}}% + \GenericHeading{2}{36pt plus 10pt minus 2pt} + {1}{1}{1}{24pt}{0}% + {\Large\baselineskip = 15pt}{-13pt}% + {\PrintCounter{SectionNo}}{#2}{#1}% + \gdef\EveryParB{% + {% + \@MakeRobustMacros + \wlog{MARK: "#2"}% + \mark{#2}% + }% + }% +} +\def\EndGeneralNotes{% + \wlog{\string\EndGeneralNotes: called}% + \NewPageRightHandSpecial + \SetCounter{PageNo}{1} + \@PageNumbersToCounterRegs + \ReassignCounter{PageNo}{\arabic}% + {\TheCounter{PageNo}}% + {\TheCounter{VolumeNo}-\TheCounter{PageNo}} + \wlog{\string\EndGeneralNotes: \noexpand\count0 + has value \the\count0}% + \count1 = 0 + \ReassignCounter{SectionNo}{\arabic}% + {\TheCounter{ChapterNo}.\TheCounter{SectionNo}}% + {\TheCounter{ChapterNo}.\TheCounter{SectionNo}} +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-hall.tip b/info/examples/tex-in-practice/ts-hall.tip new file mode 100644 index 0000000000..5d4731bdd0 --- /dev/null +++ b/info/examples/tex-in-practice/ts-hall.tip @@ -0,0 +1,21 @@ +% 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 31.2.5, p. III-599. +% Original source in file "pp2.TEX", starting line 669. +\wlog{L: "ts-hall.tip" ["pp2.TEX," l. 669, p. III-599]}% +% This file DOES belong to format "texip." +\InputD{ts-vol.tip} +\InputD{ts-chap.tip} +\InputD{ts-shead.tip} diff --git a/info/examples/tex-in-practice/ts-hmore.tip b/info/examples/tex-in-practice/ts-hmore.tip new file mode 100644 index 0000000000..dcc73dc9dc --- /dev/null +++ b/info/examples/tex-in-practice/ts-hmore.tip @@ -0,0 +1,39 @@ +% 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 31.2.10, p. III-606. +% Original source in file "pp2.TEX", starting line 1069. +\wlog{L: "ts-hmore.tip" ["pp2.TEX," l. 1069, p. III-606]}% +% This file DOES belong to format "texip." +\InputD{pm-wrc.tip} +\catcode`\@ = 11 +\def\label{\Label} +\def\WriteCountersToAuxFile{% + \@WriteCounter{VolumeNo}% + \@WriteCounter{ChapterNo}% + \@WriteCounter{AppendixNo}% + \@WriteCounter{SectionNo}% + \@WriteCounter{SubSectionNo}% + \@WriteCounter{SubSubSectionNo}% + \@WriteCounter{PageNo}% + \@WriteCounter{SWPageNo}% + \@WriteCounter{FigureNo}% + \@WriteCounter{TableNo}% + \@WriteCounter{CloseByReferenceCount}% +} +\def\Label #1{% + \message{\noexpand\Label currently undefined, + label "#1" ignored.}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-hyph.tip b/info/examples/tex-in-practice/ts-hyph.tip new file mode 100644 index 0000000000..470cea540f --- /dev/null +++ b/info/examples/tex-in-practice/ts-hyph.tip @@ -0,0 +1,27 @@ +% 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 12.7.14, p. II-148. +% Original source in file "par3.TEX", starting line 2066. +\wlog{L: "ts-hyph.tip" ["par3.TEX," l. 2066, p. II-148]}% +% This file DOES belong to format "texip." +\lefthyphenmin = 2 +\righthyphenmin = 3 +\hyphenation{Ado-be} +\hyphenation{after} +\hyphenation{base-line-skip} +\hyphenation{man-u-script} +\hyphenation{obey-lines} +\hyphenation{obey-spaces} +\hyphenation{other-wise} diff --git a/info/examples/tex-in-practice/ts-itize.tip b/info/examples/tex-in-practice/ts-itize.tip new file mode 100644 index 0000000000..2dafcfa20a --- /dev/null +++ b/info/examples/tex-in-practice/ts-itize.tip @@ -0,0 +1,46 @@ +% 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 11.3.4, p. II-78. +% Original source in file "par2.TEX", starting line 1523. +\wlog{L: "ts-itize.tip" ["par2.TEX," l. 1523, p. II-78]}% +% This file DOES belong to format "texip." +\InputD{itemizel.tip} +\InputD{ts-fonts.tip} +\catcode`\@ = 11 +\def\@BeginItemizeLevelOne{% + \BeginAList + {15pt}{0pt}{15pt}% + {12pt}{0pt}% + {0pt}{15pt}% +} +\def\@BeginItemizeLevelTwo{% + \BeginAList + {15pt}{0pt}{15pt}% + {6pt}{0pt}% + {0pt}{15pt}% +} +\def\@BeginItemizeLevelThree{% + \BeginAList + {15pt}{0pt}{15pt}% + {4pt}{0pt}% + {0pt}{15pt}% +} +\def\@BeginItemizeLevelFour{% + \BeginAList + {15pt}{0pt}{15pt}% + {4pt}{0pt}% + {0pt}{15pt}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-lazy.tip b/info/examples/tex-in-practice/ts-lazy.tip new file mode 100644 index 0000000000..cbd56c8191 --- /dev/null +++ b/info/examples/tex-in-practice/ts-lazy.tip @@ -0,0 +1,24 @@ +% 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 21.4.10, p. III-167. +% Original source in file "macros1.TEX", starting line 849. +\wlog{L: "ts-lazy.tip" ["macros1.TEX," l. 849, p. III-167]}% +% This file DOES belong to format "texip." +\def\TeXIP{% + \TeX{} in Practice% +} +\def\WEB{% + {\tt WEB}% +} diff --git a/info/examples/tex-in-practice/ts-loft.tip b/info/examples/tex-in-practice/ts-loft.tip new file mode 100644 index 0000000000..e77c9b94c8 --- /dev/null +++ b/info/examples/tex-in-practice/ts-loft.tip @@ -0,0 +1,31 @@ +% 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 12.4.4, p. II-129. +% Original source in file "par3.TEX", starting line 1105. +\wlog{L: "ts-loft.tip" ["par3.TEX," l. 1105, p. II-129]}% +% This file DOES belong to format "texip." +\InputD{toc-mac.tip} +\InputD{vsmax.tip} +\def\EntryIntolof #1#2#3#4{% + \ifcase #1 + \MaxVskip{12pt}% + \or + \GenTocEntry{#1}{10pt}{50pt}{50pt}{25pt}% + {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4} + \else + \errmessage{\string\EntryIntolof/lot: illegal level.}% + \fi +} +\let\EntryIntolot = \EntryIntolof diff --git a/info/examples/tex-in-practice/ts-logo.tip b/info/examples/tex-in-practice/ts-logo.tip new file mode 100644 index 0000000000..63fcfe3f2c --- /dev/null +++ b/info/examples/tex-in-practice/ts-logo.tip @@ -0,0 +1,26 @@ +% 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 21.4.9, p. III-166. +% Original source in file "macros1.TEX", starting line 834. +\wlog{L: "ts-logo.tip" ["macros1.TEX," l. 834, p. III-166]}% +% This file DOES belong to format "texip." +\def\PS{{\sc Post\-Script}} +\font\MetafontLogoFont = logo10 scaled \magstep0 +\def\MF{{\MetafontLogoFont METAFONT}} +\def\textfontii{\the\textfont2} +\def\AmSTeX{{\textfontii A}\kern-.1667em\lower.5ex\hbox + {\textfontii M}\kern-.125em{\textfontii S}-\TeX} +\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} diff --git a/info/examples/tex-in-practice/ts-main.tip b/info/examples/tex-in-practice/ts-main.tip new file mode 100644 index 0000000000..255055a55c --- /dev/null +++ b/info/examples/tex-in-practice/ts-main.tip @@ -0,0 +1,67 @@ +% 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 31.2.3, p. III-595. +% Original source in file "pp2.TEX", starting line 466. +\wlog{L: "ts-main.tip" ["pp2.TEX," l. 466, p. III-595]}% +% This file DOES NOT belong to format "texip." +\nonstopmode +\input inputd.tip +\ListInputD +\InputD{ts-writc.tip} +\InputD{verb-bas.tip} +\InputD{ts-dime3.tip} +\InputD{ts-set.tip} +\InputD{ts-verb.tip} +\InputD{part-mac.tip} +\InputD{ts-pager.tip} +\InputD{ts-hall.tip} +\InputD{ts-hmore.tip} +\InputD{ts-crm.tip} +\InputD{ts-foot.tip} +\InputD{ts-float.tip} +\InputD{ts-robst.tip} +\InputD{ts-outpu.tip} +\InputD{topinfix.tip} +\InputD{evhvbox.tip} +\InputD{everyequ.tip} +\InputD{frac.tip} +\InputD{ts-gnot.tip} +\InputD{outf-rad.tip} +\InputD{ts-toc.tip} +\InputD{ts-loft.tip} +\InputD{ts-hyph.tip} +\InputD{ts-bib.tip} +\InputD{ts-ack.tip} +\InputD{ovlf-pl.tex} +\InputD{ovlf-tip.tex} +\ComputeOverlayLength +\InputD{chbmac.tex} +\InputD{ts-index.tip} +\InputD{side-notes.tex} +\IndexSpecialtrue +\InputD{ts-dfp.tip} +\PartVerbosefalse +\ChangeBarAdvice{}{}{}{}{}{}{} +\def\PartSourceFileNameExtension{too} +\def\LineSpaceMultFactor{1.2} +\normalsize +\InitialParts +\input docparts.tex +\input processpart.tex +\ProcessNow +\EndProcessing +\EndEveryBox +\EndEveryMathDeal +\end diff --git a/info/examples/tex-in-practice/ts-outpu.tip b/info/examples/tex-in-practice/ts-outpu.tip new file mode 100644 index 0000000000..39902664bf --- /dev/null +++ b/info/examples/tex-in-practice/ts-outpu.tip @@ -0,0 +1,188 @@ +% 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 35.9.1, p. IV-122. +% Original source in file "o2.TEX", starting line 1834. +\wlog{L: "ts-outpu.tip" ["o2.TEX," l. 1834, p. IV-122]}% +% This file DOES belong to format "texip." +\InputD{namedef.tip} +\InputD{showpll.tip} +\InputD{new-midi.tip} +\InputD{topinfix.tip} +\InputD{nathd.tip} +\InputD{rangetst.tip} +\newif\ifWritePageLog +\WritePageLogfalse +\newwrite\PageLogStream +\def\WritePageLogFile{% + \immediate\openout\PageLogStream = \jobname.plog + \WritePageLogtrue +} +\newcount\BadnessSave +\ShowPlainListsfalse +\catcode`\@ = 11 +\newcount\@PageLayoutCode +\def\SetPageLayout #1{% + \global\@PageLayoutCode = #1 + \CheckRange{\@PageLayoutCode}{0}{5}% + {\string\SetPageLayout: } +} +\SetPageLayout{0}% +\def\@LeftRunningHead{} +\def\@RightRunningHead{} +\newcount\@SavedPageLayoutCode +\def\NewPageRightHandSpecial{% + \vfill + \supereject + \ifodd\count0 + \wlog{\string\NewPageRightHandSpecial: no empty + page to generate (\string\count0 = \the\count0)}% + \else + \hbox{} + \@SavedPageLayoutCode = \@PageLayoutCode + \SetPageLayout{1}% + \wlog{\string\NewPageRightHandSpecial: empty page + generated, + (\string\count0 = \the\count0).}% + \vfill + \eject + \SetPageLayout{\@SavedPageLayoutCode}% + \fi +} +\newdimen\OddPagesHorizontalShift +\newdimen\EvenPagesHorizontalShift +\newdimen\CurrentPageShift +\def\plainoutput{% + \@ShowPlainLists + \edef\@LeftRunningHead{\@LeftRunningHead}% + \edef\@RightRunningHead{\@RightRunningHead}% + \ifnum\@PageLayoutCode = 0 + \else + \headline = {} + \footline = {} + \fi + \ifcase\@PageLayoutCode + \or + \or + \global\@PageLayoutCode = 3 + \or + \@PageLayoutCodeThree + \or + \global\@PageLayoutCode = 5 + \or + \ifodd\count0 + \headline = {% + \small\rm + \hfil + \botmark + \hskip 18pt + \PrintCounter{PageNo}% + }% + \else + \headline = {% + \small\rm + \PrintCounter{PageNo}% + \hskip 18pt + \@LeftRunningHead + \hfil + }% + \fi + \else + \errmessage{\string\plainoutput: \string\@PageLayoutCode + out of range.}% + \fi + \setbox 4 = \vbox{% + \pagebody + }% + \ifWritePageLog + \immediate\write\PageLogStream{% + Part name: \CurrentPartName, Page \the\count0 + }% + \immediate\write\PageLogStream{% + Page \the\count0: + stretch: \the\pagestretch, + shrink: \the\pageshrink, + outputpenalty: \the\outputpenalty + }% + \immediate\write\PageLogStream{% + pagefilstretch: \the\pagefilstretch, + pagefillstretch: \the\pagefillstretch + }% + \immediate\write\PageLogStream{% + ht 255: \the\ht255, + dp 255: \the\dp255 + }% + \NaturalHeight{\dimen0}{255}% + \NaturalDepth{\dimen1}{255}% + \immediate\write\PageLogStream{% + Natural height: \the\dimen0, + Natural depth: \the\dimen1 + }% + \dimen2 = \vsize + \advance\dimen2 by -\dimen0 + \immediate\write\PageLogStream{% + Ideal height: \the\vsize, + Difference: \the\dimen2 + }% + \immediate\write\PageLogStream{% + badness: \the\BadnessSave, + height: \the\ht4, + depth: \the\dp4 + }% + \immediate\write\PageLogStream{}% + \fi + \setbox 5 = \vbox{% + \makeheadline + \box 4 + \makefootline + }% + \@MakeRobustMacros + \ifodd\count0 + \CurrentPageShift = \OddPagesHorizontalShift + \else + \CurrentPageShift = \EvenPagesHorizontalShift + \fi + \wlog{Redefined \string\plainoutput (ts-outpu.tip): + Shifting: shift amount is \the\CurrentPageShift\space\space + (page is \the\pageno).}% + \setbox 6 = \vbox{% + \moveright\CurrentPageShift \box5 + }% + \shipout\box6 + \advancepageno + \ifnum\outputpenalty > -10000 + \else + \dosupereject + \fi +} +\def\@PageLayoutCodeThree{% + \ifodd\count0 + \headline = {% + \small\rm + \hfil + \@RightRunningHead + \hskip 18pt + \PrintCounter{PageNo}% + }% + \else + \headline = {% + \small\rm + \PrintCounter{PageNo}% + \hskip 18pt + \@LeftRunningHead + \hfil + }% + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-page2.tip b/info/examples/tex-in-practice/ts-page2.tip new file mode 100644 index 0000000000..974be452c2 --- /dev/null +++ b/info/examples/tex-in-practice/ts-page2.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.8.6.3, p. III-571. +% Original source in file "pp1.TEX", starting line 1937. +\wlog{L: "ts-page2.tip" ["pp1.TEX," l. 1937, p. III-571]}% +% This file DOES belong to format "texip." +\InputD{part-cr.tip} +\InputD{rangetst.tip} +\InputD{ts-pager.tip} +\catcode`\@ = 11 +\newcount\@PageRefLimitLow +\newcount\@PageRefLimitHigh +\newif\if@CloseByReference +\newcount\@PageCloseRefCount +\newcount\@PageNumberActual +\def\NoSpecialPageRef{% + \global\@NoSpecialPageReftrue +} +\newif\if@NoSpecialPageRef +\@NoSpecialPageReffalse +\def\@PageRef #1{% + \def\@PageRefResult{}% + \global\@CloseByReferencefalse + \StepCounter{CloseByReferenceCount}% + \CounterToRegister{\global\@PageCloseRefCount}% + {CloseByReferenceCount}% + \@ref{1}{#1}% + \if\StringsEqualConditional{\@TheExpandedLabel}{??}% + \def\@PageRefResult{??}% + \else + \if\PrefixConditional + {\@TheExpandedLabel}% + {\TheCounter{VolumeNo}-}% + \DropPrefix{\@TheExpandedLabel}{\TheCounter{VolumeNo}-}% + {\@TheShortenedLabel}% + \def\@PageRefResult{\@TheShortenedLabel}% + \Label{@READ@-% + \@ThisLabel-\the\@PageCloseRefCount}% + \@PageRefLimitLow = \@TheShortenedLabel + \advance\@PageRefLimitLow by -1 + \@PageRefLimitHigh = \@TheShortenedLabel + \advance\@PageRefLimitHigh by 1 + \edef\@Ref@Temp@Name{% + \@LabelRefPrefix @READ@-% + \@ThisLabel-\the\@PageCloseRefCount + }% + \if\NameDefinedConditional{\@Ref@Temp@Name}% + \edef\@Ref@Temp@NameTwo{% + \NameUse{\@Ref@Temp@Name}% + }% + \wlog{@READ@: 1 \@Ref@Temp@Name / + \@Ref@Temp@NameTwo}% + \edef\@Ref@Temp@NameThree{% + \expandafter\PickSecondOfTwo + \@Ref@Temp@NameTwo + }% + \wlog{@READ@ 1a: \@Ref@Temp@NameThree}% + \DropPrefix + {\@Ref@Temp@NameThree}% + {\TheCounter{VolumeNo}-}% + {\@ResultLocalRef}% +% \show\@ResultLocalRef + \@PageNumberActual = \@ResultLocalRef + \else + \wlog{@READ@ 2}% + \@PageNumberActual = \count0 + \@PageRefLimitLow = -10 + \@PageRefLimitHigh = -10 + \fi + \if\InRangeConditional + {\@PageNumberActual}% + {\@PageRefLimitLow}% + {\@PageRefLimitHigh}% + \wlog{@READ@ 3}% + \@CloseByReferencetrue + \if@NoSpecialPageRef + \@CloseByReferencefalse + \fi + \else + \wlog{@READ@ 4}% + \@CloseByReferencefalse + \fi + \global\@NoSpecialPageReffalse + \if@CloseByReference + \ifnum\@PageNumberActual = \@PageRefLimitLow + \wlog{\string\PageRef: Reference "\@ThisLabel," + on page \the\@PageNumberActual + \space refers to the next page.}% + \def\@PageRefResult{the next}% + \fi + \ifnum\@PageNumberActual = \@TheShortenedLabel + \wlog{\string\PageRef: Reference "\@ThisLabel" + on page \the\@PageNumberActual + \space refers to the current page.}% + \def\@PageRefResult{this}% + \fi + \ifnum\@PageNumberActual = \@PageRefLimitHigh + \wlog{\string\PageRef: Reference "\@ThisLabel" + on page \the\@PageNumberActual + \space refers to the preceding page.}% + \def\@PageRefResult{the previous}% + \fi + \fi + \else + \def\@PageRefResult{\@TheExpandedLabel}% + \fi + \fi + \edef\@PageRefResult{\@PageRefResult}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-pager.tip b/info/examples/tex-in-practice/ts-pager.tip new file mode 100644 index 0000000000..68e3688a0c --- /dev/null +++ b/info/examples/tex-in-practice/ts-pager.tip @@ -0,0 +1,38 @@ +% 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.8.5, p. III-568. +% Original source in file "pp1.TEX", starting line 1820. +\wlog{L: "ts-pager.tip" ["pp1.TEX," l. 1820, p. III-568]}% +% This file DOES belong to format "texip." +\InputD{part-cr.tip} +\InputD{rangetst.tip} +\catcode`\@ = 11 +\def\@PageRef #1{% + \def\@PageRefResult{}% + \@ref{1}{#1}% + \if\StringsEqualConditional{\@TheExpandedLabel}{??}% + \def\@PageRefResult{??}% + \else + \if\PrefixConditional{\@TheExpandedLabel}% + {\TheCounter{VolumeNo}-}% + \DropPrefix{\@TheExpandedLabel}{\TheCounter{VolumeNo}-}% + {\@TheShortenedLabel}% + \edef\@PageRefResult{\@TheShortenedLabel}% + \else + \edef\@PageRefResult{\@TheExpandedLabel}% + \fi + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-robst.tip b/info/examples/tex-in-practice/ts-robst.tip new file mode 100644 index 0000000000..c747fd9c61 --- /dev/null +++ b/info/examples/tex-in-practice/ts-robst.tip @@ -0,0 +1,42 @@ +% 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.6, p. III-561. +% Original source in file "pp1.TEX", starting line 1450. +\wlog{L: "ts-robst.tip" ["pp1.TEX," l. 1450, p. III-561]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\@MakeRobustMacros{% + \TreatAsRobust\rm + \TreatAsRobust\bf + \TreatAsRobust\it + \TreatAsRobust\tt + \TreatAsRobust\sc + \TreatAsRobust\mac + \TreatAsRobust\break + \TreatAsRobust\dots + \TreatAsRobust\MF + \TreatAsRobust\TeX + \TreatAsRobust\LaTeX + \TreatAsRobust\PS + \TreatAsRobust\AmSTeX + \TreatAsRobust\ldots + \TreatAsRobust\cdots + \TreatAsRobust\dots + \def\MakeRobust ##1{% + \noexpand\MakeRobust + \noexpand##1% + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-set.tip b/info/examples/tex-in-practice/ts-set.tip new file mode 100644 index 0000000000..12b7cbed43 --- /dev/null +++ b/info/examples/tex-in-practice/ts-set.tip @@ -0,0 +1,32 @@ +% 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 31.2.13, p. III-611. +% Original source in file "pp2.TEX", starting line 1363. +\wlog{L: "ts-set.tip" ["pp2.TEX," l. 1363, p. III-611]}% +% This file DOES belong to format "texip." +\InputD{ts-fonts.tip} +\InputD{box-mac.tip} +\InputD{setstrut.tip} +\InputD{angt.tip} +\InputD{npright.tip} +\InputD{cssprint.tip} +\InputD{ts-logo.tip} +\InputD{ts-vers.tip} +\def\MyNarrower{\narrower\narrower} +\frenchspacing +\InputD{itemizel.tip} +\InputD{ts-itize.tip} +\InputD{enumlist.tip} +\InputD{ts-enum.tip} diff --git a/info/examples/tex-in-practice/ts-shead.tip b/info/examples/tex-in-practice/ts-shead.tip new file mode 100644 index 0000000000..97904c01bb --- /dev/null +++ b/info/examples/tex-in-practice/ts-shead.tip @@ -0,0 +1,83 @@ +% 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 31.2.9, p. III-604. +% Original source in file "pp2.TEX", starting line 940. +\wlog{L: "ts-shead.tip" ["pp2.TEX," l. 940, p. III-604]}% +% This file DOES belong to format "texip." +\InputD{genhead.tip} +\InputD{compst.tip} +\InputD{dblarg.tip} +\catcode`\@ = 11 +\NewCounter{SectionNo}{\arabic}% + {\PrintCounter{ChapterNo}.\TheCounter{SectionNo}}% + {\PrintCounter{ChapterNo}.\TheCounter{SectionNo}}% +\NewCounter{SubSectionNo}{\arabic}% + {\PrintCounter{SectionNo}.\TheCounter{SubSectionNo}}% + {\PrintCounter{SectionNo}.\TheCounter{SubSectionNo}}% +\NewCounter{SubSubSectionNo}{\arabic}% + {\PrintCounter{SubSectionNo}.\TheCounter{SubSubSectionNo}}% + {\PrintCounter{SubSectionNo}.\TheCounter{SubSubSectionNo}}% +\NewCounter{CloseByReferenceCount}{\arabic}% + {\PrintCounter{CloseByReferenceCount}}% + {\PrintCounter{CloseByReferenceCount}}% +\AddCounterToResetList{SectionNo}{ChapterNo}% +\AddCounterToResetList{SubSectionNo}{SectionNo}% +\AddCounterToResetList{SubSubSectionNo}{SubSectionNo}% +\def\Section{\DblArg{\@Section}}% +\def\@Section [#1]#2{% + \StepCounter{SectionNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{SectionNo}}{1}}% + \GenericHeading{2}{36pt plus 10pt minus 2pt}% + {1}{1}{1}{24pt}{0}% + {\Large\baselineskip = 15pt}{-13pt}% + {\PrintCounter{SectionNo}}{#2}{#1}% + \gdef\EveryParB{% + {% + \@MakeRobustMacros + \def\LineBreakToc{ }% + \def\LineBreakHeading{ }% + \def\IgnoreInRunningHead ####1{% + \relax$\ldots$% + }% + \mark{#2}% + }% + }% +} +\def\SubSection{\DblArg{\@SubSection}}% +\def\@SubSection [#1]#2{% + \StepCounter{SubSectionNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{SubSectionNo}}{1}}% + \GenericHeading{3}{30pt plus 8pt minus 2pt}% + {1}{1}{1}{18pt}{0}% + {\large\baselineskip = 14pt}{-12pt}% + {\PrintCounter{SubSectionNo}}{#2}{#1}% +} +\def\SubSubSection{\DblArg{\@SubSubSection}}% +\def\@SubSubSection [#1]#2{% + \ifnum\TheCounter{SubSectionNo} = 0 + \errhelp = {The reason is probably that \string\Section + occurred directly followed by \string\SubSubSection + (that is you forgot a \string\SubSection in between).}% + \errmessage{\string\@SubSubSection: Counter "SubSectionNo" + is zero.}% + \fi + \StepCounter{SubSubSectionNo}% + \def\Label ##1{\@Label{##1}{\RefCounter{SubSubSectionNo}}{1}}% + \GenericHeading{4}{24pt plus 6pt minus 1pt}% + {1}{1}{1}{18pt}{0}% + {\normalsize}{-10pt}% + {\PrintCounter{SubSubSectionNo}}{#2}{#1}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-subst.tip b/info/examples/tex-in-practice/ts-subst.tip new file mode 100644 index 0000000000..57c1b61975 --- /dev/null +++ b/info/examples/tex-in-practice/ts-subst.tip @@ -0,0 +1,34 @@ +% 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 16.1.4, p. II-267. +% Original source in file "fonts2.TEX", starting line 227. +\wlog{L: "ts-subst.tip" ["fonts2.TEX," l. 227, p. II-267]}% +% This file DOES belong to format "texip." +\InputD{substf.tip} +\InputD{newoutfr.tip} +\def\SubstituteFont #1#2#3#4{% + \expandafter\newifOF \csname if-\string#1\endcsname + \csname if-\string#1true\endcsname + \def#1{% + \csname if-\string#1\endcsname + \message{% + \string\SubstituteFont: No \string#2 font at + size #3pt, using \noexpand\rm instead.% + }% + \global\csname if-\string#1false\endcsname + \fi + #4% + }% +} diff --git a/info/examples/tex-in-practice/ts-toc.tip b/info/examples/tex-in-practice/ts-toc.tip new file mode 100644 index 0000000000..e4b5b11f69 --- /dev/null +++ b/info/examples/tex-in-practice/ts-toc.tip @@ -0,0 +1,46 @@ +% 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 12.4.3, p. II-128. +% Original source in file "par3.TEX", starting line 1023. +\wlog{L: "ts-toc.tip" ["par3.TEX," l. 1023, p. II-128]}% +% This file DOES belong to format "texip." +\InputD{toc-mac.tip} +\def\EntryIntotoc #1#2#3#4{% + \par + \ifcase #1 + \bigskip + \or + \bigskip + \else + \relax + \fi + \ifcase #1 + \GenTocEntry{0}{0pt}{20pt}{20pt}{30pt}% + {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4} + \or + \GenTocEntry{1}{0pt}{40pt}{40pt}{30pt}% + {0pt}{10pt}{0.5in}{#2}{#3}{\bf}{#4} + \or + \GenTocEntry{2}{10pt}{50pt}{50pt}{30pt}% + {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4} + \or + \GenTocEntry{#1}{20pt}{60pt}{60pt}{30pt}% + {0pt}{5pt}{0.5in}{#2}{#3}{\rm}{#4} + \or + \else + \errmessage{\string\EntryIntotoc: no level #1 subdivision + in this series.} + \fi +} diff --git a/info/examples/tex-in-practice/ts-verb.tip b/info/examples/tex-in-practice/ts-verb.tip new file mode 100644 index 0000000000..cd9fd48b91 --- /dev/null +++ b/info/examples/tex-in-practice/ts-verb.tip @@ -0,0 +1,84 @@ +% 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.1 +% Date: Sep 9, 1993 +% +% +% This source code is documented in 18.3.15, p. III-57. +% Original source in file "tokens1.TEX", starting line 3306. +\wlog{L: "ts-verb.tip" ["tokens1.TEX," l. 3306, p. III-57]}% +% This file DOES belong to format "texip." +\InputD{verbdisp.tip} +\InputD{verb-mac.tip} +\InputD{verb.tip} +\InputD{verbwr.tip} +\InputD{vwrt-mac.tip} +\InputD{defauarg.tip} +\InputD{compst.tip} +\InputD{testsubs.tip} +\InputD{freespac.tip} +\InputD{fexist.tip} +\InputD{ts-verb1.tip} +\InputD{ts-verb2.tip} +\catcode`\@ = 11 +\def\verb{\Verb} +\VerbLineNumtrue +\VerbatimTab = 4 +\DisplayVerbatimVskip = 5pt +\def\VerbatimFont{\small\tt}% +\def\ListVerbTeXIP #1{% + \par + \medskip + \vskip 60pt + \vskip -60pt + \def\ListAsFileName{#1}% + \def\LabelName{code-#1}% + \if\SuffixConditional{#1}{.flf}% + \def\ListAsFileName ##1.flf{\def\ListAsFileName{##1.log}}% + \ListAsFileName #1% + \def\LabelName{}% + \else + \if\SuffixConditional{#1}{.flf2}% + \def\ListAsFileName ##1.flf2{\def\ListAsFileName{##1.log}}% + \ListAsFileName #1% + \def\LabelName{}% + \fi + \fi + \if\StringsEqualConditional{#1}{\jobname.ver}% + \def\ListAsFileName{}% + \def\LabelName{}% + \fi + \if\StringsEqualConditional{#1}{ex-verbwr.ver} + \def\LabelName{}% + \fi + \if\EmptyStringConditional{\LabelName}% + \else + \Label{code-#1}% + \fi + \if\EmptyStringConditional{\ListAsFileName} + \else + \centerline{% + $\bullet$% + \space + \tt\ListAsFileName + \space + $\bullet$% + }% + \fi + \@btex + \@StartVerbatim{1}% + \wlog{[\string\ListVerbTeXIP:}% + \input #1 + \wlog{]}% svb: this was \message before + \@DoneVerbatim + \@etex +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-verb1.tip b/info/examples/tex-in-practice/ts-verb1.tip new file mode 100644 index 0000000000..106ce77d91 --- /dev/null +++ b/info/examples/tex-in-practice/ts-verb1.tip @@ -0,0 +1,54 @@ +% 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 18.3.14.1, p. III-56. +% Original source in file "tokens1.TEX", starting line 3223. +\wlog{L: "ts-verb1.tip" ["tokens1.TEX," l. 3223, p. III-56]}% +% This file DOES belong to format "texip." +\InputD{verbdisp.tip} +\catcode`\@ = 11 +\def\@btex{% + \par + \bgroup + \small +} +\def\@etex{% + \nobreak + \egroup + \if\FormatIsLaTeXConditional + \def\@EtexEnd{}% + \else + \def\@EtexEnd{% + \ParLookAhead + {}% + {\SuppressNextParIndent}% + }% + \fi + \@EtexEnd +} +\def\btex{% + \@btex + \@StartVerbatim{0}% + \btex@more +} +{ + \catcode `| = 0 % | becomes escape character. + \catcode`\\ = 12 % \ now prints. + |gdef|btex@more #1\etex{% + #1% + |@DoneVerbatim + |@etex + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-verb2.tip b/info/examples/tex-in-practice/ts-verb2.tip new file mode 100644 index 0000000000..bd10258d96 --- /dev/null +++ b/info/examples/tex-in-practice/ts-verb2.tip @@ -0,0 +1,34 @@ +% 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 18.3.14.2, p. III-57. +% Original source in file "tokens1.TEX", starting line 3279. +\wlog{L: "ts-verb2.tip" ["tokens1.TEX," l. 3279, p. III-57]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\Btexalt{% + \@btex + \@StartVerbatim{0}% + \btex@morealt +} +{ + \catcode `| = 0 % | becomes escape character. + \catcode`\\ = 12 % \ now prints. + |gdef|btex@morealt #1\Etexalt{% + #1% + |@DoneVerbatim + |@etex + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-vers.tip b/info/examples/tex-in-practice/ts-vers.tip new file mode 100644 index 0000000000..4e9b14d2a7 --- /dev/null +++ b/info/examples/tex-in-practice/ts-vers.tip @@ -0,0 +1,19 @@ +% 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 31.2.12, p. III-611. +% Original source in file "pp2.TEX", starting line 1354. +\wlog{L: "ts-vers.tip" ["pp2.TEX," l. 1354, p. III-611]}% +% This file DOES belong to format "texip." +\def\TeXIPVersionNumber{1.0} diff --git a/info/examples/tex-in-practice/ts-vol.tip b/info/examples/tex-in-practice/ts-vol.tip new file mode 100644 index 0000000000..71a9ed3c5d --- /dev/null +++ b/info/examples/tex-in-practice/ts-vol.tip @@ -0,0 +1,25 @@ +% 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 31.2.6, p. III-599. +% Original source in file "pp2.TEX", starting line 685. +\wlog{L: "ts-vol.tip" ["pp2.TEX," l. 685, p. III-599]}% +% This file DOES belong to format "texip." +\InputD{counters.tip} +\InputD{pm-pagen.tip} +\NewCounter{VolumeNo}{\Roman}% + {\TheCounter{VolumeNo}}{\TheCounter{VolumeNo}} +\ReassignCounter{PageNo}{\arabic}% + {\TheCounter{PageNo}}% + {\TheCounter{VolumeNo}-\TheCounter{PageNo}} diff --git a/info/examples/tex-in-practice/ts-wind.tip b/info/examples/tex-in-practice/ts-wind.tip new file mode 100644 index 0000000000..fbb94c0c33 --- /dev/null +++ b/info/examples/tex-in-practice/ts-wind.tip @@ -0,0 +1,174 @@ +% 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 29.1.5, p. III-492. +% Original source in file "io2.TEX", starting line 209. +\wlog{L: "ts-wind.tip" ["io2.TEX," l. 209, p. III-492]}% +% This file DOES belong to format "texip." +\InputD{verb-bas.tip} +\InputD{cstostr.tip} +\InputD{compst.tip} +\newif\ifIndexSpecial +\IndexSpecialfalse +\catcode`\@ = 11 +\newwrite\IdxStream +\newwrite\IdxStreamSource +\newif\if@IndexFilesOpen +\@IndexFilesOpenfalse +\def\OpenIndexFiles #1{% + \if\EmptyStringConditional{#1}% + \gdef\@IndexFileBaseName{\jobname}% + \else + \gdef\@IndexFileBaseName{#1}% + \fi + \if@IndexFilesOpen + \message{\string\OpenIndexFiles: index files + already open.}% + \message{\string\OpenIndexFiles: will close + old files, open new ones with basename + "\@IndexFileBaseName".}% + \immediate\closeout\IdxStream + \immediate\closeout\IdxStreamSource + \fi + \@IndexFilesOpentrue + \immediate\openout\IdxStream = \@IndexFileBaseName.idx + \immediate\openout\IdxStreamSource = \@IndexFileBaseName.idx2 + \SetIndexStream{\IdxStream}% +} +\def\CloseIndexFiles{% + \if@IndexFilesOpen + \immediate\closeout\IdxStream + \immediate\closeout\IdxStreamSource + \@IndexFilesOpenfalse + \fi +} +\def\SetIndexStream #1{% + \let\IdxStreamUse = #1% +} +\def\Index{% + \begingroup + \MkOthersNoCB + \@Index +} +\xdef\@IndexSuffixMod{}% +\def\@Index #1{% + \let\PrintCounter = \relax + \xdef\IndexTemp{% + \write\IdxStreamUse{% + \string\indexentry{#1\@IndexSuffixMod}% + {\PrintCounter{SWPageNo}}}% + }% + \ifIndexSpecial + \SideNoteText{I: #1}% + \fi + \xdef\@IndexSuffixMod{}% + \endgroup + \IndexTemp +} +\def\IndexP #1{% + \Index{#1}% + #1% +} +\def\IndexCS #1{% + \CSToString{\@IndexCSTemp}{#1}% + \expandafter\expandafter\expandafter + \Index{% + \@IndexCSTemp + @% + {% + \string\tt + \string\string + \string#1% + }% + }% +} +\def\IndexCSX #1{% + \CSToString{\@IndexCSTemp}{#1}% + \expandafter\expandafter\expandafter + \Index{% + #1% + @% + {% + \string\tt + \string\string + \Backslash#1% + }% + }% +} +\def\IndexCSP #1{% + \IndexCS{#1}% + {\tt\string#1}% +} +\def\IndexPrim #1{% + \CSToString{\@IndexCSTemp}{#1}% + \expandafter\expandafter\expandafter + \Index{\@IndexCSTemp @% + {\string\tt\string\string\string#1}|PRIMITIVE}% +} +\def\IndexPrimP #1{% + \IndexPrim{#1}% + {\tt\string #1}% +} +\def\IndexPar{\Index{par@\string\PrintParPrimitive}} +\def\PrintParPrimitive{\BackslashTt{\tt par}} +\def\IndexBye{\Index{bye@\string\PrintByePrimitive}} +\def\PrintByePrimitive{\BackslashTt{\tt bye}} +\def\IndexIf{\Index{if@\string\PrintIf|PRIMITIVE}} +\def\PrintIf{{\tt\string\if}} +\def\IndexElse{\Index{else@\string\PrintElse|PRIMITIVE}} +\def\PrintElse{{\tt\string\else}} +\def\IndexFi{\Index{fi@\string\PrintFi|PRIMITIVE}} +\def\PrintFi{{\tt\string\fi}} +\def\IndexIfCase{\Index{ifcase@\string\PrintIfCase|PRIMITIVE}} +\def\PrintIfCase{{\tt\string\ifcase}} +\def\IndexIfCat{\Index{ifcat@\string\PrintIfCat|PRIMITIVE}} +\def\PrintIfCat{{\tt\string\ifcat}} +\def\IndexIfX{\Index{ifx@\string\PrintIfX|PRIMITIVE}} +\def\PrintIfX{{\tt\string\ifx}} +\def\IndexIfOdd{\Index{ifodd@\string\PrintIfOdd|PRIMITIVE}} +\def\PrintIfOdd{{\tt\string\ifodd}} +\def\IndexIfHbox{\Index{ifhbox@\string\PrintIfHbox|PRIMITIVE}} +\def\PrintIfHbox{{\tt\string\ifhbox}} +\def\IndexIfVbox{\Index{ifvbox@\string\PrintIfVbox|PRIMITIVE}} +\def\PrintIfVbox{{\tt\string\ifvbox}} +\def\IndexIfVoid{\Index{ifvoid@\string\PrintIfVoid|PRIMITIVE}} +\def\PrintIfVoid{{\tt\string\ifvoid}} +\def\IndexIfNum{\Index{ifnum@\string\PrintIfNum|PRIMITIVE}} +\def\PrintIfNum{{\tt\string\ifnum}} +\def\IndexIfDim{\Index{ifdim@\string\PrintIfDim|PRIMITIVE}} +\def\PrintIfDim{{\tt\string\ifdim}} +\def\IndexIfHmode{\Index{ifhmode@\string\PrintIfHmode|PRIMITIVE}} +\def\PrintIfHmode{{\tt\string\ifhmode}} +\def\IndexIfVmode{\Index{ifvmode@\string\PrintIfVmode|PRIMITIVE}} +\def\PrintIfVmode{{\tt\string\ifvmode}} +\def\IndexIfMmode{\Index{ifvmode@\string\PrintIfMmode|PRIMITIVE}} +\def\PrintIfMmode{{\tt\string\ifvmode}} +\def\IndexIfInner{\Index{ifinner@\string\PrintIfInner|PRIMITIVE}} +\def\PrintIfInner{{\tt\string\ifinner}} +\def\IndexIfEof{\Index{ifeof@\string\PrintIfEof|PRIMITIVE}} +\def\PrintIfEof{{\tt\string\ifeof}}% +\def\IndexIfTrue{\Index{iftrue@\string\PrintIfTrue|PRIMITIVE}} +\def\PrintIfTrue{{\tt\string\iftrue}}% +\def\IndexIfFalse{\Index{iffalse@\string\PrintIfFalse|PRIMITIVE}} +\def\PrintIfFalse{{\tt\string\iffalse}}% +\def\IndexRepeat{\Index{repeat@\string\PrintRepeat}} +\def\PrintRepeat{{\tt\string\repeat}}% +\xdef\@IndexSuffixMod{}% +\def\IndexPSet #1{% + \CSToString{\@IndexPSetResult}{#1}% + \xdef\@IndexSuffixMod{|IndexP\@IndexPSetResult}% +} +\def\IndexPit #1{{\it #1}} +\def\IndexPbf #1{{\bf #1}} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/ts-writc.tip b/info/examples/tex-in-practice/ts-writc.tip new file mode 100644 index 0000000000..9606338dac --- /dev/null +++ b/info/examples/tex-in-practice/ts-writc.tip @@ -0,0 +1,25 @@ +% 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 28.5.4, p. III-475. +% Original source in file "io1.TEX", starting line 1401. +\wlog{L: "ts-writc.tip" ["io1.TEX," l. 1401, p. III-475]}% +% This file DOES belong to format "texip." +\InputD{genostr.tip} +\def\WriteCounterOutImmediately #1#2{% + \OpenGenericOStream{#1}% + \immediate\write\GenericOStream + {\PrintCounter{#2}}% + \CloseGenericOStream +} diff --git a/info/examples/tex-in-practice/valdecpo.tip b/info/examples/tex-in-practice/valdecpo.tip new file mode 100644 index 0000000000..8d645b0d08 --- /dev/null +++ b/info/examples/tex-in-practice/valdecpo.tip @@ -0,0 +1,34 @@ +% 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 3.3.14, p. I-60. +% Original source in file "reg1.TEX", starting line 1659. +\wlog{L: "valdecpo.tip" ["reg1.TEX," l. 1659, p. I-60]}% +% This file DOES belong to format "texip." +\InputD{imodn.tip} +\InputD{absval.tip} +\InputD{rangetst.tip} +\InputD{doloop.tip} +\catcode`\@ = 11 +\newcount\@ValueOfDecimalPosition +\newcount\@ValueOfDecimalPositionLoopCount +\def\ValueOfDecimalPosition #1#2#3{% + \CheckRange{#2}{0}{9}{\string\ValueOfDecimalPosition: + \#2 must be in the range 0 .. 9}% + \AbsoluteValue{#1}{\@ValueOfDecimalPosition}% + \DoLoop{\@ValueOfDecimalPositionLoopCount}{1}{1}{#2}% + {\global\divide\@ValueOfDecimalPosition by 10}% + \IModN{\@ValueOfDecimalPosition}{10}{#3}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/vcentx.tip b/info/examples/tex-in-practice/vcentx.tip new file mode 100644 index 0000000000..d272a7da1c --- /dev/null +++ b/info/examples/tex-in-practice/vcentx.tip @@ -0,0 +1,73 @@ +% 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 7.5.5, p. I-249. +% Original source in file "vboxes1.TEX", starting line 2107. +\wlog{L: "vcentx.tip" ["vboxes1.TEX," l. 2107, p. I-249]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newbox\@VcenterXBox +\newdimen\@VcenterDimen +\def\VcenterX{% + \hbox\bgroup + \mathsurround = 0pt + \futurelet\@VCenterXToken\@VCenterXA +} +\def\@VCenterXA{% + \ifx\@VCenterXToken\bgroup + \let\@VcenterXNext = \@VcenterXOrdinary + \else + \ifx\@VCenterXToken t% + \let\@VcenterXNext = \@VcenterXTo + \else + \let\@VcenterXNext = \@VcenterXSpread + \fi + \fi + \@VcenterXNext +} +\def\@VcenterXOrdinary{% + \def\@VcenterCommand{\vcenter}% + \afterassignment\@VcenterXB + \let\@VcenterDrop = +} +\def\@VcenterXTo to{% + \def\@VcenterCommand{to}% + \afterassignment\@VcenterXToSpread + \@VcenterDimen = +} +\def\@VcenterXSpread spread{% + \def\@VcenterCommand{spread}% + \afterassignment\@VcenterXToSpread + \@VcenterDimen = +} +\def\@VcenterXToSpread{% + \edef\@VcenterCommand{% + \vcenter\@VcenterCommand \the\@VcenterDimen + }% + \afterassignment\@VcenterXB + \let\@VcenterDrop = +} +\def\@VcenterXB{% + \setbox\@VcenterXBox = \hbox\bgroup + $% + \@VcenterCommand\bgroup + \aftergroup\@VcenterXC +} +\def\@VcenterXC{% + $% + \egroup + \box\@VcenterXBox + \egroup +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/verb-bas.tip b/info/examples/tex-in-practice/verb-bas.tip new file mode 100644 index 0000000000..dccaa8c1f3 --- /dev/null +++ b/info/examples/tex-in-practice/verb-bas.tip @@ -0,0 +1,130 @@ +% 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 18.3.1, p. III-27. +% Original source in file "tokens1.TEX", starting line 1625. +\wlog{L: "verb-bas.tip" ["tokens1.TEX," l. 1625, p. III-27]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\def\MakeOther #1{\catcode `#1 = 12 } +\def\MakeActive #1{\catcode `#1 = \active\relax} +\def\MakeEolActive{\MakeActive{\^^M}} +\def\MakeTabActive{\MakeActive{\^^I}} +\def\MkOthersNoCB{% + \MakeOther{\ }% + \MakeOther{\\}% + \MakeOther{\$}% + \MakeOther{\&}% + \MakeOther{\#}% + \MakeOther{\^}\MakeOther{\^^K}% + \MakeOther{\_}\MakeOther{\^^A}% + \MakeOther{\%}% + \MakeOther{\~}% +} +\def\MkOthers{% + \MakeOther{\{}% + \MakeOther{\}}% + \MkOthersNoCB +} +{\catcode`\^^I = 11 +\gdef\@TabAsLiteral{^^I}% +} +\catcode`\[ = 1 +\catcode`\] = 2 +[ + \catcode`\{ = 12 + \catcode`\} = 12 + \gdef\LeftBraceText[{] + \gdef\RightBraceText[}] +] +\catcode`\[ = 12 +\catcode`\] = 12 +\def\AcuteAccentText{\'{}} +\def\AcuteAccentTt{{\tt\AcuteAccentText}} +\def\AmpersandText{\char`\&} +\def\AmpersandTt{{\tt\AmpersandText}} +\def\ApostropheText{'{}} +\def\ApostropheTt{{\tt\ApostropheText}} +\def\AtSignText{@} +\def\AtSignTt{{\tt\AtSignText}} +{% + \catcode`| = 0 + |catcode`\\ = 12 + |gdef|Backslash{\} +} +\def\BackslashTt{{\tt\char`\\}} +\def\CaretText{\char`\^{}} +\def\CaretTt{{\tt\CaretText}} +\def\DollarSignText{\$} +\def\DollarSignTt{{\tt\DollarSignText}} +{ + \catcode`\# = 12 + \gdef\PoundSign{#} +} +\def\pounds{{\it\char'44 }} +\def\DoubleQuoteTt{{\tt"}} +\def\EmDashText{{}---{}} +\def\EmDashTt{{\tt\EmDashText}} +\def\EnDashText{{}--{}} +\def\EnDashTt{{\tt\EnDashText}} +\def\ExclamationPointText{!} +\def\ExclamationPointTt{{\tt\ExclamationPointText}} +\def\GreaterThanSign{>} +\def\GreaterThanSignTt{{\tt\GreaterThanSign}} +\def\HyphenText{-} +\def\HyphenTt{{\tt\HyphenText}} +\def\OpenExclamationText{>} +\def\OpenExclamationTt{{\tt\OpenExclamationText}} +\def\LeftBraceTt{{\tt\LeftBraceText}} +\def\LeftBracketText{[} +\def\LeftBracketTt{{\tt\LeftBracketText}} +\def\LeftParenthesisText{(} +\def\LeftParenthesisTt{{\tt\LeftParenthesisText}} +\def\LeftQuoteText{`{}} +\def\LeftQuoteTt{{\tt\LeftQuoteText}} +\def\LessThanSign{<} +\def\LessThanSignTt{{\tt\LessThanSign}} +\def\MinusSignText{-} +\def\MinusSignTt{{\tt\MinusSignText}} +\def\OpenQuestionText{<} +\def\OpenQuestionTt{{\tt\OpenQuestionText}} +\def\PlusSignText{+} +\def\PlusSignTt{{\tt\PlusSignText}} +\def\PercentSignText{\%} +\def\PercentSignTt{{\tt\PercentSignText}} +{ + \catcode`\% = 12 + \gdef\PercentSignPure{%} +} +\def\PeriodText{.} +\def\PeriodTt{{\tt\PeriodText}} +\def\PoundSignText{\#} +\def\PoundSignTt{{\tt\PoundSignText}} +\def\QuestionMarkText{?} +\def\QuestionMarkTt{{\tt\QuestionMarkText}} +\def\RightBraceTt{{\tt\RightBraceText}} +\def\RightBracketText{]} +\def\RightBracketTt{{\tt\RightBracketText}} +\def\RightQuoteText{'{}} +\def\RightQuoteTt{{\tt\RightQuoteText}} +\def\RightParenthesisText{)} +\def\RightParenthesisTt{{\tt\RightParenthesisText}} +\def\SpaceText{ } +\def\VisibleSpaceTt{{\tt\char"20}} +\def\TildeText{\char`\~{}} +\def\TildeTt{{\tt\TildeText}} +\def\UnderscoreText{\char`\_} +\def\UnderscoreTt{{\tt\UnderscoreText}} +\def\VerbControlSpace{\ } +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/verb-mac.tip b/info/examples/tex-in-practice/verb-mac.tip new file mode 100644 index 0000000000..db3a3a1261 --- /dev/null +++ b/info/examples/tex-in-practice/verb-mac.tip @@ -0,0 +1,41 @@ +% 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 18.3.8, p. III-41. +% Original source in file "tokens1.TEX", starting line 2427. +\wlog{L: "verb-mac.tip" ["tokens1.TEX," l. 2427, p. III-41]}% +% This file DOES belong to format "texip." +\InputD{ts-fonts.tip} +\InputD{verbdisp.tip} +\InputD{fexist.tip} +\catcode`\@ = 11 +\def\ListVerb #1{% + \@StartVerbatim{1}% + \input #1 + \@DoneVerbatim +} +\def\ListVerbIfFileExists #1{% + \par + \if\FileExistsConditional{#1}% + \ListVerb{#1}% + \else + \centerline{$\bullet$ File {\tt #1} not found. $\bullet$}% + \wlog{\string\ListVerbIfFileExists: no file "#1".}% + \fi +} +\def\ListVerbAndSource #1{% + \ListVerb{#1}% + \input #1 +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/verb.tip b/info/examples/tex-in-practice/verb.tip new file mode 100644 index 0000000000..43236cd845 --- /dev/null +++ b/info/examples/tex-in-practice/verb.tip @@ -0,0 +1,44 @@ +% 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 18.3.4, p. III-35. +% Original source in file "tokens1.TEX", starting line 2077. +\wlog{L: "verb.tip" ["tokens1.TEX," l. 2077, p. III-35]}% +% This file DOES belong to format "texip." +\InputD{verb-bas.tip} +\InputD{nctest.tip} +\catcode`\@ = 11 +{\catcode`\ = \active +\gdef\@InitActiveSpace{\edef {\VerbControlSpace}}} +\newif\if@VerbSpaceControl +\def\Verb{% + \NextCharTest{*}{\@VerbSpaceControltrue \@VerbA}% + {\@VerbSpaceControlfalse\@VerbA}% +} +\def\@VerbA #1{% + \bgroup + \tt + \MkOthers + \if@VerbSpaceControl + \else + \catcode`\ = \active + \@InitActiveSpace + \fi + \def\@VerbTemp ##1#1{% + ##1% % Simply print the argument. + \egroup % Undo font change and category code changes. + }% + \@VerbTemp +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/verbdisp.tip b/info/examples/tex-in-practice/verbdisp.tip new file mode 100644 index 0000000000..9cf598d474 --- /dev/null +++ b/info/examples/tex-in-practice/verbdisp.tip @@ -0,0 +1,244 @@ +% 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 18.3.13, p. III-45. +% Original source in file "tokens1.TEX", starting line 2639. +\wlog{L: "verbdisp.tip" ["tokens1.TEX," l. 2639, p. III-45]}% +% This file DOES belong to format "texip." +\InputD{everypar.tip} +\InputD{futpar.tip} +\InputD{parin.tip} +\InputD{verb-bas.tip} +\InputD{testdef.tip} +\InputD{gobble.tip} +\InputD{loadedla.tip} +\newdimen\LeftSkipVerbatim +\LeftSkipVerbatim = 0.3in +\def\VerbatimFont{\tt} +\newcount\VerbatimTab +\VerbatimTab = 8 +\newif\ifVerbLineNum +\VerbLineNumtrue +\newskip\DisplayVerbatimVskip +\DisplayVerbatimVskip = 0pt plus 2pt minus 1pt +\newif\ifCaretTab +\CaretTabfalse +\newtoks\VerbatimTokBegin \VerbatimTokBegin = {} +\newtoks\VerbatimTokLine \VerbatimTokLine = {} +\newtoks\VerbatimTokEnd \VerbatimTokEnd = {} +\catcode`\@ = 11 +\newdimen\@VerbatimLr +\@VerbatimLr = 1.5pt +\newif\if@IgnoreFirstNewLine +\if\FormatIsLaTeXConditional + \def\@VerbatimPar{\par\@@par}% + \def\@VerbatimNlf{\tiny}% +\else + \def\@VerbatimPar{\par}% + \def\@VerbatimNlf{\tiny}% +\fi +\newcount\@VerbatimLineNumber +\newif\if@VerbatimL +\newdimen\Verb@TabSize +\def\@VObeySpaces{% + \MakeActive{\ }% + \@@VObeySpaces +} +{% +\MakeActive{\ }% +\gdef\@@VObeySpaces{% +\def {\VerbControlSpace}% +}% +} +\def\@VObeyTabs{% + \MakeTabActive + \@@VObeyTabs +} +{ + \MakeTabActive + \gdef\@@VObeyTabs{% + \def^^I{\Verb@Tab}% + } +} +\def\Verb@Tab{% + \leavevmode + \egroup + \dimen0 = \wd0 + \divide\dimen0 by \Verb@TabSize + \advance\dimen0 by 1sp + \multiply\dimen0 by \Verb@TabSize + \wd0 = \dimen0 + \box0 + \setbox 0 = \hbox\bgroup +} +\def\@VObeyEol{% + \MakeEolActive % + \@@VObeyEol +} +{ + \MakeEolActive % + \gdef\@@VObeyEol{% + \let^^M = \Verb@Eol% + }% +} +\def\Verb@Eol{% + \if@IgnoreFirstNewLine + \else + \leavevmode + \egroup + \box 0 + \endgraf + \fi + \@IgnoreFirstNewLinefalse +} +\def\@VCaret{% + \MakeActive{\^}% + \@@VCaret +} +{ + \MakeActive{\^}% + \gdef\@@VCaret{% + \def^{% + \futurelet\@VSymbol\@@VCaretTwo + }% + \def\@@VCaretTwo{% + \ifx \@VSymbol^% + \let\@VerbNext = \@@VCaretThree + \else + \CaretText + \let\@VerbNext = \relax + \fi + \@VerbNext + }% + \def\@@VCaretThree ^{% + \futurelet\@VSymbol\@@VCaretFour + }% + \def\@@VCaretFour{% + \ifx \@VSymbol I% + \Verb@Tab + \else + \CaretText\CaretText\@VSymbol + \fi + \GobbleOne + }% + }% +} +\def\@StartVerbatim #1{% + \begingroup + \@VerbatimPar + \vskip\DisplayVerbatimVskip + \if\FormatIsLaTeXConditional + \else + \CancelSuppressNextParIndent + \fi + \setbox0 = \hbox{\VerbatimFont X} + \Verb@TabSize = \wd0 + \multiply\Verb@TabSize by \VerbatimTab + \parskip = 0pt + \parindent = 0pt + \leftskip = \LeftSkipVerbatim + \rightskip = 0pt + \parfillskip = 0pt plus 1fil + \spaceskip = 0pt + \xspaceskip = 0pt + \VerbatimFont + \if@VerbatimL + \else + \global\@VerbatimLineNumber = 0 + \fi + \global\@VerbatimLfalse + \ifnum #1 = 0 + \@IgnoreFirstNewLinetrue + \else + \@IgnoreFirstNewLinefalse + \fi + \if\FormatIsLaTeXConditional + \everypar = {\EveryParZ}% + \fi + \def\EveryParZ{% + \the\VerbatimTokLine + \global\advance\@VerbatimLineNumber by 1 + \ifVerbLineNum + \raise \@VerbatimLr \hbox to 0pt{% + \hss + \@VerbatimNlf + \the\@VerbatimLineNumber + \hskip 10pt + }% + \fi + \setbox 0 = \hbox\bgroup + }% + \MkOthers + \@VObeySpaces + \@VObeyTabs + \@VObeyEol + \ifCaretTab + \@VCaret + \fi +} +\def\@DoneVerbatim{% + \endgroup + \vskip\DisplayVerbatimVskip + \def\@VerbatimEndSpecialDeal{}% + \if\FormatIsLaTeXConditional + \else + \def\@VerbatimEndSpecialDeal{% + \ParLookAhead + {\SuppressNextParIndent}% + {} + }% + \fi + \@VerbatimEndSpecialDeal +} +\def\BeginVerbatim{% + \@StartVerbatim{0}% + \@BeginVerbatim +} +{ \catcode `| = 0 % | becomes escape character. + \catcode`\\ =12 % \ becomes regular character. + |gdef|@BeginVerbatim #1\EndVerbatim{% + #1% + |@DoneVerbatim + } +} +\def\BVerB{% + \@StartVerbatim{0}% + \@BVerB +} +{ + \catcode `| = 0 % | becomes escape character. + \catcode`\\ =12 % \ becomes regular character. + |gdef|@BVerB #1\EVerB{% + #1% + |@DoneVerbatim + } +} +\def\AppendVerbatimL #1{% + \global\@VerbatimLtrue + \global\advance\@VerbatimLineNumber by #1\relax +} +\def\StartVerbatimL #1{% + \global\@VerbatimLtrue + \global\@VerbatimLineNumber = #1\relax +} +\newcount\@SaveVerbatimLineNumber +\def\PushVerbatimL{% + \global\@SaveVerbatimLineNumber = \@VerbatimLineNumber + \global\VerbLineNumfalse +} +\def\PopVerbatimL{% + \global\@VerbatimLineNumber = \@SaveVerbatimLineNumber + \global\VerbLineNumtrue +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/verbwr.tip b/info/examples/tex-in-practice/verbwr.tip new file mode 100644 index 0000000000..e243f82bcf --- /dev/null +++ b/info/examples/tex-in-practice/verbwr.tip @@ -0,0 +1,86 @@ +% 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 29.3.2, p. III-506. +% Original source in file "io2.TEX", starting line 973. +\wlog{L: "verbwr.tip" ["io2.TEX," l. 973, p. III-506]}% +% This file DOES belong to format "texip." +\InputD{verb-bas.tip} +\InputD{futlet.tip} +\InputD{genaeol.tip} +\InputD{futlet.tip} +\InputD{gobblemo.tip} +\InputD{cstostrc.tip} +\catcode`\@ = 11 +\newif\if@VerbFirstLineSuppress +\def\OpenVerbWrFile #1#2#3{% + \immediate\openout #3 = #1.#2 + \wlog{\string\OpenVerbWrFile: opened "#1.#2" for + literal writing.}% +} +\def\CloseVerbWrFile #1{% + \immediate\closeout #1 + \wlog{\string\CloseVerbWrFile: closed file for literal writing.}% +} +\def\BeginVerbWr #1#2{% + \begingroup + \def\@VerbWrStream{#1}% + \CSToStringCat{\@EndVerbWrSt}{#2}% + \wlog{\string\BeginVerbWr: begin}% + \MkOthers + \MakeEolActive + \@VerbWrTabHandling + \@VerbFirstLineSuppresstrue + \expandafter\expandafter\expandafter + \@BeginVerbWrY\expandafter{\@EndVerbWrSt}% +} +{ + \catcode `| = 0 + \catcode`\\ =12 + |gdef|@BeginVerbWrY #1{% + |def|@BeginVerbWrX ##1\#1{% + |@BeginVerbWr ##1% + |@VerbWrDoneToken + |@VerbWrDone + } + |@BeginVerbWrX + } +} +\def\@VerbWrTabHandling{% + \MakeTabActive + \@VerbWrTabHandlingOne +} +{\MakeTabActive +\gdef\@VerbWrTabHandlingOne{\def^^I{\@TabAsLiteral}}% +} +\def\@BeginVerbWr{% + \DoFutureLet{\ifx}% + {\@VerbWrDoneToken}% + {\GobbleDoMore + {\@VerbWrDoneToken}{\relax}}% + {\@BeginVerbWrTwo}% +} +\GenAeol{\@BeginVerbWrTwo}{% + \if@VerbFirstLineSuppress + \@VerbFirstLineSuppressfalse + \else + \immediate\write\@VerbWrStream{#1}% + \fi + \@BeginVerbWr +} +\def\@VerbWrDone{% + \endgroup + \wlog{\string\@VerbWrDone: done}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/vsmax.tip b/info/examples/tex-in-practice/vsmax.tip new file mode 100644 index 0000000000..bc9eab50f2 --- /dev/null +++ b/info/examples/tex-in-practice/vsmax.tip @@ -0,0 +1,32 @@ +% 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 8.6, p. I-310. +% Original source in file "vboxes2.TEX", starting line 1665. +\wlog{L: "vsmax.tip" ["vboxes2.TEX," l. 1665, p. I-310]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newskip\@MaxVskipGlue +\def\MaxVskip #1{% + \par + \@MaxVskipGlue = #1\relax + \ifdim\lastskip < \@MaxVskipGlue + \ifdim\lastskip = 0pt + \else + \vskip -\lastskip + \fi + \vskip\@MaxVskipGlue + \fi +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/vtbox.tip b/info/examples/tex-in-practice/vtbox.tip new file mode 100644 index 0000000000..ee50844163 --- /dev/null +++ b/info/examples/tex-in-practice/vtbox.tip @@ -0,0 +1,30 @@ +% 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 8.1.4, p. I-265. +% Original source in file "vboxes2.TEX", starting line 222. +\wlog{L: "vtbox.tip" ["vboxes2.TEX," l. 222, p. I-265]}% +% This file DOES belong to format "texip." +\catcode`\@ = 11 +\newdimen\@VtboxDim +\newbox\@VtboxBox +\def\Vtbox #1#2{% + \@VtboxDim = \ht#1% + \advance\@VtboxDim by \dp#1% + \setbox\@VtboxBox = \vbox{\unvcopy #1}% + \advance\@VtboxDim by -\ht\@VtboxBox + \advance\@VtboxDim by -\dp\@VtboxBox + #2\setbox #1 = \vtop spread \@VtboxDim {\unvbox #1}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/vwrt-mac.tip b/info/examples/tex-in-practice/vwrt-mac.tip new file mode 100644 index 0000000000..7490427317 --- /dev/null +++ b/info/examples/tex-in-practice/vwrt-mac.tip @@ -0,0 +1,68 @@ +% 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 29.3.3.1, p. III-511. +% Original source in file "io2.TEX", starting line 1192. +\wlog{L: "vwrt-mac.tip" ["io2.TEX," l. 1192, p. III-511]}% +% This file DOES belong to format "texip." +\InputD{verbwr.tip} +\InputD{defauarg.tip} +\InputD{verb-mac.tip} +\catcode`\@ = 11 +\newwrite\@VStream +\newif\if@VStreamOpen +\@VStreamOpenfalse +\newcount\@VerbWriteCount +\@VerbWriteCount = 0 +\def\BeginVerbWrite #1#2{% + \global\advance\@VerbWriteCount by 1 + \wlog{\string\BeginVerbWrite: [\the\@VerbWriteCount]}% + \DefaultArg{\@VerbWriteBaseName}{#1}{\jobname}% + \DefaultArg{\@VerbWriteFileExt}{#2}{ver}% + \xdef\@VerbWriteFileName{\@VerbWriteBaseName.\@VerbWriteFileExt}% + \if@VStreamOpen + \errmessage{\string\BeginVerbWrite: ERROR, file still open.}% + \fi + \OpenVerbWrFile{\@VerbWriteBaseName}{\@VerbWriteFileExt}% + {\@VStream}% + \global\@VStreamOpentrue + \BeginVerbWr{\@VStream}{\EndVerbWrite}% +} +\def\CloseVerbWriteFile{% + \if@VStreamOpen + \CloseVerbWrFile{\@VStream}% + \global\@VStreamOpenfalse + \fi +} +\def\AppendVerbWrite{% + \wlog{\string\AppendVerbWrite: [\the\@VerbWriteCount]}% + \if@VStreamOpen + \else + \errmessage{\string\AppendVerbWrite: no file open.}% + \fi + \xdef\@VerbWriteFileName{\@VerbWriteBaseName.\@VerbWriteFileExt}% + \BeginVerbWr{\@VStream}{\EndVerbWrite}% +} +\def\VerbAsVerb{% + \CloseVerbWriteFile + {% + \CaretTabtrue + \ListVerb{\@VerbWriteFileName}% + }% +} +\def\VerbAsSource{% + \CloseVerbWriteFile + \input \@VerbWriteFileName \relax +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/weekofyr.tip b/info/examples/tex-in-practice/weekofyr.tip new file mode 100644 index 0000000000..071eb36e35 --- /dev/null +++ b/info/examples/tex-in-practice/weekofyr.tip @@ -0,0 +1,63 @@ +% 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.1 +% Date: Sep 9, 1993 +% +% +% This source code is documented in 26.22, p. III-392. +% Original source in file "macros6.TEX", starting line 1641. +\wlog{L: "weekofyr.tip" ["macros6.TEX," l. 1641, p. III-392]}% +% This file DOES belong to format "texip." +\InputD{doloop.tip} +\InputD{dateofw.tip} +\InputD{arbday.tip} +\InputD{prevday.tip} +\InputD{mondofda.tip} +\InputD{norpweek.tip} +\catcode`\@ = 11 +\newcount\@WeekOfYearCounter +\newcount\@WeekOfYearYear +\newcount\@WeekOfYearMonth +\newcount\@WeekOfYearDay +\newcount\@WeekOfYearCopy +\def\WeekOfYear #1#2#3#4{% + \@WeekOfYearCopy = #1\relax + \ComputeMondayOfDate{#1}{#2}{#3}% + {\@WeekOfYearYear}{\@WeekOfYearMonth}{\@WeekOfYearDay}% + \def\@WeekOfYearCounter{#4}% + \@WeekOfYearCounter = 1 + \@WeekOfYear +} +\newif\if@YearStop +\def\@WeekOfYear{% + \@YearStopfalse + \ifnum\@WeekOfYearCopy > \@WeekOfYearYear + \@YearStoptrue + \else + \ifnum\@WeekOfYearMonth = 1 + \ifnum\@WeekOfYearDay = 1 + \@YearStoptrue + \fi + \fi + \fi + \if@YearStop + \def\@WeekOfYearNext{\relax}% + \else + \def\@WeekOfYearNext{\@WeekOfYear}% + \expandafter\advance\@WeekOfYearCounter by 1 + \PrevWeekSameDay{\@WeekOfYearYear}{\@WeekOfYearMonth}% + {\@WeekOfYearDay}% + {\@WeekOfYearYear}{\@WeekOfYearMonth}% + {\@WeekOfYearDay}% + \fi + \@WeekOfYearNext +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/widestc.tip b/info/examples/tex-in-practice/widestc.tip new file mode 100644 index 0000000000..7e077b9248 --- /dev/null +++ b/info/examples/tex-in-practice/widestc.tip @@ -0,0 +1,34 @@ +% 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 27.1.8.4, p. III-415. +% Original source in file "macros7.TEX", starting line 945. +\wlog{L: "widestc.tip" ["macros7.TEX," l. 945, p. III-415]}% +% This file DOES belong to format "texip." +\InputD{maxmindi.tip} +\InputD{doloop.tip} +\catcode`\@ = 11 +\newcount\@WidestLoopCounter +\newbox\@WidestLoopBox +\def\FindWidestChar #1#2#3#4{% + #1 = 0pt + \DoLoop{\@WidestLoopCounter}{#3}{1}{#4}{% + \setbox\@WidestLoopBox = \hbox{% + #2% + \char\@WidestLoopCounter + }% + \MaxDimen{#1}{#1}{\wd\@WidestLoopBox}{}% + }% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/wl-parcp.tip b/info/examples/tex-in-practice/wl-parcp.tip new file mode 100644 index 0000000000..ac9b462a23 --- /dev/null +++ b/info/examples/tex-in-practice/wl-parcp.tip @@ -0,0 +1,57 @@ +% 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 10.12, p. II-46. +% Original source in file "par1.TEX", starting line 2331. +\wlog{L: "wl-parcp.tip" ["par1.TEX," l. 2331, p. II-46]}% +% This file DOES belong to format "texip." +\def\WritingParShape{% + \wlog{\string\WritingParShape: begin}% + \wlog{}% + \wlog{\string\pretolerance: \the\pretolerance}% + \wlog{\string\tolerance: \the\tolerance}% + \wlog{\string\prevgraf: \the\prevgraf}% + \wlog{}% + \wlog{\string\parskip: \the\parskip}% + \wlog{\string\baselineskip: \the\baselineskip}% + \wlog{\string\lineskip: \the\lineskip}% + \wlog{\string\lineskiplimit: \the\lineskiplimit}% + \wlog{}% + \wlog{\string\parindent: \the\parindent}% + \wlog{\string\hsize: \the\hsize}% + \wlog{\string\leftskip: \the\leftskip}% + \wlog{\string\rightskip: \the\rightskip}% + \wlog{\string\parfillskip: \the\parfillskip}% + \wlog{\string\spaceskip: \the\spaceskip}% + \wlog{\string\xspaceskip: \the\xspaceskip}% + \wlog{}% + \wlog{\string\hyphenpenalty: \the\hyphenpenalty}% + \wlog{\string\exhyphenpenalty: \the\exhyphenpenalty}% + \wlog{\string\lefthyphenmin: \the\lefthyphenmin}% + \wlog{\string\righthyphenmin: \the\righthyphenmin}% + \wlog{\string\lefthyphenmin: \the\lefthyphenmin}% + \wlog{}% + \wlog{\string\adjdemerits: \the\adjdemerits}% + \wlog{\string\doublehyphendemerits: \the\doublehyphendemerits}% + \wlog{\string\finalhyphendemerits: \the\finalhyphendemerits}% + \wlog{\string\linepenalty: \the\linepenalty}% + \wlog{\string\sfcode\string\`.: \the\sfcode`\.}% + \wlog{\string\hyphenchar: \the\hyphenchar\tenrm}% + \wlog{}% + \wlog{\string\binoppenalty: \the\binoppenalty}% + \wlog{\string\relpenalty: \the\relpenalty}% + \wlog{}% + \wlog{\string\everypar: \the\everypar}% + \wlog{\string\WritingParShape: end}% +} diff --git a/info/examples/tex-in-practice/wrtoc.tip b/info/examples/tex-in-practice/wrtoc.tip new file mode 100644 index 0000000000..11267744de --- /dev/null +++ b/info/examples/tex-in-practice/wrtoc.tip @@ -0,0 +1,27 @@ +% 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 29.2.4, p. III-502. +% Original source in file "io2.TEX", starting line 726. +\wlog{L: "wrtoc.tip" ["io2.TEX," l. 726, p. III-502]}% +% This file DOES NOT belong to format "texip." +\catcode`\@ = 11 +\newwrite\TocStream +\def\@wt{\write\TocStream} +\def\WriteToc #1#2#3#4{% + \edef\@WriteTemp{\string\TocEntry {#1}{#2}{#3}}% + \expandafter\expandafter\expandafter + \@wt\expandafter{\@WriteTemp{#4}}% +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/wrverbar.tip b/info/examples/tex-in-practice/wrverbar.tip new file mode 100644 index 0000000000..2e327c44cb --- /dev/null +++ b/info/examples/tex-in-practice/wrverbar.tip @@ -0,0 +1,35 @@ +% 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 28.5.8, p. III-485. +% Original source in file "io1.TEX", starting line 1917. +\wlog{L: "wrverbar.tip" ["io1.TEX," l. 1917, p. III-485]}% +% This file DOES belong to format "texip." +\InputD{verb-bas.tip} +\catcode`\@ = 11 +\newwrite\@VerbArgStream +\def\WriteVerbatimArgument #1#2{% + \immediate\openout\@VerbArgStream = #1 + \def\@AfterWriteVerbatimArgument{#2}% + \begingroup + \MkOthersNoCB + \@WriteVerbatimArgument +} +\def\@WriteVerbatimArgument #1{% + \immediate\write\@VerbArgStream{#1}% + \immediate\closeout\@VerbArgStream + \endgroup + \@AfterWriteVerbatimArgument +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/wtolist.tip b/info/examples/tex-in-practice/wtolist.tip new file mode 100644 index 0000000000..1919568d70 --- /dev/null +++ b/info/examples/tex-in-practice/wtolist.tip @@ -0,0 +1,36 @@ +% 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 20.2.17, p. III-133. +% Original source in file "tokens3.TEX", starting line 906. +\wlog{L: "wtolist.tip" ["tokens3.TEX," l. 906, p. III-133]}% +% This file DOES belong to format "texip." +\InputD{futlet.tip} +\InputD{list-mac.tip} +\catcode`\@ = 11 +\def\WordsToTeXList #1#2\EndWordsToTeXList{% + \def\@WordsToTeXListName{#1}% + \expandafter\def\@WordsToTeXListName{}% + \@WordsToTeXListNextName #2 \EndWordsToTeXList +} +\def\@WordsToTeXListNextName #1 {% + \if\EmptyStringConditional{#1}% + \else + \expandafter\RightAppendElement\@WordsToTeXListName{#1}% + \fi + \DoFutureLet{\ifx}{\EndWordsToTeXList}% + {\@WordsToTeXListEnd}{\@WordsToTeXListNextName}% +} +\def\@WordsToTeXListEnd\EndWordsToTeXList{} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/x-parsh.tip b/info/examples/tex-in-practice/x-parsh.tip new file mode 100644 index 0000000000..63f30a6a02 --- /dev/null +++ b/info/examples/tex-in-practice/x-parsh.tip @@ -0,0 +1,64 @@ +% 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 12.1.3, p. II-108. +% Original source in file "par3.TEX", starting line 176. +\wlog{L: "x-parsh.tip" ["par3.TEX," l. 176, p. II-108]}% +% This file DOES belong to format "texip." +\InputD{doloop.tip} +\catcode`\@ = 11 +\newcount\X@ParShapeCountA +\newcount\X@ParShapeCountB +\newcount\X@ParShapeCountC +\newdimen\X@ParShapeDimenA +\newdimen\X@ParShapeDimenB +\def\XParShape{% + \def\X@ParShapeCollect{ }% + \X@ParShapeCountC = 0 + \afterassignment\X@ParShapeB + \X@ParShapeCountA +} +\def\X@ParShapeB{% + \ifnum\X@ParShapeCountA = 0 + \let\@XParShapeNext = \X@ParShapeD + \else + \advance\X@ParShapeCountA by -1 + \let\@XParShapeNext = \X@ParShapeC + \fi + \@XParShapeNext +} +\def\X@ParShapeD{% + \parshape = \X@ParShapeCountC\X@ParShapeCollect +} +\def\X@ParShapeC #1 #2 #3 #4 #5 {% + \message{\string\X@ParShapeC: #1, #2, #3, #4, #5}% + \X@ParShapeDimenA = #2% + \X@ParShapeDimenB = #4% + \DoLoop{\X@ParShapeCountB}{1}{1}{#1}% + {% + \edef\X@ParShapeCollect{% + \space + \X@ParShapeCollect + \the\X@ParShapeDimenA + \space + \the\X@ParShapeDimenB + \space + }% + \advance\X@ParShapeCountC by 1 + \advance\X@ParShapeDimenA by #3\relax + \advance\X@ParShapeDimenB by #5\relax + }% + \X@ParShapeB +} +\catcode`\@ = 12 diff --git a/info/examples/tex-in-practice/yearcal.tip b/info/examples/tex-in-practice/yearcal.tip new file mode 100644 index 0000000000..c9ce2d2b18 --- /dev/null +++ b/info/examples/tex-in-practice/yearcal.tip @@ -0,0 +1,67 @@ +% 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 26.21, p. III-390. +% Original source in file "macros6.TEX", starting line 1540. +\wlog{L: "yearcal.tip" ["macros6.TEX," l. 1540, p. III-390]}% +% This file DOES belong to format "texip." +\InputD{mocal.tip} +\def\YearlyCalendar #1#2#3{% + \vbox{% + \dimen0 = #2\relax + \ifdim\dimen0 = 0.0pt + \dimen0 = \hsize + \fi + \dimen1 = #3\relax + \ifdim\dimen1 = 0.0pt + \dimen1 = \dimen0 + \divide\dimen1 by 3 + \advance\dimen1 by -5pt + \fi + \hsize = \dimen0 + \centerline{\Large\bf Year #1} + \bigskip + \line{% + \MonthlyCalendar{#1}{1}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{2}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{3}{\dimen1}% + }% + \bigskip + \line{% + \MonthlyCalendar{#1}{4}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{5}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{6}{\dimen1}% + }% + \bigskip + \line{% + \MonthlyCalendar{#1}{7}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{8}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{9}{\dimen1}% + }% + \bigskip + \line{% + \MonthlyCalendar{#1}{10}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{11}{\dimen1}% + \hfil + \MonthlyCalendar{#1}{12}{\dimen1}% + }% + } +} |