summaryrefslogtreecommitdiff
path: root/info/examples/tex-in-practice
diff options
context:
space:
mode:
Diffstat (limited to 'info/examples/tex-in-practice')
l---------info/examples/tex-in-practice1
-rw-r--r--info/examples/tex-in-practice/absdimen.tip25
-rw-r--r--info/examples/tex-in-practice/absval.tip25
-rw-r--r--info/examples/tex-in-practice/acronym.tip24
-rw-r--r--info/examples/tex-in-practice/advtabst.tip28
-rw-r--r--info/examples/tex-in-practice/aevpar.tip33
-rw-r--r--info/examples/tex-in-practice/alldate.tip38
-rw-r--r--info/examples/tex-in-practice/allocat.tip31
-rw-r--r--info/examples/tex-in-practice/alwbase.tip21
-rw-r--r--info/examples/tex-in-practice/angt.tip24
-rw-r--r--info/examples/tex-in-practice/arbday.tip54
-rw-r--r--info/examples/tex-in-practice/arraymac.tip213
-rw-r--r--info/examples/tex-in-practice/atpos.tip37
-rw-r--r--info/examples/tex-in-practice/be-env.tip46
-rw-r--r--info/examples/tex-in-practice/bletpar.tip53
-rw-r--r--info/examples/tex-in-practice/box-bb.tip22
-rw-r--r--info/examples/tex-in-practice/box-bul.tip28
-rw-r--r--info/examples/tex-in-practice/box-larg.tip29
-rw-r--r--info/examples/tex-in-practice/box-mac.tip24
-rw-r--r--info/examples/tex-in-practice/box-thck.tip20
-rw-r--r--info/examples/tex-in-practice/box-zero.tip27
-rw-r--r--info/examples/tex-in-practice/boxing1.tip29
-rw-r--r--info/examples/tex-in-practice/boxing2.tip31
-rw-r--r--info/examples/tex-in-practice/boxing3.tip34
-rw-r--r--info/examples/tex-in-practice/boxing4.tip47
-rw-r--r--info/examples/tex-in-practice/boxing5.tip105
-rw-r--r--info/examples/tex-in-practice/boxing6.tip44
-rw-r--r--info/examples/tex-in-practice/boxing7.tip113
-rw-r--r--info/examples/tex-in-practice/boxrelim.tip27
-rw-r--r--info/examples/tex-in-practice/boxrqu.tip118
-rw-r--r--info/examples/tex-in-practice/centerlp.tip21
-rw-r--r--info/examples/tex-in-practice/centerng.tip32
-rw-r--r--info/examples/tex-in-practice/centpar.tip29
-rw-r--r--info/examples/tex-in-practice/charbo.tip29
-rw-r--r--info/examples/tex-in-practice/chboxd.tip26
-rw-r--r--info/examples/tex-in-practice/clearb.tip23
-rw-r--r--info/examples/tex-in-practice/collect.tip25
-rw-r--r--info/examples/tex-in-practice/coltok.tip25
-rw-r--r--info/examples/tex-in-practice/comfiles.tip76
-rw-r--r--info/examples/tex-in-practice/compst.tip38
-rw-r--r--info/examples/tex-in-practice/compstca.tip44
-rw-r--r--info/examples/tex-in-practice/condltr.tip38
-rw-r--r--info/examples/tex-in-practice/conval.tip38
-rw-r--r--info/examples/tex-in-practice/copydate.tip23
-rw-r--r--info/examples/tex-in-practice/counters.tip87
-rw-r--r--info/examples/tex-in-practice/countl.tip46
-rw-r--r--info/examples/tex-in-practice/cref-1.tip31
-rw-r--r--info/examples/tex-in-practice/cref-2.tip24
-rw-r--r--info/examples/tex-in-practice/cref-2a.tip27
-rw-r--r--info/examples/tex-in-practice/cref-3.tip38
-rw-r--r--info/examples/tex-in-practice/cref-3a.tip44
-rw-r--r--info/examples/tex-in-practice/cref-4.tip27
-rw-r--r--info/examples/tex-in-practice/cref-5.tip52
-rw-r--r--info/examples/tex-in-practice/crline.tip26
-rw-r--r--info/examples/tex-in-practice/csar.tip114
-rw-r--r--info/examples/tex-in-practice/cssprint.tip27
-rw-r--r--info/examples/tex-in-practice/cstostr.tip24
-rw-r--r--info/examples/tex-in-practice/cstostrc.tip34
-rw-r--r--info/examples/tex-in-practice/ctestcs.tip37
-rw-r--r--info/examples/tex-in-practice/dateofw.tip53
-rw-r--r--info/examples/tex-in-practice/dblarg.tip26
-rw-r--r--info/examples/tex-in-practice/defauarg.tip38
-rw-r--r--info/examples/tex-in-practice/dicentry.tip28
-rw-r--r--info/examples/tex-in-practice/doloop.tip86
-rw-r--r--info/examples/tex-in-practice/droppre.tip37
-rw-r--r--info/examples/tex-in-practice/droppt.tip24
-rw-r--r--info/examples/tex-in-practice/dumppars.tip115
-rw-r--r--info/examples/tex-in-practice/earliest.tip41
-rw-r--r--info/examples/tex-in-practice/emprubox.tip28
-rw-r--r--info/examples/tex-in-practice/emptybox.tip27
-rw-r--r--info/examples/tex-in-practice/endn-mac.tip52
-rw-r--r--info/examples/tex-in-practice/endrec.tip28
-rw-r--r--info/examples/tex-in-practice/enum.tip34
-rw-r--r--info/examples/tex-in-practice/enumlist.tip83
-rw-r--r--info/examples/tex-in-practice/errmess.tip22
-rw-r--r--info/examples/tex-in-practice/evenprin.tip24
-rw-r--r--info/examples/tex-in-practice/everyequ.tip28
-rw-r--r--info/examples/tex-in-practice/everypar.tip45
-rw-r--r--info/examples/tex-in-practice/evhvbox.tip28
-rw-r--r--info/examples/tex-in-practice/ex-out2.tip32
-rw-r--r--info/examples/tex-in-practice/fexist.tip33
-rw-r--r--info/examples/tex-in-practice/figbox.tip24
-rw-r--r--info/examples/tex-in-practice/figinpar.tip59
-rw-r--r--info/examples/tex-in-practice/firstldi.tip52
-rw-r--r--info/examples/tex-in-practice/fo-char.tip28
-rw-r--r--info/examples/tex-in-practice/font-cpp.tip45
-rw-r--r--info/examples/tex-in-practice/fontsam.tip150
-rw-r--r--info/examples/tex-in-practice/fonttab.tip90
-rw-r--r--info/examples/tex-in-practice/formline.tip33
-rw-r--r--info/examples/tex-in-practice/fotable.tip175
-rw-r--r--info/examples/tex-in-practice/fotok.tip34
-rw-r--r--info/examples/tex-in-practice/frac.tip21
-rw-r--r--info/examples/tex-in-practice/freespac.tip35
-rw-r--r--info/examples/tex-in-practice/fsized.tip35
-rw-r--r--info/examples/tex-in-practice/funospac.tip52
-rw-r--r--info/examples/tex-in-practice/futlet.tip32
-rw-r--r--info/examples/tex-in-practice/futpar.tip23
-rw-r--r--info/examples/tex-in-practice/genaeol.tip39
-rw-r--r--info/examples/tex-in-practice/genhead.tip100
-rw-r--r--info/examples/tex-in-practice/genostr.tip42
-rw-r--r--info/examples/tex-in-practice/getnuml.tip29
-rw-r--r--info/examples/tex-in-practice/gobble.tip27
-rw-r--r--info/examples/tex-in-practice/gobblemo.tip24
-rw-r--r--info/examples/tex-in-practice/graphmac.tip82
-rw-r--r--info/examples/tex-in-practice/hex.tip44
-rw-r--r--info/examples/tex-in-practice/ifeven.tip28
-rw-r--r--info/examples/tex-in-practice/ifx-def.tip30
-rw-r--r--info/examples/tex-in-practice/ifx-mac.tip26
-rw-r--r--info/examples/tex-in-practice/imodn.tip38
-rw-r--r--info/examples/tex-in-practice/index-or.tip50
-rw-r--r--info/examples/tex-in-practice/input-at.tip23
-rw-r--r--info/examples/tex-in-practice/inputc.tip33
-rw-r--r--info/examples/tex-in-practice/inputd.tip41
-rw-r--r--info/examples/tex-in-practice/inputdl.tip28
-rw-r--r--info/examples/tex-in-practice/isleapyr.tip43
-rw-r--r--info/examples/tex-in-practice/isprefix.tip55
-rw-r--r--info/examples/tex-in-practice/issuffix.tip28
-rw-r--r--info/examples/tex-in-practice/itemizel.tip48
-rw-r--r--info/examples/tex-in-practice/itemltw.tip32
-rw-r--r--info/examples/tex-in-practice/itemplan.tip44
-rw-r--r--info/examples/tex-in-practice/ivpyr.tip67
-rw-r--r--info/examples/tex-in-practice/largdp.tip42
-rw-r--r--info/examples/tex-in-practice/lbpar.tip30
-rw-r--r--info/examples/tex-in-practice/lc0to9.tip35
-rw-r--r--info/examples/tex-in-practice/leadingz.tip28
-rw-r--r--info/examples/tex-in-practice/leadline.tip29
-rw-r--r--info/examples/tex-in-practice/leftdm.tip27
-rw-r--r--info/examples/tex-in-practice/legdate.tip32
-rw-r--r--info/examples/tex-in-practice/legmonth.tip23
-rw-r--r--info/examples/tex-in-practice/legyear.tip26
-rw-r--r--info/examples/tex-in-practice/lfondem.tip26
-rw-r--r--info/examples/tex-in-practice/linesr.tip23
-rw-r--r--info/examples/tex-in-practice/list-mac.tip142
-rw-r--r--info/examples/tex-in-practice/loadedla.tip23
-rw-r--r--info/examples/tex-in-practice/lpagetg.tip23
-rw-r--r--info/examples/tex-in-practice/macvntip.tex296
-rw-r--r--info/examples/tex-in-practice/mathenv.tip77
-rw-r--r--info/examples/tex-in-practice/maxmindi.tip32
-rw-r--r--info/examples/tex-in-practice/mocal.tip90
-rw-r--r--info/examples/tex-in-practice/mocal3.tip32
-rw-r--r--info/examples/tex-in-practice/modonead.tip26
-rw-r--r--info/examples/tex-in-practice/mondofda.tip39
-rw-r--r--info/examples/tex-in-practice/mrdel.tip54
-rw-r--r--info/examples/tex-in-practice/mspaces.tip20
-rw-r--r--info/examples/tex-in-practice/namedef.tip64
-rw-r--r--info/examples/tex-in-practice/nathd.tip29
-rw-r--r--info/examples/tex-in-practice/nctest.tip26
-rw-r--r--info/examples/tex-in-practice/ndaysmo.tip54
-rw-r--r--info/examples/tex-in-practice/new-midi.tip53
-rw-r--r--info/examples/tex-in-practice/newdef.tip43
-rw-r--r--info/examples/tex-in-practice/newfont.tip26
-rw-r--r--info/examples/tex-in-practice/newinput.tip26
-rw-r--r--info/examples/tex-in-practice/newoutfr.tip37
-rw-r--r--info/examples/tex-in-practice/newpage.tip22
-rw-r--r--info/examples/tex-in-practice/nextday.tip38
-rw-r--r--info/examples/tex-in-practice/nextmon.tip31
-rw-r--r--info/examples/tex-in-practice/nlm.tip24
-rw-r--r--info/examples/tex-in-practice/norpweek.tip39
-rw-r--r--info/examples/tex-in-practice/npright.tip42
-rw-r--r--info/examples/tex-in-practice/ntotext.tip119
-rw-r--r--info/examples/tex-in-practice/numcond.tip32
-rw-r--r--info/examples/tex-in-practice/numdyr.tip26
-rw-r--r--info/examples/tex-in-practice/numwhile.tip38
-rw-r--r--info/examples/tex-in-practice/oblines.tip31
-rw-r--r--info/examples/tex-in-practice/obspaces.tip27
-rw-r--r--info/examples/tex-in-practice/oct.tip32
-rw-r--r--info/examples/tex-in-practice/oddprin.tip23
-rw-r--r--info/examples/tex-in-practice/oeprin.tip25
-rw-r--r--info/examples/tex-in-practice/ola-1p.tip91
-rw-r--r--info/examples/tex-in-practice/ola-2p.tip121
-rw-r--r--info/examples/tex-in-practice/ola-comm.tip75
-rw-r--r--info/examples/tex-in-practice/op-endin.tip61
-rw-r--r--info/examples/tex-in-practice/op-pagec.tip53
-rw-r--r--info/examples/tex-in-practice/optargx.tip27
-rw-r--r--info/examples/tex-in-practice/orcards.tip119
-rw-r--r--info/examples/tex-in-practice/ordbrule.tip36
-rw-r--r--info/examples/tex-in-practice/orsimple.tip104
-rw-r--r--info/examples/tex-in-practice/out-ds.tip443
-rw-r--r--info/examples/tex-in-practice/out2-or.tip73
-rw-r--r--info/examples/tex-in-practice/outf-rad.tip55
-rw-r--r--info/examples/tex-in-practice/outpsel.tip37
-rw-r--r--info/examples/tex-in-practice/par-fl.tip32
-rw-r--r--info/examples/tex-in-practice/par-lab.tip82
-rw-r--r--info/examples/tex-in-practice/par-lcl.tip39
-rw-r--r--info/examples/tex-in-practice/parin.tip35
-rw-r--r--info/examples/tex-in-practice/part-cr.tip94
-rw-r--r--info/examples/tex-in-practice/part-lab.tip88
-rw-r--r--info/examples/tex-in-practice/part-mac.tip26
-rw-r--r--info/examples/tex-in-practice/parv-1.tip89
-rw-r--r--info/examples/tex-in-practice/pdollars.tip37
-rw-r--r--info/examples/tex-in-practice/pickfs.tip20
-rw-r--r--info/examples/tex-in-practice/pm-4.tip122
-rw-r--r--info/examples/tex-in-practice/pm-auxco.tip25
-rw-r--r--info/examples/tex-in-practice/pm-bas.tip52
-rw-r--r--info/examples/tex-in-practice/pm-main.tip111
-rw-r--r--info/examples/tex-in-practice/pm-pagen.tip38
-rw-r--r--info/examples/tex-in-practice/pm-wrc.tip32
-rw-r--r--info/examples/tex-in-practice/pmtime.tip30
-rw-r--r--info/examples/tex-in-practice/poorbold.tip25
-rw-r--r--info/examples/tex-in-practice/pralph.tip26
-rw-r--r--info/examples/tex-in-practice/prevday.tip37
-rw-r--r--info/examples/tex-in-practice/prevmon.tip31
-rw-r--r--info/examples/tex-in-practice/prhyph.tip54
-rw-r--r--info/examples/tex-in-practice/primmark.tip25
-rw-r--r--info/examples/tex-in-practice/printast.tip37
-rw-r--r--info/examples/tex-in-practice/printco.tip68
-rw-r--r--info/examples/tex-in-practice/printreg.tip24
-rw-r--r--info/examples/tex-in-practice/prmode.tip29
-rw-r--r--info/examples/tex-in-practice/prmonth.tip54
-rw-r--r--info/examples/tex-in-practice/prot.tip72
-rw-r--r--info/examples/tex-in-practice/rangetst.tip44
-rw-r--r--info/examples/tex-in-practice/rboxt.tip24
-rw-r--r--info/examples/tex-in-practice/readme27
-rw-r--r--info/examples/tex-in-practice/readnu.tip38
-rw-r--r--info/examples/tex-in-practice/redtost.tip27
-rw-r--r--info/examples/tex-in-practice/remtlsp.tip50
-rw-r--r--info/examples/tex-in-practice/restring.tip52
-rw-r--r--info/examples/tex-in-practice/reverses.tip39
-rw-r--r--info/examples/tex-in-practice/rh-dict.tip31
-rw-r--r--info/examples/tex-in-practice/robust.tip35
-rw-r--r--info/examples/tex-in-practice/samplepa.tip40
-rw-r--r--info/examples/tex-in-practice/setstrut.tip51
-rw-r--r--info/examples/tex-in-practice/shboxes.tip42
-rw-r--r--info/examples/tex-in-practice/shiftudb.tip30
-rw-r--r--info/examples/tex-in-practice/showpll.tip46
-rw-r--r--info/examples/tex-in-practice/showx.tip28
-rw-r--r--info/examples/tex-in-practice/sigline.tip27
-rw-r--r--info/examples/tex-in-practice/spacefac.tip28
-rw-r--r--info/examples/tex-in-practice/splitpar.tip49
-rw-r--r--info/examples/tex-in-practice/ssmath.tip38
-rw-r--r--info/examples/tex-in-practice/strleng.tip29
-rw-r--r--info/examples/tex-in-practice/stswitch.tip57
-rw-r--r--info/examples/tex-in-practice/substf.tip28
-rw-r--r--info/examples/tex-in-practice/sumhd.tip22
-rw-r--r--info/examples/tex-in-practice/swapbox.tip26
-rw-r--r--info/examples/tex-in-practice/tabcent.tip31
-rw-r--r--info/examples/tex-in-practice/tabswb.tip27
-rw-r--r--info/examples/tex-in-practice/testdef.tip30
-rw-r--r--info/examples/tex-in-practice/testsubs.tip42
-rw-r--r--info/examples/tex-in-practice/texip.idx3918
-rw-r--r--info/examples/tex-in-practice/texipexp.tex6888
-rw-r--r--info/examples/tex-in-practice/tip-bugs.tex3153
-rw-r--r--info/examples/tex-in-practice/toc-mac.tip57
-rw-r--r--info/examples/tex-in-practice/today.tip21
-rw-r--r--info/examples/tex-in-practice/todayx.tip35
-rw-r--r--info/examples/tex-in-practice/topinfix.tip40
-rw-r--r--info/examples/tex-in-practice/ts-brefm.tip21
-rw-r--r--info/examples/tex-in-practice/ts-bul.tip23
-rw-r--r--info/examples/tex-in-practice/ts-chap.tip63
-rw-r--r--info/examples/tex-in-practice/ts-chhe.tip48
-rw-r--r--info/examples/tex-in-practice/ts-crm.tip116
-rw-r--r--info/examples/tex-in-practice/ts-dime1.tip25
-rw-r--r--info/examples/tex-in-practice/ts-dime2.tip44
-rw-r--r--info/examples/tex-in-practice/ts-dime3.tip20
-rw-r--r--info/examples/tex-in-practice/ts-enum.tip69
-rw-r--r--info/examples/tex-in-practice/ts-float.tip121
-rw-r--r--info/examples/tex-in-practice/ts-fonts.tip111
-rw-r--r--info/examples/tex-in-practice/ts-foot.tip41
-rw-r--r--info/examples/tex-in-practice/ts-gnot.tip68
-rw-r--r--info/examples/tex-in-practice/ts-hall.tip21
-rw-r--r--info/examples/tex-in-practice/ts-hmore.tip39
-rw-r--r--info/examples/tex-in-practice/ts-hyph.tip27
-rw-r--r--info/examples/tex-in-practice/ts-itize.tip46
-rw-r--r--info/examples/tex-in-practice/ts-lazy.tip24
-rw-r--r--info/examples/tex-in-practice/ts-loft.tip31
-rw-r--r--info/examples/tex-in-practice/ts-logo.tip26
-rw-r--r--info/examples/tex-in-practice/ts-main.tip67
-rw-r--r--info/examples/tex-in-practice/ts-outpu.tip188
-rw-r--r--info/examples/tex-in-practice/ts-page2.tip122
-rw-r--r--info/examples/tex-in-practice/ts-pager.tip38
-rw-r--r--info/examples/tex-in-practice/ts-robst.tip42
-rw-r--r--info/examples/tex-in-practice/ts-set.tip32
-rw-r--r--info/examples/tex-in-practice/ts-shead.tip83
-rw-r--r--info/examples/tex-in-practice/ts-subst.tip34
-rw-r--r--info/examples/tex-in-practice/ts-toc.tip46
-rw-r--r--info/examples/tex-in-practice/ts-verb.tip84
-rw-r--r--info/examples/tex-in-practice/ts-verb1.tip54
-rw-r--r--info/examples/tex-in-practice/ts-verb2.tip34
-rw-r--r--info/examples/tex-in-practice/ts-vers.tip19
-rw-r--r--info/examples/tex-in-practice/ts-vol.tip25
-rw-r--r--info/examples/tex-in-practice/ts-wind.tip174
-rw-r--r--info/examples/tex-in-practice/ts-writc.tip25
-rw-r--r--info/examples/tex-in-practice/valdecpo.tip34
-rw-r--r--info/examples/tex-in-practice/vcentx.tip73
-rw-r--r--info/examples/tex-in-practice/verb-bas.tip130
-rw-r--r--info/examples/tex-in-practice/verb-mac.tip41
-rw-r--r--info/examples/tex-in-practice/verb.tip44
-rw-r--r--info/examples/tex-in-practice/verbdisp.tip244
-rw-r--r--info/examples/tex-in-practice/verbwr.tip86
-rw-r--r--info/examples/tex-in-practice/vsmax.tip32
-rw-r--r--info/examples/tex-in-practice/vtbox.tip30
-rw-r--r--info/examples/tex-in-practice/vwrt-mac.tip68
-rw-r--r--info/examples/tex-in-practice/weekofyr.tip63
-rw-r--r--info/examples/tex-in-practice/widestc.tip34
-rw-r--r--info/examples/tex-in-practice/wl-parcp.tip57
-rw-r--r--info/examples/tex-in-practice/wrtoc.tip27
-rw-r--r--info/examples/tex-in-practice/wrverbar.tip35
-rw-r--r--info/examples/tex-in-practice/wtolist.tip36
-rw-r--r--info/examples/tex-in-practice/x-parsh.tip64
-rw-r--r--info/examples/tex-in-practice/yearcal.tip67
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}%
+ }%
+ }
+}