From a494a509f3f4a13a450c898488155f7aa5353bd3 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 1 Feb 2024 03:00:51 +0000 Subject: CTAN sync 202402010300 --- FILES.byname | 1216 ++-- FILES.byname.gz | Bin 2594469 -> 2594948 bytes FILES.last07days | 445 +- biblio/ctan-bibdata/ctan.bib | 94 +- fonts/heuristica/README | 5 +- fonts/heuristica/tex/heuristica.sty | 6 +- info/examples/tex-in-practice | 1 - info/examples/tex-in-practice/absdimen.tip | 25 + info/examples/tex-in-practice/absval.tip | 25 + info/examples/tex-in-practice/acronym.tip | 24 + info/examples/tex-in-practice/advtabst.tip | 28 + info/examples/tex-in-practice/aevpar.tip | 33 + info/examples/tex-in-practice/alldate.tip | 38 + info/examples/tex-in-practice/allocat.tip | 31 + info/examples/tex-in-practice/alwbase.tip | 21 + info/examples/tex-in-practice/angt.tip | 24 + info/examples/tex-in-practice/arbday.tip | 54 + info/examples/tex-in-practice/arraymac.tip | 213 + info/examples/tex-in-practice/atpos.tip | 37 + info/examples/tex-in-practice/be-env.tip | 46 + info/examples/tex-in-practice/bletpar.tip | 53 + info/examples/tex-in-practice/box-bb.tip | 22 + info/examples/tex-in-practice/box-bul.tip | 28 + info/examples/tex-in-practice/box-larg.tip | 29 + info/examples/tex-in-practice/box-mac.tip | 24 + info/examples/tex-in-practice/box-thck.tip | 20 + info/examples/tex-in-practice/box-zero.tip | 27 + info/examples/tex-in-practice/boxing1.tip | 29 + info/examples/tex-in-practice/boxing2.tip | 31 + info/examples/tex-in-practice/boxing3.tip | 34 + info/examples/tex-in-practice/boxing4.tip | 47 + info/examples/tex-in-practice/boxing5.tip | 105 + info/examples/tex-in-practice/boxing6.tip | 44 + info/examples/tex-in-practice/boxing7.tip | 113 + info/examples/tex-in-practice/boxrelim.tip | 27 + info/examples/tex-in-practice/boxrqu.tip | 118 + info/examples/tex-in-practice/centerlp.tip | 21 + info/examples/tex-in-practice/centerng.tip | 32 + info/examples/tex-in-practice/centpar.tip | 29 + info/examples/tex-in-practice/charbo.tip | 29 + info/examples/tex-in-practice/chboxd.tip | 26 + info/examples/tex-in-practice/clearb.tip | 23 + info/examples/tex-in-practice/collect.tip | 25 + info/examples/tex-in-practice/coltok.tip | 25 + info/examples/tex-in-practice/comfiles.tip | 76 + info/examples/tex-in-practice/compst.tip | 38 + info/examples/tex-in-practice/compstca.tip | 44 + info/examples/tex-in-practice/condltr.tip | 38 + info/examples/tex-in-practice/conval.tip | 38 + info/examples/tex-in-practice/copydate.tip | 23 + info/examples/tex-in-practice/counters.tip | 87 + info/examples/tex-in-practice/countl.tip | 46 + info/examples/tex-in-practice/cref-1.tip | 31 + info/examples/tex-in-practice/cref-2.tip | 24 + info/examples/tex-in-practice/cref-2a.tip | 27 + info/examples/tex-in-practice/cref-3.tip | 38 + info/examples/tex-in-practice/cref-3a.tip | 44 + info/examples/tex-in-practice/cref-4.tip | 27 + info/examples/tex-in-practice/cref-5.tip | 52 + info/examples/tex-in-practice/crline.tip | 26 + info/examples/tex-in-practice/csar.tip | 114 + info/examples/tex-in-practice/cssprint.tip | 27 + info/examples/tex-in-practice/cstostr.tip | 24 + info/examples/tex-in-practice/cstostrc.tip | 34 + info/examples/tex-in-practice/ctestcs.tip | 37 + info/examples/tex-in-practice/dateofw.tip | 53 + info/examples/tex-in-practice/dblarg.tip | 26 + info/examples/tex-in-practice/defauarg.tip | 38 + info/examples/tex-in-practice/dicentry.tip | 28 + info/examples/tex-in-practice/doloop.tip | 86 + info/examples/tex-in-practice/droppre.tip | 37 + info/examples/tex-in-practice/droppt.tip | 24 + info/examples/tex-in-practice/dumppars.tip | 115 + info/examples/tex-in-practice/earliest.tip | 41 + info/examples/tex-in-practice/emprubox.tip | 28 + info/examples/tex-in-practice/emptybox.tip | 27 + info/examples/tex-in-practice/endn-mac.tip | 52 + info/examples/tex-in-practice/endrec.tip | 28 + info/examples/tex-in-practice/enum.tip | 34 + info/examples/tex-in-practice/enumlist.tip | 83 + info/examples/tex-in-practice/errmess.tip | 22 + info/examples/tex-in-practice/evenprin.tip | 24 + info/examples/tex-in-practice/everyequ.tip | 28 + info/examples/tex-in-practice/everypar.tip | 45 + info/examples/tex-in-practice/evhvbox.tip | 28 + info/examples/tex-in-practice/ex-out2.tip | 32 + info/examples/tex-in-practice/fexist.tip | 33 + info/examples/tex-in-practice/figbox.tip | 24 + info/examples/tex-in-practice/figinpar.tip | 59 + info/examples/tex-in-practice/firstldi.tip | 52 + info/examples/tex-in-practice/fo-char.tip | 28 + info/examples/tex-in-practice/font-cpp.tip | 45 + info/examples/tex-in-practice/fontsam.tip | 150 + info/examples/tex-in-practice/fonttab.tip | 90 + info/examples/tex-in-practice/formline.tip | 33 + info/examples/tex-in-practice/fotable.tip | 175 + info/examples/tex-in-practice/fotok.tip | 34 + info/examples/tex-in-practice/frac.tip | 21 + info/examples/tex-in-practice/freespac.tip | 35 + info/examples/tex-in-practice/fsized.tip | 35 + info/examples/tex-in-practice/funospac.tip | 52 + info/examples/tex-in-practice/futlet.tip | 32 + info/examples/tex-in-practice/futpar.tip | 23 + info/examples/tex-in-practice/genaeol.tip | 39 + info/examples/tex-in-practice/genhead.tip | 100 + info/examples/tex-in-practice/genostr.tip | 42 + info/examples/tex-in-practice/getnuml.tip | 29 + info/examples/tex-in-practice/gobble.tip | 27 + info/examples/tex-in-practice/gobblemo.tip | 24 + info/examples/tex-in-practice/graphmac.tip | 82 + info/examples/tex-in-practice/hex.tip | 44 + info/examples/tex-in-practice/ifeven.tip | 28 + info/examples/tex-in-practice/ifx-def.tip | 30 + info/examples/tex-in-practice/ifx-mac.tip | 26 + info/examples/tex-in-practice/imodn.tip | 38 + info/examples/tex-in-practice/index-or.tip | 50 + info/examples/tex-in-practice/input-at.tip | 23 + info/examples/tex-in-practice/inputc.tip | 33 + info/examples/tex-in-practice/inputd.tip | 41 + info/examples/tex-in-practice/inputdl.tip | 28 + info/examples/tex-in-practice/isleapyr.tip | 43 + info/examples/tex-in-practice/isprefix.tip | 55 + info/examples/tex-in-practice/issuffix.tip | 28 + info/examples/tex-in-practice/itemizel.tip | 48 + info/examples/tex-in-practice/itemltw.tip | 32 + info/examples/tex-in-practice/itemplan.tip | 44 + info/examples/tex-in-practice/ivpyr.tip | 67 + info/examples/tex-in-practice/largdp.tip | 42 + info/examples/tex-in-practice/lbpar.tip | 30 + info/examples/tex-in-practice/lc0to9.tip | 35 + info/examples/tex-in-practice/leadingz.tip | 28 + info/examples/tex-in-practice/leadline.tip | 29 + info/examples/tex-in-practice/leftdm.tip | 27 + info/examples/tex-in-practice/legdate.tip | 32 + info/examples/tex-in-practice/legmonth.tip | 23 + info/examples/tex-in-practice/legyear.tip | 26 + info/examples/tex-in-practice/lfondem.tip | 26 + info/examples/tex-in-practice/linesr.tip | 23 + info/examples/tex-in-practice/list-mac.tip | 142 + info/examples/tex-in-practice/loadedla.tip | 23 + info/examples/tex-in-practice/lpagetg.tip | 23 + info/examples/tex-in-practice/macvntip.tex | 296 + info/examples/tex-in-practice/mathenv.tip | 77 + info/examples/tex-in-practice/maxmindi.tip | 32 + info/examples/tex-in-practice/mocal.tip | 90 + info/examples/tex-in-practice/mocal3.tip | 32 + info/examples/tex-in-practice/modonead.tip | 26 + info/examples/tex-in-practice/mondofda.tip | 39 + info/examples/tex-in-practice/mrdel.tip | 54 + info/examples/tex-in-practice/mspaces.tip | 20 + info/examples/tex-in-practice/namedef.tip | 64 + info/examples/tex-in-practice/nathd.tip | 29 + info/examples/tex-in-practice/nctest.tip | 26 + info/examples/tex-in-practice/ndaysmo.tip | 54 + info/examples/tex-in-practice/new-midi.tip | 53 + info/examples/tex-in-practice/newdef.tip | 43 + info/examples/tex-in-practice/newfont.tip | 26 + info/examples/tex-in-practice/newinput.tip | 26 + info/examples/tex-in-practice/newoutfr.tip | 37 + info/examples/tex-in-practice/newpage.tip | 22 + info/examples/tex-in-practice/nextday.tip | 38 + info/examples/tex-in-practice/nextmon.tip | 31 + info/examples/tex-in-practice/nlm.tip | 24 + info/examples/tex-in-practice/norpweek.tip | 39 + info/examples/tex-in-practice/npright.tip | 42 + info/examples/tex-in-practice/ntotext.tip | 119 + info/examples/tex-in-practice/numcond.tip | 32 + info/examples/tex-in-practice/numdyr.tip | 26 + info/examples/tex-in-practice/numwhile.tip | 38 + info/examples/tex-in-practice/oblines.tip | 31 + info/examples/tex-in-practice/obspaces.tip | 27 + info/examples/tex-in-practice/oct.tip | 32 + info/examples/tex-in-practice/oddprin.tip | 23 + info/examples/tex-in-practice/oeprin.tip | 25 + info/examples/tex-in-practice/ola-1p.tip | 91 + info/examples/tex-in-practice/ola-2p.tip | 121 + info/examples/tex-in-practice/ola-comm.tip | 75 + info/examples/tex-in-practice/op-endin.tip | 61 + info/examples/tex-in-practice/op-pagec.tip | 53 + info/examples/tex-in-practice/optargx.tip | 27 + info/examples/tex-in-practice/orcards.tip | 119 + info/examples/tex-in-practice/ordbrule.tip | 36 + info/examples/tex-in-practice/orsimple.tip | 104 + info/examples/tex-in-practice/out-ds.tip | 443 ++ info/examples/tex-in-practice/out2-or.tip | 73 + info/examples/tex-in-practice/outf-rad.tip | 55 + info/examples/tex-in-practice/outpsel.tip | 37 + info/examples/tex-in-practice/par-fl.tip | 32 + info/examples/tex-in-practice/par-lab.tip | 82 + info/examples/tex-in-practice/par-lcl.tip | 39 + info/examples/tex-in-practice/parin.tip | 35 + info/examples/tex-in-practice/part-cr.tip | 94 + info/examples/tex-in-practice/part-lab.tip | 88 + info/examples/tex-in-practice/part-mac.tip | 26 + info/examples/tex-in-practice/parv-1.tip | 89 + info/examples/tex-in-practice/pdollars.tip | 37 + info/examples/tex-in-practice/pickfs.tip | 20 + info/examples/tex-in-practice/pm-4.tip | 122 + info/examples/tex-in-practice/pm-auxco.tip | 25 + info/examples/tex-in-practice/pm-bas.tip | 52 + info/examples/tex-in-practice/pm-main.tip | 111 + info/examples/tex-in-practice/pm-pagen.tip | 38 + info/examples/tex-in-practice/pm-wrc.tip | 32 + info/examples/tex-in-practice/pmtime.tip | 30 + info/examples/tex-in-practice/poorbold.tip | 25 + info/examples/tex-in-practice/pralph.tip | 26 + info/examples/tex-in-practice/prevday.tip | 37 + info/examples/tex-in-practice/prevmon.tip | 31 + info/examples/tex-in-practice/prhyph.tip | 54 + info/examples/tex-in-practice/primmark.tip | 25 + info/examples/tex-in-practice/printast.tip | 37 + info/examples/tex-in-practice/printco.tip | 68 + info/examples/tex-in-practice/printreg.tip | 24 + info/examples/tex-in-practice/prmode.tip | 29 + info/examples/tex-in-practice/prmonth.tip | 54 + info/examples/tex-in-practice/prot.tip | 72 + info/examples/tex-in-practice/rangetst.tip | 44 + info/examples/tex-in-practice/rboxt.tip | 24 + info/examples/tex-in-practice/readme | 27 + info/examples/tex-in-practice/readnu.tip | 38 + info/examples/tex-in-practice/redtost.tip | 27 + info/examples/tex-in-practice/remtlsp.tip | 50 + info/examples/tex-in-practice/restring.tip | 52 + info/examples/tex-in-practice/reverses.tip | 39 + info/examples/tex-in-practice/rh-dict.tip | 31 + info/examples/tex-in-practice/robust.tip | 35 + info/examples/tex-in-practice/samplepa.tip | 40 + info/examples/tex-in-practice/setstrut.tip | 51 + info/examples/tex-in-practice/shboxes.tip | 42 + info/examples/tex-in-practice/shiftudb.tip | 30 + info/examples/tex-in-practice/showpll.tip | 46 + info/examples/tex-in-practice/showx.tip | 28 + info/examples/tex-in-practice/sigline.tip | 27 + info/examples/tex-in-practice/spacefac.tip | 28 + info/examples/tex-in-practice/splitpar.tip | 49 + info/examples/tex-in-practice/ssmath.tip | 38 + info/examples/tex-in-practice/strleng.tip | 29 + info/examples/tex-in-practice/stswitch.tip | 57 + info/examples/tex-in-practice/substf.tip | 28 + info/examples/tex-in-practice/sumhd.tip | 22 + info/examples/tex-in-practice/swapbox.tip | 26 + info/examples/tex-in-practice/tabcent.tip | 31 + info/examples/tex-in-practice/tabswb.tip | 27 + info/examples/tex-in-practice/testdef.tip | 30 + info/examples/tex-in-practice/testsubs.tip | 42 + info/examples/tex-in-practice/texip.idx | 3918 +++++++++++ info/examples/tex-in-practice/texipexp.tex | 6888 ++++++++++++++++++++ info/examples/tex-in-practice/tip-bugs.tex | 3153 +++++++++ info/examples/tex-in-practice/toc-mac.tip | 57 + info/examples/tex-in-practice/today.tip | 21 + info/examples/tex-in-practice/todayx.tip | 35 + info/examples/tex-in-practice/topinfix.tip | 40 + info/examples/tex-in-practice/ts-brefm.tip | 21 + info/examples/tex-in-practice/ts-bul.tip | 23 + info/examples/tex-in-practice/ts-chap.tip | 63 + info/examples/tex-in-practice/ts-chhe.tip | 48 + info/examples/tex-in-practice/ts-crm.tip | 116 + info/examples/tex-in-practice/ts-dime1.tip | 25 + info/examples/tex-in-practice/ts-dime2.tip | 44 + info/examples/tex-in-practice/ts-dime3.tip | 20 + info/examples/tex-in-practice/ts-enum.tip | 69 + info/examples/tex-in-practice/ts-float.tip | 121 + info/examples/tex-in-practice/ts-fonts.tip | 111 + info/examples/tex-in-practice/ts-foot.tip | 41 + info/examples/tex-in-practice/ts-gnot.tip | 68 + info/examples/tex-in-practice/ts-hall.tip | 21 + info/examples/tex-in-practice/ts-hmore.tip | 39 + info/examples/tex-in-practice/ts-hyph.tip | 27 + info/examples/tex-in-practice/ts-itize.tip | 46 + info/examples/tex-in-practice/ts-lazy.tip | 24 + info/examples/tex-in-practice/ts-loft.tip | 31 + info/examples/tex-in-practice/ts-logo.tip | 26 + info/examples/tex-in-practice/ts-main.tip | 67 + info/examples/tex-in-practice/ts-outpu.tip | 188 + info/examples/tex-in-practice/ts-page2.tip | 122 + info/examples/tex-in-practice/ts-pager.tip | 38 + info/examples/tex-in-practice/ts-robst.tip | 42 + info/examples/tex-in-practice/ts-set.tip | 32 + info/examples/tex-in-practice/ts-shead.tip | 83 + info/examples/tex-in-practice/ts-subst.tip | 34 + info/examples/tex-in-practice/ts-toc.tip | 46 + info/examples/tex-in-practice/ts-verb.tip | 84 + info/examples/tex-in-practice/ts-verb1.tip | 54 + info/examples/tex-in-practice/ts-verb2.tip | 34 + info/examples/tex-in-practice/ts-vers.tip | 19 + info/examples/tex-in-practice/ts-vol.tip | 25 + info/examples/tex-in-practice/ts-wind.tip | 174 + info/examples/tex-in-practice/ts-writc.tip | 25 + info/examples/tex-in-practice/valdecpo.tip | 34 + info/examples/tex-in-practice/vcentx.tip | 73 + info/examples/tex-in-practice/verb-bas.tip | 130 + info/examples/tex-in-practice/verb-mac.tip | 41 + info/examples/tex-in-practice/verb.tip | 44 + info/examples/tex-in-practice/verbdisp.tip | 244 + info/examples/tex-in-practice/verbwr.tip | 86 + info/examples/tex-in-practice/vsmax.tip | 32 + info/examples/tex-in-practice/vtbox.tip | 30 + info/examples/tex-in-practice/vwrt-mac.tip | 68 + info/examples/tex-in-practice/weekofyr.tip | 63 + info/examples/tex-in-practice/widestc.tip | 34 + info/examples/tex-in-practice/wl-parcp.tip | 57 + info/examples/tex-in-practice/wrtoc.tip | 27 + info/examples/tex-in-practice/wrverbar.tip | 35 + info/examples/tex-in-practice/wtolist.tip | 36 + info/examples/tex-in-practice/x-parsh.tip | 64 + info/examples/tex-in-practice/yearcal.tip | 67 + info/examples/tip/absdimen.tip | 25 - info/examples/tip/absval.tip | 25 - info/examples/tip/acronym.tip | 24 - info/examples/tip/advtabst.tip | 28 - info/examples/tip/aevpar.tip | 33 - info/examples/tip/alldate.tip | 38 - info/examples/tip/allocat.tip | 31 - info/examples/tip/alwbase.tip | 21 - info/examples/tip/angt.tip | 24 - info/examples/tip/arbday.tip | 54 - info/examples/tip/arraymac.tip | 213 - info/examples/tip/atpos.tip | 37 - info/examples/tip/be-env.tip | 46 - info/examples/tip/bletpar.tip | 53 - info/examples/tip/box-bb.tip | 22 - info/examples/tip/box-bul.tip | 28 - info/examples/tip/box-larg.tip | 29 - info/examples/tip/box-mac.tip | 24 - info/examples/tip/box-thck.tip | 20 - info/examples/tip/box-zero.tip | 27 - info/examples/tip/boxing1.tip | 29 - info/examples/tip/boxing2.tip | 31 - info/examples/tip/boxing3.tip | 34 - info/examples/tip/boxing4.tip | 47 - info/examples/tip/boxing5.tip | 105 - info/examples/tip/boxing6.tip | 44 - info/examples/tip/boxing7.tip | 113 - info/examples/tip/boxrelim.tip | 27 - info/examples/tip/boxrqu.tip | 118 - info/examples/tip/centerlp.tip | 21 - info/examples/tip/centerng.tip | 32 - info/examples/tip/centpar.tip | 29 - info/examples/tip/charbo.tip | 29 - info/examples/tip/chboxd.tip | 26 - info/examples/tip/clearb.tip | 23 - info/examples/tip/collect.tip | 25 - info/examples/tip/coltok.tip | 25 - info/examples/tip/comfiles.tip | 76 - info/examples/tip/compst.tip | 38 - info/examples/tip/compstca.tip | 44 - info/examples/tip/condltr.tip | 38 - info/examples/tip/conval.tip | 38 - info/examples/tip/copydate.tip | 23 - info/examples/tip/counters.tip | 87 - info/examples/tip/countl.tip | 46 - info/examples/tip/cref-1.tip | 31 - info/examples/tip/cref-2.tip | 24 - info/examples/tip/cref-2a.tip | 27 - info/examples/tip/cref-3.tip | 38 - info/examples/tip/cref-3a.tip | 44 - info/examples/tip/cref-4.tip | 27 - info/examples/tip/cref-5.tip | 52 - info/examples/tip/crline.tip | 26 - info/examples/tip/csar.tip | 114 - info/examples/tip/cssprint.tip | 27 - info/examples/tip/cstostr.tip | 24 - info/examples/tip/cstostrc.tip | 34 - info/examples/tip/ctestcs.tip | 37 - info/examples/tip/dateofw.tip | 53 - info/examples/tip/dblarg.tip | 26 - info/examples/tip/defauarg.tip | 38 - info/examples/tip/dicentry.tip | 28 - info/examples/tip/doloop.tip | 86 - info/examples/tip/droppre.tip | 37 - info/examples/tip/droppt.tip | 24 - info/examples/tip/dumppars.tip | 115 - info/examples/tip/earliest.tip | 41 - info/examples/tip/emprubox.tip | 28 - info/examples/tip/emptybox.tip | 27 - info/examples/tip/endn-mac.tip | 52 - info/examples/tip/endrec.tip | 28 - info/examples/tip/enum.tip | 34 - info/examples/tip/enumlist.tip | 83 - info/examples/tip/errmess.tip | 22 - info/examples/tip/evenprin.tip | 24 - info/examples/tip/everyequ.tip | 28 - info/examples/tip/everypar.tip | 45 - info/examples/tip/evhvbox.tip | 28 - info/examples/tip/ex-out2.tip | 32 - info/examples/tip/fexist.tip | 33 - info/examples/tip/figbox.tip | 24 - info/examples/tip/figinpar.tip | 59 - info/examples/tip/firstldi.tip | 52 - info/examples/tip/fo-char.tip | 28 - info/examples/tip/font-cpp.tip | 45 - info/examples/tip/fontsam.tip | 150 - info/examples/tip/fonttab.tip | 90 - info/examples/tip/formline.tip | 33 - info/examples/tip/fotable.tip | 175 - info/examples/tip/fotok.tip | 34 - info/examples/tip/frac.tip | 21 - info/examples/tip/freespac.tip | 35 - info/examples/tip/fsized.tip | 35 - info/examples/tip/funospac.tip | 52 - info/examples/tip/futlet.tip | 32 - info/examples/tip/futpar.tip | 23 - info/examples/tip/genaeol.tip | 39 - info/examples/tip/genhead.tip | 100 - info/examples/tip/genostr.tip | 42 - info/examples/tip/getnuml.tip | 29 - info/examples/tip/gobble.tip | 27 - info/examples/tip/gobblemo.tip | 24 - info/examples/tip/graphmac.tip | 82 - info/examples/tip/hex.tip | 44 - info/examples/tip/ifeven.tip | 28 - info/examples/tip/ifx-def.tip | 30 - info/examples/tip/ifx-mac.tip | 26 - info/examples/tip/imodn.tip | 38 - info/examples/tip/index-or.tip | 50 - info/examples/tip/input-at.tip | 23 - info/examples/tip/inputc.tip | 33 - info/examples/tip/inputd.tip | 41 - info/examples/tip/inputdl.tip | 28 - info/examples/tip/isleapyr.tip | 43 - info/examples/tip/isprefix.tip | 55 - info/examples/tip/issuffix.tip | 28 - info/examples/tip/itemizel.tip | 48 - info/examples/tip/itemltw.tip | 32 - info/examples/tip/itemplan.tip | 44 - info/examples/tip/ivpyr.tip | 67 - info/examples/tip/largdp.tip | 42 - info/examples/tip/lbpar.tip | 30 - info/examples/tip/lc0to9.tip | 35 - info/examples/tip/leadingz.tip | 28 - info/examples/tip/leadline.tip | 29 - info/examples/tip/leftdm.tip | 27 - info/examples/tip/legdate.tip | 32 - info/examples/tip/legmonth.tip | 23 - info/examples/tip/legyear.tip | 26 - info/examples/tip/lfondem.tip | 26 - info/examples/tip/linesr.tip | 23 - info/examples/tip/list-mac.tip | 142 - info/examples/tip/loadedla.tip | 23 - info/examples/tip/lpagetg.tip | 23 - info/examples/tip/macvntip.tex | 296 - info/examples/tip/mathenv.tip | 77 - info/examples/tip/maxmindi.tip | 32 - info/examples/tip/mocal.tip | 90 - info/examples/tip/mocal3.tip | 32 - info/examples/tip/modonead.tip | 26 - info/examples/tip/mondofda.tip | 39 - info/examples/tip/mrdel.tip | 54 - info/examples/tip/mspaces.tip | 20 - info/examples/tip/namedef.tip | 64 - info/examples/tip/nathd.tip | 29 - info/examples/tip/nctest.tip | 26 - info/examples/tip/ndaysmo.tip | 54 - info/examples/tip/new-midi.tip | 53 - info/examples/tip/newdef.tip | 43 - info/examples/tip/newfont.tip | 26 - info/examples/tip/newinput.tip | 26 - info/examples/tip/newoutfr.tip | 37 - info/examples/tip/newpage.tip | 22 - info/examples/tip/nextday.tip | 38 - info/examples/tip/nextmon.tip | 31 - info/examples/tip/nlm.tip | 24 - info/examples/tip/norpweek.tip | 39 - info/examples/tip/npright.tip | 42 - info/examples/tip/ntotext.tip | 119 - info/examples/tip/numcond.tip | 32 - info/examples/tip/numdyr.tip | 26 - info/examples/tip/numwhile.tip | 38 - info/examples/tip/oblines.tip | 31 - info/examples/tip/obspaces.tip | 27 - info/examples/tip/oct.tip | 32 - info/examples/tip/oddprin.tip | 23 - info/examples/tip/oeprin.tip | 25 - info/examples/tip/ola-1p.tip | 91 - info/examples/tip/ola-2p.tip | 121 - info/examples/tip/ola-comm.tip | 75 - info/examples/tip/op-endin.tip | 61 - info/examples/tip/op-pagec.tip | 53 - info/examples/tip/optargx.tip | 27 - info/examples/tip/orcards.tip | 119 - info/examples/tip/ordbrule.tip | 36 - info/examples/tip/orsimple.tip | 104 - info/examples/tip/out-ds.tip | 443 -- info/examples/tip/out2-or.tip | 73 - info/examples/tip/outf-rad.tip | 55 - info/examples/tip/outpsel.tip | 37 - info/examples/tip/par-fl.tip | 32 - info/examples/tip/par-lab.tip | 82 - info/examples/tip/par-lcl.tip | 39 - info/examples/tip/parin.tip | 35 - info/examples/tip/part-cr.tip | 94 - info/examples/tip/part-lab.tip | 88 - info/examples/tip/part-mac.tip | 26 - info/examples/tip/parv-1.tip | 89 - info/examples/tip/pdollars.tip | 37 - info/examples/tip/pickfs.tip | 20 - info/examples/tip/pm-4.tip | 122 - info/examples/tip/pm-auxco.tip | 25 - info/examples/tip/pm-bas.tip | 52 - info/examples/tip/pm-main.tip | 111 - info/examples/tip/pm-pagen.tip | 38 - info/examples/tip/pm-wrc.tip | 32 - info/examples/tip/pmtime.tip | 30 - info/examples/tip/poorbold.tip | 25 - info/examples/tip/pralph.tip | 26 - info/examples/tip/prevday.tip | 37 - info/examples/tip/prevmon.tip | 31 - info/examples/tip/prhyph.tip | 54 - info/examples/tip/primmark.tip | 25 - info/examples/tip/printast.tip | 37 - info/examples/tip/printco.tip | 68 - info/examples/tip/printreg.tip | 24 - info/examples/tip/prmode.tip | 29 - info/examples/tip/prmonth.tip | 54 - info/examples/tip/prot.tip | 72 - info/examples/tip/rangetst.tip | 44 - info/examples/tip/rboxt.tip | 24 - info/examples/tip/readme | 27 - info/examples/tip/readnu.tip | 38 - info/examples/tip/redtost.tip | 27 - info/examples/tip/remtlsp.tip | 50 - info/examples/tip/restring.tip | 52 - info/examples/tip/reverses.tip | 39 - info/examples/tip/rh-dict.tip | 31 - info/examples/tip/robust.tip | 35 - info/examples/tip/samplepa.tip | 40 - info/examples/tip/setstrut.tip | 51 - info/examples/tip/shboxes.tip | 42 - info/examples/tip/shiftudb.tip | 30 - info/examples/tip/showpll.tip | 46 - info/examples/tip/showx.tip | 28 - info/examples/tip/sigline.tip | 27 - info/examples/tip/spacefac.tip | 28 - info/examples/tip/splitpar.tip | 49 - info/examples/tip/ssmath.tip | 38 - info/examples/tip/strleng.tip | 29 - info/examples/tip/stswitch.tip | 57 - info/examples/tip/substf.tip | 28 - info/examples/tip/sumhd.tip | 22 - info/examples/tip/swapbox.tip | 26 - info/examples/tip/tabcent.tip | 31 - info/examples/tip/tabswb.tip | 27 - info/examples/tip/testdef.tip | 30 - info/examples/tip/testsubs.tip | 42 - info/examples/tip/texip.idx | 3918 ----------- info/examples/tip/texipexp.tex | 6888 -------------------- info/examples/tip/tip-bugs.tex | 3153 --------- info/examples/tip/toc-mac.tip | 57 - info/examples/tip/today.tip | 21 - info/examples/tip/todayx.tip | 35 - info/examples/tip/topinfix.tip | 40 - info/examples/tip/ts-brefm.tip | 21 - info/examples/tip/ts-bul.tip | 23 - info/examples/tip/ts-chap.tip | 63 - info/examples/tip/ts-chhe.tip | 48 - info/examples/tip/ts-crm.tip | 116 - info/examples/tip/ts-dime1.tip | 25 - info/examples/tip/ts-dime2.tip | 44 - info/examples/tip/ts-dime3.tip | 20 - info/examples/tip/ts-enum.tip | 69 - info/examples/tip/ts-float.tip | 121 - info/examples/tip/ts-fonts.tip | 111 - info/examples/tip/ts-foot.tip | 41 - info/examples/tip/ts-gnot.tip | 68 - info/examples/tip/ts-hall.tip | 21 - info/examples/tip/ts-hmore.tip | 39 - info/examples/tip/ts-hyph.tip | 27 - info/examples/tip/ts-itize.tip | 46 - info/examples/tip/ts-lazy.tip | 24 - info/examples/tip/ts-loft.tip | 31 - info/examples/tip/ts-logo.tip | 26 - info/examples/tip/ts-main.tip | 67 - info/examples/tip/ts-outpu.tip | 188 - info/examples/tip/ts-page2.tip | 122 - info/examples/tip/ts-pager.tip | 38 - info/examples/tip/ts-robst.tip | 42 - info/examples/tip/ts-set.tip | 32 - info/examples/tip/ts-shead.tip | 83 - info/examples/tip/ts-subst.tip | 34 - info/examples/tip/ts-toc.tip | 46 - info/examples/tip/ts-verb.tip | 84 - info/examples/tip/ts-verb1.tip | 54 - info/examples/tip/ts-verb2.tip | 34 - info/examples/tip/ts-vers.tip | 19 - info/examples/tip/ts-vol.tip | 25 - info/examples/tip/ts-wind.tip | 174 - info/examples/tip/ts-writc.tip | 25 - info/examples/tip/valdecpo.tip | 34 - info/examples/tip/vcentx.tip | 73 - info/examples/tip/verb-bas.tip | 130 - info/examples/tip/verb-mac.tip | 41 - info/examples/tip/verb.tip | 44 - info/examples/tip/verbdisp.tip | 244 - info/examples/tip/verbwr.tip | 86 - info/examples/tip/vsmax.tip | 32 - info/examples/tip/vtbox.tip | 30 - info/examples/tip/vwrt-mac.tip | 68 - info/examples/tip/weekofyr.tip | 63 - info/examples/tip/widestc.tip | 34 - info/examples/tip/wl-parcp.tip | 57 - info/examples/tip/wrtoc.tip | 27 - info/examples/tip/wrverbar.tip | 35 - info/examples/tip/wtolist.tip | 36 - info/examples/tip/x-parsh.tip | 64 - info/examples/tip/yearcal.tip | 67 - info/whatstex/lit.dat | 1 - info/whatstex/lit.sel | 124 - info/whatstex/wots.tex | 2956 --------- macros/ec-plain/00readme.doc | 44 - macros/ec-plain/README | 1 - macros/ec-plain/acmacros.sty | 594 -- macros/ec-plain/dybx10.mf | 69 - macros/ec-plain/dybx12.mf | 70 - macros/ec-plain/dybx5.mf | 69 - macros/ec-plain/dybx6.mf | 69 - macros/ec-plain/dybx7.mf | 70 - macros/ec-plain/dybx8.mf | 69 - macros/ec-plain/dybx9.mf | 69 - macros/ec-plain/dymi10.mf | 69 - macros/ec-plain/dymi12.mf | 70 - macros/ec-plain/dymi5.mf | 69 - macros/ec-plain/dymi6.mf | 69 - macros/ec-plain/dymi7.mf | 69 - macros/ec-plain/dymi8.mf | 69 - macros/ec-plain/dymi9.mf | 70 - macros/ec-plain/ec-pdfplain.fmt | Bin 346835 -> 0 bytes macros/ec-plain/ec-pdfplain.tex | 2 - macros/ec-plain/ec-plain.fmt | Bin 337483 -> 0 bytes macros/ec-plain/ec-plain.tex | 1245 ---- macros/ec-plain/ec-plfmt.bat | 46 - macros/ec-plain/ecbxmath.mf | 21 - macros/ec-plain/ecmathit.mf | 88 - macros/ec-plain/enhyph.tex | 4457 ------------- macros/ec-plain/enhyphex.tex | 29 - macros/ec-plain/eshyph.tex | 114 - macros/ec-plain/exmi.mf | 14 - macros/ec-plain/exmi10.mf | 14 - macros/ec-plain/exmi10.tfm | Bin 2272 -> 0 bytes macros/ec-plain/exmi12.mf | 14 - macros/ec-plain/exmi12.tfm | Bin 2272 -> 0 bytes macros/ec-plain/exmi5.mf | 14 - macros/ec-plain/exmi5.tfm | Bin 2232 -> 0 bytes macros/ec-plain/exmi6.mf | 14 - macros/ec-plain/exmi6.tfm | Bin 2256 -> 0 bytes macros/ec-plain/exmi7.mf | 14 - macros/ec-plain/exmi7.tfm | Bin 2284 -> 0 bytes macros/ec-plain/exmi8.mf | 14 - macros/ec-plain/exmi8.tfm | Bin 2264 -> 0 bytes macros/ec-plain/exmi9.mf | 14 - macros/ec-plain/exmi9.tfm | Bin 2280 -> 0 bytes macros/ec-plain/f8hyph1.tex | 1332 ---- macros/ec-plain/frhyphx1.tex | 19 - macros/ec-plain/ghyph31.tex | 848 --- macros/ec-plain/hyacceur.tex | 143 - macros/ec-plain/hyconfig.ptx | 98 - macros/ec-plain/ithyph.tex | 107 - macros/ec-plain/language.dat | 24 - macros/ec-plain/make-musixtex-format.bat | 2 - macros/ec-plain/ofgreekl.mf | 491 -- macros/ec-plain/ofgreeku.mf | 255 - macros/latex/contrib/easybook/easybook.dtx | 34 +- macros/latex/contrib/easybook/easybook.pdf | Bin 599182 -> 598552 bytes macros/latex/contrib/easybook/easybook.tex | 10 +- macros/latex/contrib/hvextern/Changes | 1 + macros/latex/contrib/hvextern/doc/hvextern.pdf | Bin 1498836 -> 1481699 bytes macros/latex/contrib/hvextern/doc/hvextern.tex | 59 +- macros/latex/contrib/hvextern/latex/hvextern.sty | 107 +- .../contrib/hvextern/script/hvextern-checkfile.lua | 0 macros/latex/contrib/leftindex/README.md | 3 +- macros/latex/contrib/leftindex/leftindex.pdf | Bin 72581 -> 89885 bytes macros/latex/contrib/leftindex/leftindex.sty | 29 +- macros/latex/contrib/leftindex/leftindex.tex | 43 +- macros/latex/contrib/litetable/doc/favicon.png | Bin 0 -> 17761 bytes .../latex/contrib/litetable/doc/litetable-demo.pdf | Bin 30108 -> 46294 bytes .../latex/contrib/litetable/doc/litetable-demo.tex | 86 +- .../contrib/litetable/doc/litetable-doc-cn.pdf | Bin 0 -> 193124 bytes .../contrib/litetable/doc/litetable-doc-cn.tex | 210 + .../contrib/litetable/doc/litetable-doc-en.pdf | Bin 0 -> 103291 bytes .../contrib/litetable/doc/litetable-doc-en.tex | 210 + .../latex/contrib/litetable/doc/litetable-doc.pdf | Bin 79686 -> 0 bytes .../latex/contrib/litetable/doc/litetable-doc.tex | 169 - macros/latex/contrib/litetable/tex/litetable.cls | 210 +- macros/latex/contrib/refstyle/README | 140 +- macros/latex/contrib/refstyle/refconfig.dtx | 2421 ++++--- macros/latex/contrib/refstyle/refconfig.pdf | Bin 292980 -> 303725 bytes macros/latex/contrib/refstyle/refstyle.cfg | 571 -- macros/latex/contrib/refstyle/refstyle.dtx | 3591 +++++----- macros/latex/contrib/refstyle/refstyle.ins | 189 +- macros/latex/contrib/refstyle/refstyle.pdf | Bin 484262 -> 485427 bytes macros/latex/contrib/refstyle/refstyle.sty | 327 - .../contrib/schooldocs/schooldocs-examples.pdf | Bin 390596 -> 270592 bytes .../contrib/schooldocs/schooldocs-examples.tex | 327 + macros/latex/contrib/schooldocs/schooldocs.dtx | 151 +- macros/latex/contrib/schooldocs/schooldocs.ins | 4 +- macros/latex/contrib/schooldocs/schooldocs.pdf | Bin 156752 -> 157543 bytes macros/luatex/latex/novel/README.md | 13 +- .../luatex/latex/novel/doc/extras/CPmodified.otf | Bin 52088 -> 0 bytes .../doc/extras/novel-Gallery-ChapterStart.pdf | Bin 311166 -> 0 bytes .../latex/novel/doc/extras/novel-example.pdf | 1125 ---- .../latex/novel/doc/extras/novel-example.tex | 2 +- .../novel/doc/extras/novel-extras-README.html | 10 +- .../latex/novel/doc/extras/novel-testimage.jpg | Bin 1990 -> 0 bytes .../latex/novel/doc/extras/novel-testimage.png | Bin 1908 -> 0 bytes .../latex/novel/doc/extras/novel-testscript.jpg | Bin 2456 -> 0 bytes .../latex/novel/doc/extras/novel-testscript.png | Bin 2064 -> 0 bytes .../latex/novel/doc/extras/novel-testsuite.pdf | Bin 69116 -> 0 bytes .../latex/novel/doc/extras/novel-testsuite.tex | 318 - macros/luatex/latex/novel/doc/needed-packages | 11 - .../latex/novel/doc/novel-documentation.html | 298 +- macros/luatex/latex/novel/doc/novel.pdf | 642 +- macros/luatex/latex/novel/doc/novel.tex | 120 +- .../latex/novel/lualatex/novel-CGATSTR001.clo | 2 +- .../latex/novel/lualatex/novel-CalculateLayout.sty | 2 +- .../latex/novel/lualatex/novel-ChapterScene.sty | 2 +- .../luatex/latex/novel/lualatex/novel-DropCap.sty | 2 +- .../luatex/latex/novel/lualatex/novel-FOGRA39.clo | 2 +- .../luatex/latex/novel/lualatex/novel-FileData.sty | 2 +- macros/luatex/latex/novel/lualatex/novel-Fonts.sty | 2 +- .../latex/novel/lualatex/novel-Footnotes.sty | 2 +- .../latex/novel/lualatex/novel-HeadFootStyles.sty | 2 +- .../luatex/latex/novel/lualatex/novel-Images.sty | 2 +- .../luatex/latex/novel/lualatex/novel-JC200103.clo | 2 +- .../latex/novel/lualatex/novel-LayoutSettings.sty | 2 +- .../latex/novel/lualatex/novel-PostLayout.sty | 2 +- .../luatex/latex/novel/lualatex/novel-Sandbox.sty | 2 +- .../latex/novel/lualatex/novel-TextMacros.sty | 2 +- .../latex/novel/lualatex/novel-microtype.cfg | 2 +- macros/luatex/latex/novel/lualatex/novel-pdfx.sty | 2 +- .../latex/novel/lualatex/novel-xmppacket.sty | 2 +- macros/luatex/latex/novel/lualatex/novel.cls | 23 +- macros/tex-in-practice | 1 - macros/tip | 1 - obsolete/info/whatstex/lit.dat | 1 + obsolete/info/whatstex/lit.sel | 124 + obsolete/info/whatstex/wots.tex | 2956 +++++++++ obsolete/macros/ec-plain/00readme.doc | 44 + obsolete/macros/ec-plain/README | 1 + obsolete/macros/ec-plain/acmacros.sty | 594 ++ obsolete/macros/ec-plain/dybx10.mf | 69 + obsolete/macros/ec-plain/dybx12.mf | 70 + obsolete/macros/ec-plain/dybx5.mf | 69 + obsolete/macros/ec-plain/dybx6.mf | 69 + obsolete/macros/ec-plain/dybx7.mf | 70 + obsolete/macros/ec-plain/dybx8.mf | 69 + obsolete/macros/ec-plain/dybx9.mf | 69 + obsolete/macros/ec-plain/dymi10.mf | 69 + obsolete/macros/ec-plain/dymi12.mf | 70 + obsolete/macros/ec-plain/dymi5.mf | 69 + obsolete/macros/ec-plain/dymi6.mf | 69 + obsolete/macros/ec-plain/dymi7.mf | 69 + obsolete/macros/ec-plain/dymi8.mf | 69 + obsolete/macros/ec-plain/dymi9.mf | 70 + obsolete/macros/ec-plain/ec-pdfplain.fmt | Bin 0 -> 346835 bytes obsolete/macros/ec-plain/ec-pdfplain.tex | 2 + obsolete/macros/ec-plain/ec-plain.fmt | Bin 0 -> 337483 bytes obsolete/macros/ec-plain/ec-plain.tex | 1245 ++++ obsolete/macros/ec-plain/ec-plfmt.bat | 46 + obsolete/macros/ec-plain/ecbxmath.mf | 21 + obsolete/macros/ec-plain/ecmathit.mf | 88 + obsolete/macros/ec-plain/enhyph.tex | 4457 +++++++++++++ obsolete/macros/ec-plain/enhyphex.tex | 29 + obsolete/macros/ec-plain/eshyph.tex | 114 + obsolete/macros/ec-plain/exmi.mf | 14 + obsolete/macros/ec-plain/exmi10.mf | 14 + obsolete/macros/ec-plain/exmi10.tfm | Bin 0 -> 2272 bytes obsolete/macros/ec-plain/exmi12.mf | 14 + obsolete/macros/ec-plain/exmi12.tfm | Bin 0 -> 2272 bytes obsolete/macros/ec-plain/exmi5.mf | 14 + obsolete/macros/ec-plain/exmi5.tfm | Bin 0 -> 2232 bytes obsolete/macros/ec-plain/exmi6.mf | 14 + obsolete/macros/ec-plain/exmi6.tfm | Bin 0 -> 2256 bytes obsolete/macros/ec-plain/exmi7.mf | 14 + obsolete/macros/ec-plain/exmi7.tfm | Bin 0 -> 2284 bytes obsolete/macros/ec-plain/exmi8.mf | 14 + obsolete/macros/ec-plain/exmi8.tfm | Bin 0 -> 2264 bytes obsolete/macros/ec-plain/exmi9.mf | 14 + obsolete/macros/ec-plain/exmi9.tfm | Bin 0 -> 2280 bytes obsolete/macros/ec-plain/f8hyph1.tex | 1332 ++++ obsolete/macros/ec-plain/frhyphx1.tex | 19 + obsolete/macros/ec-plain/ghyph31.tex | 848 +++ obsolete/macros/ec-plain/hyacceur.tex | 143 + obsolete/macros/ec-plain/hyconfig.ptx | 98 + obsolete/macros/ec-plain/ithyph.tex | 107 + obsolete/macros/ec-plain/language.dat | 24 + obsolete/macros/ec-plain/make-musixtex-format.bat | 2 + obsolete/macros/ec-plain/ofgreekl.mf | 491 ++ obsolete/macros/ec-plain/ofgreeku.mf | 255 + support/TeX4ht/source/ChangeLog | 9 + support/TeX4ht/source/tex4ht-html4.tex | 6 +- support/TeX4ht/source/tex4ht-mathml.tex | 4 +- support/latexmk/CHANGES | 11 + support/latexmk/INSTALL | 2 +- support/latexmk/README | 4 +- support/latexmk/latexmk.1 | 14 +- support/latexmk/latexmk.pdf | Bin 230284 -> 230287 bytes support/latexmk/latexmk.pl | 1143 ++-- support/latexmk/latexmk.txt | 3362 +++++----- support/splint/INSTALL | 10 +- support/splint/Makefile | 33 +- support/splint/README | 7 +- support/splint/TODO | 22 +- support/splint/VERSION | 2 +- support/splint/cweb/Makefile | 131 +- support/splint/cweb/bo.w | 582 +- support/splint/cweb/bs.w | 60 +- support/splint/cweb/checklists.w | 2 +- support/splint/cweb/common.w | 38 +- support/splint/cweb/fk.w | 4 +- support/splint/cweb/fo.w | 185 +- support/splint/cweb/lo.w | 100 +- support/splint/cweb/mkeparser.w | 8 +- support/splint/cweb/mkscanner.w | 2 +- support/splint/cweb/np.w | 34 +- support/splint/cweb/philosophy.w | 37 +- support/splint/cweb/references.w | 2 +- support/splint/cweb/so.w | 133 +- support/splint/cweb/splint.w | 258 +- support/splint/cweb/ssffo.w | 123 - support/splint/doc/ldman.pdf | Bin 718042 -> 745685 bytes support/splint/doc/splint.pdf | Bin 1141608 -> 1157534 bytes support/splint/examples/count/count.sty | 2 +- support/splint/examples/expression/Makefile | 4 +- support/splint/examples/expression/etoks.sty | 2 +- support/splint/examples/expression/expression.sty | 2 +- support/splint/examples/expression/expression.w | 18 +- support/splint/examples/ld/Makefile | 47 +- support/splint/examples/ld/ldexample.hw | 16 +- support/splint/examples/ld/ldgram.w | 108 +- support/splint/examples/ld/ldgramo.w | 9 +- support/splint/examples/ld/ldint.sty | 9 +- support/splint/examples/ld/ldlex.w | 519 +- support/splint/examples/ld/ldlexo.w | 14 +- support/splint/examples/ld/ldman.w | 297 +- support/splint/examples/ld/ldnp.w | 49 +- support/splint/examples/ld/ldnump.w | 10 +- support/splint/examples/ld/ldtexlex.sty | 4 +- support/splint/examples/ld/ldunion.sty | 242 +- support/splint/examples/ld/lstokenset.sty | 2 +- support/splint/examples/ld/ltokenset.sty | 2 +- support/splint/examples/symbols/Makefile | 8 +- support/splint/examples/symbols/slimbo.sty | 2 +- support/splint/examples/symbols/symbols.w | 46 +- support/splint/examples/symbols/symfm.sty | 2 +- support/splint/examples/symbols/symmap.sty | 5 +- support/splint/examples/symbols/symtoks.sty | 2 +- support/splint/examples/symbols/symtricks.sty | 2 +- support/splint/examples/types/Makefile | 2 +- support/splint/examples/types/basic.sty | 2 +- support/splint/examples/types/test.sty | 2 +- support/splint/examples/types/tree.sty | 2 +- support/splint/examples/xxpression/Makefile | 8 +- support/splint/examples/xxpression/xtoks.sty | 3 +- support/splint/examples/xxpression/xxpression.sty | 2 +- support/splint/examples/xxpression/xxpression.w | 39 +- support/splint/examples/xxpression/xymmap.sty | 5 +- support/splint/extras/texmf/macros/protcode.tex | 83 - support/splint/makefile.inc | 60 +- support/splint/other/texmf/macros/protcode.tex | 83 + support/splint/scripts/bindx.pl | 30 +- support/splint/scripts/brack.pl | 213 +- support/splint/scripts/cslist.pl | 2 +- support/splint/scripts/misccw.pl | 2 +- support/splint/scripts/unline.pl | 21 +- support/splint/tex/btokenset.sty | 8 +- support/splint/tex/dcols.sty | 454 +- support/splint/tex/flex.sty | 124 +- support/splint/tex/fonts/idssbx10.vpl | 911 +++ support/splint/tex/fonts/idssbx12.vpl | 908 +++ support/splint/tex/fonts/idssbx5.vpl | 908 +++ support/splint/tex/fonts/idssbx6.tfm | Bin 0 -> 1280 bytes support/splint/tex/fonts/idssbx6.vf | Bin 0 -> 828 bytes support/splint/tex/fonts/idssbx6.vpl | 1310 ++++ support/splint/tex/fonts/idssbx7.tfm | Bin 0 -> 1296 bytes support/splint/tex/fonts/idssbx7.vf | Bin 0 -> 828 bytes support/splint/tex/fonts/idssbx7.vpl | 913 +++ support/splint/tex/fonts/idssbx8.tfm | Bin 0 -> 1280 bytes support/splint/tex/fonts/idssbx8.vf | Bin 0 -> 828 bytes support/splint/tex/fonts/idssbx8.vpl | 1310 ++++ support/splint/tex/fonts/idssbx9.tfm | Bin 0 -> 1296 bytes support/splint/tex/fonts/idssbx9.vf | Bin 0 -> 828 bytes support/splint/tex/fonts/idssbx9.vpl | 1310 ++++ support/splint/tex/fretokenset.sty | 2 +- support/splint/tex/ftokenset.sty | 3 +- support/splint/tex/gindex.sty | 164 +- support/splint/tex/grabstates.sty | 16 +- support/splint/tex/hext.sty | 16 + support/splint/tex/limbo.sty | 454 +- support/splint/tex/noweb.sty | 186 +- support/splint/tex/stokenset.sty | 3 +- support/splint/tex/trt1.sty | 4 +- support/splint/tex/xarithm.sty | 4 +- support/splint/tex/yxunion.sty | 33 - support/splint/tex/yy.sty | 26 +- support/splint/tex/yybootstrap.sty | 7 +- support/splint/tex/yycommon.sty | 716 +- support/splint/tex/yydebug.sty | 18 +- support/splint/tex/yyfaststack.sty | 94 +- support/splint/tex/yyinit.sty | 520 +- support/splint/tex/yyinput.sty | 219 +- support/splint/tex/yymisc.sty | 435 +- support/splint/tex/yynested.sty | 2 +- support/splint/tex/yyparse.sty | 78 +- support/splint/tex/yypretty.sty | 7 +- support/splint/tex/yystype.sty | 5 +- support/splint/tex/yytexlex.sty | 208 +- support/splint/tex/yyunion.sty | 1314 +++- .../texlive/tlnet/tlpkg/installer/ctan-mirrors.pl | 5 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb | 113 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 | 2 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 | 2 +- .../texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc | 16 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz | Bin 2525028 -> 2523732 bytes timestamp | 2 +- 913 files changed, 63614 insertions(+), 55897 deletions(-) delete mode 120000 info/examples/tex-in-practice create mode 100644 info/examples/tex-in-practice/absdimen.tip create mode 100644 info/examples/tex-in-practice/absval.tip create mode 100644 info/examples/tex-in-practice/acronym.tip create mode 100644 info/examples/tex-in-practice/advtabst.tip create mode 100644 info/examples/tex-in-practice/aevpar.tip create mode 100644 info/examples/tex-in-practice/alldate.tip create mode 100644 info/examples/tex-in-practice/allocat.tip create mode 100644 info/examples/tex-in-practice/alwbase.tip create mode 100644 info/examples/tex-in-practice/angt.tip create mode 100644 info/examples/tex-in-practice/arbday.tip create mode 100644 info/examples/tex-in-practice/arraymac.tip create mode 100644 info/examples/tex-in-practice/atpos.tip create mode 100644 info/examples/tex-in-practice/be-env.tip create mode 100644 info/examples/tex-in-practice/bletpar.tip create mode 100644 info/examples/tex-in-practice/box-bb.tip create mode 100644 info/examples/tex-in-practice/box-bul.tip create mode 100644 info/examples/tex-in-practice/box-larg.tip create mode 100644 info/examples/tex-in-practice/box-mac.tip create mode 100644 info/examples/tex-in-practice/box-thck.tip create mode 100644 info/examples/tex-in-practice/box-zero.tip create mode 100644 info/examples/tex-in-practice/boxing1.tip create mode 100644 info/examples/tex-in-practice/boxing2.tip create mode 100644 info/examples/tex-in-practice/boxing3.tip create mode 100644 info/examples/tex-in-practice/boxing4.tip create mode 100644 info/examples/tex-in-practice/boxing5.tip create mode 100644 info/examples/tex-in-practice/boxing6.tip create mode 100644 info/examples/tex-in-practice/boxing7.tip create mode 100644 info/examples/tex-in-practice/boxrelim.tip create mode 100644 info/examples/tex-in-practice/boxrqu.tip create mode 100644 info/examples/tex-in-practice/centerlp.tip create mode 100644 info/examples/tex-in-practice/centerng.tip create mode 100644 info/examples/tex-in-practice/centpar.tip create mode 100644 info/examples/tex-in-practice/charbo.tip create mode 100644 info/examples/tex-in-practice/chboxd.tip create mode 100644 info/examples/tex-in-practice/clearb.tip create mode 100644 info/examples/tex-in-practice/collect.tip create mode 100644 info/examples/tex-in-practice/coltok.tip create mode 100644 info/examples/tex-in-practice/comfiles.tip create mode 100644 info/examples/tex-in-practice/compst.tip create mode 100644 info/examples/tex-in-practice/compstca.tip create mode 100644 info/examples/tex-in-practice/condltr.tip create mode 100644 info/examples/tex-in-practice/conval.tip create mode 100644 info/examples/tex-in-practice/copydate.tip create mode 100644 info/examples/tex-in-practice/counters.tip create mode 100644 info/examples/tex-in-practice/countl.tip create mode 100644 info/examples/tex-in-practice/cref-1.tip create mode 100644 info/examples/tex-in-practice/cref-2.tip create mode 100644 info/examples/tex-in-practice/cref-2a.tip create mode 100644 info/examples/tex-in-practice/cref-3.tip create mode 100644 info/examples/tex-in-practice/cref-3a.tip create mode 100644 info/examples/tex-in-practice/cref-4.tip create mode 100644 info/examples/tex-in-practice/cref-5.tip create mode 100644 info/examples/tex-in-practice/crline.tip create mode 100644 info/examples/tex-in-practice/csar.tip create mode 100644 info/examples/tex-in-practice/cssprint.tip create mode 100644 info/examples/tex-in-practice/cstostr.tip create mode 100644 info/examples/tex-in-practice/cstostrc.tip create mode 100644 info/examples/tex-in-practice/ctestcs.tip create mode 100644 info/examples/tex-in-practice/dateofw.tip create mode 100644 info/examples/tex-in-practice/dblarg.tip create mode 100644 info/examples/tex-in-practice/defauarg.tip create mode 100644 info/examples/tex-in-practice/dicentry.tip create mode 100644 info/examples/tex-in-practice/doloop.tip create mode 100644 info/examples/tex-in-practice/droppre.tip create mode 100644 info/examples/tex-in-practice/droppt.tip create mode 100644 info/examples/tex-in-practice/dumppars.tip create mode 100644 info/examples/tex-in-practice/earliest.tip create mode 100644 info/examples/tex-in-practice/emprubox.tip create mode 100644 info/examples/tex-in-practice/emptybox.tip create mode 100644 info/examples/tex-in-practice/endn-mac.tip create mode 100644 info/examples/tex-in-practice/endrec.tip create mode 100644 info/examples/tex-in-practice/enum.tip create mode 100644 info/examples/tex-in-practice/enumlist.tip create mode 100644 info/examples/tex-in-practice/errmess.tip create mode 100644 info/examples/tex-in-practice/evenprin.tip create mode 100644 info/examples/tex-in-practice/everyequ.tip create mode 100644 info/examples/tex-in-practice/everypar.tip create mode 100644 info/examples/tex-in-practice/evhvbox.tip create mode 100644 info/examples/tex-in-practice/ex-out2.tip create mode 100644 info/examples/tex-in-practice/fexist.tip create mode 100644 info/examples/tex-in-practice/figbox.tip create mode 100644 info/examples/tex-in-practice/figinpar.tip create mode 100644 info/examples/tex-in-practice/firstldi.tip create mode 100644 info/examples/tex-in-practice/fo-char.tip create mode 100644 info/examples/tex-in-practice/font-cpp.tip create mode 100644 info/examples/tex-in-practice/fontsam.tip create mode 100644 info/examples/tex-in-practice/fonttab.tip create mode 100644 info/examples/tex-in-practice/formline.tip create mode 100644 info/examples/tex-in-practice/fotable.tip create mode 100644 info/examples/tex-in-practice/fotok.tip create mode 100644 info/examples/tex-in-practice/frac.tip create mode 100644 info/examples/tex-in-practice/freespac.tip create mode 100644 info/examples/tex-in-practice/fsized.tip create mode 100644 info/examples/tex-in-practice/funospac.tip create mode 100644 info/examples/tex-in-practice/futlet.tip create mode 100644 info/examples/tex-in-practice/futpar.tip create mode 100644 info/examples/tex-in-practice/genaeol.tip create mode 100644 info/examples/tex-in-practice/genhead.tip create mode 100644 info/examples/tex-in-practice/genostr.tip create mode 100644 info/examples/tex-in-practice/getnuml.tip create mode 100644 info/examples/tex-in-practice/gobble.tip create mode 100644 info/examples/tex-in-practice/gobblemo.tip create mode 100644 info/examples/tex-in-practice/graphmac.tip create mode 100644 info/examples/tex-in-practice/hex.tip create mode 100644 info/examples/tex-in-practice/ifeven.tip create mode 100644 info/examples/tex-in-practice/ifx-def.tip create mode 100644 info/examples/tex-in-practice/ifx-mac.tip create mode 100644 info/examples/tex-in-practice/imodn.tip create mode 100644 info/examples/tex-in-practice/index-or.tip create mode 100644 info/examples/tex-in-practice/input-at.tip create mode 100644 info/examples/tex-in-practice/inputc.tip create mode 100644 info/examples/tex-in-practice/inputd.tip create mode 100644 info/examples/tex-in-practice/inputdl.tip create mode 100644 info/examples/tex-in-practice/isleapyr.tip create mode 100644 info/examples/tex-in-practice/isprefix.tip create mode 100644 info/examples/tex-in-practice/issuffix.tip create mode 100644 info/examples/tex-in-practice/itemizel.tip create mode 100644 info/examples/tex-in-practice/itemltw.tip create mode 100644 info/examples/tex-in-practice/itemplan.tip create mode 100644 info/examples/tex-in-practice/ivpyr.tip create mode 100644 info/examples/tex-in-practice/largdp.tip create mode 100644 info/examples/tex-in-practice/lbpar.tip create mode 100644 info/examples/tex-in-practice/lc0to9.tip create mode 100644 info/examples/tex-in-practice/leadingz.tip create mode 100644 info/examples/tex-in-practice/leadline.tip create mode 100644 info/examples/tex-in-practice/leftdm.tip create mode 100644 info/examples/tex-in-practice/legdate.tip create mode 100644 info/examples/tex-in-practice/legmonth.tip create mode 100644 info/examples/tex-in-practice/legyear.tip create mode 100644 info/examples/tex-in-practice/lfondem.tip create mode 100644 info/examples/tex-in-practice/linesr.tip create mode 100644 info/examples/tex-in-practice/list-mac.tip create mode 100644 info/examples/tex-in-practice/loadedla.tip create mode 100644 info/examples/tex-in-practice/lpagetg.tip create mode 100644 info/examples/tex-in-practice/macvntip.tex create mode 100644 info/examples/tex-in-practice/mathenv.tip create mode 100644 info/examples/tex-in-practice/maxmindi.tip create mode 100644 info/examples/tex-in-practice/mocal.tip create mode 100644 info/examples/tex-in-practice/mocal3.tip create mode 100644 info/examples/tex-in-practice/modonead.tip create mode 100644 info/examples/tex-in-practice/mondofda.tip create mode 100644 info/examples/tex-in-practice/mrdel.tip create mode 100644 info/examples/tex-in-practice/mspaces.tip create mode 100644 info/examples/tex-in-practice/namedef.tip create mode 100644 info/examples/tex-in-practice/nathd.tip create mode 100644 info/examples/tex-in-practice/nctest.tip create mode 100644 info/examples/tex-in-practice/ndaysmo.tip create mode 100644 info/examples/tex-in-practice/new-midi.tip create mode 100644 info/examples/tex-in-practice/newdef.tip create mode 100644 info/examples/tex-in-practice/newfont.tip create mode 100644 info/examples/tex-in-practice/newinput.tip create mode 100644 info/examples/tex-in-practice/newoutfr.tip create mode 100644 info/examples/tex-in-practice/newpage.tip create mode 100644 info/examples/tex-in-practice/nextday.tip create mode 100644 info/examples/tex-in-practice/nextmon.tip create mode 100644 info/examples/tex-in-practice/nlm.tip create mode 100644 info/examples/tex-in-practice/norpweek.tip create mode 100644 info/examples/tex-in-practice/npright.tip create mode 100644 info/examples/tex-in-practice/ntotext.tip create mode 100644 info/examples/tex-in-practice/numcond.tip create mode 100644 info/examples/tex-in-practice/numdyr.tip create mode 100644 info/examples/tex-in-practice/numwhile.tip create mode 100644 info/examples/tex-in-practice/oblines.tip create mode 100644 info/examples/tex-in-practice/obspaces.tip create mode 100644 info/examples/tex-in-practice/oct.tip create mode 100644 info/examples/tex-in-practice/oddprin.tip create mode 100644 info/examples/tex-in-practice/oeprin.tip create mode 100644 info/examples/tex-in-practice/ola-1p.tip create mode 100644 info/examples/tex-in-practice/ola-2p.tip create mode 100644 info/examples/tex-in-practice/ola-comm.tip create mode 100644 info/examples/tex-in-practice/op-endin.tip create mode 100644 info/examples/tex-in-practice/op-pagec.tip create mode 100644 info/examples/tex-in-practice/optargx.tip create mode 100644 info/examples/tex-in-practice/orcards.tip create mode 100644 info/examples/tex-in-practice/ordbrule.tip create mode 100644 info/examples/tex-in-practice/orsimple.tip create mode 100644 info/examples/tex-in-practice/out-ds.tip create mode 100644 info/examples/tex-in-practice/out2-or.tip create mode 100644 info/examples/tex-in-practice/outf-rad.tip create mode 100644 info/examples/tex-in-practice/outpsel.tip create mode 100644 info/examples/tex-in-practice/par-fl.tip create mode 100644 info/examples/tex-in-practice/par-lab.tip create mode 100644 info/examples/tex-in-practice/par-lcl.tip create mode 100644 info/examples/tex-in-practice/parin.tip create mode 100644 info/examples/tex-in-practice/part-cr.tip create mode 100644 info/examples/tex-in-practice/part-lab.tip create mode 100644 info/examples/tex-in-practice/part-mac.tip create mode 100644 info/examples/tex-in-practice/parv-1.tip create mode 100644 info/examples/tex-in-practice/pdollars.tip create mode 100644 info/examples/tex-in-practice/pickfs.tip create mode 100644 info/examples/tex-in-practice/pm-4.tip create mode 100644 info/examples/tex-in-practice/pm-auxco.tip create mode 100644 info/examples/tex-in-practice/pm-bas.tip create mode 100644 info/examples/tex-in-practice/pm-main.tip create mode 100644 info/examples/tex-in-practice/pm-pagen.tip create mode 100644 info/examples/tex-in-practice/pm-wrc.tip create mode 100644 info/examples/tex-in-practice/pmtime.tip create mode 100644 info/examples/tex-in-practice/poorbold.tip create mode 100644 info/examples/tex-in-practice/pralph.tip create mode 100644 info/examples/tex-in-practice/prevday.tip create mode 100644 info/examples/tex-in-practice/prevmon.tip create mode 100644 info/examples/tex-in-practice/prhyph.tip create mode 100644 info/examples/tex-in-practice/primmark.tip create mode 100644 info/examples/tex-in-practice/printast.tip create mode 100644 info/examples/tex-in-practice/printco.tip create mode 100644 info/examples/tex-in-practice/printreg.tip create mode 100644 info/examples/tex-in-practice/prmode.tip create mode 100644 info/examples/tex-in-practice/prmonth.tip create mode 100644 info/examples/tex-in-practice/prot.tip create mode 100644 info/examples/tex-in-practice/rangetst.tip create mode 100644 info/examples/tex-in-practice/rboxt.tip create mode 100644 info/examples/tex-in-practice/readme create mode 100644 info/examples/tex-in-practice/readnu.tip create mode 100644 info/examples/tex-in-practice/redtost.tip create mode 100644 info/examples/tex-in-practice/remtlsp.tip create mode 100644 info/examples/tex-in-practice/restring.tip create mode 100644 info/examples/tex-in-practice/reverses.tip create mode 100644 info/examples/tex-in-practice/rh-dict.tip create mode 100644 info/examples/tex-in-practice/robust.tip create mode 100644 info/examples/tex-in-practice/samplepa.tip create mode 100644 info/examples/tex-in-practice/setstrut.tip create mode 100644 info/examples/tex-in-practice/shboxes.tip create mode 100644 info/examples/tex-in-practice/shiftudb.tip create mode 100644 info/examples/tex-in-practice/showpll.tip create mode 100644 info/examples/tex-in-practice/showx.tip create mode 100644 info/examples/tex-in-practice/sigline.tip create mode 100644 info/examples/tex-in-practice/spacefac.tip create mode 100644 info/examples/tex-in-practice/splitpar.tip create mode 100644 info/examples/tex-in-practice/ssmath.tip create mode 100644 info/examples/tex-in-practice/strleng.tip create mode 100644 info/examples/tex-in-practice/stswitch.tip create mode 100644 info/examples/tex-in-practice/substf.tip create mode 100644 info/examples/tex-in-practice/sumhd.tip create mode 100644 info/examples/tex-in-practice/swapbox.tip create mode 100644 info/examples/tex-in-practice/tabcent.tip create mode 100644 info/examples/tex-in-practice/tabswb.tip create mode 100644 info/examples/tex-in-practice/testdef.tip create mode 100644 info/examples/tex-in-practice/testsubs.tip create mode 100644 info/examples/tex-in-practice/texip.idx create mode 100644 info/examples/tex-in-practice/texipexp.tex create mode 100644 info/examples/tex-in-practice/tip-bugs.tex create mode 100644 info/examples/tex-in-practice/toc-mac.tip create mode 100644 info/examples/tex-in-practice/today.tip create mode 100644 info/examples/tex-in-practice/todayx.tip create mode 100644 info/examples/tex-in-practice/topinfix.tip create mode 100644 info/examples/tex-in-practice/ts-brefm.tip create mode 100644 info/examples/tex-in-practice/ts-bul.tip create mode 100644 info/examples/tex-in-practice/ts-chap.tip create mode 100644 info/examples/tex-in-practice/ts-chhe.tip create mode 100644 info/examples/tex-in-practice/ts-crm.tip create mode 100644 info/examples/tex-in-practice/ts-dime1.tip create mode 100644 info/examples/tex-in-practice/ts-dime2.tip create mode 100644 info/examples/tex-in-practice/ts-dime3.tip create mode 100644 info/examples/tex-in-practice/ts-enum.tip create mode 100644 info/examples/tex-in-practice/ts-float.tip create mode 100644 info/examples/tex-in-practice/ts-fonts.tip create mode 100644 info/examples/tex-in-practice/ts-foot.tip create mode 100644 info/examples/tex-in-practice/ts-gnot.tip create mode 100644 info/examples/tex-in-practice/ts-hall.tip create mode 100644 info/examples/tex-in-practice/ts-hmore.tip create mode 100644 info/examples/tex-in-practice/ts-hyph.tip create mode 100644 info/examples/tex-in-practice/ts-itize.tip create mode 100644 info/examples/tex-in-practice/ts-lazy.tip create mode 100644 info/examples/tex-in-practice/ts-loft.tip create mode 100644 info/examples/tex-in-practice/ts-logo.tip create mode 100644 info/examples/tex-in-practice/ts-main.tip create mode 100644 info/examples/tex-in-practice/ts-outpu.tip create mode 100644 info/examples/tex-in-practice/ts-page2.tip create mode 100644 info/examples/tex-in-practice/ts-pager.tip create mode 100644 info/examples/tex-in-practice/ts-robst.tip create mode 100644 info/examples/tex-in-practice/ts-set.tip create mode 100644 info/examples/tex-in-practice/ts-shead.tip create mode 100644 info/examples/tex-in-practice/ts-subst.tip create mode 100644 info/examples/tex-in-practice/ts-toc.tip create mode 100644 info/examples/tex-in-practice/ts-verb.tip create mode 100644 info/examples/tex-in-practice/ts-verb1.tip create mode 100644 info/examples/tex-in-practice/ts-verb2.tip create mode 100644 info/examples/tex-in-practice/ts-vers.tip create mode 100644 info/examples/tex-in-practice/ts-vol.tip create mode 100644 info/examples/tex-in-practice/ts-wind.tip create mode 100644 info/examples/tex-in-practice/ts-writc.tip create mode 100644 info/examples/tex-in-practice/valdecpo.tip create mode 100644 info/examples/tex-in-practice/vcentx.tip create mode 100644 info/examples/tex-in-practice/verb-bas.tip create mode 100644 info/examples/tex-in-practice/verb-mac.tip create mode 100644 info/examples/tex-in-practice/verb.tip create mode 100644 info/examples/tex-in-practice/verbdisp.tip create mode 100644 info/examples/tex-in-practice/verbwr.tip create mode 100644 info/examples/tex-in-practice/vsmax.tip create mode 100644 info/examples/tex-in-practice/vtbox.tip create mode 100644 info/examples/tex-in-practice/vwrt-mac.tip create mode 100644 info/examples/tex-in-practice/weekofyr.tip create mode 100644 info/examples/tex-in-practice/widestc.tip create mode 100644 info/examples/tex-in-practice/wl-parcp.tip create mode 100644 info/examples/tex-in-practice/wrtoc.tip create mode 100644 info/examples/tex-in-practice/wrverbar.tip create mode 100644 info/examples/tex-in-practice/wtolist.tip create mode 100644 info/examples/tex-in-practice/x-parsh.tip create mode 100644 info/examples/tex-in-practice/yearcal.tip delete mode 100644 info/examples/tip/absdimen.tip delete mode 100644 info/examples/tip/absval.tip delete mode 100644 info/examples/tip/acronym.tip delete mode 100644 info/examples/tip/advtabst.tip delete mode 100644 info/examples/tip/aevpar.tip delete mode 100644 info/examples/tip/alldate.tip delete mode 100644 info/examples/tip/allocat.tip delete mode 100644 info/examples/tip/alwbase.tip delete mode 100644 info/examples/tip/angt.tip delete mode 100644 info/examples/tip/arbday.tip delete mode 100644 info/examples/tip/arraymac.tip delete mode 100644 info/examples/tip/atpos.tip delete mode 100644 info/examples/tip/be-env.tip delete mode 100644 info/examples/tip/bletpar.tip delete mode 100644 info/examples/tip/box-bb.tip delete mode 100644 info/examples/tip/box-bul.tip delete mode 100644 info/examples/tip/box-larg.tip delete mode 100644 info/examples/tip/box-mac.tip delete mode 100644 info/examples/tip/box-thck.tip delete mode 100644 info/examples/tip/box-zero.tip delete mode 100644 info/examples/tip/boxing1.tip delete mode 100644 info/examples/tip/boxing2.tip delete mode 100644 info/examples/tip/boxing3.tip delete mode 100644 info/examples/tip/boxing4.tip delete mode 100644 info/examples/tip/boxing5.tip delete mode 100644 info/examples/tip/boxing6.tip delete mode 100644 info/examples/tip/boxing7.tip delete mode 100644 info/examples/tip/boxrelim.tip delete mode 100644 info/examples/tip/boxrqu.tip delete mode 100644 info/examples/tip/centerlp.tip delete mode 100644 info/examples/tip/centerng.tip delete mode 100644 info/examples/tip/centpar.tip delete mode 100644 info/examples/tip/charbo.tip delete mode 100644 info/examples/tip/chboxd.tip delete mode 100644 info/examples/tip/clearb.tip delete mode 100644 info/examples/tip/collect.tip delete mode 100644 info/examples/tip/coltok.tip delete mode 100644 info/examples/tip/comfiles.tip delete mode 100644 info/examples/tip/compst.tip delete mode 100644 info/examples/tip/compstca.tip delete mode 100644 info/examples/tip/condltr.tip delete mode 100644 info/examples/tip/conval.tip delete mode 100644 info/examples/tip/copydate.tip delete mode 100644 info/examples/tip/counters.tip delete mode 100644 info/examples/tip/countl.tip delete mode 100644 info/examples/tip/cref-1.tip delete mode 100644 info/examples/tip/cref-2.tip delete mode 100644 info/examples/tip/cref-2a.tip delete mode 100644 info/examples/tip/cref-3.tip delete mode 100644 info/examples/tip/cref-3a.tip delete mode 100644 info/examples/tip/cref-4.tip delete mode 100644 info/examples/tip/cref-5.tip delete mode 100644 info/examples/tip/crline.tip delete mode 100644 info/examples/tip/csar.tip delete mode 100644 info/examples/tip/cssprint.tip delete mode 100644 info/examples/tip/cstostr.tip delete mode 100644 info/examples/tip/cstostrc.tip delete mode 100644 info/examples/tip/ctestcs.tip delete mode 100644 info/examples/tip/dateofw.tip delete mode 100644 info/examples/tip/dblarg.tip delete mode 100644 info/examples/tip/defauarg.tip delete mode 100644 info/examples/tip/dicentry.tip delete mode 100644 info/examples/tip/doloop.tip delete mode 100644 info/examples/tip/droppre.tip delete mode 100644 info/examples/tip/droppt.tip delete mode 100644 info/examples/tip/dumppars.tip delete mode 100644 info/examples/tip/earliest.tip delete mode 100644 info/examples/tip/emprubox.tip delete mode 100644 info/examples/tip/emptybox.tip delete mode 100644 info/examples/tip/endn-mac.tip delete mode 100644 info/examples/tip/endrec.tip delete mode 100644 info/examples/tip/enum.tip delete mode 100644 info/examples/tip/enumlist.tip delete mode 100644 info/examples/tip/errmess.tip delete mode 100644 info/examples/tip/evenprin.tip delete mode 100644 info/examples/tip/everyequ.tip delete mode 100644 info/examples/tip/everypar.tip delete mode 100644 info/examples/tip/evhvbox.tip delete mode 100644 info/examples/tip/ex-out2.tip delete mode 100644 info/examples/tip/fexist.tip delete mode 100644 info/examples/tip/figbox.tip delete mode 100644 info/examples/tip/figinpar.tip delete mode 100644 info/examples/tip/firstldi.tip delete mode 100644 info/examples/tip/fo-char.tip delete mode 100644 info/examples/tip/font-cpp.tip delete mode 100644 info/examples/tip/fontsam.tip delete mode 100644 info/examples/tip/fonttab.tip delete mode 100644 info/examples/tip/formline.tip delete mode 100644 info/examples/tip/fotable.tip delete mode 100644 info/examples/tip/fotok.tip delete mode 100644 info/examples/tip/frac.tip delete mode 100644 info/examples/tip/freespac.tip delete mode 100644 info/examples/tip/fsized.tip delete mode 100644 info/examples/tip/funospac.tip delete mode 100644 info/examples/tip/futlet.tip delete mode 100644 info/examples/tip/futpar.tip delete mode 100644 info/examples/tip/genaeol.tip delete mode 100644 info/examples/tip/genhead.tip delete mode 100644 info/examples/tip/genostr.tip delete mode 100644 info/examples/tip/getnuml.tip delete mode 100644 info/examples/tip/gobble.tip delete mode 100644 info/examples/tip/gobblemo.tip delete mode 100644 info/examples/tip/graphmac.tip delete mode 100644 info/examples/tip/hex.tip delete mode 100644 info/examples/tip/ifeven.tip delete mode 100644 info/examples/tip/ifx-def.tip delete mode 100644 info/examples/tip/ifx-mac.tip delete mode 100644 info/examples/tip/imodn.tip delete mode 100644 info/examples/tip/index-or.tip delete mode 100644 info/examples/tip/input-at.tip delete mode 100644 info/examples/tip/inputc.tip delete mode 100644 info/examples/tip/inputd.tip delete mode 100644 info/examples/tip/inputdl.tip delete mode 100644 info/examples/tip/isleapyr.tip delete mode 100644 info/examples/tip/isprefix.tip delete mode 100644 info/examples/tip/issuffix.tip delete mode 100644 info/examples/tip/itemizel.tip delete mode 100644 info/examples/tip/itemltw.tip delete mode 100644 info/examples/tip/itemplan.tip delete mode 100644 info/examples/tip/ivpyr.tip delete mode 100644 info/examples/tip/largdp.tip delete mode 100644 info/examples/tip/lbpar.tip delete mode 100644 info/examples/tip/lc0to9.tip delete mode 100644 info/examples/tip/leadingz.tip delete mode 100644 info/examples/tip/leadline.tip delete mode 100644 info/examples/tip/leftdm.tip delete mode 100644 info/examples/tip/legdate.tip delete mode 100644 info/examples/tip/legmonth.tip delete mode 100644 info/examples/tip/legyear.tip delete mode 100644 info/examples/tip/lfondem.tip delete mode 100644 info/examples/tip/linesr.tip delete mode 100644 info/examples/tip/list-mac.tip delete mode 100644 info/examples/tip/loadedla.tip delete mode 100644 info/examples/tip/lpagetg.tip delete mode 100644 info/examples/tip/macvntip.tex delete mode 100644 info/examples/tip/mathenv.tip delete mode 100644 info/examples/tip/maxmindi.tip delete mode 100644 info/examples/tip/mocal.tip delete mode 100644 info/examples/tip/mocal3.tip delete mode 100644 info/examples/tip/modonead.tip delete mode 100644 info/examples/tip/mondofda.tip delete mode 100644 info/examples/tip/mrdel.tip delete mode 100644 info/examples/tip/mspaces.tip delete mode 100644 info/examples/tip/namedef.tip delete mode 100644 info/examples/tip/nathd.tip delete mode 100644 info/examples/tip/nctest.tip delete mode 100644 info/examples/tip/ndaysmo.tip delete mode 100644 info/examples/tip/new-midi.tip delete mode 100644 info/examples/tip/newdef.tip delete mode 100644 info/examples/tip/newfont.tip delete mode 100644 info/examples/tip/newinput.tip delete mode 100644 info/examples/tip/newoutfr.tip delete mode 100644 info/examples/tip/newpage.tip delete mode 100644 info/examples/tip/nextday.tip delete mode 100644 info/examples/tip/nextmon.tip delete mode 100644 info/examples/tip/nlm.tip delete mode 100644 info/examples/tip/norpweek.tip delete mode 100644 info/examples/tip/npright.tip delete mode 100644 info/examples/tip/ntotext.tip delete mode 100644 info/examples/tip/numcond.tip delete mode 100644 info/examples/tip/numdyr.tip delete mode 100644 info/examples/tip/numwhile.tip delete mode 100644 info/examples/tip/oblines.tip delete mode 100644 info/examples/tip/obspaces.tip delete mode 100644 info/examples/tip/oct.tip delete mode 100644 info/examples/tip/oddprin.tip delete mode 100644 info/examples/tip/oeprin.tip delete mode 100644 info/examples/tip/ola-1p.tip delete mode 100644 info/examples/tip/ola-2p.tip delete mode 100644 info/examples/tip/ola-comm.tip delete mode 100644 info/examples/tip/op-endin.tip delete mode 100644 info/examples/tip/op-pagec.tip delete mode 100644 info/examples/tip/optargx.tip delete mode 100644 info/examples/tip/orcards.tip delete mode 100644 info/examples/tip/ordbrule.tip delete mode 100644 info/examples/tip/orsimple.tip delete mode 100644 info/examples/tip/out-ds.tip delete mode 100644 info/examples/tip/out2-or.tip delete mode 100644 info/examples/tip/outf-rad.tip delete mode 100644 info/examples/tip/outpsel.tip delete mode 100644 info/examples/tip/par-fl.tip delete mode 100644 info/examples/tip/par-lab.tip delete mode 100644 info/examples/tip/par-lcl.tip delete mode 100644 info/examples/tip/parin.tip delete mode 100644 info/examples/tip/part-cr.tip delete mode 100644 info/examples/tip/part-lab.tip delete mode 100644 info/examples/tip/part-mac.tip delete mode 100644 info/examples/tip/parv-1.tip delete mode 100644 info/examples/tip/pdollars.tip delete mode 100644 info/examples/tip/pickfs.tip delete mode 100644 info/examples/tip/pm-4.tip delete mode 100644 info/examples/tip/pm-auxco.tip delete mode 100644 info/examples/tip/pm-bas.tip delete mode 100644 info/examples/tip/pm-main.tip delete mode 100644 info/examples/tip/pm-pagen.tip delete mode 100644 info/examples/tip/pm-wrc.tip delete mode 100644 info/examples/tip/pmtime.tip delete mode 100644 info/examples/tip/poorbold.tip delete mode 100644 info/examples/tip/pralph.tip delete mode 100644 info/examples/tip/prevday.tip delete mode 100644 info/examples/tip/prevmon.tip delete mode 100644 info/examples/tip/prhyph.tip delete mode 100644 info/examples/tip/primmark.tip delete mode 100644 info/examples/tip/printast.tip delete mode 100644 info/examples/tip/printco.tip delete mode 100644 info/examples/tip/printreg.tip delete mode 100644 info/examples/tip/prmode.tip delete mode 100644 info/examples/tip/prmonth.tip delete mode 100644 info/examples/tip/prot.tip delete mode 100644 info/examples/tip/rangetst.tip delete mode 100644 info/examples/tip/rboxt.tip delete mode 100644 info/examples/tip/readme delete mode 100644 info/examples/tip/readnu.tip delete mode 100644 info/examples/tip/redtost.tip delete mode 100644 info/examples/tip/remtlsp.tip delete mode 100644 info/examples/tip/restring.tip delete mode 100644 info/examples/tip/reverses.tip delete mode 100644 info/examples/tip/rh-dict.tip delete mode 100644 info/examples/tip/robust.tip delete mode 100644 info/examples/tip/samplepa.tip delete mode 100644 info/examples/tip/setstrut.tip delete mode 100644 info/examples/tip/shboxes.tip delete mode 100644 info/examples/tip/shiftudb.tip delete mode 100644 info/examples/tip/showpll.tip delete mode 100644 info/examples/tip/showx.tip delete mode 100644 info/examples/tip/sigline.tip delete mode 100644 info/examples/tip/spacefac.tip delete mode 100644 info/examples/tip/splitpar.tip delete mode 100644 info/examples/tip/ssmath.tip delete mode 100644 info/examples/tip/strleng.tip delete mode 100644 info/examples/tip/stswitch.tip delete mode 100644 info/examples/tip/substf.tip delete mode 100644 info/examples/tip/sumhd.tip delete mode 100644 info/examples/tip/swapbox.tip delete mode 100644 info/examples/tip/tabcent.tip delete mode 100644 info/examples/tip/tabswb.tip delete mode 100644 info/examples/tip/testdef.tip delete mode 100644 info/examples/tip/testsubs.tip delete mode 100644 info/examples/tip/texip.idx delete mode 100644 info/examples/tip/texipexp.tex delete mode 100644 info/examples/tip/tip-bugs.tex delete mode 100644 info/examples/tip/toc-mac.tip delete mode 100644 info/examples/tip/today.tip delete mode 100644 info/examples/tip/todayx.tip delete mode 100644 info/examples/tip/topinfix.tip delete mode 100644 info/examples/tip/ts-brefm.tip delete mode 100644 info/examples/tip/ts-bul.tip delete mode 100644 info/examples/tip/ts-chap.tip delete mode 100644 info/examples/tip/ts-chhe.tip delete mode 100644 info/examples/tip/ts-crm.tip delete mode 100644 info/examples/tip/ts-dime1.tip delete mode 100644 info/examples/tip/ts-dime2.tip delete mode 100644 info/examples/tip/ts-dime3.tip delete mode 100644 info/examples/tip/ts-enum.tip delete mode 100644 info/examples/tip/ts-float.tip delete mode 100644 info/examples/tip/ts-fonts.tip delete mode 100644 info/examples/tip/ts-foot.tip delete mode 100644 info/examples/tip/ts-gnot.tip delete mode 100644 info/examples/tip/ts-hall.tip delete mode 100644 info/examples/tip/ts-hmore.tip delete mode 100644 info/examples/tip/ts-hyph.tip delete mode 100644 info/examples/tip/ts-itize.tip delete mode 100644 info/examples/tip/ts-lazy.tip delete mode 100644 info/examples/tip/ts-loft.tip delete mode 100644 info/examples/tip/ts-logo.tip delete mode 100644 info/examples/tip/ts-main.tip delete mode 100644 info/examples/tip/ts-outpu.tip delete mode 100644 info/examples/tip/ts-page2.tip delete mode 100644 info/examples/tip/ts-pager.tip delete mode 100644 info/examples/tip/ts-robst.tip delete mode 100644 info/examples/tip/ts-set.tip delete mode 100644 info/examples/tip/ts-shead.tip delete mode 100644 info/examples/tip/ts-subst.tip delete mode 100644 info/examples/tip/ts-toc.tip delete mode 100644 info/examples/tip/ts-verb.tip delete mode 100644 info/examples/tip/ts-verb1.tip delete mode 100644 info/examples/tip/ts-verb2.tip delete mode 100644 info/examples/tip/ts-vers.tip delete mode 100644 info/examples/tip/ts-vol.tip delete mode 100644 info/examples/tip/ts-wind.tip delete mode 100644 info/examples/tip/ts-writc.tip delete mode 100644 info/examples/tip/valdecpo.tip delete mode 100644 info/examples/tip/vcentx.tip delete mode 100644 info/examples/tip/verb-bas.tip delete mode 100644 info/examples/tip/verb-mac.tip delete mode 100644 info/examples/tip/verb.tip delete mode 100644 info/examples/tip/verbdisp.tip delete mode 100644 info/examples/tip/verbwr.tip delete mode 100644 info/examples/tip/vsmax.tip delete mode 100644 info/examples/tip/vtbox.tip delete mode 100644 info/examples/tip/vwrt-mac.tip delete mode 100644 info/examples/tip/weekofyr.tip delete mode 100644 info/examples/tip/widestc.tip delete mode 100644 info/examples/tip/wl-parcp.tip delete mode 100644 info/examples/tip/wrtoc.tip delete mode 100644 info/examples/tip/wrverbar.tip delete mode 100644 info/examples/tip/wtolist.tip delete mode 100644 info/examples/tip/x-parsh.tip delete mode 100644 info/examples/tip/yearcal.tip delete mode 120000 info/whatstex/lit.dat delete mode 100644 info/whatstex/lit.sel delete mode 100644 info/whatstex/wots.tex delete mode 100644 macros/ec-plain/00readme.doc delete mode 120000 macros/ec-plain/README delete mode 100644 macros/ec-plain/acmacros.sty delete mode 100644 macros/ec-plain/dybx10.mf delete mode 100644 macros/ec-plain/dybx12.mf delete mode 100644 macros/ec-plain/dybx5.mf delete mode 100644 macros/ec-plain/dybx6.mf delete mode 100644 macros/ec-plain/dybx7.mf delete mode 100644 macros/ec-plain/dybx8.mf delete mode 100644 macros/ec-plain/dybx9.mf delete mode 100644 macros/ec-plain/dymi10.mf delete mode 100644 macros/ec-plain/dymi12.mf delete mode 100644 macros/ec-plain/dymi5.mf delete mode 100644 macros/ec-plain/dymi6.mf delete mode 100644 macros/ec-plain/dymi7.mf delete mode 100644 macros/ec-plain/dymi8.mf delete mode 100644 macros/ec-plain/dymi9.mf delete mode 100644 macros/ec-plain/ec-pdfplain.fmt delete mode 100644 macros/ec-plain/ec-pdfplain.tex delete mode 100644 macros/ec-plain/ec-plain.fmt delete mode 100644 macros/ec-plain/ec-plain.tex delete mode 100644 macros/ec-plain/ec-plfmt.bat delete mode 100644 macros/ec-plain/ecbxmath.mf delete mode 100644 macros/ec-plain/ecmathit.mf delete mode 100644 macros/ec-plain/enhyph.tex delete mode 100644 macros/ec-plain/enhyphex.tex delete mode 100644 macros/ec-plain/eshyph.tex delete mode 100644 macros/ec-plain/exmi.mf delete mode 100644 macros/ec-plain/exmi10.mf delete mode 100644 macros/ec-plain/exmi10.tfm delete mode 100644 macros/ec-plain/exmi12.mf delete mode 100644 macros/ec-plain/exmi12.tfm delete mode 100644 macros/ec-plain/exmi5.mf delete mode 100644 macros/ec-plain/exmi5.tfm delete mode 100644 macros/ec-plain/exmi6.mf delete mode 100644 macros/ec-plain/exmi6.tfm delete mode 100644 macros/ec-plain/exmi7.mf delete mode 100644 macros/ec-plain/exmi7.tfm delete mode 100644 macros/ec-plain/exmi8.mf delete mode 100644 macros/ec-plain/exmi8.tfm delete mode 100644 macros/ec-plain/exmi9.mf delete mode 100644 macros/ec-plain/exmi9.tfm delete mode 100644 macros/ec-plain/f8hyph1.tex delete mode 100644 macros/ec-plain/frhyphx1.tex delete mode 100644 macros/ec-plain/ghyph31.tex delete mode 100644 macros/ec-plain/hyacceur.tex delete mode 100644 macros/ec-plain/hyconfig.ptx delete mode 100644 macros/ec-plain/ithyph.tex delete mode 100644 macros/ec-plain/language.dat delete mode 100644 macros/ec-plain/make-musixtex-format.bat delete mode 100644 macros/ec-plain/ofgreekl.mf delete mode 100644 macros/ec-plain/ofgreeku.mf mode change 100644 => 100755 macros/latex/contrib/hvextern/script/hvextern-checkfile.lua create mode 100644 macros/latex/contrib/litetable/doc/favicon.png create mode 100644 macros/latex/contrib/litetable/doc/litetable-doc-cn.pdf create mode 100644 macros/latex/contrib/litetable/doc/litetable-doc-cn.tex create mode 100644 macros/latex/contrib/litetable/doc/litetable-doc-en.pdf create mode 100644 macros/latex/contrib/litetable/doc/litetable-doc-en.tex delete mode 100644 macros/latex/contrib/litetable/doc/litetable-doc.pdf delete mode 100644 macros/latex/contrib/litetable/doc/litetable-doc.tex delete mode 100644 macros/latex/contrib/refstyle/refstyle.cfg delete mode 100644 macros/latex/contrib/refstyle/refstyle.sty create mode 100644 macros/latex/contrib/schooldocs/schooldocs-examples.tex delete mode 100644 macros/luatex/latex/novel/doc/extras/CPmodified.otf delete mode 100644 macros/luatex/latex/novel/doc/extras/novel-Gallery-ChapterStart.pdf delete mode 100644 macros/luatex/latex/novel/doc/extras/novel-example.pdf delete mode 100644 macros/luatex/latex/novel/doc/extras/novel-testimage.jpg delete mode 100644 macros/luatex/latex/novel/doc/extras/novel-testimage.png delete mode 100644 macros/luatex/latex/novel/doc/extras/novel-testscript.jpg delete mode 100644 macros/luatex/latex/novel/doc/extras/novel-testscript.png delete mode 100644 macros/luatex/latex/novel/doc/extras/novel-testsuite.pdf delete mode 100644 macros/luatex/latex/novel/doc/extras/novel-testsuite.tex delete mode 100644 macros/luatex/latex/novel/doc/needed-packages delete mode 120000 macros/tex-in-practice delete mode 120000 macros/tip create mode 120000 obsolete/info/whatstex/lit.dat create mode 100644 obsolete/info/whatstex/lit.sel create mode 100644 obsolete/info/whatstex/wots.tex create mode 100644 obsolete/macros/ec-plain/00readme.doc create mode 120000 obsolete/macros/ec-plain/README create mode 100644 obsolete/macros/ec-plain/acmacros.sty create mode 100644 obsolete/macros/ec-plain/dybx10.mf create mode 100644 obsolete/macros/ec-plain/dybx12.mf create mode 100644 obsolete/macros/ec-plain/dybx5.mf create mode 100644 obsolete/macros/ec-plain/dybx6.mf create mode 100644 obsolete/macros/ec-plain/dybx7.mf create mode 100644 obsolete/macros/ec-plain/dybx8.mf create mode 100644 obsolete/macros/ec-plain/dybx9.mf create mode 100644 obsolete/macros/ec-plain/dymi10.mf create mode 100644 obsolete/macros/ec-plain/dymi12.mf create mode 100644 obsolete/macros/ec-plain/dymi5.mf create mode 100644 obsolete/macros/ec-plain/dymi6.mf create mode 100644 obsolete/macros/ec-plain/dymi7.mf create mode 100644 obsolete/macros/ec-plain/dymi8.mf create mode 100644 obsolete/macros/ec-plain/dymi9.mf create mode 100644 obsolete/macros/ec-plain/ec-pdfplain.fmt create mode 100644 obsolete/macros/ec-plain/ec-pdfplain.tex create mode 100644 obsolete/macros/ec-plain/ec-plain.fmt create mode 100644 obsolete/macros/ec-plain/ec-plain.tex create mode 100644 obsolete/macros/ec-plain/ec-plfmt.bat create mode 100644 obsolete/macros/ec-plain/ecbxmath.mf create mode 100644 obsolete/macros/ec-plain/ecmathit.mf create mode 100644 obsolete/macros/ec-plain/enhyph.tex create mode 100644 obsolete/macros/ec-plain/enhyphex.tex create mode 100644 obsolete/macros/ec-plain/eshyph.tex create mode 100644 obsolete/macros/ec-plain/exmi.mf create mode 100644 obsolete/macros/ec-plain/exmi10.mf create mode 100644 obsolete/macros/ec-plain/exmi10.tfm create mode 100644 obsolete/macros/ec-plain/exmi12.mf create mode 100644 obsolete/macros/ec-plain/exmi12.tfm create mode 100644 obsolete/macros/ec-plain/exmi5.mf create mode 100644 obsolete/macros/ec-plain/exmi5.tfm create mode 100644 obsolete/macros/ec-plain/exmi6.mf create mode 100644 obsolete/macros/ec-plain/exmi6.tfm create mode 100644 obsolete/macros/ec-plain/exmi7.mf create mode 100644 obsolete/macros/ec-plain/exmi7.tfm create mode 100644 obsolete/macros/ec-plain/exmi8.mf create mode 100644 obsolete/macros/ec-plain/exmi8.tfm create mode 100644 obsolete/macros/ec-plain/exmi9.mf create mode 100644 obsolete/macros/ec-plain/exmi9.tfm create mode 100644 obsolete/macros/ec-plain/f8hyph1.tex create mode 100644 obsolete/macros/ec-plain/frhyphx1.tex create mode 100644 obsolete/macros/ec-plain/ghyph31.tex create mode 100644 obsolete/macros/ec-plain/hyacceur.tex create mode 100644 obsolete/macros/ec-plain/hyconfig.ptx create mode 100644 obsolete/macros/ec-plain/ithyph.tex create mode 100644 obsolete/macros/ec-plain/language.dat create mode 100644 obsolete/macros/ec-plain/make-musixtex-format.bat create mode 100644 obsolete/macros/ec-plain/ofgreekl.mf create mode 100644 obsolete/macros/ec-plain/ofgreeku.mf delete mode 100644 support/splint/cweb/ssffo.w delete mode 100644 support/splint/extras/texmf/macros/protcode.tex create mode 100644 support/splint/other/texmf/macros/protcode.tex create mode 100644 support/splint/tex/fonts/idssbx10.vpl create mode 100644 support/splint/tex/fonts/idssbx12.vpl create mode 100644 support/splint/tex/fonts/idssbx5.vpl create mode 100644 support/splint/tex/fonts/idssbx6.tfm create mode 100644 support/splint/tex/fonts/idssbx6.vf create mode 100644 support/splint/tex/fonts/idssbx6.vpl create mode 100644 support/splint/tex/fonts/idssbx7.tfm create mode 100644 support/splint/tex/fonts/idssbx7.vf create mode 100644 support/splint/tex/fonts/idssbx7.vpl create mode 100644 support/splint/tex/fonts/idssbx8.tfm create mode 100644 support/splint/tex/fonts/idssbx8.vf create mode 100644 support/splint/tex/fonts/idssbx8.vpl create mode 100644 support/splint/tex/fonts/idssbx9.tfm create mode 100644 support/splint/tex/fonts/idssbx9.vf create mode 100644 support/splint/tex/fonts/idssbx9.vpl delete mode 100644 support/splint/tex/yxunion.sty diff --git a/FILES.byname b/FILES.byname index 099e9cda72..705094ff2d 100644 --- a/FILES.byname +++ b/FILES.byname @@ -2077,12 +2077,12 @@ 2023/10/05 | 1710 | biblio/citation-style-language/README.md 2023/10/05 | 12878 | biblio/citation-style-language/vancouver.csl 2023/10/05 | 4531754 | biblio/citation-style-language.zip -2024/01/30 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2024/01/31 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx 2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx -2024/01/30 | 2843081 | biblio/ctan-bibdata/ctan.bib -2024/01/30 | 3708800 | biblio/ctan-bibdata/ctan.pdf +2024/01/31 | 2843275 | biblio/ctan-bibdata/ctan.bib +2024/01/31 | 3708800 | biblio/ctan-bibdata/ctan.pdf 2023/01/16 | 1489 | biblio/ctan-bibdata/README -2024/01/30 | 4116249 | biblio/ctan-bibdata.zip +2024/01/31 | 4116357 | biblio/ctan-bibdata.zip 2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk 2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh 2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst @@ -5444,7 +5444,7 @@ 1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp 1990/10/02 | 812 | dviware/vutex/vaxvms.ins 1990/10/02 | 127576 | dviware/vutex/vutex.web -2024/01/30 | 94810 | FILES.last07days +2024/01/31 | 100934 | FILES.last07days 2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs 2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf 2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf @@ -53957,7 +53957,7 @@ 1991/03/08 | 7824 | fonts/hershey/xhershey.c 1991/11/27 | 17421 | fonts/hershey/xhershey.exe 2019/06/09 | 132708 | fonts/hershey.zip -2014/06/05 | 6461 | fonts/heuristica/doc/FontLog.txt +2014/06/06 | 6461 | fonts/heuristica/doc/FontLog.txt 2017/03/14 | 203162 | fonts/heuristica/doc/heuristica-doc.pdf 2017/03/14 | 5516 | fonts/heuristica/doc/heuristica-doc.tex 2014/04/17 | 43780 | fonts/heuristica/doc/OFL-FAQ.txt @@ -54008,31 +54008,31 @@ 2015/01/04 | 164476 | fonts/heuristica/opentype/Heuristica-Bold.otf 2015/01/04 | 152144 | fonts/heuristica/opentype/Heuristica-Italic.otf 2015/01/04 | 205372 | fonts/heuristica/opentype/Heuristica-Regular.otf -2019/06/10 | 5148 | fonts/heuristica/README +2024/01/30 | 5258 | fonts/heuristica/README 2015/01/04 | 203 | fonts/heuristica/tex/heuristica.fontspec -2017/03/14 | 3768 | fonts/heuristica/tex/heuristica.sty -2019/06/10 | 1354 | fonts/heuristica/tex/LY1Heuristica-Inf.fd -2019/06/10 | 1354 | fonts/heuristica/tex/LY1Heuristica-Sup.fd -2019/06/10 | 1465 | fonts/heuristica/tex/LY1Heuristica-TLF.fd -2019/06/10 | 1488 | fonts/heuristica/tex/LY1Heuristica-TOsF.fd -2019/06/10 | 1338 | fonts/heuristica/tex/T1Heuristica-Inf.fd -2019/06/10 | 1338 | fonts/heuristica/tex/T1Heuristica-Sup.fd -2019/06/10 | 1447 | fonts/heuristica/tex/T1Heuristica-TLF.fd -2019/06/10 | 1470 | fonts/heuristica/tex/T1Heuristica-TOsF.fd -2019/06/10 | 1354 | fonts/heuristica/tex/T2AHeuristica-Inf.fd -2019/06/10 | 1354 | fonts/heuristica/tex/T2AHeuristica-Sup.fd -2019/06/10 | 1465 | fonts/heuristica/tex/T2AHeuristica-TLF.fd -2019/06/10 | 1488 | fonts/heuristica/tex/T2AHeuristica-TOsF.fd -2019/06/10 | 1354 | fonts/heuristica/tex/T2BHeuristica-Inf.fd -2019/06/10 | 1354 | fonts/heuristica/tex/T2BHeuristica-Sup.fd -2019/06/10 | 1465 | fonts/heuristica/tex/T2BHeuristica-TLF.fd -2019/06/10 | 1488 | fonts/heuristica/tex/T2BHeuristica-TOsF.fd -2019/06/10 | 1354 | fonts/heuristica/tex/T2CHeuristica-Inf.fd -2019/06/10 | 1354 | fonts/heuristica/tex/T2CHeuristica-Sup.fd -2019/06/10 | 1465 | fonts/heuristica/tex/T2CHeuristica-TLF.fd -2019/06/10 | 1488 | fonts/heuristica/tex/T2CHeuristica-TOsF.fd -2019/06/10 | 1354 | fonts/heuristica/tex/TS1Heuristica-TLF.fd -2019/06/10 | 1375 | fonts/heuristica/tex/TS1Heuristica-TOsF.fd +2024/01/30 | 3774 | fonts/heuristica/tex/heuristica.sty +2019/06/11 | 1354 | fonts/heuristica/tex/LY1Heuristica-Inf.fd +2019/06/11 | 1354 | fonts/heuristica/tex/LY1Heuristica-Sup.fd +2019/06/11 | 1465 | fonts/heuristica/tex/LY1Heuristica-TLF.fd +2019/06/11 | 1488 | fonts/heuristica/tex/LY1Heuristica-TOsF.fd +2019/06/11 | 1338 | fonts/heuristica/tex/T1Heuristica-Inf.fd +2019/06/11 | 1338 | fonts/heuristica/tex/T1Heuristica-Sup.fd +2019/06/11 | 1447 | fonts/heuristica/tex/T1Heuristica-TLF.fd +2019/06/11 | 1470 | fonts/heuristica/tex/T1Heuristica-TOsF.fd +2019/06/11 | 1354 | fonts/heuristica/tex/T2AHeuristica-Inf.fd +2019/06/11 | 1354 | fonts/heuristica/tex/T2AHeuristica-Sup.fd +2019/06/11 | 1465 | fonts/heuristica/tex/T2AHeuristica-TLF.fd +2019/06/11 | 1488 | fonts/heuristica/tex/T2AHeuristica-TOsF.fd +2019/06/11 | 1354 | fonts/heuristica/tex/T2BHeuristica-Inf.fd +2019/06/11 | 1354 | fonts/heuristica/tex/T2BHeuristica-Sup.fd +2019/06/11 | 1465 | fonts/heuristica/tex/T2BHeuristica-TLF.fd +2019/06/11 | 1488 | fonts/heuristica/tex/T2BHeuristica-TOsF.fd +2019/06/11 | 1354 | fonts/heuristica/tex/T2CHeuristica-Inf.fd +2019/06/11 | 1354 | fonts/heuristica/tex/T2CHeuristica-Sup.fd +2019/06/11 | 1465 | fonts/heuristica/tex/T2CHeuristica-TLF.fd +2019/06/11 | 1488 | fonts/heuristica/tex/T2CHeuristica-TOsF.fd +2019/06/11 | 1354 | fonts/heuristica/tex/TS1Heuristica-TLF.fd +2019/06/11 | 1375 | fonts/heuristica/tex/TS1Heuristica-TOsF.fd 2015/01/04 | 1744 | fonts/heuristica/tfm/Heuristica-Bold-inf-ly1.tfm 2015/01/04 | 1712 | fonts/heuristica/tfm/Heuristica-Bold-inf-t1--base.tfm 2015/01/04 | 1728 | fonts/heuristica/tfm/Heuristica-Bold-inf-t1.tfm @@ -54159,10 +54159,10 @@ 2015/01/04 | 8312 | fonts/heuristica/tfm/Heuristica-Regular-tosf-t2c.tfm 2015/01/04 | 1384 | fonts/heuristica/tfm/Heuristica-Regular-tosf-ts1--base.tfm 2015/01/04 | 1416 | fonts/heuristica/tfm/Heuristica-Regular-tosf-ts1.tfm -2015/01/04 | 176381 | fonts/heuristica/type1/Heuristica-BoldItalic.pfb +2015/01/05 | 176381 | fonts/heuristica/type1/Heuristica-BoldItalic.pfb 2015/01/04 | 195989 | fonts/heuristica/type1/Heuristica-Bold.pfb -2015/01/04 | 172743 | fonts/heuristica/type1/Heuristica-Italic.pfb -2015/01/04 | 241013 | fonts/heuristica/type1/Heuristica-Regular.pfb +2015/01/05 | 172743 | fonts/heuristica/type1/Heuristica-Italic.pfb +2015/01/05 | 241013 | fonts/heuristica/type1/Heuristica-Regular.pfb 2015/01/04 | 1732 | fonts/heuristica/vf/Heuristica-Bold-inf-t1.vf 2015/01/04 | 1736 | fonts/heuristica/vf/Heuristica-BoldItalic-inf-t1.vf 2015/01/04 | 1736 | fonts/heuristica/vf/Heuristica-BoldItalic-sup-t1.vf @@ -54191,7 +54191,7 @@ 2015/01/04 | 1760 | fonts/heuristica/vf/Heuristica-Regular-tosf-sc-t1.vf 2015/01/04 | 1764 | fonts/heuristica/vf/Heuristica-Regular-tosf-t1.vf 2015/01/04 | 556 | fonts/heuristica/vf/Heuristica-Regular-tosf-ts1.vf -2019/06/11 | 1753643 | fonts/heuristica.zip +2024/01/31 | 1753682 | fonts/heuristica.zip 2012/01/01 | 1453 | fonts/hfoldsty/ChangeLog 2003/10/15 | 18007 | fonts/hfoldsty/gpl.txt 2012/01/01 | 31771 | fonts/hfoldsty/hfoldsty-src-v1_15.zip @@ -190136,306 +190136,306 @@ 2011/01/24 | 2054 | info/examples/tabulars-e/din8.eps 2011/01/24 | 433 | info/examples/tabulars-e/README 2011/01/24 | 247846 | info/examples/tabulars-e.zip -1993/09/16 | 835 | info/examples/tip/absdimen.tip -1993/09/16 | 827 | info/examples/tip/absval.tip -1993/09/16 | 823 | info/examples/tip/acronym.tip -1993/09/16 | 991 | info/examples/tip/advtabst.tip -1993/09/16 | 1008 | info/examples/tip/aevpar.tip -1993/09/16 | 1150 | info/examples/tip/alldate.tip -1993/09/16 | 1063 | info/examples/tip/allocat.tip -1993/09/16 | 788 | info/examples/tip/alwbase.tip -1993/09/16 | 816 | info/examples/tip/angt.tip -1993/09/16 | 1643 | info/examples/tip/arbday.tip -1993/09/16 | 7186 | info/examples/tip/arraymac.tip -1993/09/16 | 1120 | info/examples/tip/atpos.tip -1993/09/16 | 1382 | info/examples/tip/be-env.tip -1993/09/16 | 1580 | info/examples/tip/bletpar.tip -1993/09/16 | 800 | info/examples/tip/box-bb.tip -1993/09/16 | 922 | info/examples/tip/box-bul.tip -1993/09/16 | 873 | info/examples/tip/boxing1.tip -1993/09/16 | 993 | info/examples/tip/boxing2.tip -1993/09/16 | 1078 | info/examples/tip/boxing3.tip -1993/09/16 | 1488 | info/examples/tip/boxing4.tip -1993/09/16 | 3497 | info/examples/tip/boxing5.tip -1993/09/16 | 1369 | info/examples/tip/boxing6.tip -1993/09/16 | 2569 | info/examples/tip/boxing7.tip -1993/09/16 | 906 | info/examples/tip/box-larg.tip -1993/09/16 | 853 | info/examples/tip/box-mac.tip -1993/09/16 | 918 | info/examples/tip/boxrelim.tip -1993/09/16 | 3808 | info/examples/tip/boxrqu.tip -1993/09/16 | 775 | info/examples/tip/box-thck.tip -1993/09/16 | 844 | info/examples/tip/box-zero.tip -1993/09/16 | 777 | info/examples/tip/centerlp.tip -1993/09/16 | 955 | info/examples/tip/centerng.tip -1993/09/16 | 937 | info/examples/tip/centpar.tip -1993/09/16 | 924 | info/examples/tip/charbo.tip -1993/09/16 | 903 | info/examples/tip/chboxd.tip -1993/09/16 | 807 | info/examples/tip/clearb.tip -1993/09/16 | 860 | info/examples/tip/collect.tip -1993/09/16 | 905 | info/examples/tip/coltok.tip -1993/09/16 | 2228 | info/examples/tip/comfiles.tip -1993/09/16 | 1590 | info/examples/tip/compstca.tip -1993/09/16 | 1278 | info/examples/tip/compst.tip -1993/09/16 | 1324 | info/examples/tip/condltr.tip -1993/09/16 | 1237 | info/examples/tip/conval.tip -1993/09/16 | 814 | info/examples/tip/copydate.tip -1993/09/16 | 2530 | info/examples/tip/counters.tip -1993/09/16 | 1468 | info/examples/tip/countl.tip -1993/09/16 | 1024 | info/examples/tip/cref-1.tip -1993/09/16 | 965 | info/examples/tip/cref-2a.tip -1993/09/16 | 849 | info/examples/tip/cref-2.tip -1993/09/16 | 1399 | info/examples/tip/cref-3a.tip -1993/09/16 | 1244 | info/examples/tip/cref-3.tip -1993/09/16 | 934 | info/examples/tip/cref-4.tip -1993/09/16 | 1628 | info/examples/tip/cref-5.tip -1993/09/16 | 917 | info/examples/tip/crline.tip -1993/09/16 | 3577 | info/examples/tip/csar.tip -1993/09/16 | 892 | info/examples/tip/cssprint.tip -1993/09/16 | 1111 | info/examples/tip/cstostrc.tip -1993/09/16 | 821 | info/examples/tip/cstostr.tip -1993/09/16 | 1253 | info/examples/tip/ctestcs.tip -1993/09/16 | 1533 | info/examples/tip/dateofw.tip -1993/09/16 | 924 | info/examples/tip/dblarg.tip -1993/09/16 | 1273 | info/examples/tip/defauarg.tip -1993/09/16 | 889 | info/examples/tip/dicentry.tip -1993/09/16 | 2364 | info/examples/tip/doloop.tip -1993/09/16 | 1316 | info/examples/tip/droppre.tip -1993/09/16 | 858 | info/examples/tip/droppt.tip -1993/09/16 | 3895 | info/examples/tip/dumppars.tip -1993/09/16 | 1452 | info/examples/tip/earliest.tip -1993/09/16 | 985 | info/examples/tip/emprubox.tip -1993/09/16 | 877 | info/examples/tip/emptybox.tip -1993/09/16 | 1823 | info/examples/tip/endn-mac.tip -1993/09/16 | 941 | info/examples/tip/endrec.tip -1993/09/16 | 2755 | info/examples/tip/enumlist.tip -1993/09/16 | 1135 | info/examples/tip/enum.tip -1993/09/16 | 784 | info/examples/tip/errmess.tip -1993/09/16 | 819 | info/examples/tip/evenprin.tip -1993/09/16 | 1035 | info/examples/tip/everyequ.tip -1993/09/16 | 1166 | info/examples/tip/everypar.tip -1993/09/16 | 981 | info/examples/tip/evhvbox.tip -1993/09/16 | 976 | info/examples/tip/ex-out2.tip -1993/09/16 | 1039 | info/examples/tip/fexist.tip -1993/09/16 | 823 | info/examples/tip/figbox.tip -1993/09/16 | 1833 | info/examples/tip/figinpar.tip -1993/09/16 | 1433 | info/examples/tip/firstldi.tip -1993/09/16 | 1022 | info/examples/tip/fo-char.tip -1993/09/16 | 1657 | info/examples/tip/font-cpp.tip -1993/09/16 | 5056 | info/examples/tip/fontsam.tip -1993/09/16 | 2687 | info/examples/tip/fonttab.tip -1993/09/16 | 1076 | info/examples/tip/formline.tip -1993/09/16 | 5534 | info/examples/tip/fotable.tip -1993/09/16 | 1197 | info/examples/tip/fotok.tip -1993/09/16 | 763 | info/examples/tip/frac.tip -1993/09/16 | 1112 | info/examples/tip/freespac.tip -1993/09/16 | 1323 | info/examples/tip/fsized.tip -1993/09/16 | 1642 | info/examples/tip/funospac.tip -1993/09/16 | 1103 | info/examples/tip/futlet.tip -1993/09/16 | 840 | info/examples/tip/futpar.tip -1993/09/16 | 1110 | info/examples/tip/genaeol.tip -1993/09/16 | 2824 | info/examples/tip/genhead.tip -1993/09/16 | 1394 | info/examples/tip/genostr.tip -1993/09/16 | 949 | info/examples/tip/getnuml.tip -1993/09/16 | 860 | info/examples/tip/gobblemo.tip -1993/09/16 | 992 | info/examples/tip/gobble.tip -1993/09/16 | 2251 | info/examples/tip/graphmac.tip -1993/09/16 | 1285 | info/examples/tip/hex.tip -1993/09/16 | 938 | info/examples/tip/ifeven.tip -1993/09/16 | 927 | info/examples/tip/ifx-def.tip -1993/09/16 | 921 | info/examples/tip/ifx-mac.tip -1993/09/16 | 1263 | info/examples/tip/imodn.tip -1993/09/16 | 1370 | info/examples/tip/index-or.tip -1993/09/16 | 800 | info/examples/tip/input-at.tip -1993/09/16 | 1007 | info/examples/tip/inputc.tip -1993/09/16 | 1024 | info/examples/tip/inputdl.tip -1993/09/16 | 1282 | info/examples/tip/inputd.tip -1993/09/16 | 1314 | info/examples/tip/isleapyr.tip -1993/09/16 | 1679 | info/examples/tip/isprefix.tip -1993/09/16 | 1019 | info/examples/tip/issuffix.tip -1993/09/16 | 1410 | info/examples/tip/itemizel.tip -1993/09/16 | 996 | info/examples/tip/itemltw.tip -1993/09/16 | 1078 | info/examples/tip/itemplan.tip -1993/09/16 | 2472 | info/examples/tip/ivpyr.tip -1993/09/16 | 1370 | info/examples/tip/largdp.tip -1993/09/16 | 940 | info/examples/tip/lbpar.tip -1993/09/16 | 1090 | info/examples/tip/lc0to9.tip -1993/09/16 | 908 | info/examples/tip/leadingz.tip -1993/09/16 | 935 | info/examples/tip/leadline.tip -1993/09/16 | 859 | info/examples/tip/leftdm.tip -1993/09/16 | 1108 | info/examples/tip/legdate.tip -1993/09/16 | 863 | info/examples/tip/legmonth.tip -1993/09/16 | 949 | info/examples/tip/legyear.tip -1993/09/16 | 923 | info/examples/tip/lfondem.tip -1993/09/16 | 885 | info/examples/tip/linesr.tip -1993/09/16 | 4418 | info/examples/tip/list-mac.tip -1993/09/16 | 842 | info/examples/tip/loadedla.tip -1993/09/16 | 865 | info/examples/tip/lpagetg.tip -1993/09/16 | 12068 | info/examples/tip/macvntip.tex -1993/09/16 | 2208 | info/examples/tip/mathenv.tip -1993/09/16 | 966 | info/examples/tip/maxmindi.tip -1993/09/16 | 1143 | info/examples/tip/mocal3.tip -1993/09/16 | 2937 | info/examples/tip/mocal.tip -1993/09/16 | 869 | info/examples/tip/modonead.tip -1993/09/16 | 1341 | info/examples/tip/mondofda.tip -1993/09/16 | 1631 | info/examples/tip/mrdel.tip -1993/09/16 | 815 | info/examples/tip/mspaces.tip -1993/09/16 | 1777 | info/examples/tip/namedef.tip -1993/09/16 | 944 | info/examples/tip/nathd.tip -1993/09/16 | 947 | info/examples/tip/nctest.tip -1993/09/16 | 1266 | info/examples/tip/ndaysmo.tip -1993/09/16 | 1532 | info/examples/tip/newdef.tip -1993/09/16 | 917 | info/examples/tip/newfont.tip -1993/09/16 | 903 | info/examples/tip/newinput.tip -1993/09/16 | 1810 | info/examples/tip/new-midi.tip -1993/09/16 | 1614 | info/examples/tip/newoutfr.tip -1993/09/16 | 756 | info/examples/tip/newpage.tip -1993/09/16 | 1178 | info/examples/tip/nextday.tip -1993/09/16 | 963 | info/examples/tip/nextmon.tip -1993/09/16 | 812 | info/examples/tip/nlm.tip -1993/09/16 | 1275 | info/examples/tip/norpweek.tip -1993/09/16 | 1190 | info/examples/tip/npright.tip -1993/09/16 | 3508 | info/examples/tip/ntotext.tip -1993/09/16 | 1131 | info/examples/tip/numcond.tip -1993/09/16 | 868 | info/examples/tip/numdyr.tip -1993/09/16 | 1228 | info/examples/tip/numwhile.tip -1993/09/16 | 990 | info/examples/tip/oblines.tip -1993/09/16 | 928 | info/examples/tip/obspaces.tip -1993/09/16 | 1016 | info/examples/tip/oct.tip -1993/09/16 | 806 | info/examples/tip/oddprin.tip -1993/09/16 | 852 | info/examples/tip/oeprin.tip -1993/09/16 | 2365 | info/examples/tip/ola-1p.tip -1993/09/16 | 3461 | info/examples/tip/ola-2p.tip -1993/09/16 | 1874 | info/examples/tip/ola-comm.tip -1993/09/16 | 1719 | info/examples/tip/op-endin.tip -1993/09/16 | 1536 | info/examples/tip/op-pagec.tip -1993/09/16 | 987 | info/examples/tip/optargx.tip -1993/09/16 | 3074 | info/examples/tip/orcards.tip -1993/09/16 | 1095 | info/examples/tip/ordbrule.tip -1993/09/16 | 2639 | info/examples/tip/orsimple.tip -1993/09/16 | 1899 | info/examples/tip/out2-or.tip -1993/09/16 | 15340 | info/examples/tip/out-ds.tip -1993/09/16 | 2252 | info/examples/tip/outf-rad.tip -1993/09/16 | 1341 | info/examples/tip/outpsel.tip -1993/09/16 | 951 | info/examples/tip/par-fl.tip -1993/09/16 | 1103 | info/examples/tip/parin.tip -1993/09/16 | 1809 | info/examples/tip/par-lab.tip -1993/09/16 | 1221 | info/examples/tip/par-lcl.tip -1993/09/16 | 2798 | info/examples/tip/part-cr.tip -1993/09/16 | 2416 | info/examples/tip/part-lab.tip -1993/09/16 | 893 | info/examples/tip/part-mac.tip -1993/09/16 | 2100 | info/examples/tip/parv-1.tip -1993/09/16 | 1120 | info/examples/tip/pdollars.tip -1993/09/16 | 788 | info/examples/tip/pickfs.tip -1993/09/16 | 3911 | info/examples/tip/pm-4.tip -1993/09/16 | 876 | info/examples/tip/pm-auxco.tip -1993/09/16 | 1573 | info/examples/tip/pm-bas.tip -1993/09/16 | 3343 | info/examples/tip/pm-main.tip -1993/09/16 | 1227 | info/examples/tip/pm-pagen.tip -1993/09/16 | 988 | info/examples/tip/pmtime.tip -1993/09/16 | 1045 | info/examples/tip/pm-wrc.tip -1993/09/16 | 892 | info/examples/tip/poorbold.tip -1993/09/16 | 858 | info/examples/tip/pralph.tip -1993/09/16 | 1147 | info/examples/tip/prevday.tip -1993/09/16 | 967 | info/examples/tip/prevmon.tip -1993/09/16 | 1646 | info/examples/tip/prhyph.tip -1993/09/16 | 825 | info/examples/tip/primmark.tip -1993/09/16 | 1112 | info/examples/tip/printast.tip -1993/09/16 | 1985 | info/examples/tip/printco.tip -1993/09/16 | 895 | info/examples/tip/printreg.tip -1993/09/16 | 1152 | info/examples/tip/prmode.tip -1993/09/16 | 1516 | info/examples/tip/prmonth.tip -1993/09/16 | 2179 | info/examples/tip/prot.tip -1993/09/16 | 1267 | info/examples/tip/rangetst.tip -1993/09/16 | 972 | info/examples/tip/rboxt.tip -1993/09/16 | 913 | info/examples/tip/readme -1993/09/16 | 1214 | info/examples/tip/readnu.tip -1993/09/16 | 958 | info/examples/tip/redtost.tip -1993/09/16 | 1539 | info/examples/tip/remtlsp.tip -1993/09/16 | 1714 | info/examples/tip/restring.tip -1993/09/16 | 1328 | info/examples/tip/reverses.tip -1993/09/16 | 964 | info/examples/tip/rh-dict.tip -1993/09/16 | 1079 | info/examples/tip/robust.tip -1993/09/16 | 1499 | info/examples/tip/samplepa.tip -1993/09/16 | 1683 | info/examples/tip/setstrut.tip -1993/09/16 | 1153 | info/examples/tip/shboxes.tip -1993/09/16 | 980 | info/examples/tip/shiftudb.tip -1993/09/16 | 1610 | info/examples/tip/showpll.tip -1993/09/16 | 867 | info/examples/tip/showx.tip -1993/09/16 | 961 | info/examples/tip/sigline.tip -1993/09/16 | 915 | info/examples/tip/spacefac.tip -1993/09/16 | 1562 | info/examples/tip/splitpar.tip -1993/09/16 | 1256 | info/examples/tip/ssmath.tip -1993/09/16 | 1066 | info/examples/tip/strleng.tip -1993/09/16 | 1873 | info/examples/tip/stswitch.tip -1993/09/16 | 959 | info/examples/tip/substf.tip -1993/09/16 | 798 | info/examples/tip/sumhd.tip -1993/09/16 | 882 | info/examples/tip/swapbox.tip -1993/09/16 | 977 | info/examples/tip/tabcent.tip -1993/09/16 | 956 | info/examples/tip/tabswb.tip -1993/09/16 | 934 | info/examples/tip/testdef.tip -1993/09/16 | 1307 | info/examples/tip/testsubs.tip -1993/09/16 | 183279 | info/examples/tip/texipexp.tex -1993/09/16 | 97702 | info/examples/tip/texip.idx -1993/09/16 | 95690 | info/examples/tip/tip-bugs.tex -1993/09/16 | 1461 | info/examples/tip/toc-mac.tip -1993/09/16 | 778 | info/examples/tip/today.tip -1993/09/16 | 1065 | info/examples/tip/todayx.tip -1993/09/16 | 1316 | info/examples/tip/topinfix.tip -1993/09/16 | 772 | info/examples/tip/ts-brefm.tip -1993/09/16 | 837 | info/examples/tip/ts-bul.tip -1993/09/16 | 2350 | info/examples/tip/ts-chap.tip -1993/09/16 | 1464 | info/examples/tip/ts-chhe.tip -1993/09/16 | 2572 | info/examples/tip/ts-crm.tip -1993/09/16 | 882 | info/examples/tip/ts-dime1.tip -1993/09/16 | 1473 | info/examples/tip/ts-dime2.tip -1993/09/16 | 821 | info/examples/tip/ts-dime3.tip -1993/09/16 | 2182 | info/examples/tip/ts-enum.tip -1993/09/16 | 3716 | info/examples/tip/ts-float.tip -1993/09/16 | 3738 | info/examples/tip/ts-fonts.tip -1993/09/16 | 1284 | info/examples/tip/ts-foot.tip -1993/09/16 | 2261 | info/examples/tip/ts-gnot.tip -1993/09/16 | 785 | info/examples/tip/ts-hall.tip -1993/09/16 | 1285 | info/examples/tip/ts-hmore.tip -1993/09/16 | 938 | info/examples/tip/ts-hyph.tip -1993/09/16 | 1271 | info/examples/tip/ts-itize.tip -1993/09/16 | 800 | info/examples/tip/ts-lazy.tip -1993/09/16 | 1056 | info/examples/tip/ts-loft.tip -1993/09/16 | 1100 | info/examples/tip/ts-logo.tip -1993/09/16 | 1716 | info/examples/tip/ts-main.tip -1993/09/16 | 5132 | info/examples/tip/ts-outpu.tip -1993/09/16 | 4623 | info/examples/tip/ts-page2.tip -1993/09/16 | 1332 | info/examples/tip/ts-pager.tip -1993/09/16 | 1245 | info/examples/tip/ts-robst.tip -1993/09/16 | 1030 | info/examples/tip/ts-set.tip -1993/09/16 | 3165 | info/examples/tip/ts-shead.tip -1993/09/16 | 1193 | info/examples/tip/ts-subst.tip -1993/09/16 | 1423 | info/examples/tip/ts-toc.tip -1993/09/16 | 1342 | info/examples/tip/ts-verb1.tip -1993/09/16 | 1027 | info/examples/tip/ts-verb2.tip -1993/09/16 | 2286 | info/examples/tip/ts-verb.tip -1993/09/16 | 754 | info/examples/tip/ts-vers.tip -1993/09/16 | 960 | info/examples/tip/ts-vol.tip -1993/09/16 | 5533 | info/examples/tip/ts-wind.tip -1993/09/16 | 906 | info/examples/tip/ts-writc.tip -1993/09/16 | 1263 | info/examples/tip/valdecpo.tip -1993/09/16 | 1934 | info/examples/tip/vcentx.tip -1993/09/16 | 3678 | info/examples/tip/verb-bas.tip -1993/09/16 | 5648 | info/examples/tip/verbdisp.tip -1993/09/16 | 1221 | info/examples/tip/verb-mac.tip -1993/09/16 | 1341 | info/examples/tip/verb.tip -1993/09/16 | 2320 | info/examples/tip/verbwr.tip -1993/09/16 | 1001 | info/examples/tip/vsmax.tip -1993/09/16 | 1055 | info/examples/tip/vtbox.tip -1993/09/16 | 2127 | info/examples/tip/vwrt-mac.tip -1993/09/16 | 1913 | info/examples/tip/weekofyr.tip -1993/09/16 | 1115 | info/examples/tip/widestc.tip -1993/09/16 | 2335 | info/examples/tip/wl-parcp.tip -1993/09/16 | 972 | info/examples/tip/wrtoc.tip -1993/09/16 | 1167 | info/examples/tip/wrverbar.tip -1993/09/16 | 1285 | info/examples/tip/wtolist.tip -1993/09/16 | 1940 | info/examples/tip/x-parsh.tip -1993/09/16 | 2007 | info/examples/tip/yearcal.tip -2006/03/19 | 315656 | info/examples/tip.zip +1993/09/16 | 835 | info/examples/tex-in-practice/absdimen.tip +1993/09/16 | 827 | info/examples/tex-in-practice/absval.tip +1993/09/16 | 823 | info/examples/tex-in-practice/acronym.tip +1993/09/16 | 991 | info/examples/tex-in-practice/advtabst.tip +1993/09/16 | 1008 | info/examples/tex-in-practice/aevpar.tip +1993/09/16 | 1150 | info/examples/tex-in-practice/alldate.tip +1993/09/16 | 1063 | info/examples/tex-in-practice/allocat.tip +1993/09/16 | 788 | info/examples/tex-in-practice/alwbase.tip +1993/09/16 | 816 | info/examples/tex-in-practice/angt.tip +1993/09/16 | 1643 | info/examples/tex-in-practice/arbday.tip +1993/09/16 | 7186 | info/examples/tex-in-practice/arraymac.tip +1993/09/16 | 1120 | info/examples/tex-in-practice/atpos.tip +1993/09/16 | 1382 | info/examples/tex-in-practice/be-env.tip +1993/09/16 | 1580 | info/examples/tex-in-practice/bletpar.tip +1993/09/16 | 800 | info/examples/tex-in-practice/box-bb.tip +1993/09/16 | 922 | info/examples/tex-in-practice/box-bul.tip +1993/09/16 | 873 | info/examples/tex-in-practice/boxing1.tip +1993/09/16 | 993 | info/examples/tex-in-practice/boxing2.tip +1993/09/16 | 1078 | info/examples/tex-in-practice/boxing3.tip +1993/09/16 | 1488 | info/examples/tex-in-practice/boxing4.tip +1993/09/16 | 3497 | info/examples/tex-in-practice/boxing5.tip +1993/09/16 | 1369 | info/examples/tex-in-practice/boxing6.tip +1993/09/16 | 2569 | info/examples/tex-in-practice/boxing7.tip +1993/09/16 | 906 | info/examples/tex-in-practice/box-larg.tip +1993/09/16 | 853 | info/examples/tex-in-practice/box-mac.tip +1993/09/16 | 918 | info/examples/tex-in-practice/boxrelim.tip +1993/09/16 | 3808 | info/examples/tex-in-practice/boxrqu.tip +1993/09/16 | 775 | info/examples/tex-in-practice/box-thck.tip +1993/09/16 | 844 | info/examples/tex-in-practice/box-zero.tip +1993/09/16 | 777 | info/examples/tex-in-practice/centerlp.tip +1993/09/16 | 955 | info/examples/tex-in-practice/centerng.tip +1993/09/16 | 937 | info/examples/tex-in-practice/centpar.tip +1993/09/16 | 924 | info/examples/tex-in-practice/charbo.tip +1993/09/16 | 903 | info/examples/tex-in-practice/chboxd.tip +1993/09/16 | 807 | info/examples/tex-in-practice/clearb.tip +1993/09/16 | 860 | info/examples/tex-in-practice/collect.tip +1993/09/16 | 905 | info/examples/tex-in-practice/coltok.tip +1993/09/16 | 2228 | info/examples/tex-in-practice/comfiles.tip +1993/09/16 | 1590 | info/examples/tex-in-practice/compstca.tip +1993/09/16 | 1278 | info/examples/tex-in-practice/compst.tip +1993/09/16 | 1324 | info/examples/tex-in-practice/condltr.tip +1993/09/16 | 1237 | info/examples/tex-in-practice/conval.tip +1993/09/16 | 814 | info/examples/tex-in-practice/copydate.tip +1993/09/16 | 2530 | info/examples/tex-in-practice/counters.tip +1993/09/16 | 1468 | info/examples/tex-in-practice/countl.tip +1993/09/16 | 1024 | info/examples/tex-in-practice/cref-1.tip +1993/09/16 | 965 | info/examples/tex-in-practice/cref-2a.tip +1993/09/16 | 849 | info/examples/tex-in-practice/cref-2.tip +1993/09/16 | 1399 | info/examples/tex-in-practice/cref-3a.tip +1993/09/16 | 1244 | info/examples/tex-in-practice/cref-3.tip +1993/09/16 | 934 | info/examples/tex-in-practice/cref-4.tip +1993/09/16 | 1628 | info/examples/tex-in-practice/cref-5.tip +1993/09/16 | 917 | info/examples/tex-in-practice/crline.tip +1993/09/16 | 3577 | info/examples/tex-in-practice/csar.tip +1993/09/16 | 892 | info/examples/tex-in-practice/cssprint.tip +1993/09/16 | 1111 | info/examples/tex-in-practice/cstostrc.tip +1993/09/16 | 821 | info/examples/tex-in-practice/cstostr.tip +1993/09/16 | 1253 | info/examples/tex-in-practice/ctestcs.tip +1993/09/16 | 1533 | info/examples/tex-in-practice/dateofw.tip +1993/09/16 | 924 | info/examples/tex-in-practice/dblarg.tip +1993/09/16 | 1273 | info/examples/tex-in-practice/defauarg.tip +1993/09/16 | 889 | info/examples/tex-in-practice/dicentry.tip +1993/09/16 | 2364 | info/examples/tex-in-practice/doloop.tip +1993/09/16 | 1316 | info/examples/tex-in-practice/droppre.tip +1993/09/16 | 858 | info/examples/tex-in-practice/droppt.tip +1993/09/16 | 3895 | info/examples/tex-in-practice/dumppars.tip +1993/09/16 | 1452 | info/examples/tex-in-practice/earliest.tip +1993/09/16 | 985 | info/examples/tex-in-practice/emprubox.tip +1993/09/16 | 877 | info/examples/tex-in-practice/emptybox.tip +1993/09/16 | 1823 | info/examples/tex-in-practice/endn-mac.tip +1993/09/16 | 941 | info/examples/tex-in-practice/endrec.tip +1993/09/16 | 2755 | info/examples/tex-in-practice/enumlist.tip +1993/09/16 | 1135 | info/examples/tex-in-practice/enum.tip +1993/09/16 | 784 | info/examples/tex-in-practice/errmess.tip +1993/09/16 | 819 | info/examples/tex-in-practice/evenprin.tip +1993/09/16 | 1035 | info/examples/tex-in-practice/everyequ.tip +1993/09/16 | 1166 | info/examples/tex-in-practice/everypar.tip +1993/09/16 | 981 | info/examples/tex-in-practice/evhvbox.tip +1993/09/16 | 976 | info/examples/tex-in-practice/ex-out2.tip +1993/09/16 | 1039 | info/examples/tex-in-practice/fexist.tip +1993/09/16 | 823 | info/examples/tex-in-practice/figbox.tip +1993/09/16 | 1833 | info/examples/tex-in-practice/figinpar.tip +1993/09/16 | 1433 | info/examples/tex-in-practice/firstldi.tip +1993/09/16 | 1022 | info/examples/tex-in-practice/fo-char.tip +1993/09/16 | 1657 | info/examples/tex-in-practice/font-cpp.tip +1993/09/16 | 5056 | info/examples/tex-in-practice/fontsam.tip +1993/09/16 | 2687 | info/examples/tex-in-practice/fonttab.tip +1993/09/16 | 1076 | info/examples/tex-in-practice/formline.tip +1993/09/16 | 5534 | info/examples/tex-in-practice/fotable.tip +1993/09/16 | 1197 | info/examples/tex-in-practice/fotok.tip +1993/09/16 | 763 | info/examples/tex-in-practice/frac.tip +1993/09/16 | 1112 | info/examples/tex-in-practice/freespac.tip +1993/09/16 | 1323 | info/examples/tex-in-practice/fsized.tip +1993/09/16 | 1642 | info/examples/tex-in-practice/funospac.tip +1993/09/16 | 1103 | info/examples/tex-in-practice/futlet.tip +1993/09/16 | 840 | info/examples/tex-in-practice/futpar.tip +1993/09/16 | 1110 | info/examples/tex-in-practice/genaeol.tip +1993/09/16 | 2824 | info/examples/tex-in-practice/genhead.tip +1993/09/16 | 1394 | info/examples/tex-in-practice/genostr.tip +1993/09/16 | 949 | info/examples/tex-in-practice/getnuml.tip +1993/09/16 | 860 | info/examples/tex-in-practice/gobblemo.tip +1993/09/16 | 992 | info/examples/tex-in-practice/gobble.tip +1993/09/16 | 2251 | info/examples/tex-in-practice/graphmac.tip +1993/09/16 | 1285 | info/examples/tex-in-practice/hex.tip +1993/09/16 | 938 | info/examples/tex-in-practice/ifeven.tip +1993/09/16 | 927 | info/examples/tex-in-practice/ifx-def.tip +1993/09/16 | 921 | info/examples/tex-in-practice/ifx-mac.tip +1993/09/16 | 1263 | info/examples/tex-in-practice/imodn.tip +1993/09/16 | 1370 | info/examples/tex-in-practice/index-or.tip +1993/09/16 | 800 | info/examples/tex-in-practice/input-at.tip +1993/09/16 | 1007 | info/examples/tex-in-practice/inputc.tip +1993/09/16 | 1024 | info/examples/tex-in-practice/inputdl.tip +1993/09/16 | 1282 | info/examples/tex-in-practice/inputd.tip +1993/09/16 | 1314 | info/examples/tex-in-practice/isleapyr.tip +1993/09/16 | 1679 | info/examples/tex-in-practice/isprefix.tip +1993/09/16 | 1019 | info/examples/tex-in-practice/issuffix.tip +1993/09/16 | 1410 | info/examples/tex-in-practice/itemizel.tip +1993/09/16 | 996 | info/examples/tex-in-practice/itemltw.tip +1993/09/16 | 1078 | info/examples/tex-in-practice/itemplan.tip +1993/09/16 | 2472 | info/examples/tex-in-practice/ivpyr.tip +1993/09/16 | 1370 | info/examples/tex-in-practice/largdp.tip +1993/09/16 | 940 | info/examples/tex-in-practice/lbpar.tip +1993/09/16 | 1090 | info/examples/tex-in-practice/lc0to9.tip +1993/09/16 | 908 | info/examples/tex-in-practice/leadingz.tip +1993/09/16 | 935 | info/examples/tex-in-practice/leadline.tip +1993/09/16 | 859 | info/examples/tex-in-practice/leftdm.tip +1993/09/16 | 1108 | info/examples/tex-in-practice/legdate.tip +1993/09/16 | 863 | info/examples/tex-in-practice/legmonth.tip +1993/09/16 | 949 | info/examples/tex-in-practice/legyear.tip +1993/09/16 | 923 | info/examples/tex-in-practice/lfondem.tip +1993/09/16 | 885 | info/examples/tex-in-practice/linesr.tip +1993/09/16 | 4418 | info/examples/tex-in-practice/list-mac.tip +1993/09/16 | 842 | info/examples/tex-in-practice/loadedla.tip +1993/09/16 | 865 | info/examples/tex-in-practice/lpagetg.tip +1993/09/16 | 12068 | info/examples/tex-in-practice/macvntip.tex +1993/09/16 | 2208 | info/examples/tex-in-practice/mathenv.tip +1993/09/16 | 966 | info/examples/tex-in-practice/maxmindi.tip +1993/09/16 | 1143 | info/examples/tex-in-practice/mocal3.tip +1993/09/16 | 2937 | info/examples/tex-in-practice/mocal.tip +1993/09/16 | 869 | info/examples/tex-in-practice/modonead.tip +1993/09/16 | 1341 | info/examples/tex-in-practice/mondofda.tip +1993/09/16 | 1631 | info/examples/tex-in-practice/mrdel.tip +1993/09/16 | 815 | info/examples/tex-in-practice/mspaces.tip +1993/09/16 | 1777 | info/examples/tex-in-practice/namedef.tip +1993/09/16 | 944 | info/examples/tex-in-practice/nathd.tip +1993/09/16 | 947 | info/examples/tex-in-practice/nctest.tip +1993/09/16 | 1266 | info/examples/tex-in-practice/ndaysmo.tip +1993/09/16 | 1532 | info/examples/tex-in-practice/newdef.tip +1993/09/16 | 917 | info/examples/tex-in-practice/newfont.tip +1993/09/16 | 903 | info/examples/tex-in-practice/newinput.tip +1993/09/16 | 1810 | info/examples/tex-in-practice/new-midi.tip +1993/09/16 | 1614 | info/examples/tex-in-practice/newoutfr.tip +1993/09/16 | 756 | info/examples/tex-in-practice/newpage.tip +1993/09/16 | 1178 | info/examples/tex-in-practice/nextday.tip +1993/09/16 | 963 | info/examples/tex-in-practice/nextmon.tip +1993/09/16 | 812 | info/examples/tex-in-practice/nlm.tip +1993/09/16 | 1275 | info/examples/tex-in-practice/norpweek.tip +1993/09/16 | 1190 | info/examples/tex-in-practice/npright.tip +1993/09/16 | 3508 | info/examples/tex-in-practice/ntotext.tip +1993/09/16 | 1131 | info/examples/tex-in-practice/numcond.tip +1993/09/16 | 868 | info/examples/tex-in-practice/numdyr.tip +1993/09/16 | 1228 | info/examples/tex-in-practice/numwhile.tip +1993/09/16 | 990 | info/examples/tex-in-practice/oblines.tip +1993/09/16 | 928 | info/examples/tex-in-practice/obspaces.tip +1993/09/16 | 1016 | info/examples/tex-in-practice/oct.tip +1993/09/16 | 806 | info/examples/tex-in-practice/oddprin.tip +1993/09/16 | 852 | info/examples/tex-in-practice/oeprin.tip +1993/09/16 | 2365 | info/examples/tex-in-practice/ola-1p.tip +1993/09/16 | 3461 | info/examples/tex-in-practice/ola-2p.tip +1993/09/16 | 1874 | info/examples/tex-in-practice/ola-comm.tip +1993/09/16 | 1719 | info/examples/tex-in-practice/op-endin.tip +1993/09/16 | 1536 | info/examples/tex-in-practice/op-pagec.tip +1993/09/16 | 987 | info/examples/tex-in-practice/optargx.tip +1993/09/16 | 3074 | info/examples/tex-in-practice/orcards.tip +1993/09/16 | 1095 | info/examples/tex-in-practice/ordbrule.tip +1993/09/16 | 2639 | info/examples/tex-in-practice/orsimple.tip +1993/09/16 | 1899 | info/examples/tex-in-practice/out2-or.tip +1993/09/16 | 15340 | info/examples/tex-in-practice/out-ds.tip +1993/09/16 | 2252 | info/examples/tex-in-practice/outf-rad.tip +1993/09/16 | 1341 | info/examples/tex-in-practice/outpsel.tip +1993/09/16 | 951 | info/examples/tex-in-practice/par-fl.tip +1993/09/16 | 1103 | info/examples/tex-in-practice/parin.tip +1993/09/16 | 1809 | info/examples/tex-in-practice/par-lab.tip +1993/09/16 | 1221 | info/examples/tex-in-practice/par-lcl.tip +1993/09/16 | 2798 | info/examples/tex-in-practice/part-cr.tip +1993/09/16 | 2416 | info/examples/tex-in-practice/part-lab.tip +1993/09/16 | 893 | info/examples/tex-in-practice/part-mac.tip +1993/09/16 | 2100 | info/examples/tex-in-practice/parv-1.tip +1993/09/16 | 1120 | info/examples/tex-in-practice/pdollars.tip +1993/09/16 | 788 | info/examples/tex-in-practice/pickfs.tip +1993/09/16 | 3911 | info/examples/tex-in-practice/pm-4.tip +1993/09/16 | 876 | info/examples/tex-in-practice/pm-auxco.tip +1993/09/16 | 1573 | info/examples/tex-in-practice/pm-bas.tip +1993/09/16 | 3343 | info/examples/tex-in-practice/pm-main.tip +1993/09/16 | 1227 | info/examples/tex-in-practice/pm-pagen.tip +1993/09/16 | 988 | info/examples/tex-in-practice/pmtime.tip +1993/09/16 | 1045 | info/examples/tex-in-practice/pm-wrc.tip +1993/09/16 | 892 | info/examples/tex-in-practice/poorbold.tip +1993/09/16 | 858 | info/examples/tex-in-practice/pralph.tip +1993/09/16 | 1147 | info/examples/tex-in-practice/prevday.tip +1993/09/16 | 967 | info/examples/tex-in-practice/prevmon.tip +1993/09/16 | 1646 | info/examples/tex-in-practice/prhyph.tip +1993/09/16 | 825 | info/examples/tex-in-practice/primmark.tip +1993/09/16 | 1112 | info/examples/tex-in-practice/printast.tip +1993/09/16 | 1985 | info/examples/tex-in-practice/printco.tip +1993/09/16 | 895 | info/examples/tex-in-practice/printreg.tip +1993/09/16 | 1152 | info/examples/tex-in-practice/prmode.tip +1993/09/16 | 1516 | info/examples/tex-in-practice/prmonth.tip +1993/09/16 | 2179 | info/examples/tex-in-practice/prot.tip +1993/09/16 | 1267 | info/examples/tex-in-practice/rangetst.tip +1993/09/16 | 972 | info/examples/tex-in-practice/rboxt.tip +1993/09/16 | 913 | info/examples/tex-in-practice/readme +1993/09/16 | 1214 | info/examples/tex-in-practice/readnu.tip +1993/09/16 | 958 | info/examples/tex-in-practice/redtost.tip +1993/09/16 | 1539 | info/examples/tex-in-practice/remtlsp.tip +1993/09/16 | 1714 | info/examples/tex-in-practice/restring.tip +1993/09/16 | 1328 | info/examples/tex-in-practice/reverses.tip +1993/09/16 | 964 | info/examples/tex-in-practice/rh-dict.tip +1993/09/16 | 1079 | info/examples/tex-in-practice/robust.tip +1993/09/16 | 1499 | info/examples/tex-in-practice/samplepa.tip +1993/09/16 | 1683 | info/examples/tex-in-practice/setstrut.tip +1993/09/16 | 1153 | info/examples/tex-in-practice/shboxes.tip +1993/09/16 | 980 | info/examples/tex-in-practice/shiftudb.tip +1993/09/16 | 1610 | info/examples/tex-in-practice/showpll.tip +1993/09/16 | 867 | info/examples/tex-in-practice/showx.tip +1993/09/16 | 961 | info/examples/tex-in-practice/sigline.tip +1993/09/16 | 915 | info/examples/tex-in-practice/spacefac.tip +1993/09/16 | 1562 | info/examples/tex-in-practice/splitpar.tip +1993/09/16 | 1256 | info/examples/tex-in-practice/ssmath.tip +1993/09/16 | 1066 | info/examples/tex-in-practice/strleng.tip +1993/09/16 | 1873 | info/examples/tex-in-practice/stswitch.tip +1993/09/16 | 959 | info/examples/tex-in-practice/substf.tip +1993/09/16 | 798 | info/examples/tex-in-practice/sumhd.tip +1993/09/16 | 882 | info/examples/tex-in-practice/swapbox.tip +1993/09/16 | 977 | info/examples/tex-in-practice/tabcent.tip +1993/09/16 | 956 | info/examples/tex-in-practice/tabswb.tip +1993/09/16 | 934 | info/examples/tex-in-practice/testdef.tip +1993/09/16 | 1307 | info/examples/tex-in-practice/testsubs.tip +1993/09/16 | 183279 | info/examples/tex-in-practice/texipexp.tex +1993/09/16 | 97702 | info/examples/tex-in-practice/texip.idx +1993/09/16 | 95690 | info/examples/tex-in-practice/tip-bugs.tex +1993/09/16 | 1461 | info/examples/tex-in-practice/toc-mac.tip +1993/09/16 | 778 | info/examples/tex-in-practice/today.tip +1993/09/16 | 1065 | info/examples/tex-in-practice/todayx.tip +1993/09/16 | 1316 | info/examples/tex-in-practice/topinfix.tip +1993/09/16 | 772 | info/examples/tex-in-practice/ts-brefm.tip +1993/09/16 | 837 | info/examples/tex-in-practice/ts-bul.tip +1993/09/16 | 2350 | info/examples/tex-in-practice/ts-chap.tip +1993/09/16 | 1464 | info/examples/tex-in-practice/ts-chhe.tip +1993/09/16 | 2572 | info/examples/tex-in-practice/ts-crm.tip +1993/09/16 | 882 | info/examples/tex-in-practice/ts-dime1.tip +1993/09/16 | 1473 | info/examples/tex-in-practice/ts-dime2.tip +1993/09/16 | 821 | info/examples/tex-in-practice/ts-dime3.tip +1993/09/16 | 2182 | info/examples/tex-in-practice/ts-enum.tip +1993/09/16 | 3716 | info/examples/tex-in-practice/ts-float.tip +1993/09/16 | 3738 | info/examples/tex-in-practice/ts-fonts.tip +1993/09/16 | 1284 | info/examples/tex-in-practice/ts-foot.tip +1993/09/16 | 2261 | info/examples/tex-in-practice/ts-gnot.tip +1993/09/16 | 785 | info/examples/tex-in-practice/ts-hall.tip +1993/09/16 | 1285 | info/examples/tex-in-practice/ts-hmore.tip +1993/09/16 | 938 | info/examples/tex-in-practice/ts-hyph.tip +1993/09/16 | 1271 | info/examples/tex-in-practice/ts-itize.tip +1993/09/16 | 800 | info/examples/tex-in-practice/ts-lazy.tip +1993/09/16 | 1056 | info/examples/tex-in-practice/ts-loft.tip +1993/09/16 | 1100 | info/examples/tex-in-practice/ts-logo.tip +1993/09/16 | 1716 | info/examples/tex-in-practice/ts-main.tip +1993/09/16 | 5132 | info/examples/tex-in-practice/ts-outpu.tip +1993/09/16 | 4623 | info/examples/tex-in-practice/ts-page2.tip +1993/09/16 | 1332 | info/examples/tex-in-practice/ts-pager.tip +1993/09/16 | 1245 | info/examples/tex-in-practice/ts-robst.tip +1993/09/16 | 1030 | info/examples/tex-in-practice/ts-set.tip +1993/09/16 | 3165 | info/examples/tex-in-practice/ts-shead.tip +1993/09/16 | 1193 | info/examples/tex-in-practice/ts-subst.tip +1993/09/16 | 1423 | info/examples/tex-in-practice/ts-toc.tip +1993/09/16 | 1342 | info/examples/tex-in-practice/ts-verb1.tip +1993/09/16 | 1027 | info/examples/tex-in-practice/ts-verb2.tip +1993/09/16 | 2286 | info/examples/tex-in-practice/ts-verb.tip +1993/09/16 | 754 | info/examples/tex-in-practice/ts-vers.tip +1993/09/16 | 960 | info/examples/tex-in-practice/ts-vol.tip +1993/09/16 | 5533 | info/examples/tex-in-practice/ts-wind.tip +1993/09/16 | 906 | info/examples/tex-in-practice/ts-writc.tip +1993/09/16 | 1263 | info/examples/tex-in-practice/valdecpo.tip +1993/09/16 | 1934 | info/examples/tex-in-practice/vcentx.tip +1993/09/16 | 3678 | info/examples/tex-in-practice/verb-bas.tip +1993/09/16 | 5648 | info/examples/tex-in-practice/verbdisp.tip +1993/09/16 | 1221 | info/examples/tex-in-practice/verb-mac.tip +1993/09/16 | 1341 | info/examples/tex-in-practice/verb.tip +1993/09/16 | 2320 | info/examples/tex-in-practice/verbwr.tip +1993/09/16 | 1001 | info/examples/tex-in-practice/vsmax.tip +1993/09/16 | 1055 | info/examples/tex-in-practice/vtbox.tip +1993/09/16 | 2127 | info/examples/tex-in-practice/vwrt-mac.tip +1993/09/16 | 1913 | info/examples/tex-in-practice/weekofyr.tip +1993/09/16 | 1115 | info/examples/tex-in-practice/widestc.tip +1993/09/16 | 2335 | info/examples/tex-in-practice/wl-parcp.tip +1993/09/16 | 972 | info/examples/tex-in-practice/wrtoc.tip +1993/09/16 | 1167 | info/examples/tex-in-practice/wrverbar.tip +1993/09/16 | 1285 | info/examples/tex-in-practice/wtolist.tip +1993/09/16 | 1940 | info/examples/tex-in-practice/x-parsh.tip +1993/09/16 | 2007 | info/examples/tex-in-practice/yearcal.tip +2006/03/19 | 315656 | info/examples/tex-in-practice.zip 2004/10/19 | 1492 | info/examples/tlc2/10-1-10.ltx 2004/10/19 | 946 | info/examples/tlc2/10-1-11.ltx 2004/10/19 | 1045 | info/examples/tlc2/10-1-12.ltx @@ -198610,8 +198610,6 @@ 2000/03/10 | 271365 | info/webguide/webguide.ps 2000/03/10 | 26023 | info/webguide/webguide.tex 2006/03/12 | 293493 | info/webguide.zip -1994/01/24 | 1628 | info/whatstex/lit.sel -1994/01/24 | 108404 | info/whatstex/wots.tex 1999/08/06 | 135039 | info/win-help/english/LaTeX_Symbols_Help.zip 1999/08/06 | 112 | info/win-help/english/readme.txt 1999/08/06 | 135039 | info/win-help/latex/english/LaTeX_Symbols_Help.zip @@ -198683,7 +198681,6 @@ 2022/10/30 | 1721181 | install/fonts/gillius.tds.zip 2022/09/12 | 2337829 | install/fonts/gofonts.tds.zip 2012/09/06 | 467812 | install/fonts/hacm.tds.zip -2019/06/10 | 1774481 | install/fonts/heuristica.tds.zip 2023/04/18 | 1740393 | install/fonts/ibarra.tds.zip 2022/10/01 | 4152828 | install/fonts/imfellEnglish.tds.zip 2012/08/14 | 329590 | install/fonts/imprintmtshadow.tds.zip @@ -206486,58 +206483,6 @@ 2007/03/01 | 18007 | macros/cstex/lic-gpl.eng 2007/03/01 | 1068 | macros/cstex/README 2012/12/03 | 12004 | macros/cstex/zmeny.txt -2002/05/30 | 1545 | macros/ec-plain/00readme.doc -1996/09/06 | 12874 | macros/ec-plain/acmacros.sty -1993/03/13 | 3513 | macros/ec-plain/dybx10.mf -1993/03/13 | 3531 | macros/ec-plain/dybx12.mf -1993/03/13 | 3517 | macros/ec-plain/dybx5.mf -1993/03/13 | 3526 | macros/ec-plain/dybx6.mf -1993/03/13 | 3530 | macros/ec-plain/dybx7.mf -1993/03/13 | 3521 | macros/ec-plain/dybx8.mf -1993/03/13 | 3525 | macros/ec-plain/dybx9.mf -1993/03/13 | 3518 | macros/ec-plain/dymi10.mf -1993/03/13 | 3539 | macros/ec-plain/dymi12.mf -1993/03/13 | 3531 | macros/ec-plain/dymi5.mf -1993/03/13 | 3539 | macros/ec-plain/dymi6.mf -1993/03/13 | 3536 | macros/ec-plain/dymi7.mf -1993/03/13 | 3528 | macros/ec-plain/dymi8.mf -1993/03/13 | 3524 | macros/ec-plain/dymi9.mf -1993/03/13 | 345 | macros/ec-plain/ecbxmath.mf -1993/03/13 | 3634 | macros/ec-plain/ecmathit.mf -2002/05/30 | 346835 | macros/ec-plain/ec-pdfplain.fmt -2002/05/30 | 30 | macros/ec-plain/ec-pdfplain.tex -2002/05/30 | 337483 | macros/ec-plain/ec-plain.fmt -1998/04/18 | 44838 | macros/ec-plain/ec-plain.tex -2002/02/02 | 1117 | macros/ec-plain/ec-plfmt.bat -1994/08/17 | 463 | macros/ec-plain/enhyphex.tex -1994/08/17 | 27576 | macros/ec-plain/enhyph.tex -1997/05/29 | 3431 | macros/ec-plain/eshyph.tex -1998/03/25 | 224 | macros/ec-plain/exmi10.mf -1998/04/15 | 2272 | macros/ec-plain/exmi10.tfm -1998/03/25 | 224 | macros/ec-plain/exmi12.mf -1998/04/15 | 2272 | macros/ec-plain/exmi12.tfm -1998/03/25 | 221 | macros/ec-plain/exmi5.mf -1998/04/15 | 2232 | macros/ec-plain/exmi5.tfm -1998/03/25 | 221 | macros/ec-plain/exmi6.mf -1998/04/15 | 2256 | macros/ec-plain/exmi6.tfm -1998/03/25 | 221 | macros/ec-plain/exmi7.mf -1998/04/15 | 2284 | macros/ec-plain/exmi7.tfm -1998/03/25 | 221 | macros/ec-plain/exmi8.mf -1998/04/15 | 2264 | macros/ec-plain/exmi8.tfm -1998/03/25 | 221 | macros/ec-plain/exmi9.mf -1998/04/15 | 2280 | macros/ec-plain/exmi9.tfm -1998/03/25 | 227 | macros/ec-plain/exmi.mf -2002/05/30 | 30336 | macros/ec-plain/f8hyph1.tex -2002/05/30 | 936 | macros/ec-plain/frhyphx1.tex -1995/03/10 | 48658 | macros/ec-plain/ghyph31.tex -1993/03/23 | 7670 | macros/ec-plain/hyacceur.tex -1997/10/14 | 4335 | macros/ec-plain/hyconfig.ptx -1995/03/10 | 4301 | macros/ec-plain/ithyph.tex -1997/07/16 | 1378 | macros/ec-plain/language.dat -2002/05/30 | 31 | macros/ec-plain/make-musixtex-format.bat -1998/04/15 | 22889 | macros/ec-plain/ofgreekl.mf -1998/04/09 | 11977 | macros/ec-plain/ofgreeku.mf -2006/03/20 | 364314 | macros/ec-plain.zip 2022/10/16 | 657 | macros/eplain/doc/AUTHORS 2022/10/16 | 90093 | macros/eplain/doc/ChangeLog 2022/10/16 | 18011 | macros/eplain/doc/COPYING @@ -224601,12 +224546,12 @@ 2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt 2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README 2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip -2024/01/30 | 75435 | macros/latex/contrib/easybook/easybook.dtx +2024/01/31 | 75050 | macros/latex/contrib/easybook/easybook.dtx 2024/01/04 | 2081 | macros/latex/contrib/easybook/easybook.ins -2024/01/30 | 599182 | macros/latex/contrib/easybook/easybook.pdf -2024/01/30 | 88362 | macros/latex/contrib/easybook/easybook.tex +2024/01/31 | 598552 | macros/latex/contrib/easybook/easybook.pdf +2024/01/31 | 88420 | macros/latex/contrib/easybook/easybook.tex 2024/01/03 | 801 | macros/latex/contrib/easybook/README.md -2024/01/30 | 642129 | macros/latex/contrib/easybook.zip +2024/01/31 | 641513 | macros/latex/contrib/easybook.zip 2009/06/17 | 82589 | macros/latex/contrib/easy/doc/docbib.pdf 2009/06/17 | 78378 | macros/latex/contrib/easy/doc/docbmat.pdf 2009/06/17 | 99132 | macros/latex/contrib/easy/doc/doceqn.pdf @@ -230161,15 +230106,15 @@ 2021/06/01 | 2164 | macros/latex/contrib/hvarabic/latex/hvarabic.sty 2020/06/08 | 548 | macros/latex/contrib/hvarabic/README.md 2021/06/01 | 153159 | macros/latex/contrib/hvarabic.zip -2023/12/08 | 2342 | macros/latex/contrib/hvextern/Changes +2024/01/30 | 2402 | macros/latex/contrib/hvextern/Changes 2022/05/27 | 3998 | macros/latex/contrib/hvextern/doc/hvdoctools.sty -2023/12/08 | 1498836 | macros/latex/contrib/hvextern/doc/hvextern.pdf -2023/12/08 | 53005 | macros/latex/contrib/hvextern/doc/hvextern.tex -2023/12/08 | 45501 | macros/latex/contrib/hvextern/latex/hvextern.sty +2024/01/31 | 1481699 | macros/latex/contrib/hvextern/doc/hvextern.pdf +2024/01/31 | 52572 | macros/latex/contrib/hvextern/doc/hvextern.tex +2024/01/31 | 45891 | macros/latex/contrib/hvextern/latex/hvextern.sty 2022/06/20 | 727 | macros/latex/contrib/hvextern/lualatex/hvextern.lua -2023/08/29 | 711 | macros/latex/contrib/hvextern/README -2023/08/29 | 1040 | macros/latex/contrib/hvextern/script/hvextern-checkfile.lua -2023/12/08 | 1391706 | macros/latex/contrib/hvextern.zip +2023/09/19 | 711 | macros/latex/contrib/hvextern/README +2022/07/21 | 1040 | macros/latex/contrib/hvextern/script/hvextern-checkfile.lua +2024/01/31 | 1391882 | macros/latex/contrib/hvextern.zip 2023/10/16 | 5030 | macros/latex/contrib/hvfloat/Changes 2023/10/16 | 80278 | macros/latex/contrib/hvfloat/doc/examples/after1s1c.pdf 2021/11/20 | 2379 | macros/latex/contrib/hvfloat/doc/examples/after1s1c.tex @@ -233461,11 +233406,11 @@ 2003/09/24 | 1609 | macros/latex/contrib/leftidx/Makefile 2003/09/24 | 587 | macros/latex/contrib/leftidx/README 2007/01/08 | 56335 | macros/latex/contrib/leftidx.zip -2020/08/25 | 72581 | macros/latex/contrib/leftindex/leftindex.pdf -2020/08/25 | 4014 | macros/latex/contrib/leftindex/leftindex.sty -2020/08/25 | 4787 | macros/latex/contrib/leftindex/leftindex.tex -2020/08/25 | 1113 | macros/latex/contrib/leftindex/README.md -2020/08/25 | 75674 | macros/latex/contrib/leftindex.zip +2024/01/31 | 89885 | macros/latex/contrib/leftindex/leftindex.pdf +2024/01/31 | 4368 | macros/latex/contrib/leftindex/leftindex.sty +2024/01/31 | 5416 | macros/latex/contrib/leftindex/leftindex.tex +2024/01/31 | 1114 | macros/latex/contrib/leftindex/README.md +2024/01/31 | 91213 | macros/latex/contrib/leftindex.zip 2020/02/09 | 62145 | macros/latex/contrib/leiletter/leiden-logo.pdf 2020/02/09 | 52221 | macros/latex/contrib/leiletter/LEIletter.dtx 2020/02/09 | 383019 | macros/latex/contrib/leiletter/LEIletter.pdf @@ -233872,14 +233817,17 @@ 2023/11/14 | 1019 | macros/latex/contrib/litesolution/README.md 2023/12/13 | 17696 | macros/latex/contrib/litesolution/tex/litesolution.cls 2023/12/13 | 1421214 | macros/latex/contrib/litesolution.zip -2023/11/05 | 30108 | macros/latex/contrib/litetable/doc/litetable-demo.pdf -2023/11/05 | 1903 | macros/latex/contrib/litetable/doc/litetable-demo.tex -2023/11/05 | 79686 | macros/latex/contrib/litetable/doc/litetable-doc.pdf -2023/11/05 | 8871 | macros/latex/contrib/litetable/doc/litetable-doc.tex +2024/01/31 | 17761 | macros/latex/contrib/litetable/doc/favicon.png +2024/01/31 | 46294 | macros/latex/contrib/litetable/doc/litetable-demo.pdf +2024/01/31 | 3133 | macros/latex/contrib/litetable/doc/litetable-demo.tex +2024/01/31 | 193124 | macros/latex/contrib/litetable/doc/litetable-doc-cn.pdf +2024/01/31 | 9632 | macros/latex/contrib/litetable/doc/litetable-doc-cn.tex +2024/01/31 | 103291 | macros/latex/contrib/litetable/doc/litetable-doc-en.pdf +2024/01/31 | 10600 | macros/latex/contrib/litetable/doc/litetable-doc-en.tex 2023/11/05 | 19101 | macros/latex/contrib/litetable/License 2023/11/05 | 573 | macros/latex/contrib/litetable/README.md -2023/11/05 | 12851 | macros/latex/contrib/litetable/tex/litetable.cls -2023/11/05 | 119826 | macros/latex/contrib/litetable.zip +2024/01/31 | 10187 | macros/latex/contrib/litetable/tex/litetable.cls +2024/01/31 | 368321 | macros/latex/contrib/litetable.zip 2008/02/04 | 1184 | macros/latex/contrib/liturg/liturg.ins 2008/06/28 | 125813 | macros/latex/contrib/liturg/liturg.pdf 2008/02/17 | 17363 | macros/latex/contrib/liturg/liturg.sty @@ -240517,15 +240465,13 @@ 2006/11/13 | 301000 | macros/latex/contrib/refman/refman.pdf 2006/11/18 | 6834 | macros/latex/contrib/refman/refman.upl 2012/09/27 | 704807 | macros/latex/contrib/refman.zip -2010/10/21 | 2036 | macros/latex/contrib/refstyle/README -2010/11/03 | 41243 | macros/latex/contrib/refstyle/refconfig.dtx -2010/11/03 | 292980 | macros/latex/contrib/refstyle/refconfig.pdf -2010/11/03 | 20486 | macros/latex/contrib/refstyle/refstyle.cfg -2010/11/03 | 68122 | macros/latex/contrib/refstyle/refstyle.dtx -2010/10/21 | 3850 | macros/latex/contrib/refstyle/refstyle.ins -2010/11/03 | 484262 | macros/latex/contrib/refstyle/refstyle.pdf -2010/11/03 | 11662 | macros/latex/contrib/refstyle/refstyle.sty -2010/11/03 | 728404 | macros/latex/contrib/refstyle.zip +2024/01/31 | 1966 | macros/latex/contrib/refstyle/README +2024/01/31 | 39974 | macros/latex/contrib/refstyle/refconfig.dtx +2024/01/31 | 303725 | macros/latex/contrib/refstyle/refconfig.pdf +2024/01/31 | 66217 | macros/latex/contrib/refstyle/refstyle.dtx +2024/01/31 | 3574 | macros/latex/contrib/refstyle/refstyle.ins +2024/01/31 | 485427 | macros/latex/contrib/refstyle/refstyle.pdf +2024/01/31 | 786905 | macros/latex/contrib/refstyle.zip 1999/08/03 | 178 | macros/latex/contrib/regcount/readme 1999/08/03 | 8899 | macros/latex/contrib/regcount/regcount.dtx 1999/08/03 | 1386 | macros/latex/contrib/regcount/regcount.ins @@ -241299,11 +241245,12 @@ 2019/08/01 | 243693 | macros/latex/contrib/schedule/schedule.pdf 2019/08/01 | 250009 | macros/latex/contrib/schedule.zip 2023/08/28 | 940 | macros/latex/contrib/schooldocs/README.md -2023/12/29 | 40482 | macros/latex/contrib/schooldocs/schooldocs.dtx -2023/12/29 | 390596 | macros/latex/contrib/schooldocs/schooldocs-examples.pdf -2023/08/28 | 1997 | macros/latex/contrib/schooldocs/schooldocs.ins -2023/12/29 | 156752 | macros/latex/contrib/schooldocs/schooldocs.pdf -2023/12/29 | 520731 | macros/latex/contrib/schooldocs.zip +2024/01/31 | 42017 | macros/latex/contrib/schooldocs/schooldocs.dtx +2024/01/31 | 270592 | macros/latex/contrib/schooldocs/schooldocs-examples.pdf +2024/01/31 | 8446 | macros/latex/contrib/schooldocs/schooldocs-examples.tex +2024/01/31 | 1997 | macros/latex/contrib/schooldocs/schooldocs.ins +2024/01/31 | 157543 | macros/latex/contrib/schooldocs/schooldocs.pdf +2024/01/31 | 416395 | macros/latex/contrib/schooldocs.zip 2021/01/05 | 866 | macros/latex/contrib/schule/data/xsim-style/xsim.style.schule-binnen.code.tex 2023/03/19 | 1786 | macros/latex/contrib/schule/data/xsim-style/xsim.style.schule-default.code.tex 2021/01/05 | 1200 | macros/latex/contrib/schule/data/xsim-style/xsim.style.schule-keinenummer.code.tex @@ -251462,19 +251409,10 @@ 2018/12/02 | 4020 | macros/luatex/latex/makecookbook/README.old 2018/12/03 | 4028 | macros/luatex/latex/makecookbook/README.txt 2018/12/03 | 511848 | macros/luatex/latex/makecookbook.zip -2023/08/25 | 52088 | macros/luatex/latex/novel/doc/extras/CPmodified.otf 2023/08/25 | 42202 | macros/luatex/latex/novel/doc/extras/NovelDeco-glyphs.pdf -2023/11/09 | 98506 | macros/luatex/latex/novel/doc/extras/novel-example.pdf -2023/11/09 | 3939 | macros/luatex/latex/novel/doc/extras/novel-example.tex -2023/11/09 | 2335 | macros/luatex/latex/novel/doc/extras/novel-extras-README.html -2023/08/25 | 311166 | macros/luatex/latex/novel/doc/extras/novel-Gallery-ChapterStart.pdf -2023/08/26 | 1495202 | macros/luatex/latex/novel/doc/extras/novel-scripts.zip -2023/08/25 | 1990 | macros/luatex/latex/novel/doc/extras/novel-testimage.jpg -2023/08/25 | 1908 | macros/luatex/latex/novel/doc/extras/novel-testimage.png -2023/08/25 | 2456 | macros/luatex/latex/novel/doc/extras/novel-testscript.jpg -2023/08/25 | 2064 | macros/luatex/latex/novel/doc/extras/novel-testscript.png -2023/11/09 | 69116 | macros/luatex/latex/novel/doc/extras/novel-testsuite.pdf -2023/11/09 | 15612 | macros/luatex/latex/novel/doc/extras/novel-testsuite.tex +2023/12/28 | 3939 | macros/luatex/latex/novel/doc/extras/novel-example.tex +2023/12/28 | 1254 | macros/luatex/latex/novel/doc/extras/novel-extras-README.html +2023/12/16 | 1290872 | macros/luatex/latex/novel/doc/extras/novel-scripts.zip 2023/08/25 | 563 | macros/luatex/latex/novel/doc/html-resources/10transold.png 2023/08/25 | 608 | macros/luatex/latex/novel/doc/html-resources/10trueold.png 2023/08/25 | 5475 | macros/luatex/latex/novel/doc/html-resources/acronym2.png @@ -251577,32 +251515,31 @@ 2023/08/25 | 10690 | macros/luatex/latex/novel/doc/html-resources/win10libser.png 2023/08/25 | 62302 | macros/luatex/latex/novel/doc/html-resources/workedforme.png 2023/08/25 | 4256 | macros/luatex/latex/novel/doc/html-resources/wrapme.png -2023/08/25 | 418 | macros/luatex/latex/novel/doc/needed-packages -2023/11/09 | 332404 | macros/luatex/latex/novel/doc/novel-documentation.html -2023/11/09 | 60185 | macros/luatex/latex/novel/doc/novel.pdf -2023/11/09 | 7264 | macros/luatex/latex/novel/doc/novel.tex -2023/11/09 | 13085 | macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty -2023/11/09 | 946 | macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo -2023/11/09 | 14281 | macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty -2023/11/09 | 24132 | macros/luatex/latex/novel/lualatex/novel.cls -2023/11/09 | 7562 | macros/luatex/latex/novel/lualatex/novel-DropCap.sty -2023/11/09 | 6947 | macros/luatex/latex/novel/lualatex/novel-FileData.sty -2023/11/09 | 947 | macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo -2023/11/09 | 17156 | macros/luatex/latex/novel/lualatex/novel-Fonts.sty -2023/11/09 | 15781 | macros/luatex/latex/novel/lualatex/novel-Footnotes.sty -2023/11/09 | 18082 | macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty -2023/11/09 | 19795 | macros/luatex/latex/novel/lualatex/novel-Images.sty -2023/11/09 | 959 | macros/luatex/latex/novel/lualatex/novel-JC200103.clo -2023/11/09 | 17236 | macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty -2023/11/09 | 6336 | macros/luatex/latex/novel/lualatex/novel-microtype.cfg -2023/11/09 | 16911 | macros/luatex/latex/novel/lualatex/novel-pdfx.sty -2023/11/09 | 8821 | macros/luatex/latex/novel/lualatex/novel-PostLayout.sty -2023/11/09 | 3819 | macros/luatex/latex/novel/lualatex/novel-Sandbox.sty -2023/11/09 | 21698 | macros/luatex/latex/novel/lualatex/novel-TextMacros.sty -2023/11/09 | 3358 | macros/luatex/latex/novel/lualatex/novel-xmppacket.sty +2024/01/31 | 327224 | macros/luatex/latex/novel/doc/novel-documentation.html +2024/01/31 | 32644 | macros/luatex/latex/novel/doc/novel.pdf +2024/01/31 | 2830 | macros/luatex/latex/novel/doc/novel.tex +2024/01/31 | 13085 | macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty +2024/01/31 | 946 | macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo +2024/01/31 | 14281 | macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty +2024/01/31 | 24694 | macros/luatex/latex/novel/lualatex/novel.cls +2024/01/31 | 7562 | macros/luatex/latex/novel/lualatex/novel-DropCap.sty +2024/01/31 | 6947 | macros/luatex/latex/novel/lualatex/novel-FileData.sty +2024/01/31 | 947 | macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo +2024/01/31 | 17156 | macros/luatex/latex/novel/lualatex/novel-Fonts.sty +2024/01/31 | 15781 | macros/luatex/latex/novel/lualatex/novel-Footnotes.sty +2024/01/31 | 18082 | macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty +2024/01/31 | 19795 | macros/luatex/latex/novel/lualatex/novel-Images.sty +2024/01/31 | 959 | macros/luatex/latex/novel/lualatex/novel-JC200103.clo +2024/01/31 | 17236 | macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty +2024/01/31 | 6336 | macros/luatex/latex/novel/lualatex/novel-microtype.cfg +2024/01/31 | 16911 | macros/luatex/latex/novel/lualatex/novel-pdfx.sty +2024/01/31 | 8821 | macros/luatex/latex/novel/lualatex/novel-PostLayout.sty +2024/01/31 | 3819 | macros/luatex/latex/novel/lualatex/novel-Sandbox.sty +2024/01/31 | 21698 | macros/luatex/latex/novel/lualatex/novel-TextMacros.sty +2024/01/31 | 3358 | macros/luatex/latex/novel/lualatex/novel-xmppacket.sty 2023/08/25 | 132008 | macros/luatex/latex/novel/opentype/NovelDeco.otf -2023/11/09 | 647 | macros/luatex/latex/novel/README.md -2023/11/09 | 5066471 | macros/luatex/latex/novel.zip +2024/01/26 | 517 | macros/luatex/latex/novel/README.md +2024/01/31 | 4450424 | macros/luatex/latex/novel.zip 2023/09/07 | 9681 | macros/luatex/latex/odsfile/odsfile.lua 2023/09/07 | 97289 | macros/luatex/latex/odsfile/odsfile.pdf 2023/09/07 | 8392 | macros/luatex/latex/odsfile/odsfile.sty @@ -276281,6 +276218,8 @@ 2011/03/18 | 570813 | obsolete/info/translations/microtype/de/microtype-DE.dtx 2011/11/08 | 1272263 | obsolete/info/translations/microtype/de/microtype-DE.pdf 2011/11/08 | 1398327 | obsolete/info/translations/microtype/de.zip +1994/01/24 | 1628 | obsolete/info/whatstex/lit.sel +1994/01/24 | 108404 | obsolete/info/whatstex/wots.tex 1997/06/25 | 1742 | obsolete/language/armtex/v1.0/arm10.tex 1997/06/25 | 1822 | obsolete/language/armtex/v1.0/arm11.tex 1997/06/25 | 1822 | obsolete/language/armtex/v1.0/arm12.tex @@ -277439,6 +277378,58 @@ 2006/12/22 | 1764 | obsolete/macros/context/contrib/context-urwgothic/tex/context/third/urwgothic/type-urwgothic.tex 2018/03/05 | 11 | obsolete/macros/context/contrib/context-urwgothic/VERSION 2023/06/19 | 141955 | obsolete/macros/context/contrib/context-urwgothic.zip +2002/05/30 | 1545 | obsolete/macros/ec-plain/00readme.doc +1996/09/06 | 12874 | obsolete/macros/ec-plain/acmacros.sty +1993/03/13 | 3513 | obsolete/macros/ec-plain/dybx10.mf +1993/03/13 | 3531 | obsolete/macros/ec-plain/dybx12.mf +1993/03/13 | 3517 | obsolete/macros/ec-plain/dybx5.mf +1993/03/13 | 3526 | obsolete/macros/ec-plain/dybx6.mf +1993/03/13 | 3530 | obsolete/macros/ec-plain/dybx7.mf +1993/03/13 | 3521 | obsolete/macros/ec-plain/dybx8.mf +1993/03/13 | 3525 | obsolete/macros/ec-plain/dybx9.mf +1993/03/13 | 3518 | obsolete/macros/ec-plain/dymi10.mf +1993/03/13 | 3539 | obsolete/macros/ec-plain/dymi12.mf +1993/03/13 | 3531 | obsolete/macros/ec-plain/dymi5.mf +1993/03/13 | 3539 | obsolete/macros/ec-plain/dymi6.mf +1993/03/13 | 3536 | obsolete/macros/ec-plain/dymi7.mf +1993/03/13 | 3528 | obsolete/macros/ec-plain/dymi8.mf +1993/03/13 | 3524 | obsolete/macros/ec-plain/dymi9.mf +1993/03/13 | 345 | obsolete/macros/ec-plain/ecbxmath.mf +1993/03/13 | 3634 | obsolete/macros/ec-plain/ecmathit.mf +2002/05/30 | 346835 | obsolete/macros/ec-plain/ec-pdfplain.fmt +2002/05/30 | 30 | obsolete/macros/ec-plain/ec-pdfplain.tex +2002/05/30 | 337483 | obsolete/macros/ec-plain/ec-plain.fmt +1998/04/18 | 44838 | obsolete/macros/ec-plain/ec-plain.tex +2002/02/02 | 1117 | obsolete/macros/ec-plain/ec-plfmt.bat +1994/08/17 | 463 | obsolete/macros/ec-plain/enhyphex.tex +1994/08/17 | 27576 | obsolete/macros/ec-plain/enhyph.tex +1997/05/29 | 3431 | obsolete/macros/ec-plain/eshyph.tex +1998/03/25 | 224 | obsolete/macros/ec-plain/exmi10.mf +1998/04/15 | 2272 | obsolete/macros/ec-plain/exmi10.tfm +1998/03/25 | 224 | obsolete/macros/ec-plain/exmi12.mf +1998/04/15 | 2272 | obsolete/macros/ec-plain/exmi12.tfm +1998/03/25 | 221 | obsolete/macros/ec-plain/exmi5.mf +1998/04/15 | 2232 | obsolete/macros/ec-plain/exmi5.tfm +1998/03/25 | 221 | obsolete/macros/ec-plain/exmi6.mf +1998/04/15 | 2256 | obsolete/macros/ec-plain/exmi6.tfm +1998/03/25 | 221 | obsolete/macros/ec-plain/exmi7.mf +1998/04/15 | 2284 | obsolete/macros/ec-plain/exmi7.tfm +1998/03/25 | 221 | obsolete/macros/ec-plain/exmi8.mf +1998/04/15 | 2264 | obsolete/macros/ec-plain/exmi8.tfm +1998/03/25 | 221 | obsolete/macros/ec-plain/exmi9.mf +1998/04/15 | 2280 | obsolete/macros/ec-plain/exmi9.tfm +1998/03/25 | 227 | obsolete/macros/ec-plain/exmi.mf +2002/05/30 | 30336 | obsolete/macros/ec-plain/f8hyph1.tex +2002/05/30 | 936 | obsolete/macros/ec-plain/frhyphx1.tex +1995/03/10 | 48658 | obsolete/macros/ec-plain/ghyph31.tex +1993/03/23 | 7670 | obsolete/macros/ec-plain/hyacceur.tex +1997/10/14 | 4335 | obsolete/macros/ec-plain/hyconfig.ptx +1995/03/10 | 4301 | obsolete/macros/ec-plain/ithyph.tex +1997/07/16 | 1378 | obsolete/macros/ec-plain/language.dat +2002/05/30 | 31 | obsolete/macros/ec-plain/make-musixtex-format.bat +1998/04/15 | 22889 | obsolete/macros/ec-plain/ofgreekl.mf +1998/04/09 | 11977 | obsolete/macros/ec-plain/ofgreeku.mf +2006/03/20 | 364314 | obsolete/macros/ec-plain.zip 1999/08/01 | 35 | obsolete/macros/fotex/fotex.ini 1999/12/21 | 26327 | obsolete/macros/fotex/fotex.ltx 1999/12/09 | 3275 | obsolete/macros/fotex/mathml.ltx @@ -289480,7 +289471,7 @@ 2021/10/26 | 246523 | support/latex-make/texdepends.pdf 2021/10/26 | 1069049 | support/latex-make.zip 2006/03/12 | 5889 | support/latexmake.zip -2024/01/10 | 42887 | support/latexmk/CHANGES +2024/01/30 | 43527 | support/latexmk/CHANGES 2013/12/03 | 17993 | support/latexmk/COPYING 2022/01/28 | 2881 | support/latexmk/example_rcfiles/asymptote_latexmkrc 2017/11/20 | 853 | support/latexmk/example_rcfiles/bib2gls_latexmkrc @@ -289525,14 +289516,14 @@ 2007/09/29 | 1492 | support/latexmk/extra-scripts/pst2pdf_for_latexmk_README.txt 2016/10/13 | 4828 | support/latexmk/extra-scripts/README-latexmk-scripts 2006/01/14 | 5588 | support/latexmk/extra-scripts/startacroread -2024/01/10 | 17976 | support/latexmk/INSTALL -2024/01/10 | 195651 | support/latexmk/latexmk.1 +2024/01/31 | 17975 | support/latexmk/INSTALL +2024/01/31 | 195651 | support/latexmk/latexmk.1 2022/03/15 | 1219 | support/latexmk/latexmk.cmd -2024/01/10 | 230284 | support/latexmk/latexmk.pdf -2024/01/10 | 513497 | support/latexmk/latexmk.pl -2024/01/10 | 242842 | support/latexmk/latexmk.txt -2024/01/10 | 2525 | support/latexmk/README -2024/01/10 | 538726 | support/latexmk.zip +2024/01/31 | 230287 | support/latexmk/latexmk.pdf +2024/01/31 | 516745 | support/latexmk/latexmk.pl +2024/01/31 | 242840 | support/latexmk/latexmk.txt +2024/01/31 | 2523 | support/latexmk/README +2024/01/31 | 539823 | support/latexmk.zip 1997/11/24 | 7551 | support/latexn/latexn 2023/02/27 | 22923 | support/latexpand/latexpand 2023/02/24 | 1529 | support/latexpand/LICENCE @@ -291487,105 +291478,118 @@ 2022/11/18 | 1526423 | support/spix/spix.pdf 2022/11/18 | 4251 | support/spix/spix.py 2022/11/18 | 1538860 | support/spix.zip -2020/10/11 | 35147 | support/splint/COPYING -2020/10/11 | 52867 | support/splint/cweb/bo.w -2020/10/11 | 21366 | support/splint/cweb/bs.w -2020/10/11 | 3095 | support/splint/cweb/checklists.w -2020/10/11 | 28408 | support/splint/cweb/common.w -2020/10/11 | 15385 | support/splint/cweb/fk.w -2020/10/11 | 26331 | support/splint/cweb/fo.w -2020/10/11 | 33507 | support/splint/cweb/lo.w -2020/10/11 | 4980 | support/splint/cweb/Makefile -2020/10/11 | 3493 | support/splint/cweb/mkeparser.w -2020/10/11 | 2878 | support/splint/cweb/mkscanner.w -2020/10/11 | 19039 | support/splint/cweb/np.w -2020/10/11 | 23851 | support/splint/cweb/philosophy.w -2020/10/11 | 4730 | support/splint/cweb/references.w -2020/10/11 | 36843 | support/splint/cweb/so.w -2020/10/11 | 98316 | support/splint/cweb/splint.w -2020/10/11 | 4449 | support/splint/cweb/ssffo.w -2020/10/11 | 718042 | support/splint/doc/ldman.pdf -2020/10/11 | 1141608 | support/splint/doc/splint.pdf -2020/10/11 | 265118 | support/splint/doc/tb109shibakov.pdf -2020/10/11 | 15652 | support/splint/examples/count/count.sty -2020/10/11 | 835 | support/splint/examples/expression/etoks.sty -2020/10/11 | 1689 | support/splint/examples/expression/expression.sty -2020/10/11 | 7703 | support/splint/examples/expression/expression.w -2020/10/11 | 2053 | support/splint/examples/expression/Makefile -2020/10/11 | 1792 | support/splint/examples/ld/ldexample.hw -2020/10/11 | 161 | support/splint/examples/ld/ldfrontmatter.sty -2020/10/11 | 36678 | support/splint/examples/ld/ldgramo.w -2020/10/11 | 43549 | support/splint/examples/ld/ldgram.w -2020/10/11 | 8273 | support/splint/examples/ld/ldint.sty -2020/10/11 | 27961 | support/splint/examples/ld/ldlexo.w -2020/10/11 | 31472 | support/splint/examples/ld/ldlex.w -2020/10/11 | 21063 | support/splint/examples/ld/ldman.w -2020/10/11 | 13828 | support/splint/examples/ld/ldnp.w -2020/10/11 | 9545 | support/splint/examples/ld/ldnump.w -2020/10/11 | 1713 | support/splint/examples/ld/ldtexlex.sty -2020/10/11 | 21560 | support/splint/examples/ld/ldunion.sty -2020/10/11 | 1282 | support/splint/examples/ld/lstokenset.sty -2020/10/11 | 4796 | support/splint/examples/ld/ltokenset.sty -2020/10/11 | 4437 | support/splint/examples/ld/Makefile -2020/10/11 | 1934 | support/splint/examples/symbols/Makefile -2020/10/11 | 691 | support/splint/examples/symbols/slimbo.sty -2020/10/11 | 19437 | support/splint/examples/symbols/symbols.w -2020/10/11 | 2301 | support/splint/examples/symbols/symfm.sty -2020/10/11 | 10866 | support/splint/examples/symbols/symmap.sty -2020/10/11 | 1051 | support/splint/examples/symbols/symtoks.sty -2020/10/11 | 899 | support/splint/examples/symbols/symtricks.sty -2020/10/11 | 11508 | support/splint/examples/types/basic.sty -2020/10/11 | 1048 | support/splint/examples/types/Makefile -2020/10/11 | 1799 | support/splint/examples/types/test.sty -2020/10/11 | 4700 | support/splint/examples/types/tree.sty -2020/10/11 | 2913 | support/splint/examples/xxpression/Makefile -2020/10/11 | 839 | support/splint/examples/xxpression/xtoks.sty -2020/10/11 | 1532 | support/splint/examples/xxpression/xxpression.sty -2020/10/11 | 13366 | support/splint/examples/xxpression/xxpression.w -2020/10/11 | 8902 | support/splint/examples/xxpression/xymmap.sty -2020/10/11 | 1856 | support/splint/extras/texmf/macros/protcode.tex -2020/10/11 | 4356 | support/splint/INSTALL -2020/10/11 | 1941 | support/splint/Makefile -2020/10/11 | 3238 | support/splint/makefile.inc -2020/10/11 | 242 | support/splint/makefile.loc -2020/10/11 | 3752 | support/splint/README -2020/10/11 | 8287 | support/splint/scripts/bindx.pl -2020/10/11 | 5681 | support/splint/scripts/brack.pl -2020/10/11 | 2609 | support/splint/scripts/cslist.pl -2020/10/11 | 2295 | support/splint/scripts/misccw.pl -2020/10/11 | 2176 | support/splint/scripts/unline.pl -2020/10/11 | 1683 | support/splint/tex/btokenset.sty -2020/10/11 | 27195 | support/splint/tex/dcols.sty -2020/10/11 | 31237 | support/splint/tex/flex.sty -2020/10/11 | 890 | support/splint/tex/fretokenset.sty -2020/10/11 | 158 | support/splint/tex/frontmatter.sty -2020/10/11 | 3547 | support/splint/tex/ftokenset.sty -2020/10/11 | 15567 | support/splint/tex/gindex.sty -2020/10/11 | 2921 | support/splint/tex/grabstates.sty -2020/10/11 | 10501 | support/splint/tex/hext.sty -2020/10/11 | 37833 | support/splint/tex/limbo.sty -2020/10/11 | 13261 | support/splint/tex/noweb.sty -2020/10/11 | 1638 | support/splint/tex/stokenset.sty -2020/10/11 | 1095 | support/splint/tex/trt1.sty -2020/10/11 | 8685 | support/splint/tex/xarithm.sty -2020/10/11 | 1317 | support/splint/tex/yxunion.sty -2020/10/11 | 2668 | support/splint/tex/yybootstrap.sty -2020/10/11 | 26390 | support/splint/tex/yycommon.sty -2020/10/11 | 3993 | support/splint/tex/yydebug.sty -2020/10/11 | 12990 | support/splint/tex/yyfaststack.sty -2020/10/11 | 30710 | support/splint/tex/yyinit.sty -2020/10/11 | 16146 | support/splint/tex/yyinput.sty -2020/10/11 | 48110 | support/splint/tex/yymisc.sty -2020/10/11 | 2630 | support/splint/tex/yynested.sty -2020/10/11 | 11742 | support/splint/tex/yyparse.sty -2020/10/11 | 1157 | support/splint/tex/yypretty.sty -2020/10/11 | 3158 | support/splint/tex/yy.sty -2020/10/11 | 4804 | support/splint/tex/yystype.sty -2020/10/11 | 31438 | support/splint/tex/yytexlex.sty -2020/10/11 | 85733 | support/splint/tex/yyunion.sty -2020/10/11 | 1703 | support/splint/TODO -2020/10/11 | 6 | support/splint/VERSION -2020/10/11 | 2420396 | support/splint.zip +2024/01/30 | 35147 | support/splint/COPYING +2024/01/30 | 59121 | support/splint/cweb/bo.w +2024/01/30 | 23404 | support/splint/cweb/bs.w +2024/01/30 | 3095 | support/splint/cweb/checklists.w +2024/01/30 | 29508 | support/splint/cweb/common.w +2024/01/30 | 15528 | support/splint/cweb/fk.w +2024/01/30 | 32049 | support/splint/cweb/fo.w +2024/01/30 | 33108 | support/splint/cweb/lo.w +2024/01/30 | 5712 | support/splint/cweb/Makefile +2024/01/30 | 3588 | support/splint/cweb/mkeparser.w +2024/01/30 | 2878 | support/splint/cweb/mkscanner.w +2024/01/30 | 19605 | support/splint/cweb/np.w +2024/01/30 | 25490 | support/splint/cweb/philosophy.w +2024/01/30 | 4730 | support/splint/cweb/references.w +2024/01/30 | 38032 | support/splint/cweb/so.w +2024/01/30 | 101601 | support/splint/cweb/splint.w +2024/01/30 | 745685 | support/splint/doc/ldman.pdf +2024/01/30 | 1157534 | support/splint/doc/splint.pdf +2024/01/30 | 265118 | support/splint/doc/tb109shibakov.pdf +2024/01/30 | 15652 | support/splint/examples/count/count.sty +2024/01/30 | 835 | support/splint/examples/expression/etoks.sty +2024/01/30 | 1689 | support/splint/examples/expression/expression.sty +2024/01/30 | 7718 | support/splint/examples/expression/expression.w +2024/01/30 | 1981 | support/splint/examples/expression/Makefile +2024/01/30 | 2070 | support/splint/examples/ld/ldexample.hw +2024/01/30 | 161 | support/splint/examples/ld/ldfrontmatter.sty +2024/01/30 | 36911 | support/splint/examples/ld/ldgramo.w +2024/01/30 | 46395 | support/splint/examples/ld/ldgram.w +2024/01/30 | 8319 | support/splint/examples/ld/ldint.sty +2024/01/30 | 28108 | support/splint/examples/ld/ldlexo.w +2024/01/30 | 27626 | support/splint/examples/ld/ldlex.w +2024/01/30 | 24430 | support/splint/examples/ld/ldman.w +2024/01/30 | 14260 | support/splint/examples/ld/ldnp.w +2024/01/30 | 9415 | support/splint/examples/ld/ldnump.w +2024/01/30 | 1717 | support/splint/examples/ld/ldtexlex.sty +2024/01/30 | 23823 | support/splint/examples/ld/ldunion.sty +2024/01/30 | 1282 | support/splint/examples/ld/lstokenset.sty +2024/01/30 | 4796 | support/splint/examples/ld/ltokenset.sty +2024/01/30 | 4875 | support/splint/examples/ld/Makefile +2024/01/30 | 1829 | support/splint/examples/symbols/Makefile +2024/01/30 | 691 | support/splint/examples/symbols/slimbo.sty +2024/01/30 | 19878 | support/splint/examples/symbols/symbols.w +2024/01/30 | 2301 | support/splint/examples/symbols/symfm.sty +2024/01/30 | 10833 | support/splint/examples/symbols/symmap.sty +2024/01/30 | 1051 | support/splint/examples/symbols/symtoks.sty +2024/01/30 | 899 | support/splint/examples/symbols/symtricks.sty +2024/01/30 | 11508 | support/splint/examples/types/basic.sty +2024/01/30 | 1048 | support/splint/examples/types/Makefile +2024/01/30 | 1799 | support/splint/examples/types/test.sty +2024/01/30 | 4700 | support/splint/examples/types/tree.sty +2024/01/30 | 2740 | support/splint/examples/xxpression/Makefile +2024/01/30 | 791 | support/splint/examples/xxpression/xtoks.sty +2024/01/30 | 1532 | support/splint/examples/xxpression/xxpression.sty +2024/01/30 | 13289 | support/splint/examples/xxpression/xxpression.w +2024/01/30 | 8873 | support/splint/examples/xxpression/xymmap.sty +2024/01/30 | 4593 | support/splint/INSTALL +2024/01/30 | 2739 | support/splint/Makefile +2024/01/30 | 4011 | support/splint/makefile.inc +2024/01/30 | 242 | support/splint/makefile.loc +2024/01/30 | 1856 | support/splint/other/texmf/macros/protcode.tex +2024/01/30 | 3725 | support/splint/README +2024/01/30 | 8616 | support/splint/scripts/bindx.pl +2024/01/30 | 9934 | support/splint/scripts/brack.pl +2024/01/30 | 2609 | support/splint/scripts/cslist.pl +2024/01/30 | 2295 | support/splint/scripts/misccw.pl +2024/01/30 | 2323 | support/splint/scripts/unline.pl +2024/01/30 | 1719 | support/splint/tex/btokenset.sty +2024/01/30 | 35342 | support/splint/tex/dcols.sty +2024/01/30 | 29226 | support/splint/tex/flex.sty +2024/01/30 | 17027 | support/splint/tex/fonts/idssbx10.vpl +2024/01/30 | 17059 | support/splint/tex/fonts/idssbx12.vpl +2024/01/30 | 16995 | support/splint/tex/fonts/idssbx5.vpl +2024/01/30 | 1280 | support/splint/tex/fonts/idssbx6.tfm +2024/01/30 | 828 | support/splint/tex/fonts/idssbx6.vf +2024/01/30 | 21931 | support/splint/tex/fonts/idssbx6.vpl +2024/01/30 | 1296 | support/splint/tex/fonts/idssbx7.tfm +2024/01/30 | 828 | support/splint/tex/fonts/idssbx7.vf +2024/01/30 | 17108 | support/splint/tex/fonts/idssbx7.vpl +2024/01/30 | 1280 | support/splint/tex/fonts/idssbx8.tfm +2024/01/30 | 828 | support/splint/tex/fonts/idssbx8.vf +2024/01/30 | 22052 | support/splint/tex/fonts/idssbx8.vpl +2024/01/30 | 1296 | support/splint/tex/fonts/idssbx9.tfm +2024/01/30 | 828 | support/splint/tex/fonts/idssbx9.vf +2024/01/30 | 22044 | support/splint/tex/fonts/idssbx9.vpl +2024/01/30 | 890 | support/splint/tex/fretokenset.sty +2024/01/30 | 158 | support/splint/tex/frontmatter.sty +2024/01/30 | 3611 | support/splint/tex/ftokenset.sty +2024/01/30 | 20564 | support/splint/tex/gindex.sty +2024/01/30 | 2916 | support/splint/tex/grabstates.sty +2024/01/30 | 11192 | support/splint/tex/hext.sty +2024/01/30 | 48339 | support/splint/tex/limbo.sty +2024/01/30 | 16681 | support/splint/tex/noweb.sty +2024/01/30 | 1574 | support/splint/tex/stokenset.sty +2024/01/30 | 1167 | support/splint/tex/trt1.sty +2024/01/30 | 8686 | support/splint/tex/xarithm.sty +2024/01/30 | 2701 | support/splint/tex/yybootstrap.sty +2024/01/30 | 42504 | support/splint/tex/yycommon.sty +2024/01/30 | 4426 | support/splint/tex/yydebug.sty +2024/01/30 | 13049 | support/splint/tex/yyfaststack.sty +2024/01/30 | 24773 | support/splint/tex/yyinit.sty +2024/01/30 | 11377 | support/splint/tex/yyinput.sty +2024/01/30 | 51296 | support/splint/tex/yymisc.sty +2024/01/30 | 2630 | support/splint/tex/yynested.sty +2024/01/30 | 11969 | support/splint/tex/yyparse.sty +2024/01/30 | 1123 | support/splint/tex/yypretty.sty +2024/01/30 | 3706 | support/splint/tex/yy.sty +2024/01/30 | 5071 | support/splint/tex/yystype.sty +2024/01/30 | 32731 | support/splint/tex/yytexlex.sty +2024/01/30 | 109116 | support/splint/tex/yyunion.sty +2024/01/30 | 2513 | support/splint/TODO +2024/01/30 | 6 | support/splint/VERSION +2024/01/31 | 2509557 | support/splint.zip 2022/01/03 | 2251 | support/SQLTeX/aclocal/ax_prog_perl_modules.m4 2022/01/23 | 27307 | support/SQLTeX/aclocal.m4 2022/01/23 | 106900 | support/SQLTeX/configure @@ -292369,7 +292373,7 @@ 2021/05/03 | 629 | support/TeX4ht/doc/README 2020/08/24 | 358454 | support/TeX4ht/doc/TeX4ht-doc.tex 2021/05/11 | 262 | support/TeX4ht/README -2024/01/29 | 244724 | support/TeX4ht/source/ChangeLog +2024/01/30 | 245025 | support/TeX4ht/source/ChangeLog 2021/05/03 | 1375 | support/TeX4ht/source/checklog.lua 2021/05/03 | 1189 | support/TeX4ht/source/common-code.tex 2021/05/03 | 2727 | support/TeX4ht/source/common-info.tex @@ -292411,7 +292415,7 @@ 2021/05/03 | 14218 | support/TeX4ht/source/tex4ht-htcmd.tex 2021/05/03 | 70683 | support/TeX4ht/source/tex4ht-html0.tex 2021/05/03 | 164748 | support/TeX4ht/source/tex4ht-html32.tex -2024/01/24 | 627765 | support/TeX4ht/source/tex4ht-html4.tex +2024/01/30 | 627772 | support/TeX4ht/source/tex4ht-html4.tex 2023/10/09 | 12034 | support/TeX4ht/source/tex4ht-html5.tex 2021/06/17 | 648233 | support/TeX4ht/source/tex4ht-html-speech.tex 2021/05/03 | 59483 | support/TeX4ht/source/tex4ht-html-speech-xtpipes.tex @@ -292429,7 +292433,7 @@ 2021/05/03 | 90707 | support/TeX4ht/source/tex4ht-jsml-xtpipes.tex 2023/10/12 | 8418 | support/TeX4ht/source/tex4ht-mathjax.tex 2021/05/03 | 102444 | support/TeX4ht/source/tex4ht-mathltx.tex -2024/01/29 | 154182 | support/TeX4ht/source/tex4ht-mathml.tex +2024/01/30 | 154182 | support/TeX4ht/source/tex4ht-mathml.tex 2021/05/03 | 8860 | support/TeX4ht/source/tex4ht-mathplayer.tex 2023/09/11 | 46498 | support/TeX4ht/source/tex4ht-mkht.tex 2021/05/03 | 26652 | support/TeX4ht/source/tex4ht-moz.tex @@ -296159,9 +296163,9 @@ 2019/12/07 | 327132 | systems/texlive/tlnet/archive/accsupp.doc.r53052.tar.xz 2019/12/07 | 3304 | systems/texlive/tlnet/archive/accsupp.r53052.tar.xz 2019/12/07 | 8184 | systems/texlive/tlnet/archive/accsupp.source.r53052.tar.xz -2022/11/26 | 880816 | systems/texlive/tlnet/archive/achemso.doc.r65103.tar.xz -2022/11/26 | 19300 | systems/texlive/tlnet/archive/achemso.r65103.tar.xz -2022/11/26 | 31496 | systems/texlive/tlnet/archive/achemso.source.r65103.tar.xz +2024/01/31 | 881516 | systems/texlive/tlnet/archive/achemso.doc.r69638.tar.xz +2024/01/31 | 19332 | systems/texlive/tlnet/archive/achemso.r69638.tar.xz +2024/01/31 | 31552 | systems/texlive/tlnet/archive/achemso.source.r69638.tar.xz 2024/01/23 | 4853068 | systems/texlive/tlnet/archive/acmart.doc.r69535.tar.xz 2024/01/23 | 42856 | systems/texlive/tlnet/archive/acmart.r69535.tar.xz 2024/01/23 | 62228 | systems/texlive/tlnet/archive/acmart.source.r69535.tar.xz @@ -297197,13 +297201,13 @@ 2019/02/28 | 376 | systems/texlive/tlnet/archive/bib2gls.amd64-freebsd.r45266.tar.xz 2019/02/28 | 372 | systems/texlive/tlnet/archive/bib2gls.amd64-netbsd.r45266.tar.xz 2019/02/28 | 372 | systems/texlive/tlnet/archive/bib2gls.armhf-linux.r45266.tar.xz -2023/10/14 | 5758584 | systems/texlive/tlnet/archive/bib2gls.doc.r68534.tar.xz +2024/01/31 | 5761384 | systems/texlive/tlnet/archive/bib2gls.doc.r69635.tar.xz 2019/02/28 | 372 | systems/texlive/tlnet/archive/bib2gls.i386-freebsd.r45266.tar.xz 2019/02/28 | 372 | systems/texlive/tlnet/archive/bib2gls.i386-linux.r45266.tar.xz 2019/02/28 | 372 | systems/texlive/tlnet/archive/bib2gls.i386-netbsd.r45266.tar.xz 2019/02/28 | 372 | systems/texlive/tlnet/archive/bib2gls.i386-solaris.r45266.tar.xz -2023/10/14 | 2019008 | systems/texlive/tlnet/archive/bib2gls.r68534.tar.xz -2023/10/14 | 1865876 | systems/texlive/tlnet/archive/bib2gls.source.r68534.tar.xz +2024/01/31 | 2031324 | systems/texlive/tlnet/archive/bib2gls.r69635.tar.xz +2024/01/31 | 1874256 | systems/texlive/tlnet/archive/bib2gls.source.r69635.tar.xz 2021/02/25 | 376 | systems/texlive/tlnet/archive/bib2gls.universal-darwin.r57908.tar.xz 2023/02/20 | 2368 | systems/texlive/tlnet/archive/bib2gls.windows.r65891.tar.xz 2019/02/28 | 376 | systems/texlive/tlnet/archive/bib2gls.x86_64-cygwin.r45266.tar.xz @@ -297767,9 +297771,9 @@ 2021/06/20 | 3180 | systems/texlive/tlnet/archive/bxjaprnind.r59641.tar.xz 2019/10/24 | 2068 | systems/texlive/tlnet/archive/bxjatoucs.doc.r52509.tar.xz 2019/10/24 | 25604 | systems/texlive/tlnet/archive/bxjatoucs.r52509.tar.xz -2023/07/18 | 1283184 | systems/texlive/tlnet/archive/bxjscls.doc.r67657.tar.xz -2023/07/18 | 34740 | systems/texlive/tlnet/archive/bxjscls.r67657.tar.xz -2023/07/18 | 93108 | systems/texlive/tlnet/archive/bxjscls.source.r67657.tar.xz +2024/01/31 | 1297828 | systems/texlive/tlnet/archive/bxjscls.doc.r69637.tar.xz +2024/01/31 | 35104 | systems/texlive/tlnet/archive/bxjscls.r69637.tar.xz +2024/01/31 | 93848 | systems/texlive/tlnet/archive/bxjscls.source.r69637.tar.xz 2019/02/28 | 2376 | systems/texlive/tlnet/archive/bxnewfont.doc.r44173.tar.xz 2019/02/28 | 4760 | systems/texlive/tlnet/archive/bxnewfont.r44173.tar.xz 2022/08/08 | 254532 | systems/texlive/tlnet/archive/bxorigcapt.doc.r64072.tar.xz @@ -302417,8 +302421,8 @@ 2023/02/18 | 40136 | systems/texlive/tlnet/archive/kpathsea.x86_64-linux.r65877.tar.xz 2023/02/18 | 44616 | systems/texlive/tlnet/archive/kpathsea.x86_64-solaris.r65877.tar.xz 2023/01/20 | 1622220 | systems/texlive/tlnet/archive/kpfonts.doc.r65583.tar.xz -2023/11/27 | 2035752 | systems/texlive/tlnet/archive/kpfonts-otf.doc.r68970.tar.xz -2023/11/27 | 1115636 | systems/texlive/tlnet/archive/kpfonts-otf.r68970.tar.xz +2024/01/31 | 2035528 | systems/texlive/tlnet/archive/kpfonts-otf.doc.r69636.tar.xz +2024/01/31 | 1115540 | systems/texlive/tlnet/archive/kpfonts-otf.r69636.tar.xz 2023/01/20 | 2246256 | systems/texlive/tlnet/archive/kpfonts.r65583.tar.xz 2019/02/28 | 3968 | systems/texlive/tlnet/archive/ksfh_nat.r24825.tar.xz 2019/02/28 | 146928 | systems/texlive/tlnet/archive/ksp-thesis.doc.r39080.tar.xz @@ -304075,8 +304079,8 @@ 2022/05/08 | 6576 | systems/texlive/tlnet/archive/mgltex.doc.r63255.tar.xz 2022/05/08 | 6348 | systems/texlive/tlnet/archive/mgltex.r63255.tar.xz 2022/05/08 | 31244 | systems/texlive/tlnet/archive/mgltex.source.r63255.tar.xz -2024/01/29 | 426852 | systems/texlive/tlnet/archive/mhchem.doc.r69624.tar.xz -2024/01/29 | 186400 | systems/texlive/tlnet/archive/mhchem.r69624.tar.xz +2024/01/31 | 427988 | systems/texlive/tlnet/archive/mhchem.doc.r69639.tar.xz +2024/01/31 | 185132 | systems/texlive/tlnet/archive/mhchem.r69639.tar.xz 2022/11/10 | 119848 | systems/texlive/tlnet/archive/mhequ.doc.r64978.tar.xz 2022/11/10 | 4352 | systems/texlive/tlnet/archive/mhequ.r64978.tar.xz 2020/03/24 | 332156 | systems/texlive/tlnet/archive/miama.doc.r54512.tar.xz @@ -307824,13 +307828,13 @@ 2023/08/16 | 108860 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.r67940.tar.xz 2023/08/16 | 87320 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.r67940.tar.xz 2023/08/16 | 69948 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.r67940.tar.xz -2024/01/30 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r69631.tar.xz +2024/01/31 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r69640.tar.xz 2023/08/16 | 93764 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.r67940.tar.xz 2023/08/16 | 91236 | systems/texlive/tlnet/archive/tex4ht.i386-linux.r67940.tar.xz 2023/08/16 | 76184 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.r67940.tar.xz 2023/08/16 | 83936 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.r67940.tar.xz -2024/01/30 | 1119012 | systems/texlive/tlnet/archive/tex4ht.r69631.tar.xz -2024/01/30 | 1486440 | systems/texlive/tlnet/archive/tex4ht.source.r69631.tar.xz +2024/01/31 | 1119032 | systems/texlive/tlnet/archive/tex4ht.r69640.tar.xz +2024/01/31 | 1481220 | systems/texlive/tlnet/archive/tex4ht.source.r69640.tar.xz 2023/08/16 | 184636 | systems/texlive/tlnet/archive/tex4ht.universal-darwin.r67940.tar.xz 2023/10/23 | 62056 | systems/texlive/tlnet/archive/tex4ht.windows.r68621.tar.xz 2023/08/16 | 57992 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r67940.tar.xz @@ -308108,7 +308112,7 @@ 2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz -2024/01/30 | 431908 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69626.tar.xz +2024/01/31 | 431908 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69633.tar.xz 2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz 2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz 2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz @@ -308130,7 +308134,7 @@ 2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz -2024/01/30 | 114048 | systems/texlive/tlnet/archive/texlive-scripts.r69626.tar.xz +2024/01/31 | 114048 | systems/texlive/tlnet/archive/texlive-scripts.r69633.tar.xz 2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz 2023/05/14 | 60312 | systems/texlive/tlnet/archive/texlive-scripts.windows.r67095.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz @@ -310034,16 +310038,16 @@ 2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz 2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz 2024/01/27 | 125030 | systems/texlive/tlnet/install-tl -2024/01/30 | 5746854 | systems/texlive/tlnet/install-tl-unx.tar.gz -2024/01/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2024/01/30 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2024/01/31 | 5748634 | systems/texlive/tlnet/install-tl-unx.tar.gz +2024/01/31 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2024/01/31 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat -2024/01/30 | 21029619 | systems/texlive/tlnet/install-tl-windows.exe -2024/01/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2024/01/30 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2024/01/30 | 26034288 | systems/texlive/tlnet/install-tl.zip -2024/01/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2024/01/30 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2024/01/31 | 21029477 | systems/texlive/tlnet/install-tl-windows.exe +2024/01/31 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2024/01/31 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2024/01/31 | 26034287 | systems/texlive/tlnet/install-tl.zip +2024/01/31 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2024/01/31 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc 2023/03/19 | 1229 | systems/texlive/tlnet/README.md 2023/03/19 | 0 | systems/texlive/tlnet/TEXLIVE_2023 2024/01/02 | 9011 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg @@ -310053,7 +310057,7 @@ 2024/01/02 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg 2024/01/16 | 50726 | systems/texlive/tlnet/tlpkg/installer/config.guess 2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt -2024/01/29 | 7322 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2024/01/30 | 7354 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2023/12/13 | 226639 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt 2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe 2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt @@ -310095,12 +310099,12 @@ 2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm 2024/01/07 | 5844 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm 2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm -2024/01/30 | 18819376 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2024/01/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2024/01/31 | 18819457 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2024/01/31 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2023/10/16 | 87924 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2024/01/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2024/01/30 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2024/01/30 | 2525028 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2024/01/31 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2024/01/31 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2024/01/31 | 2523732 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm 2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm 2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm @@ -321229,7 +321233,7 @@ 2014/07/05 | 611 | systems/win32/yandy/README 2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz 2014/07/05 | 1012416 | systems/win32/yandy.zip -2024/01/31 | 186 | timestamp +2024/02/01 | 186 | timestamp 2002/08/26 | 61898 | usergrps/dante/antrag.pdf 2002/08/26 | 118217 | usergrps/dante/antrag.ps 2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib diff --git a/FILES.byname.gz b/FILES.byname.gz index a6f8bff022..0c73121cd3 100644 Binary files a/FILES.byname.gz and b/FILES.byname.gz differ diff --git a/FILES.last07days b/FILES.last07days index 1625890fac..b7c44ca0a6 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,18 +1,136 @@ +2024/01/31 | 9632 | macros/latex/contrib/litetable/doc/litetable-doc-cn.tex +2024/01/31 | 959 | macros/luatex/latex/novel/lualatex/novel-JC200103.clo +2024/01/31 | 947 | macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo +2024/01/31 | 946 | macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo +2024/01/31 | 93848 | systems/texlive/tlnet/archive/bxjscls.source.r69637.tar.xz +2024/01/31 | 91213 | macros/latex/contrib/leftindex.zip +2024/01/31 | 89885 | macros/latex/contrib/leftindex/leftindex.pdf +2024/01/31 | 88420 | macros/latex/contrib/easybook/easybook.tex +2024/01/31 | 8821 | macros/luatex/latex/novel/lualatex/novel-PostLayout.sty +2024/01/31 | 881516 | systems/texlive/tlnet/archive/achemso.doc.r69638.tar.xz +2024/01/31 | 8446 | macros/latex/contrib/schooldocs/schooldocs-examples.tex +2024/01/31 | 786905 | macros/latex/contrib/refstyle.zip +2024/01/31 | 7562 | macros/luatex/latex/novel/lualatex/novel-DropCap.sty +2024/01/31 | 75050 | macros/latex/contrib/easybook/easybook.dtx +2024/01/31 | 6947 | macros/luatex/latex/novel/lualatex/novel-FileData.sty +2024/01/31 | 66217 | macros/latex/contrib/refstyle/refstyle.dtx +2024/01/31 | 641513 | macros/latex/contrib/easybook.zip +2024/01/31 | 6336 | macros/luatex/latex/novel/lualatex/novel-microtype.cfg +2024/01/31 | 598552 | macros/latex/contrib/easybook/easybook.pdf +2024/01/31 | 5761384 | systems/texlive/tlnet/archive/bib2gls.doc.r69635.tar.xz +2024/01/31 | 5748634 | systems/texlive/tlnet/install-tl-unx.tar.gz +2024/01/31 | 5416 | macros/latex/contrib/leftindex/leftindex.tex +2024/01/31 | 539823 | support/latexmk.zip +2024/01/31 | 52572 | macros/latex/contrib/hvextern/doc/hvextern.tex +2024/01/31 | 516745 | support/latexmk/latexmk.pl +2024/01/31 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2024/01/31 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2024/01/31 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2024/01/31 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2024/01/31 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2024/01/31 | 485427 | macros/latex/contrib/refstyle/refstyle.pdf +2024/01/31 | 46294 | macros/latex/contrib/litetable/doc/litetable-demo.pdf +2024/01/31 | 45891 | macros/latex/contrib/hvextern/latex/hvextern.sty +2024/01/31 | 4450424 | macros/luatex/latex/novel.zip +2024/01/31 | 4368 | macros/latex/contrib/leftindex/leftindex.sty +2024/01/31 | 431908 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69633.tar.xz +2024/01/31 | 427988 | systems/texlive/tlnet/archive/mhchem.doc.r69639.tar.xz +2024/01/31 | 42017 | macros/latex/contrib/schooldocs/schooldocs.dtx +2024/01/31 | 416395 | macros/latex/contrib/schooldocs.zip +2024/01/31 | 4116357 | biblio/ctan-bibdata.zip +2024/01/31 | 39974 | macros/latex/contrib/refstyle/refconfig.dtx +2024/01/31 | 3819 | macros/luatex/latex/novel/lualatex/novel-Sandbox.sty +2024/01/31 | 3708800 | biblio/ctan-bibdata/ctan.pdf +2024/01/31 | 368321 | macros/latex/contrib/litetable.zip +2024/01/31 | 3574 | macros/latex/contrib/refstyle/refstyle.ins +2024/01/31 | 35104 | systems/texlive/tlnet/archive/bxjscls.r69637.tar.xz +2024/01/31 | 3358 | macros/luatex/latex/novel/lualatex/novel-xmppacket.sty +2024/01/31 | 327224 | macros/luatex/latex/novel/doc/novel-documentation.html +2024/01/31 | 32644 | macros/luatex/latex/novel/doc/novel.pdf +2024/01/31 | 31552 | systems/texlive/tlnet/archive/achemso.source.r69638.tar.xz +2024/01/31 | 3133 | macros/latex/contrib/litetable/doc/litetable-demo.tex +2024/01/31 | 303725 | macros/latex/contrib/refstyle/refconfig.pdf +2024/01/31 | 2843275 | biblio/ctan-bibdata/ctan.bib +2024/01/31 | 2830 | macros/luatex/latex/novel/doc/novel.tex +2024/01/31 | 270592 | macros/latex/contrib/schooldocs/schooldocs-examples.pdf +2024/01/31 | 26034287 | systems/texlive/tlnet/install-tl.zip +2024/01/31 | 2523 | support/latexmk/README +2024/01/31 | 2523732 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2024/01/31 | 2509557 | support/splint.zip +2024/01/31 | 24694 | macros/luatex/latex/novel/lualatex/novel.cls +2024/01/31 | 242840 | support/latexmk/latexmk.txt +2024/01/31 | 230287 | support/latexmk/latexmk.pdf +2024/01/31 | 21698 | macros/luatex/latex/novel/lualatex/novel-TextMacros.sty +2024/01/31 | 21029477 | systems/texlive/tlnet/install-tl-windows.exe +2024/01/31 | 2035528 | systems/texlive/tlnet/archive/kpfonts-otf.doc.r69636.tar.xz +2024/01/31 | 2031324 | systems/texlive/tlnet/archive/bib2gls.r69635.tar.xz +2024/01/31 | 1997 | macros/latex/contrib/schooldocs/schooldocs.ins +2024/01/31 | 19795 | macros/luatex/latex/novel/lualatex/novel-Images.sty +2024/01/31 | 1966 | macros/latex/contrib/refstyle/README +2024/01/31 | 195651 | support/latexmk/latexmk.1 +2024/01/31 | 19332 | systems/texlive/tlnet/archive/achemso.r69638.tar.xz +2024/01/31 | 193124 | macros/latex/contrib/litetable/doc/litetable-doc-cn.pdf +2024/01/31 | 18819457 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2024/01/31 | 1874256 | systems/texlive/tlnet/archive/bib2gls.source.r69635.tar.xz +2024/01/31 | 185132 | systems/texlive/tlnet/archive/mhchem.r69639.tar.xz +2024/01/31 | 18082 | macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty +2024/01/31 | 17975 | support/latexmk/INSTALL +2024/01/31 | 17761 | macros/latex/contrib/litetable/doc/favicon.png +2024/01/31 | 1753682 | fonts/heuristica.zip +2024/01/31 | 17236 | macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty +2024/01/31 | 17156 | macros/luatex/latex/novel/lualatex/novel-Fonts.sty +2024/01/31 | 16911 | macros/luatex/latex/novel/lualatex/novel-pdfx.sty +2024/01/31 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2024/01/31 | 15781 | macros/luatex/latex/novel/lualatex/novel-Footnotes.sty +2024/01/31 | 157543 | macros/latex/contrib/schooldocs/schooldocs.pdf +2024/01/31 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2024/01/31 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2024/01/31 | 1481699 | macros/latex/contrib/hvextern/doc/hvextern.pdf +2024/01/31 | 1481220 | systems/texlive/tlnet/archive/tex4ht.source.r69640.tar.xz +2024/01/31 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2024/01/31 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2024/01/31 | 14281 | macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty +2024/01/31 | 1391882 | macros/latex/contrib/hvextern.zip +2024/01/31 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r69640.tar.xz +2024/01/31 | 13085 | macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty +2024/01/31 | 1297828 | systems/texlive/tlnet/archive/bxjscls.doc.r69637.tar.xz +2024/01/31 | 114048 | systems/texlive/tlnet/archive/texlive-scripts.r69633.tar.xz +2024/01/31 | 1119032 | systems/texlive/tlnet/archive/tex4ht.r69640.tar.xz +2024/01/31 | 1115540 | systems/texlive/tlnet/archive/kpfonts-otf.r69636.tar.xz +2024/01/31 | 1114 | macros/latex/contrib/leftindex/README.md +2024/01/31 | 10600 | macros/latex/contrib/litetable/doc/litetable-doc-en.tex +2024/01/31 | 103291 | macros/latex/contrib/litetable/doc/litetable-doc-en.pdf +2024/01/31 | 10187 | macros/latex/contrib/litetable/tex/litetable.cls +2024/01/30 | 9934 | support/splint/scripts/brack.pl 2024/01/30 | 986 | support/bib2gls/examples/sample-hierarchical.tex 2024/01/30 | 97818 | support/bib2gls/examples/sample-constants.pdf 2024/01/30 | 94820 | fonts/kpfonts-otf/fonts/KpSans-BoldItalic.otf 2024/01/30 | 94764 | fonts/kpfonts-otf/fonts/KpSans-Italic.otf +2024/01/30 | 9415 | support/splint/examples/ld/ldnump.w 2024/01/30 | 92 | fonts/kpfonts-otf/tex/KpMath-Light.fontspec 2024/01/30 | 91 | fonts/kpfonts-otf/tex/KpMath-Sans.fontspec 2024/01/30 | 918111 | macros/latex/contrib/achemso.zip 2024/01/30 | 913 | support/bib2gls/examples/sample-textsymbols2.tex 2024/01/30 | 90 | fonts/kpfonts-otf/tex/KpMath-Regular.fontspec -2024/01/30 | 88362 | macros/latex/contrib/easybook/easybook.tex +2024/01/30 | 899 | support/splint/examples/symbols/symtricks.sty +2024/01/30 | 890 | support/splint/tex/fretokenset.sty +2024/01/30 | 8873 | support/splint/examples/xxpression/xymmap.sty 2024/01/30 | 87012 | fonts/kpfonts-otf/fonts/KpSans-Bold.otf +2024/01/30 | 8686 | support/splint/tex/xarithm.sty +2024/01/30 | 8616 | support/splint/scripts/bindx.pl 2024/01/30 | 85752 | fonts/kpfonts-otf/fonts/KpSans-Regular.otf 2024/01/30 | 84379 | macros/unicodetex/latex/xgreek.zip +2024/01/30 | 835 | support/splint/examples/expression/etoks.sty +2024/01/30 | 8319 | support/splint/examples/ld/ldint.sty +2024/01/30 | 828 | support/splint/tex/fonts/idssbx9.vf +2024/01/30 | 828 | support/splint/tex/fonts/idssbx8.vf +2024/01/30 | 828 | support/splint/tex/fonts/idssbx7.vf +2024/01/30 | 828 | support/splint/tex/fonts/idssbx6.vf +2024/01/30 | 791 | support/splint/examples/xxpression/xtoks.sty 2024/01/30 | 780 | support/bib2gls/examples/sample-msymbols.tex -2024/01/30 | 75435 | macros/latex/contrib/easybook/easybook.dtx +2024/01/30 | 7718 | support/splint/examples/expression/expression.w +2024/01/30 | 745685 | support/splint/doc/ldman.pdf +2024/01/30 | 7354 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2024/01/30 | 73095 | support/bib2gls/examples/sample-textsymbols.pdf 2024/01/30 | 73014 | macros/unicodetex/latex/xgreek/xgreek.pdf 2024/01/30 | 720287 | support/bib2gls/bib2gls-begin.pdf @@ -20,18 +138,20 @@ 2024/01/30 | 7083 | macros/latex/contrib/achemso/achemso.ins 2024/01/30 | 7067 | language/japanese/BX/bxjscls/README.md 2024/01/30 | 70301 | support/bib2gls/examples/sample-textsymbols2.pdf +2024/01/30 | 6 | support/splint/VERSION +2024/01/30 | 691 | support/splint/examples/symbols/slimbo.sty 2024/01/30 | 6793 | support/bib2gls/README.md -2024/01/30 | 642129 | macros/latex/contrib/easybook.zip 2024/01/30 | 640 | support/bib2gls/examples/terms.bib 2024/01/30 | 630 | support/bib2gls/bib2gls.sh +2024/01/30 | 627772 | support/TeX4ht/source/tex4ht-html4.tex 2024/01/30 | 623092 | systems/texlive/tlnet/archive/easybook.doc.r69628.tar.xz 2024/01/30 | 61149 | support/bib2gls/examples/sample-markuplanguages.pdf -2024/01/30 | 599182 | macros/latex/contrib/easybook/easybook.pdf +2024/01/30 | 59121 | support/splint/cweb/bo.w 2024/01/30 | 59080 | support/bib2gls/examples/sample-units2.pdf 2024/01/30 | 578474 | support/bib2gls/src/bib2gls.bib 2024/01/30 | 576 | support/bib2gls/examples/binaryoperators.bib -2024/01/30 | 5746854 | systems/texlive/tlnet/install-tl-unx.tar.gz 2024/01/30 | 57344 | support/bib2gls/examples/sample-units1.pdf +2024/01/30 | 5712 | support/splint/cweb/Makefile 2024/01/30 | 557 | support/bib2gls/examples/unaryoperators.bib 2024/01/30 | 5520 | support/bib2gls/examples/sample-multi1.tex 2024/01/30 | 54928 | systems/texlive/tlnet/archive/proflycee.r69630.tar.xz @@ -39,6 +159,7 @@ 2024/01/30 | 54280 | support/bib2gls/examples/sample-bacteria.pdf 2024/01/30 | 54064 | support/bib2gls/examples/sample-chemical.pdf 2024/01/30 | 5353372 | support/bib2gls/bib2gls.pdf +2024/01/30 | 5258 | fonts/heuristica/README 2024/01/30 | 525861 | macros/latex/contrib/achemso/achemso.pdf 2024/01/30 | 52565 | support/bib2gls/examples/sample-nested.pdf 2024/01/30 | 52553 | support/bib2gls/examples/sample-hierarchical.pdf @@ -46,120 +167,184 @@ 2024/01/30 | 52450 | support/bib2gls/bib2gls-en.xml 2024/01/30 | 5156 | systems/texlive/tlnet/archive/pst-solarsystem.r69627.tar.xz 2024/01/30 | 51552 | support/bib2gls/examples/sample-authors.pdf +2024/01/30 | 51296 | support/splint/tex/yymisc.sty +2024/01/30 | 5071 | support/splint/tex/yystype.sty 2024/01/30 | 50319 | support/bib2gls/examples/sample-people.pdf 2024/01/30 | 49744 | support/bib2gls/examples/sample-citations.pdf 2024/01/30 | 49568 | fonts/kpfonts-otf/fonts/KpMono-Italic.otf -2024/01/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 -2024/01/30 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2024/01/30 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2024/01/30 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2024/01/30 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2024/01/30 | 4875 | support/splint/examples/ld/Makefile +2024/01/30 | 48339 | support/splint/tex/limbo.sty 2024/01/30 | 48260 | fonts/kpfonts-otf/fonts/KpMono-BoldItalic.otf 2024/01/30 | 480 | fonts/kpfonts-otf/tex/KpLight.fontspec +2024/01/30 | 4796 | support/splint/examples/ld/ltokenset.sty +2024/01/30 | 4730 | support/splint/cweb/references.w +2024/01/30 | 4700 | support/splint/examples/types/tree.sty 2024/01/30 | 469 | fonts/kpfonts-otf/tex/KpRoman.fontspec 2024/01/30 | 465390 | language/japanese/BX/bxjscls/bxjscls.dtx 2024/01/30 | 464 | macros/latex/contrib/achemso/LICENSE.md +2024/01/30 | 46395 | support/splint/examples/ld/ldgram.w +2024/01/30 | 4593 | support/splint/INSTALL 2024/01/30 | 454548 | systems/texlive/tlnet/archive/pst-solarsystem.doc.r69627.tar.xz 2024/01/30 | 451004 | fonts/kpfonts-otf/fonts/KpMath-Light.otf 2024/01/30 | 44643 | support/bib2gls/examples/sample-units3.pdf 2024/01/30 | 4446 | support/bib2gls/examples/people.bib +2024/01/30 | 4426 | support/splint/tex/yydebug.sty 2024/01/30 | 4384920 | fonts/kpfonts-otf.zip -2024/01/30 | 431908 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69626.tar.xz +2024/01/30 | 43527 | support/latexmk/CHANGES 2024/01/30 | 4298 | support/bib2gls/src/bib2gls-cite.bib 2024/01/30 | 425596 | fonts/kpfonts-otf/fonts/KpMath-Regular.otf +2024/01/30 | 42504 | support/splint/tex/yycommon.sty 2024/01/30 | 42248 | fonts/kpfonts-otf/fonts/KpMono-Regular.otf 2024/01/30 | 419576 | support/bib2gls/bib2gls.jar 2024/01/30 | 4117 | macros/unicodetex/latex/xgreek/README -2024/01/30 | 4116249 | biblio/ctan-bibdata.zip 2024/01/30 | 41096 | fonts/kpfonts-otf/fonts/KpMono-Bold.otf 2024/01/30 | 40825 | support/bib2gls/convertgls2bib.jar 2024/01/30 | 4053 | support/bib2gls/examples/usergroups.bib 2024/01/30 | 404 | support/bib2gls/convertgls2bib.sh 2024/01/30 | 4045 | support/bib2gls/src/convertgls2bib.pod 2024/01/30 | 402 | support/bib2gls/bib2gls-extra-nl.xml +2024/01/30 | 4011 | support/splint/makefile.inc 2024/01/30 | 388 | support/bib2gls/bib2gls-extra-en.xml 2024/01/30 | 383068 | macros/latex/contrib/achemso/achemso-demo.pdf -2024/01/30 | 3708800 | biblio/ctan-bibdata/ctan.pdf +2024/01/30 | 38032 | support/splint/cweb/so.w +2024/01/30 | 3774 | fonts/heuristica/tex/heuristica.sty +2024/01/30 | 3725 | support/splint/README +2024/01/30 | 3706 | support/splint/tex/yy.sty 2024/01/30 | 37064 | macros/unicodetex/latex/xgreek/xgreek.dtx +2024/01/30 | 36911 | support/splint/examples/ld/ldgramo.w 2024/01/30 | 3672 | support/bib2gls/examples/mathsobjects.bib +2024/01/30 | 3611 | support/splint/tex/ftokenset.sty 2024/01/30 | 35903 | fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.ltx +2024/01/30 | 3588 | support/splint/cweb/mkeparser.w +2024/01/30 | 35342 | support/splint/tex/dcols.sty +2024/01/30 | 35147 | support/splint/COPYING 2024/01/30 | 3496 | support/bib2gls/examples/books.bib 2024/01/30 | 338 | support/bib2gls/examples/interpret-preamble2.bib 2024/01/30 | 33476 | fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.ltx 2024/01/30 | 33240 | support/bib2gls/src/gls2bib-src.zip +2024/01/30 | 33108 | support/splint/cweb/lo.w 2024/01/30 | 330879 | support/bib2gls/examples/sample-multi2.pdf 2024/01/30 | 328 | support/bib2gls/examples/no-interpret-preamble.bib 2024/01/30 | 328 | support/bib2gls/examples/interpret-preamble.bib +2024/01/30 | 32731 | support/splint/tex/yytexlex.sty 2024/01/30 | 3254 | support/bib2gls/examples/sample-usergroups.tex 2024/01/30 | 322888 | support/bib2gls/src/bib2gls-src.zip 2024/01/30 | 3211 | support/bib2gls/examples/mathgreek.bib +2024/01/30 | 32049 | support/splint/cweb/fo.w 2024/01/30 | 3129 | support/bib2gls/examples/sample-maths.tex +2024/01/30 | 3095 | support/splint/cweb/checklists.w 2024/01/30 | 2994 | support/bib2gls/examples/bigmathsymbols.bib +2024/01/30 | 29508 | support/splint/cweb/common.w 2024/01/30 | 293084 | fonts/kpfonts-otf/fonts/KpMath-Sans.otf -2024/01/30 | 2843081 | biblio/ctan-bibdata/ctan.bib +2024/01/30 | 29226 | support/splint/tex/flex.sty +2024/01/30 | 2916 | support/splint/tex/grabstates.sty +2024/01/30 | 2878 | support/splint/cweb/mkscanner.w +2024/01/30 | 28108 | support/splint/examples/ld/ldlexo.w +2024/01/30 | 27626 | support/splint/examples/ld/ldlex.w +2024/01/30 | 2740 | support/splint/examples/xxpression/Makefile +2024/01/30 | 2739 | support/splint/Makefile +2024/01/30 | 2701 | support/splint/tex/yybootstrap.sty 2024/01/30 | 266 | support/bib2gls/examples/topics.bib -2024/01/30 | 26034288 | systems/texlive/tlnet/install-tl.zip +2024/01/30 | 265118 | support/splint/doc/tb109shibakov.pdf +2024/01/30 | 2630 | support/splint/tex/yynested.sty +2024/01/30 | 2609 | support/splint/scripts/cslist.pl 2024/01/30 | 2585 | support/bib2gls/examples/chemicalformula.bib 2024/01/30 | 256604 | fonts/kpfonts-otf/fonts/KpMath-Semibold.otf 2024/01/30 | 255473 | support/bib2gls/examples/sample-multi1.pdf -2024/01/30 | 2525028 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2024/01/30 | 25490 | support/splint/cweb/philosophy.w +2024/01/30 | 2513 | support/splint/TODO +2024/01/30 | 24773 | support/splint/tex/yyinit.sty +2024/01/30 | 245025 | support/TeX4ht/source/ChangeLog +2024/01/30 | 24430 | support/splint/examples/ld/ldman.w 2024/01/30 | 24421 | support/bib2gls/examples/sample-usergroups.pdf +2024/01/30 | 242 | support/splint/makefile.loc 2024/01/30 | 2419 | support/bib2gls/examples/minerals.bib +2024/01/30 | 2402 | macros/latex/contrib/hvextern/Changes 2024/01/30 | 2392 | support/bib2gls/examples/constants.bib +2024/01/30 | 23823 | support/splint/examples/ld/ldunion.sty 2024/01/30 | 2367 | support/bib2gls/examples/sample-people.tex 2024/01/30 | 236672 | support/bib2gls/src/bib2gls-begin.tex +2024/01/30 | 23404 | support/splint/cweb/bs.w 2024/01/30 | 232784 | fonts/kpfonts-otf/fonts/KpMath-Bold.otf +2024/01/30 | 2323 | support/splint/scripts/unline.pl 2024/01/30 | 231 | fonts/kpfonts-otf/tex/KpSans.fontspec +2024/01/30 | 2301 | support/splint/examples/symbols/symfm.sty 2024/01/30 | 2301 | support/bib2gls/examples/miscsymbols.bib 2024/01/30 | 22 | support/bib2gls/DEPENDS.txt -2024/01/30 | 21029619 | systems/texlive/tlnet/install-tl-windows.exe +2024/01/30 | 2295 | support/splint/scripts/misccw.pl +2024/01/30 | 22052 | support/splint/tex/fonts/idssbx8.vpl +2024/01/30 | 22044 | support/splint/tex/fonts/idssbx9.vpl +2024/01/30 | 21931 | support/splint/tex/fonts/idssbx6.vpl 2024/01/30 | 210056 | systems/texlive/tlnet/archive/llncs.doc.r69629.tar.xz +2024/01/30 | 2070 | support/splint/examples/ld/ldexample.hw +2024/01/30 | 20564 | support/splint/tex/gindex.sty 2024/01/30 | 20536 | support/bib2gls/bib2gls.1 2024/01/30 | 20246 | support/bib2gls/CHANGES 2024/01/30 | 20068 | fonts/kpfonts-otf/tex/kpfonts-otf.sty +2024/01/30 | 19878 | support/splint/examples/symbols/symbols.w +2024/01/30 | 1981 | support/splint/examples/expression/Makefile 2024/01/30 | 19671 | support/bib2gls/src/bib2gls-terms.bib +2024/01/30 | 19605 | support/splint/cweb/np.w 2024/01/30 | 19530 | macros/latex/contrib/achemso/CHANGELOG.md 2024/01/30 | 195060 | fonts/kpfonts-otf/fonts/KpMath-SansBold.otf 2024/01/30 | 1941 | support/bib2gls/examples/sample-citations.tex -2024/01/30 | 18819376 | systems/texlive/tlnet/tlpkg/texlive.tlpdb 2024/01/30 | 185 | fonts/kpfonts-otf/tex/KpMono.fontspec +2024/01/30 | 1856 | support/splint/other/texmf/macros/protcode.tex 2024/01/30 | 1839970 | fonts/kpfonts-otf/doc/unimath-kpfonts.pdf +2024/01/30 | 1829 | support/splint/examples/symbols/Makefile 2024/01/30 | 1808456 | systems/texlive/tlnet/archive/proflycee.doc.r69630.tar.xz 2024/01/30 | 180229 | fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-French.pdf +2024/01/30 | 1799 | support/splint/examples/types/test.sty 2024/01/30 | 1780212 | support/bib2gls/texparserlib.jar 2024/01/30 | 17747 | language/japanese/BX/bxjscls/README-ja.md 2024/01/30 | 1772 | support/bib2gls/examples/markuplanguages.bib 2024/01/30 | 176787 | fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf 2024/01/30 | 1740 | support/bib2gls/examples/sample-units3.tex 2024/01/30 | 1734 | support/bib2gls/examples/sample-media.tex +2024/01/30 | 1719 | support/splint/tex/btokenset.sty +2024/01/30 | 1717 | support/splint/examples/ld/ldtexlex.sty +2024/01/30 | 17108 | support/splint/tex/fonts/idssbx7.vpl +2024/01/30 | 17059 | support/splint/tex/fonts/idssbx12.vpl +2024/01/30 | 17027 | support/splint/tex/fonts/idssbx10.vpl +2024/01/30 | 16995 | support/splint/tex/fonts/idssbx5.vpl +2024/01/30 | 1689 | support/splint/examples/expression/expression.sty 2024/01/30 | 16806 | fonts/kpfonts-otf/doc/unimath-kpfonts.ltx -2024/01/30 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx 2024/01/30 | 16752 | systems/texlive/tlnet/archive/llncs.r69629.tar.xz +2024/01/30 | 16681 | support/splint/tex/noweb.sty 2024/01/30 | 166586 | support/bib2gls/examples/sample-media.pdf 2024/01/30 | 16520 | systems/texlive/tlnet/archive/easybook.r69628.tar.xz 2024/01/30 | 16432 | systems/texlive/tlnet/archive/easybook.source.r69628.tar.xz 2024/01/30 | 16202 | macros/latex/contrib/achemso/achemso-demo.tex +2024/01/30 | 161 | support/splint/examples/ld/ldfrontmatter.sty 2024/01/30 | 1607 | macros/unicodetex/latex/xgreek/xgreek.ins 2024/01/30 | 1603 | support/bib2gls/examples/animals.bib +2024/01/30 | 158 | support/splint/tex/frontmatter.sty 2024/01/30 | 1580 | support/bib2gls/examples/derivedunits.bib -2024/01/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2024/01/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2024/01/30 | 1574 | support/splint/tex/stokenset.sty +2024/01/30 | 15652 | support/splint/examples/count/count.sty +2024/01/30 | 15528 | support/splint/cweb/fk.w +2024/01/30 | 154182 | support/TeX4ht/source/tex4ht-mathml.tex +2024/01/30 | 1532 | support/splint/examples/xxpression/xxpression.sty 2024/01/30 | 1506 | support/bib2gls/examples/sample-authors.tex 2024/01/30 | 1496140 | support/bib2gls/src/texparser-src.zip 2024/01/30 | 149587 | macros/latex/contrib/achemso/achemso.dtx -2024/01/30 | 1486440 | systems/texlive/tlnet/archive/tex4ht.source.r69631.tar.xz 2024/01/30 | 1461 | language/japanese/BX/bxjscls/LICENSE -2024/01/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2024/01/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 2024/01/30 | 14415 | support/bib2gls/src/bib2gls.pod +2024/01/30 | 14260 | support/splint/examples/ld/ldnp.w 2024/01/30 | 1391 | support/bib2gls/examples/sample-markuplanguages.tex 2024/01/30 | 1382 | support/bib2gls/examples/sample-bacteria.tex 2024/01/30 | 1378 | support/bib2gls/examples/sample-constants.tex 2024/01/30 | 1371 | support/bib2gls/examples/citations.bib -2024/01/30 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r69631.tar.xz 2024/01/30 | 1344 | support/bib2gls/examples/sample-nested.tex 2024/01/30 | 1333 | macros/latex/contrib/achemso/README.md +2024/01/30 | 13289 | support/splint/examples/xxpression/xxpression.w +2024/01/30 | 13049 | support/splint/tex/yyfaststack.sty +2024/01/30 | 1296 | support/splint/tex/fonts/idssbx9.tfm +2024/01/30 | 1296 | support/splint/tex/fonts/idssbx7.tfm 2024/01/30 | 1291 | support/bib2gls/examples/sample-chemical.tex +2024/01/30 | 1282 | support/splint/examples/ld/lstokenset.sty +2024/01/30 | 1280 | support/splint/tex/fonts/idssbx8.tfm +2024/01/30 | 1280 | support/splint/tex/fonts/idssbx6.tfm 2024/01/30 | 12775 | support/bib2gls/examples/sample-multi2.tex 2024/01/30 | 126664 | fonts/kpfonts-otf/fonts/KpRoman-BoldItalic.otf 2024/01/30 | 1265 | support/bib2gls/examples/mathsrelations.bib @@ -169,21 +354,31 @@ 2024/01/30 | 121252 | support/bib2gls/examples/sample-maths.pdf 2024/01/30 | 1207 | support/bib2gls/examples/sample-textsymbols.tex 2024/01/30 | 12018463 | support/bib2gls.zip +2024/01/30 | 11969 | support/splint/tex/yyparse.sty 2024/01/30 | 117168 | fonts/kpfonts-otf/fonts/KpRoman-Italic.otf +2024/01/30 | 1167 | support/splint/tex/trt1.sty 2024/01/30 | 116696 | fonts/kpfonts-otf/fonts/KpRoman-LightItalic.otf 2024/01/30 | 116608 | fonts/kpfonts-otf/fonts/KpRoman-Bold.otf +2024/01/30 | 1157534 | support/splint/doc/splint.pdf +2024/01/30 | 11508 | support/splint/examples/types/basic.sty 2024/01/30 | 1146727 | support/bib2gls/src/bib2gls.tex 2024/01/30 | 114436 | fonts/kpfonts-otf/fonts/KpRoman-Regular.otf -2024/01/30 | 114048 | systems/texlive/tlnet/archive/texlive-scripts.r69626.tar.xz 2024/01/30 | 114024 | fonts/kpfonts-otf/fonts/KpRoman-Light.otf +2024/01/30 | 11377 | support/splint/tex/yyinput.sty 2024/01/30 | 113636 | fonts/kpfonts-otf/fonts/KpRoman-Semibold.otf -2024/01/30 | 1119012 | systems/texlive/tlnet/archive/tex4ht.r69631.tar.xz +2024/01/30 | 1123 | support/splint/tex/yypretty.sty +2024/01/30 | 11192 | support/splint/tex/hext.sty 2024/01/30 | 109247 | support/bib2gls/examples/sample-msymbols.pdf 2024/01/30 | 1091 | support/bib2gls/examples/vegetables.bib +2024/01/30 | 109116 | support/splint/tex/yyunion.sty +2024/01/30 | 10833 | support/splint/examples/symbols/symmap.sty 2024/01/30 | 1070 | support/bib2gls/examples/sample-units1.tex 2024/01/30 | 10627 | fonts/kpfonts-otf/README.md +2024/01/30 | 1051 | support/splint/examples/symbols/symtoks.sty +2024/01/30 | 1048 | support/splint/examples/types/Makefile 2024/01/30 | 1031 | support/bib2gls/examples/baseunits.bib 2024/01/30 | 1029932 | install/macros/latex/contrib/achemso.tds.zip +2024/01/30 | 101601 | support/splint/cweb/splint.w 2024/01/29 | 992 | macros/latex/contrib/llncs/README.md 2024/01/29 | 97401 | macros/latex/contrib/mhchem/hpstatement.inc/hpstatement-bg.inc.sty 2024/01/29 | 9564 | systems/texlive/tlnet/archive/randexam.r69622.tar.xz @@ -210,7 +405,6 @@ 2024/01/29 | 79034 | macros/latex/contrib/mhchem/hpstatement.inc/hpstatement-nl.inc.sty 2024/01/29 | 79025 | macros/latex/contrib/mhchem/hpstatement.inc/hpstatement-sv.inc.sty 2024/01/29 | 736 | macros/latex/contrib/mhchem/README -2024/01/29 | 7322 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2024/01/29 | 706861 | macros/latex/contrib/mhchem.zip 2024/01/29 | 67781 | macros/latex/contrib/mhchem/hpstatement.inc/hpstatement-ga.inc.sty 2024/01/29 | 546673 | graphics/pstricks/contrib/pst-solarsystem/doc/pst-solarsystem-doc.pdf @@ -219,7 +413,6 @@ 2024/01/29 | 504 | systems/texlive/tlnet/archive/comprehensive.r69619.tar.xz 2024/01/29 | 504991 | graphics/pstricks/contrib/pst-solarsystem.zip 2024/01/29 | 43402 | macros/latex/contrib/llncs/llncs.cls -2024/01/29 | 426852 | systems/texlive/tlnet/archive/mhchem.doc.r69624.tar.xz 2024/01/29 | 410230 | macros/latex/contrib/mhchem/mhchem.pdf 2024/01/29 | 383 | graphics/pstricks/contrib/pst-solarsystem/README 2024/01/29 | 381 | graphics/pstricks/contrib/pst-solarsystem/Changes @@ -227,15 +420,12 @@ 2024/01/29 | 340016 | support/TeX4ht/source/tex4ht-ooffice.tex 2024/01/29 | 32786992 | systems/texlive/tlnet/archive/comprehensive.doc.r69619.tar.xz 2024/01/29 | 246371 | macros/latex/contrib/proflycee/doc/ProfLycee-docctan.zip -2024/01/29 | 244724 | support/TeX4ht/source/ChangeLog 2024/01/29 | 232527 | macros/latex/contrib/llncs/llncsdoc.pdf 2024/01/29 | 231160 | macros/latex/contrib/llncs.zip 2024/01/29 | 218680 | systems/texlive/tlnet/archive/randexam.doc.r69622.tar.xz 2024/01/29 | 1885482 | macros/latex/contrib/proflycee.zip -2024/01/29 | 186400 | systems/texlive/tlnet/archive/mhchem.r69624.tar.xz 2024/01/29 | 17763 | macros/latex/contrib/llncs/llncsdoc.tex 2024/01/29 | 15670 | macros/latex/contrib/mhchem/hpstatement.sty -2024/01/29 | 154182 | support/TeX4ht/source/tex4ht-mathml.tex 2024/01/29 | 151648 | systems/texlive/tlnet/archive/texlive-msg-translations.r69618.tar.xz 2024/01/29 | 1421999 | language/japanese/BX/bxjscls.zip 2024/01/29 | 1348 | systems/texlive/tlnet/archive/hvqrurl.r69621.tar.xz @@ -910,6 +1100,7 @@ 2024/01/26 | 54940 | macros/latex/contrib/memoir/README 2024/01/26 | 5427 | macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty 2024/01/26 | 522 | macros/latex/contrib/metalogox/README.txt +2024/01/26 | 517 | macros/luatex/latex/novel/README.md 2024/01/26 | 51438 | macros/latex/contrib/undar-digitacion/undar-digitacion-doc.tex 2024/01/26 | 5106 | macros/latex/contrib/tagpdf/tagpdf-space.dtx 2024/01/26 | 490609 | macros/latex/contrib/proof-at-the-end.zip @@ -1054,7 +1245,6 @@ 2024/01/26 | 1095221 | macros/latex/contrib/tagpdf/tagpdf.pdf 2024/01/26 | 1063 | macros/latex/contrib/tagpdf/ex-list.tex 2024/01/25 | 968305 | macros/latex/contrib/nicematrix/nicematrix-code.pdf -2024/01/25 | 96119 | macros/luatex/generic/luamplib/luamplib.dtx 2024/01/25 | 9239 | macros/latex/contrib/siunitx/siunitx-symbol.dtx 2024/01/25 | 8866 | macros/latex/contrib/siunitx/siunitx-command.dtx 2024/01/25 | 87549 | fonts/newtxsf/tex/newtxsf.sty @@ -1072,14 +1262,12 @@ 2024/01/25 | 591142 | macros/latex/contrib/nicematrix/nicematrix-code.dtx 2024/01/25 | 5831 | macros/latex/contrib/siunitx/siunitx-locale.dtx 2024/01/25 | 5808 | systems/texlive/tlnet/archive/genealogy-profiles.r69580.tar.xz -2024/01/25 | 5611 | macros/luatex/generic/luamplib/test-luamplib-latex.tex 2024/01/25 | 55728 | macros/latex/contrib/siunitx/siunitx-table.dtx 2024/01/25 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg 2024/01/25 | 43807 | macros/latex/contrib/siunitx/siunitx-compound.dtx 2024/01/25 | 405 | macros/latex/contrib/non-decimal-units/README.md 2024/01/25 | 4024 | systems/texlive/tlnet/archive/moloch.r69579.tar.xz 2024/01/25 | 39328 | macros/latex/contrib/siunitx/siunitx-complex.dtx -2024/01/25 | 3872 | macros/luatex/generic/luamplib/test-luamplib-plain.tex 2024/01/25 | 385538 | fonts/newtxsf.zip 2024/01/25 | 37836 | macros/latex/contrib/siunitx/siunitx-print.dtx 2024/01/25 | 3687 | macros/latex/contrib/siunitx/siunitx.ins @@ -1094,7 +1282,6 @@ 2024/01/25 | 2894 | fonts/newtxsf/README 2024/01/25 | 28744 | macros/latex/contrib/unicode-math-input/unicode-math-input.sty 2024/01/25 | 2796 | systems/texlive/tlnet/archive/hvlogos.r69581.tar.xz -2024/01/25 | 2752 | macros/luatex/generic/luamplib/Makefile 2024/01/25 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty 2024/01/25 | 269508 | systems/texlive/tlnet/archive/moloch.doc.r69579.tar.xz 2024/01/25 | 2636 | macros/latex/contrib/siunitx/siunitx-code.tex @@ -1104,9 +1291,7 @@ 2024/01/25 | 22232 | macros/latex/contrib/siunitx/siunitx.dtx 2024/01/25 | 21 | macros/latex/contrib/unicode-math-input/DEPENDS.txt 2024/01/25 | 21026 | macros/latex/contrib/unicode-math-input/unicode-math-input.tex -2024/01/25 | 2058 | macros/luatex/generic/luamplib/README 2024/01/25 | 20367 | macros/latex/contrib/non-decimal-units/latex/non-decimal-units.sty -2024/01/25 | 202307 | install/macros/luatex/generic/luamplib.tds.zip 2024/01/25 | 19889 | macros/latex/contrib/unicode-math-input/unicode-math-input-script.py 2024/01/25 | 1958 | info/dtxtut/cskeleton.ins 2024/01/25 | 1957 | info/dtxtut/skeleton.ins @@ -1121,7 +1306,6 @@ 2024/01/25 | 162527 | macros/latex/contrib/siunitx/siunitx-number.dtx 2024/01/25 | 1594455 | install/macros/latex/contrib/siunitx.tds.zip 2024/01/25 | 1547061 | macros/latex/contrib/siunitx.zip -2024/01/25 | 153451 | macros/luatex/generic/luamplib/luamplib.pdf 2024/01/25 | 15311 | macros/latex/contrib/siunitx/siunitx-quantity.dtx 2024/01/25 | 141090 | macros/latex/contrib/unicode-math-input.zip 2024/01/25 | 138874 | macros/latex/contrib/undar-digitacion/undar-digitacion.sty @@ -1132,186 +1316,3 @@ 2024/01/25 | 107152 | macros/latex/contrib/unicode-math-input/unicode-math-input.pdf 2024/01/25 | 103567 | macros/latex/contrib/siunitx/siunitx-unit.dtx 2024/01/25 | 102640 | macros/latex/contrib/unicode-math-input/unicode-math-input-table.tex -2024/01/25 | 10222 | macros/luatex/generic/luamplib/NEWS -2024/01/24 | 97388 | systems/texlive/tlnet/archive/ekdosis.source.r69568.tar.xz -2024/01/24 | 9439 | graphics/bclogo/metapost/bc-oeil.mp -2024/01/24 | 933 | graphics/bclogo/metapost/bc-femme.mp -2024/01/24 | 9246 | graphics/bclogo/doc/syracuse.pdf -2024/01/24 | 9168 | graphics/bclogo/doc/syracuse-crop.pdf -2024/01/24 | 89375 | macros/latex/contrib/hvlogos.zip -2024/01/24 | 89170 | graphics/bclogo/tex/bc-plume.mps -2024/01/24 | 887 | graphics/bclogo/metapost/bc-nucleaire.mp -2024/01/24 | 880 | systems/texlive/tlnet/archive/dvisvgm.r69568.tar.xz -2024/01/24 | 86714 | macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf -2024/01/24 | 863 | graphics/bclogo/doc/brace.mps -2024/01/24 | 8585 | graphics/bclogo/tex/bc-icosaedre.mps -2024/01/24 | 8567 | graphics/bclogo/metapost/bc-icosaedre.mp -2024/01/24 | 816684 | systems/texlive/tlnet/archive/ekdosis.doc.r69568.tar.xz -2024/01/24 | 811 | graphics/bclogo/metapost/bc-homme.mp -2024/01/24 | 8055 | graphics/bclogo/tex/bc-velo.mps -2024/01/24 | 791428 | systems/texlive/tlnet/archive/ppt-slides.doc.r69568.tar.xz -2024/01/24 | 7808 | graphics/bclogo/tex/bc-dodecaedre.mps -2024/01/24 | 7659 | macros/latex/contrib/hvlogos/latex/hvlogos.sty -2024/01/24 | 7511 | graphics/bclogo/tex/bc-ours.mps -2024/01/24 | 713 | macros/latex/contrib/hvlogos/Changes -2024/01/24 | 7118 | graphics/bclogo/metapost/bc-dodecaedre.mp -2024/01/24 | 6688 | systems/texlive/tlnet/archive/ppt-slides.source.r69568.tar.xz -2024/01/24 | 6668 | graphics/bclogo/tex/bc-oeil.mps -2024/01/24 | 664770 | graphics/bclogo/doc/bclogo-doc.pdf -2024/01/24 | 646 | graphics/bclogo/metapost/bc-peaceandlove.mp -2024/01/24 | 6447 | graphics/bclogo/metapost/bc-rosevents.mp -2024/01/24 | 6396 | graphics/bclogo/tex/bc-dbelgique.mps -2024/01/24 | 6392 | graphics/bclogo/tex/bc-ditalie.mps -2024/01/24 | 6392 | graphics/bclogo/tex/bc-dfrance.mps -2024/01/24 | 627765 | support/TeX4ht/source/tex4ht-html4.tex -2024/01/24 | 6267 | graphics/bclogo/metapost/bc-dfrance.mp -2024/01/24 | 6246 | graphics/bclogo/metapost/bc-ditalie.mp -2024/01/24 | 6240 | graphics/bclogo/metapost/bc-dbelgique.mp -2024/01/24 | 6225 | graphics/bclogo/metapost/bc-fleur.mp -2024/01/24 | 611 | graphics/bclogo/doc/syracuse.tex -2024/01/24 | 6079 | graphics/bclogo/metapost/bc-trefle.mp -2024/01/24 | 5923 | graphics/bclogo/tex/bc-recyclage.mps -2024/01/24 | 5835 | graphics/bclogo/metapost/bc-poisson.mp -2024/01/24 | 577320 | systems/texlive/tlnet/archive/frenchmath.doc.r69568.tar.xz -2024/01/24 | 5648 | graphics/bclogo/metapost/bc-inter.mp -2024/01/24 | 560 | systems/texlive/tlnet/archive/antique-spanish-units.r69568.tar.xz -2024/01/24 | 5502 | graphics/bclogo/metapost/bc-book.mp -2024/01/24 | 5460 | systems/texlive/tlnet/archive/lua-placeholders.r69568.tar.xz -2024/01/24 | 5414 | graphics/bclogo/metapost/bc-calendrier.mp -2024/01/24 | 5339 | graphics/bclogo/metapost/bc-bombe.mp -2024/01/24 | 53066 | graphics/bclogo/metapost/losanges.mp -2024/01/24 | 5207 | graphics/bclogo/tex/bc-rosevents.mps -2024/01/24 | 5188 | graphics/bclogo/tex/bc-bombe.mps -2024/01/24 | 5178 | graphics/bclogo/tex/bc-feutricolore.mps -2024/01/24 | 495 | graphics/bclogo/LICENSE -2024/01/24 | 48 | systems/texlive/tlcontrib/tlpkg/texlive.tlpdb.md5 -2024/01/24 | 488 | systems/texlive/tlcontrib/tlpkg/texlive.tlpdb.sha512.asc -2024/01/24 | 4798 | graphics/bclogo/tex/bc-poisson.mps -2024/01/24 | 4759 | graphics/bclogo/tex/bc-trefle.mps -2024/01/24 | 4669 | graphics/bclogo/metapost/bc-info.mp -2024/01/24 | 4539 | graphics/bclogo/tex/bc-book.mps -2024/01/24 | 4474 | graphics/bclogo/tex/bc-fleur.mps -2024/01/24 | 4383 | graphics/bclogo/tex/bc-inter.mps -2024/01/24 | 436 | graphics/bclogo/README.md -2024/01/24 | 4336 | graphics/bclogo/metapost/bc-attention.mp -2024/01/24 | 418 | macros/latex/contrib/genealogy-profiles/README.md -2024/01/24 | 4116 | systems/texlive/tlnet/archive/ppt-slides.r69568.tar.xz -2024/01/24 | 4065 | graphics/bclogo/doc/bclogo.pdf -2024/01/24 | 4058 | graphics/bclogo/tex/bc-feurouge.mps -2024/01/24 | 4048 | graphics/bclogo/tex/bc-feujaune.mps -2024/01/24 | 4032 | graphics/bclogo/tex/bc-feuvert.mps -2024/01/24 | 3944 | systems/texlive/tlnet/archive/latino-sine-flexione.doc.r69568.tar.xz -2024/01/24 | 3894 | graphics/bclogo/tex/bc-octaedre.mps -2024/01/24 | 38933 | graphics/bclogo/doc/losanges.mps -2024/01/24 | 3818 | graphics/bclogo/tex/bc-cube.mps -2024/01/24 | 3748 | graphics/bclogo/metapost/bc-octaedre.mp -2024/01/24 | 3715 | graphics/bclogo/metapost/bc-takecare.mp -2024/01/24 | 3648 | graphics/bclogo/tex/bc-info.mps -2024/01/24 | 3634 | graphics/bclogo/metapost/bc-stop.mp -2024/01/24 | 3570 | graphics/bclogo/tex/bc-neige.mps -2024/01/24 | 3500 | graphics/bclogo/metapost/bc-cle.mp -2024/01/24 | 3482 | graphics/bclogo/metapost/bc-aux-301.mp -2024/01/24 | 3392 | graphics/bclogo/metapost/bc-clesol.mp -2024/01/24 | 3357 | graphics/bclogo/tex/bc-attention.mps -2024/01/24 | 3351 | graphics/bclogo/metapost/bc-cube.mp -2024/01/24 | 3305 | graphics/bclogo/tex/bc-nucleaire.mps -2024/01/24 | 3238 | graphics/bclogo/tex/bc-aux-301.mps -2024/01/24 | 32354 | graphics/bclogo/doc/bclogo-doc.tex -2024/01/24 | 321196 | systems/texlive/tlcontrib/archive/fontsetup-nonfree.doc.r378.tar.xz -2024/01/24 | 3082 | graphics/bclogo/tex/bc-takecare.mps -2024/01/24 | 3006 | graphics/bclogo/metapost/bc-soleil.mp -2024/01/24 | 3004 | graphics/bclogo/tex/bc-clesol.mps -2024/01/24 | 2934 | graphics/bclogo/metapost/bc-smiley-mauvaisehumeur.mp -2024/01/24 | 2902 | graphics/bclogo/metapost/bc-dz.mp -2024/01/24 | 2882 | graphics/bclogo/metapost/bc-smiley-bonnehumeur.mp -2024/01/24 | 2824 | systems/texlive/tlnet/archive/frenchmath.r69568.tar.xz -2024/01/24 | 2813 | graphics/bclogo/tex/bc-soleil.mps -2024/01/24 | 280330 | macros/latex/contrib/beamer-contrib/themes/moloch.zip -2024/01/24 | 2802 | graphics/bclogo/metapost/bc-feutricolore.mp -2024/01/24 | 2789 | graphics/bclogo/metapost/bc-yin.mp -2024/01/24 | 2688 | graphics/bclogo/metapost/bc-eclaircie.mp -2024/01/24 | 2612 | graphics/bclogo/metapost/bc-feujaune.mp -2024/01/24 | 2611 | graphics/bclogo/metapost/bc-feuvert.mp -2024/01/24 | 2611 | graphics/bclogo/metapost/bc-feurouge.mp -2024/01/24 | 256428 | systems/texlive/tlnet/archive/lua-placeholders.doc.r69568.tar.xz -2024/01/24 | 2555 | graphics/bclogo/tex/bc-eclaircie.mps -2024/01/24 | 25116 | graphics/bclogo/tex/bclogo.sty -2024/01/24 | 250355 | macros/latex/contrib/nicematrix/nicematrix-french.tex -2024/01/24 | 2477 | graphics/bclogo/metapost/bc-tetraedre.mp -2024/01/24 | 2464 | graphics/bclogo/tex/bc-smiley-mauvaisehumeur.mps -2024/01/24 | 2457 | graphics/bclogo/tex/bc-smiley-bonnehumeur.mps -2024/01/24 | 2448 | graphics/bclogo/tex/bc-dz.mps -2024/01/24 | 2432 | graphics/bclogo/tex/bc-tetraedre.mps -2024/01/24 | 2418 | graphics/bclogo/tex/bc-lampe.mps -2024/01/24 | 2399 | graphics/bclogo/tex/bc-cle.mps -2024/01/24 | 2376 | graphics/bclogo/metapost/bc-lampe.mp -2024/01/24 | 23549 | graphics/bclogo/tex/bc-calendrier.mps -2024/01/24 | 23472 | macros/latex/contrib/genealogy-profiles/latex/genealogy-profiles.sty -2024/01/24 | 233937 | graphics/bclogo/tex/bc-valetcoeur.mps -2024/01/24 | 2318 | graphics/bclogo/metapost/bc-note.mp -2024/01/24 | 229836 | systems/texlive/tlnet/archive/antique-spanish-units.doc.r69568.tar.xz -2024/01/24 | 2275 | graphics/bclogo/tex/bc-yin.mps -2024/01/24 | 2194 | graphics/bclogo/metapost/bc-clefa.mp -2024/01/24 | 21688 | systems/texlive/tlnet/archive/ekdosis.r69568.tar.xz -2024/01/24 | 2159 | graphics/bclogo/metapost/bc-interdit.mp -2024/01/24 | 2100 | graphics/bclogo/tex/bc-note.mps -2024/01/24 | 2069 | graphics/bclogo/metapost/bc-neige.mp -2024/01/24 | 1916 | graphics/bclogo/metapost/bc-loupe.mp -2024/01/24 | 19072 | graphics/bclogo/tex/bc-stop.mps -2024/01/24 | 1881 | graphics/bclogo/metapost/bc-horloge.mp -2024/01/24 | 1875 | graphics/bclogo/metapost/bc-trombone.mp -2024/01/24 | 18340 | macros/latex/contrib/genealogy-profiles/docs/genealogy-profiles.tex -2024/01/24 | 1819 | graphics/bclogo/tex/bc-interdit.mps -2024/01/24 | 180965 | graphics/bclogo/metapost/bc-valetcoeur.mp -2024/01/24 | 1803 | graphics/bclogo/tex/bc-clefa.mps -2024/01/24 | 1770 | graphics/bclogo/metapost/bc-pluie.mp -2024/01/24 | 1737863 | systems/texlive/tlcontrib/tlpkg/texlive.tlpdb -2024/01/24 | 1690 | graphics/bclogo/tex/bc-pluie.mps -2024/01/24 | 1645 | graphics/bclogo/tex/bc-loupe.mps -2024/01/24 | 1618 | graphics/bclogo/metapost/spir.mp -2024/01/24 | 1589 | graphics/bclogo/tex/bc-trombone.mps -2024/01/24 | 1567 | graphics/bclogo/metapost/bc-outil.mp -2024/01/24 | 1556 | graphics/bclogo/tex/bc-outil.mps -2024/01/24 | 15052 | graphics/bclogo/metapost/bc-crayon.mp -2024/01/24 | 14941 | graphics/bclogo/metapost/bc-orne.mp -2024/01/24 | 14532 | systems/texlive/tlnet/archive/frenchmath.source.r69568.tar.xz -2024/01/24 | 144 | systems/texlive/tlcontrib/tlpkg/texlive.tlpdb.sha512 -2024/01/24 | 144 | graphics/bclogo/doc/toto.txt -2024/01/24 | 1441 | graphics/bclogo/tex/bc-femme.mps -2024/01/24 | 1439 | macros/latex/contrib/genealogy-profiles/docs/genealogy-profiles.preamble.sty -2024/01/24 | 1419 | graphics/bclogo/tex/bc-peaceandlove.mps -2024/01/24 | 139725 | macros/latex/contrib/genealogy-profiles.zip -2024/01/24 | 1376 | graphics/bclogo/tex/bc-homme.mps -2024/01/24 | 1372 | systems/texlive/tlnet/archive/latino-sine-flexione.r69568.tar.xz -2024/01/24 | 1344 | graphics/bclogo/metapost/brace.mp -2024/01/24 | 132492 | macros/latex/contrib/genealogy-profiles/docs/genealogy-profiles.pdf -2024/01/24 | 1309 | graphics/bclogo/doc/fond.pdf -2024/01/24 | 1294 | graphics/bclogo/metapost/bc-danger.mp -2024/01/24 | 1280 | graphics/bclogo/tex/bc-danger.mps -2024/01/24 | 12526 | graphics/bclogo/tex/bc-horloge.mps -2024/01/24 | 122078143 | macros/context/latest/cont-tmf.zip -2024/01/24 | 1206 | graphics/bclogo/metapost/bc-etoile.mp -2024/01/24 | 1194 | graphics/bclogo/tex/bc-etoile.mps -2024/01/24 | 119479 | graphics/bclogo/metapost/bc-plume.mp -2024/01/24 | 1188 | systems/texlive/tlcontrib/archive/fontsetup-nonfree.r378.tar.xz -2024/01/24 | 114196 | systems/texlive/tlcontrib/tlpkg/texlive.tlpdb.xz -2024/01/24 | 11119 | graphics/bclogo/tex/bc-orne.mps -2024/01/24 | 109776 | systems/texlive/tlnet/archive/dvisvgm.doc.r69568.tar.xz -2024/01/24 | 1073 | graphics/bclogo/tex/bc-coeur.mps -2024/01/24 | 10694 | graphics/bclogo/metapost/bc-recyclage.mp -2024/01/24 | 10569 | graphics/bclogo/metapost/bc-velo.mp -2024/01/24 | 10559 | graphics/bclogo/tex/bc-dautriche.mps -2024/01/24 | 10558 | graphics/bclogo/tex/bc-dpaysbas.mps -2024/01/24 | 10553 | graphics/bclogo/tex/bc-dbulgarie.mps -2024/01/24 | 10550 | graphics/bclogo/tex/bc-dluxembourg.mps -2024/01/24 | 10534 | graphics/bclogo/tex/bc-dallemagne.mps -2024/01/24 | 1051908 | graphics/bclogo.zip -2024/01/24 | 1050 | graphics/bclogo/doc/spir.mps -2024/01/24 | 10508 | graphics/bclogo/tex/bc-crayon.mps -2024/01/24 | 10458 | graphics/bclogo/metapost/bc-dautriche.mp -2024/01/24 | 10453 | graphics/bclogo/metapost/bc-dpaysbas.mp -2024/01/24 | 10449 | graphics/bclogo/metapost/bc-dluxembourg.mp -2024/01/24 | 1042 | graphics/bclogo/metapost/bc-coeur.mp -2024/01/24 | 10428 | graphics/bclogo/metapost/bc-dbulgarie.mp -2024/01/24 | 10399 | graphics/bclogo/metapost/bc-dallemagne.mp -2024/01/24 | 10389 | graphics/bclogo/metapost/bc-ours.mp diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib index 100d9dfd7f..35883ac57c 100644 --- a/biblio/ctan-bibdata/ctan.bib +++ b/biblio/ctan-bibdata/ctan.bib @@ -1,7 +1,7 @@ %% bib file of all CTAN packages %% (C) Herbert Voß %% -%% created at 30-01-2024, 02:00:04 +%% created at 31-01-2024, 02:00:04 %% %% This file is provided under the terms of the LPPL v1.3 or @@ -435,9 +435,9 @@ title = {The \texttt{achemso} package}, subtitle = {Support for American Chemical Society journal submissions}, author = {Joseph Wright and Mats Dahlgren}, - date = {2022-11-25}, - version = {3.13f}, - license = {lppl1.3c}, + date = {2024-01-30}, + version = {3.13g}, + license = {lppl1.3c,other-free}, mirror = {https://mirror.ctan.org/macros/latex/contrib/achemso}, url = {https://ctan.org/pkg/achemso}, } @@ -1391,10 +1391,10 @@ title = {The \texttt{alatex} package}, subtitle = {Abstract \LaTeX{}}, author = {Matt Swift}, - date = {2019-06-21}, + date = {2024-01-30}, version = {1.0}, license = {gpl}, - mirror = {https://mirror.ctan.org/macros/alatex/alatex-1.0}, + mirror = {https://mirror.ctan.org/obsolete/macros/alatex/alatex-1.0}, url = {https://ctan.org/pkg/alatex}, } @@ -6787,8 +6787,8 @@ title = {The \texttt{bib2gls} package}, subtitle = {Command line application to convert .bib files to glossaries-extra.sty resource files}, author = {Nicola Talbot}, - date = {2023-10-13}, - version = {3.8}, + date = {2024-01-30}, + version = {3.9}, license = {gpl3+}, mirror = {https://mirror.ctan.org/support/bib2gls}, url = {https://ctan.org/pkg/bib2gls}, @@ -9120,9 +9120,9 @@ title = {The \texttt{blue} package}, subtitle = {A document preparation system}, author = {Kees van der Laan}, - date = {2016-06-24}, + date = {2024-01-30}, license = {shareware}, - mirror = {https://mirror.ctan.org/macros/blu}, + mirror = {https://mirror.ctan.org/obsolete/macros/blu}, url = {https://ctan.org/pkg/blue}, annotation = {The BLUe format is a concise but expressive document preparation system modelled on Knuth's manmac; the @@ -20707,8 +20707,8 @@ title = {The \texttt{easybook} package}, subtitle = {Easily typesetting Chinese theses or books}, author = {Qu Yi}, - date = {2024-01-29}, - version = {2024P}, + date = {2024-01-30}, + version = {2024R}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/easybook}, url = {https://ctan.org/pkg/easybook}, @@ -27387,10 +27387,10 @@ title = {The \texttt{fotex} package}, subtitle = {Process XSL-FO}, author = {Sebastian Rahtz}, - date = {2016-06-18}, + date = {2024-01-30}, version = {}, license = {lppl}, - mirror = {https://mirror.ctan.org/macros/fotex}, + mirror = {https://mirror.ctan.org/obsolete/macros/fotex}, url = {https://ctan.org/pkg/fotex}, } @@ -34388,10 +34388,10 @@ title = {The \texttt{inrstex} package}, subtitle = {Extended Plain \TeX{} for use with MLTeX}, author = {Michael J. Ferguson}, - date = {2016-06-24}, + date = {2024-01-30}, version = {}, license = {noinfo}, - mirror = {https://mirror.ctan.org/macros/inrstex}, + mirror = {https://mirror.ctan.org/obsolete/macros/inrstex}, url = {https://ctan.org/pkg/inrstex}, annotation = {INRSTeX supports the preparation of documents in several languages, using ordinary fonts. It is usable with any \TeX{} @@ -35242,10 +35242,10 @@ title = {The \texttt{jadetex} package}, subtitle = {Macros supporting Jade DSSSL output}, author = {Sebastian Rahtz and Ian Castle}, - date = {2017-04-18}, + date = {2024-01-30}, version = {3.13}, license = {other-free}, - mirror = {https://mirror.ctan.org/macros/jadetex}, + mirror = {https://mirror.ctan.org/macros/plain/formats/jadetex}, url = {https://ctan.org/pkg/jadetex}, } @@ -36930,8 +36930,8 @@ title = {The \texttt{kpfonts-otf} package}, subtitle = {OTF version of the Kp-fonts}, author = {Daniel Flipo}, - date = {2023-11-26}, - version = {0.61}, + date = {2024-01-30}, + version = {0.62}, license = {ofl,lppl1.3}, mirror = {https://mirror.ctan.org/fonts/kpfonts-otf}, url = {https://ctan.org/pkg/kpfonts-otf}, @@ -40654,10 +40654,10 @@ title = {The \texttt{lollipop} package}, subtitle = {TeX made easy}, author = {Victor Eijkhout and Vafa Khalighi and {bidi-tex GitHub Organisation}}, - date = {2019-09-08}, + date = {2024-01-30}, version = {1.07}, license = {gpl3}, - mirror = {https://mirror.ctan.org/macros/lollipop}, + mirror = {https://mirror.ctan.org/macros/plain/formats/lollipop}, url = {https://ctan.org/pkg/lollipop}, } @@ -47230,10 +47230,10 @@ title = {The \texttt{mtex} package}, subtitle = {The pioneering music-in-TeX macros}, author = {Andrea Steinbach and Angelika Schofer}, - date = {2018-01-06}, + date = {2024-01-30}, version = {0.92}, license = {noinfo}, - mirror = {https://mirror.ctan.org/macros/mtex}, + mirror = {https://mirror.ctan.org/obsolete/macros/mtex}, url = {https://ctan.org/pkg/mtex}, annotation = {This package, MuTeX (as it was originally known) the humble base by which both and @@ -48175,7 +48175,7 @@ title = {The \texttt{natmove} package}, subtitle = {Move punctuation following a citation}, author = {Joseph Wright and Donald Arseneau}, - date = {2018-07-12}, + date = {2024-01-30}, version = {1.1a}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/contrib/achemso}, @@ -53561,10 +53561,10 @@ title = {The \texttt{physe} package}, subtitle = {The PHYSE format}, author = {Peter Breitenlohner}, - date = {2016-06-24}, + date = {2024-01-30}, version = {1.3.0}, license = {noinfo}, - mirror = {https://mirror.ctan.org/macros/physe}, + mirror = {https://mirror.ctan.org/obsolete/macros/physe}, url = {https://ctan.org/pkg/physe}, annotation = {PHYSE is a format for writing physics papers, based on Knuth's .}, @@ -53618,10 +53618,10 @@ title = {The \texttt{phyzzx} package}, subtitle = {A \TeX{} format for physicists}, author = {Vadim Kaplunovsky}, - date = {2016-06-24}, + date = {2024-01-30}, version = {}, license = {noinfo}, - mirror = {https://mirror.ctan.org/macros/phyzzx}, + mirror = {https://mirror.ctan.org/obsolete/macros/phyzzx}, url = {https://ctan.org/pkg/phyzzx}, } @@ -56035,10 +56035,10 @@ title = {The \texttt{psizzl} package}, subtitle = {A \TeX{} format for physics papers}, author = {Arthur Ogawa}, - date = {2016-06-24}, + date = {2024-01-30}, version = {0.35}, license = {lppl}, - mirror = {https://mirror.ctan.org/macros/psizzl}, + mirror = {https://mirror.ctan.org/macros/plain/formats/psizzl}, url = {https://ctan.org/pkg/psizzl}, } @@ -61719,10 +61719,10 @@ title = {The \texttt{ScriptTeX} package}, subtitle = {Macros for scripts and screenplays}, author = {Adrian McCarthy}, - date = {2016-06-24}, + date = {2024-01-30}, version = {1.04}, license = {nocommercial}, - mirror = {https://mirror.ctan.org/macros/scripttex}, + mirror = {https://mirror.ctan.org/obsolete/macros/scripttex}, url = {https://ctan.org/pkg/scripttex}, } @@ -65316,10 +65316,10 @@ title = {The \texttt{startex} package}, subtitle = {An XML-inspired format for student use}, author = {Dag Langmyhr}, - date = {2016-06-24}, + date = {2024-01-30}, version = {1.04}, license = {pd}, - mirror = {https://mirror.ctan.org/macros/startex}, + mirror = {https://mirror.ctan.org/macros/plain/formats/startex}, url = {https://ctan.org/pkg/startex}, } @@ -69048,9 +69048,9 @@ title = {The \texttt{TeXmuse} package}, subtitle = {Music typesetting system using \TeX{} and Metafont}, author = {Federico Garcia-De Castro}, - date = {2016-06-24}, + date = {2024-01-30}, license = {lppl}, - mirror = {https://mirror.ctan.org/macros/texmuse}, + mirror = {https://mirror.ctan.org/obsolete/macros/texmuse}, url = {https://ctan.org/pkg/texmuse}, } @@ -69289,10 +69289,10 @@ title = {The \texttt{TeXsis} package}, subtitle = {Plain \TeX{} macros for Physicists}, author = {Eric Myers and Frank Paige}, - date = {2019-06-21}, + date = {2024-01-30}, version = {2.18}, license = {lppl}, - mirror = {https://mirror.ctan.org/macros/texsis}, + mirror = {https://mirror.ctan.org/macros/plain/formats/texsis}, url = {https://ctan.org/pkg/texsis}, } @@ -69349,10 +69349,10 @@ title = {The \texttt{TeX T1} package}, subtitle = {TeX format from Washington State University}, author = {Dean Guenther}, - date = {2016-06-18}, + date = {2024-01-30}, version = {}, license = {nocommercial}, - mirror = {https://mirror.ctan.org/macros/text1}, + mirror = {https://mirror.ctan.org/obsolete/macros/text1}, url = {https://ctan.org/pkg/text1}, } @@ -78093,8 +78093,8 @@ title = {The \texttt{xgreek} package}, subtitle = {Greek Language Support for \XeLaTeX{} and LuaLaTeX}, author = {Apostolos Syropoulos}, - date = {2024-01-01}, - version = {3.3.0}, + date = {2024-01-30}, + version = {3.4.0}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/unicodetex/latex/xgreek}, url = {https://ctan.org/pkg/xgreek}, @@ -78409,10 +78409,10 @@ title = {The \texttt{xmltex} package}, subtitle = {Support for parsing XML documents}, author = {David Carlisle}, - date = {2018-04-05}, + date = {2024-01-30}, version = {0.8}, license = {lppl}, - mirror = {https://mirror.ctan.org/macros/xmltex/base}, + mirror = {https://mirror.ctan.org/macros/plain/formats/xmltex/base}, url = {https://ctan.org/pkg/xmltex}, } @@ -79299,10 +79299,10 @@ title = {The \texttt{ytex} package}, subtitle = {Macro package developed at MIT}, author = {Daniel C. Brotsky}, - date = {2018-01-06}, + date = {2024-01-30}, version = {}, license = {noinfo}, - mirror = {https://mirror.ctan.org/macros/ytex}, + mirror = {https://mirror.ctan.org/obsolete/macros/ytex}, url = {https://ctan.org/pkg/ytex}, } diff --git a/fonts/heuristica/README b/fonts/heuristica/README index 9871d9ccfd..38f8833524 100644 --- a/fonts/heuristica/README +++ b/fonts/heuristica/README @@ -2,7 +2,10 @@ With update 1.08 to Heuristica, the package reverts to the otf fonts as distribu http://www.ctan.org/license/lppl1.3 for the details of that license. -Current version: 1.092 2019-06-10 +Current version: 1.093 2024-01-30 + +Changes in version 1.093 +Corrected code for option "looser", adding a missing \gdef. (Thanks, Andre Oxygen.) Changes in version 1.092 Corrected an error in the last correction to the fd file. (Thanks, Frank Mittelbach.) diff --git a/fonts/heuristica/tex/heuristica.sty b/fonts/heuristica/tex/heuristica.sty index 6a1575c47e..d953cf1edc 100644 --- a/fonts/heuristica/tex/heuristica.sty +++ b/fonts/heuristica/tex/heuristica.sty @@ -1,8 +1,8 @@ %% heuristica.sty %% \NeedsTeXFormat{LaTeX2e} -\def\fileversion{1.09} -\def\filedate{2017/03/14} +\def\fileversion{1.093} +\def\filedate{2024/01/30} \ProvidesPackage{heuristica} [\filedate\space v\fileversion] @@ -60,7 +60,7 @@ \DeclareOptionX{tabular}{\edef\Heuristica@figurealign{T}} \DeclareOptionX{sups}{\@Heuristica@supstrue} \DeclareOptionX{looser}{% -\gdef\Heuristica@spc{.25em}\gdef\Heuristica@stretch{.125em}\Heuristica@shrink{.1em}} +\gdef\Heuristica@spc{.25em}\gdef\Heuristica@stretch{.125em}\gdef\Heuristica@shrink{.1em}} \DeclareOptionX{loosest}{% \gdef\Heuristica@spc{.28em}\gdef\Heuristica@stretch{.125em}\gdef\Heuristica@shrink{.13em}} \ExecuteOptionsX{lining,tabular} 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}% + }% + } +} diff --git a/info/examples/tip/absdimen.tip b/info/examples/tip/absdimen.tip deleted file mode 100644 index e2e5daf3bc..0000000000 --- a/info/examples/tip/absdimen.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/absval.tip b/info/examples/tip/absval.tip deleted file mode 100644 index f3809b9a0f..0000000000 --- a/info/examples/tip/absval.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/acronym.tip b/info/examples/tip/acronym.tip deleted file mode 100644 index 18db6ef8f4..0000000000 --- a/info/examples/tip/acronym.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/advtabst.tip b/info/examples/tip/advtabst.tip deleted file mode 100644 index 25b5ce5b75..0000000000 --- a/info/examples/tip/advtabst.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/aevpar.tip b/info/examples/tip/aevpar.tip deleted file mode 100644 index 215db1a4ba..0000000000 --- a/info/examples/tip/aevpar.tip +++ /dev/null @@ -1,33 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/alldate.tip b/info/examples/tip/alldate.tip deleted file mode 100644 index 471bcc3c94..0000000000 --- a/info/examples/tip/alldate.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/allocat.tip b/info/examples/tip/allocat.tip deleted file mode 100644 index 5bb3055145..0000000000 --- a/info/examples/tip/allocat.tip +++ /dev/null @@ -1,31 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/alwbase.tip b/info/examples/tip/alwbase.tip deleted file mode 100644 index f65a0b732c..0000000000 --- a/info/examples/tip/alwbase.tip +++ /dev/null @@ -1,21 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/angt.tip b/info/examples/tip/angt.tip deleted file mode 100644 index 6a85e0cac6..0000000000 --- a/info/examples/tip/angt.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/arbday.tip b/info/examples/tip/arbday.tip deleted file mode 100644 index fa8921eb60..0000000000 --- a/info/examples/tip/arbday.tip +++ /dev/null @@ -1,54 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/arraymac.tip b/info/examples/tip/arraymac.tip deleted file mode 100644 index cf2f26b02c..0000000000 --- a/info/examples/tip/arraymac.tip +++ /dev/null @@ -1,213 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/atpos.tip b/info/examples/tip/atpos.tip deleted file mode 100644 index 036156eb91..0000000000 --- a/info/examples/tip/atpos.tip +++ /dev/null @@ -1,37 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/be-env.tip b/info/examples/tip/be-env.tip deleted file mode 100644 index 1275f03f23..0000000000 --- a/info/examples/tip/be-env.tip +++ /dev/null @@ -1,46 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/bletpar.tip b/info/examples/tip/bletpar.tip deleted file mode 100644 index cde020150b..0000000000 --- a/info/examples/tip/bletpar.tip +++ /dev/null @@ -1,53 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/box-bb.tip b/info/examples/tip/box-bb.tip deleted file mode 100644 index 67e2c0b7c9..0000000000 --- a/info/examples/tip/box-bb.tip +++ /dev/null @@ -1,22 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/box-bul.tip b/info/examples/tip/box-bul.tip deleted file mode 100644 index 562ebc1b9c..0000000000 --- a/info/examples/tip/box-bul.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/box-larg.tip b/info/examples/tip/box-larg.tip deleted file mode 100644 index 44c14a2878..0000000000 --- a/info/examples/tip/box-larg.tip +++ /dev/null @@ -1,29 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/box-mac.tip b/info/examples/tip/box-mac.tip deleted file mode 100644 index c71b830e88..0000000000 --- a/info/examples/tip/box-mac.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/box-thck.tip b/info/examples/tip/box-thck.tip deleted file mode 100644 index d39a045484..0000000000 --- a/info/examples/tip/box-thck.tip +++ /dev/null @@ -1,20 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/box-zero.tip b/info/examples/tip/box-zero.tip deleted file mode 100644 index bd0d3930e8..0000000000 --- a/info/examples/tip/box-zero.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/boxing1.tip b/info/examples/tip/boxing1.tip deleted file mode 100644 index 61ef24a8a4..0000000000 --- a/info/examples/tip/boxing1.tip +++ /dev/null @@ -1,29 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/boxing2.tip b/info/examples/tip/boxing2.tip deleted file mode 100644 index 7c14df8ded..0000000000 --- a/info/examples/tip/boxing2.tip +++ /dev/null @@ -1,31 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/boxing3.tip b/info/examples/tip/boxing3.tip deleted file mode 100644 index 5067c1b5f9..0000000000 --- a/info/examples/tip/boxing3.tip +++ /dev/null @@ -1,34 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/boxing4.tip b/info/examples/tip/boxing4.tip deleted file mode 100644 index ce1cd0be6d..0000000000 --- a/info/examples/tip/boxing4.tip +++ /dev/null @@ -1,47 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/boxing5.tip b/info/examples/tip/boxing5.tip deleted file mode 100644 index 8e099f7698..0000000000 --- a/info/examples/tip/boxing5.tip +++ /dev/null @@ -1,105 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/boxing6.tip b/info/examples/tip/boxing6.tip deleted file mode 100644 index f361a2868d..0000000000 --- a/info/examples/tip/boxing6.tip +++ /dev/null @@ -1,44 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/boxing7.tip b/info/examples/tip/boxing7.tip deleted file mode 100644 index a231a4985e..0000000000 --- a/info/examples/tip/boxing7.tip +++ /dev/null @@ -1,113 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/boxrelim.tip b/info/examples/tip/boxrelim.tip deleted file mode 100644 index e767fcde85..0000000000 --- a/info/examples/tip/boxrelim.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/boxrqu.tip b/info/examples/tip/boxrqu.tip deleted file mode 100644 index 62aaadd22a..0000000000 --- a/info/examples/tip/boxrqu.tip +++ /dev/null @@ -1,118 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/centerlp.tip b/info/examples/tip/centerlp.tip deleted file mode 100644 index af0acc93ab..0000000000 --- a/info/examples/tip/centerlp.tip +++ /dev/null @@ -1,21 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/centerng.tip b/info/examples/tip/centerng.tip deleted file mode 100644 index a96676e60f..0000000000 --- a/info/examples/tip/centerng.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/centpar.tip b/info/examples/tip/centpar.tip deleted file mode 100644 index de0dfd8f03..0000000000 --- a/info/examples/tip/centpar.tip +++ /dev/null @@ -1,29 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/charbo.tip b/info/examples/tip/charbo.tip deleted file mode 100644 index 246031c5b0..0000000000 --- a/info/examples/tip/charbo.tip +++ /dev/null @@ -1,29 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/chboxd.tip b/info/examples/tip/chboxd.tip deleted file mode 100644 index 57d987414c..0000000000 --- a/info/examples/tip/chboxd.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/clearb.tip b/info/examples/tip/clearb.tip deleted file mode 100644 index b4e2028384..0000000000 --- a/info/examples/tip/clearb.tip +++ /dev/null @@ -1,23 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/collect.tip b/info/examples/tip/collect.tip deleted file mode 100644 index 6953f89e62..0000000000 --- a/info/examples/tip/collect.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/coltok.tip b/info/examples/tip/coltok.tip deleted file mode 100644 index a86f430876..0000000000 --- a/info/examples/tip/coltok.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/comfiles.tip b/info/examples/tip/comfiles.tip deleted file mode 100644 index 02853596c1..0000000000 --- a/info/examples/tip/comfiles.tip +++ /dev/null @@ -1,76 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/compst.tip b/info/examples/tip/compst.tip deleted file mode 100644 index 5137722769..0000000000 --- a/info/examples/tip/compst.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/compstca.tip b/info/examples/tip/compstca.tip deleted file mode 100644 index df5a770e63..0000000000 --- a/info/examples/tip/compstca.tip +++ /dev/null @@ -1,44 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/condltr.tip b/info/examples/tip/condltr.tip deleted file mode 100644 index cc6fff7d49..0000000000 --- a/info/examples/tip/condltr.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/conval.tip b/info/examples/tip/conval.tip deleted file mode 100644 index 28638f5ece..0000000000 --- a/info/examples/tip/conval.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/copydate.tip b/info/examples/tip/copydate.tip deleted file mode 100644 index fd90867ec1..0000000000 --- a/info/examples/tip/copydate.tip +++ /dev/null @@ -1,23 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/counters.tip b/info/examples/tip/counters.tip deleted file mode 100644 index 735e86d62e..0000000000 --- a/info/examples/tip/counters.tip +++ /dev/null @@ -1,87 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/countl.tip b/info/examples/tip/countl.tip deleted file mode 100644 index 2bd0e49e10..0000000000 --- a/info/examples/tip/countl.tip +++ /dev/null @@ -1,46 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/cref-1.tip b/info/examples/tip/cref-1.tip deleted file mode 100644 index 9fdfc729a0..0000000000 --- a/info/examples/tip/cref-1.tip +++ /dev/null @@ -1,31 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/cref-2.tip b/info/examples/tip/cref-2.tip deleted file mode 100644 index 636c678f00..0000000000 --- a/info/examples/tip/cref-2.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/cref-2a.tip b/info/examples/tip/cref-2a.tip deleted file mode 100644 index 787197a68f..0000000000 --- a/info/examples/tip/cref-2a.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/cref-3.tip b/info/examples/tip/cref-3.tip deleted file mode 100644 index 02c35030a0..0000000000 --- a/info/examples/tip/cref-3.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/cref-3a.tip b/info/examples/tip/cref-3a.tip deleted file mode 100644 index 9f01c3cff6..0000000000 --- a/info/examples/tip/cref-3a.tip +++ /dev/null @@ -1,44 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/cref-4.tip b/info/examples/tip/cref-4.tip deleted file mode 100644 index d7171921fb..0000000000 --- a/info/examples/tip/cref-4.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/cref-5.tip b/info/examples/tip/cref-5.tip deleted file mode 100644 index 68ee426f6c..0000000000 --- a/info/examples/tip/cref-5.tip +++ /dev/null @@ -1,52 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/crline.tip b/info/examples/tip/crline.tip deleted file mode 100644 index 48d8c5d814..0000000000 --- a/info/examples/tip/crline.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/csar.tip b/info/examples/tip/csar.tip deleted file mode 100644 index 9a451407b7..0000000000 --- a/info/examples/tip/csar.tip +++ /dev/null @@ -1,114 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/cssprint.tip b/info/examples/tip/cssprint.tip deleted file mode 100644 index 47faa8e2cc..0000000000 --- a/info/examples/tip/cssprint.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/cstostr.tip b/info/examples/tip/cstostr.tip deleted file mode 100644 index b7b0e58749..0000000000 --- a/info/examples/tip/cstostr.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/cstostrc.tip b/info/examples/tip/cstostrc.tip deleted file mode 100644 index 08b2e70db6..0000000000 --- a/info/examples/tip/cstostrc.tip +++ /dev/null @@ -1,34 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ctestcs.tip b/info/examples/tip/ctestcs.tip deleted file mode 100644 index ba0c0ba537..0000000000 --- a/info/examples/tip/ctestcs.tip +++ /dev/null @@ -1,37 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/dateofw.tip b/info/examples/tip/dateofw.tip deleted file mode 100644 index eb2306c6cb..0000000000 --- a/info/examples/tip/dateofw.tip +++ /dev/null @@ -1,53 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/dblarg.tip b/info/examples/tip/dblarg.tip deleted file mode 100644 index 463c2b51c7..0000000000 --- a/info/examples/tip/dblarg.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/defauarg.tip b/info/examples/tip/defauarg.tip deleted file mode 100644 index 5372754b66..0000000000 --- a/info/examples/tip/defauarg.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/dicentry.tip b/info/examples/tip/dicentry.tip deleted file mode 100644 index d041432542..0000000000 --- a/info/examples/tip/dicentry.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/doloop.tip b/info/examples/tip/doloop.tip deleted file mode 100644 index b15b23cf8f..0000000000 --- a/info/examples/tip/doloop.tip +++ /dev/null @@ -1,86 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/droppre.tip b/info/examples/tip/droppre.tip deleted file mode 100644 index 8bbe74e790..0000000000 --- a/info/examples/tip/droppre.tip +++ /dev/null @@ -1,37 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/droppt.tip b/info/examples/tip/droppt.tip deleted file mode 100644 index 2e58be27ec..0000000000 --- a/info/examples/tip/droppt.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/dumppars.tip b/info/examples/tip/dumppars.tip deleted file mode 100644 index 55e233eace..0000000000 --- a/info/examples/tip/dumppars.tip +++ /dev/null @@ -1,115 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/earliest.tip b/info/examples/tip/earliest.tip deleted file mode 100644 index 9e9564443a..0000000000 --- a/info/examples/tip/earliest.tip +++ /dev/null @@ -1,41 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/emprubox.tip b/info/examples/tip/emprubox.tip deleted file mode 100644 index 498d6fd7f9..0000000000 --- a/info/examples/tip/emprubox.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/emptybox.tip b/info/examples/tip/emptybox.tip deleted file mode 100644 index 021ec1d0c1..0000000000 --- a/info/examples/tip/emptybox.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/endn-mac.tip b/info/examples/tip/endn-mac.tip deleted file mode 100644 index 0d6066f70c..0000000000 --- a/info/examples/tip/endn-mac.tip +++ /dev/null @@ -1,52 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/endrec.tip b/info/examples/tip/endrec.tip deleted file mode 100644 index 5fc1a8e196..0000000000 --- a/info/examples/tip/endrec.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/enum.tip b/info/examples/tip/enum.tip deleted file mode 100644 index b32412ae08..0000000000 --- a/info/examples/tip/enum.tip +++ /dev/null @@ -1,34 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/enumlist.tip b/info/examples/tip/enumlist.tip deleted file mode 100644 index f3baeb5b5d..0000000000 --- a/info/examples/tip/enumlist.tip +++ /dev/null @@ -1,83 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/errmess.tip b/info/examples/tip/errmess.tip deleted file mode 100644 index 68b31b49d2..0000000000 --- a/info/examples/tip/errmess.tip +++ /dev/null @@ -1,22 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/evenprin.tip b/info/examples/tip/evenprin.tip deleted file mode 100644 index 3e38fc6e29..0000000000 --- a/info/examples/tip/evenprin.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/everyequ.tip b/info/examples/tip/everyequ.tip deleted file mode 100644 index ff5003eed6..0000000000 --- a/info/examples/tip/everyequ.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/everypar.tip b/info/examples/tip/everypar.tip deleted file mode 100644 index 9c33b2b026..0000000000 --- a/info/examples/tip/everypar.tip +++ /dev/null @@ -1,45 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/evhvbox.tip b/info/examples/tip/evhvbox.tip deleted file mode 100644 index 4abfbb54d6..0000000000 --- a/info/examples/tip/evhvbox.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ex-out2.tip b/info/examples/tip/ex-out2.tip deleted file mode 100644 index 50152e0363..0000000000 --- a/info/examples/tip/ex-out2.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/fexist.tip b/info/examples/tip/fexist.tip deleted file mode 100644 index 5a595f141e..0000000000 --- a/info/examples/tip/fexist.tip +++ /dev/null @@ -1,33 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/figbox.tip b/info/examples/tip/figbox.tip deleted file mode 100644 index 031d6cdb56..0000000000 --- a/info/examples/tip/figbox.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/figinpar.tip b/info/examples/tip/figinpar.tip deleted file mode 100644 index 4cc54ae60f..0000000000 --- a/info/examples/tip/figinpar.tip +++ /dev/null @@ -1,59 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/firstldi.tip b/info/examples/tip/firstldi.tip deleted file mode 100644 index 7e7a2ef31a..0000000000 --- a/info/examples/tip/firstldi.tip +++ /dev/null @@ -1,52 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/fo-char.tip b/info/examples/tip/fo-char.tip deleted file mode 100644 index 84bc6a24c2..0000000000 --- a/info/examples/tip/fo-char.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/font-cpp.tip b/info/examples/tip/font-cpp.tip deleted file mode 100644 index c127d76ed5..0000000000 --- a/info/examples/tip/font-cpp.tip +++ /dev/null @@ -1,45 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/fontsam.tip b/info/examples/tip/fontsam.tip deleted file mode 100644 index 711e7db18e..0000000000 --- a/info/examples/tip/fontsam.tip +++ /dev/null @@ -1,150 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/fonttab.tip b/info/examples/tip/fonttab.tip deleted file mode 100644 index 4da8f97c5a..0000000000 --- a/info/examples/tip/fonttab.tip +++ /dev/null @@ -1,90 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/formline.tip b/info/examples/tip/formline.tip deleted file mode 100644 index a3f4984781..0000000000 --- a/info/examples/tip/formline.tip +++ /dev/null @@ -1,33 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/fotable.tip b/info/examples/tip/fotable.tip deleted file mode 100644 index 5af38e251a..0000000000 --- a/info/examples/tip/fotable.tip +++ /dev/null @@ -1,175 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/fotok.tip b/info/examples/tip/fotok.tip deleted file mode 100644 index 7d02336125..0000000000 --- a/info/examples/tip/fotok.tip +++ /dev/null @@ -1,34 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/frac.tip b/info/examples/tip/frac.tip deleted file mode 100644 index a00a7237d4..0000000000 --- a/info/examples/tip/frac.tip +++ /dev/null @@ -1,21 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/freespac.tip b/info/examples/tip/freespac.tip deleted file mode 100644 index 14de10fd60..0000000000 --- a/info/examples/tip/freespac.tip +++ /dev/null @@ -1,35 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/fsized.tip b/info/examples/tip/fsized.tip deleted file mode 100644 index 433a5d1b92..0000000000 --- a/info/examples/tip/fsized.tip +++ /dev/null @@ -1,35 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/funospac.tip b/info/examples/tip/funospac.tip deleted file mode 100644 index e0921ead1b..0000000000 --- a/info/examples/tip/funospac.tip +++ /dev/null @@ -1,52 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/futlet.tip b/info/examples/tip/futlet.tip deleted file mode 100644 index 354e3d2f18..0000000000 --- a/info/examples/tip/futlet.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/futpar.tip b/info/examples/tip/futpar.tip deleted file mode 100644 index 2c83d0d496..0000000000 --- a/info/examples/tip/futpar.tip +++ /dev/null @@ -1,23 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/genaeol.tip b/info/examples/tip/genaeol.tip deleted file mode 100644 index 12132465f1..0000000000 --- a/info/examples/tip/genaeol.tip +++ /dev/null @@ -1,39 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/genhead.tip b/info/examples/tip/genhead.tip deleted file mode 100644 index 44588f7dfd..0000000000 --- a/info/examples/tip/genhead.tip +++ /dev/null @@ -1,100 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/genostr.tip b/info/examples/tip/genostr.tip deleted file mode 100644 index e89580297d..0000000000 --- a/info/examples/tip/genostr.tip +++ /dev/null @@ -1,42 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/getnuml.tip b/info/examples/tip/getnuml.tip deleted file mode 100644 index 7991ae9bb4..0000000000 --- a/info/examples/tip/getnuml.tip +++ /dev/null @@ -1,29 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/gobble.tip b/info/examples/tip/gobble.tip deleted file mode 100644 index 7cbb9664d2..0000000000 --- a/info/examples/tip/gobble.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/gobblemo.tip b/info/examples/tip/gobblemo.tip deleted file mode 100644 index ac7bc75439..0000000000 --- a/info/examples/tip/gobblemo.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/graphmac.tip b/info/examples/tip/graphmac.tip deleted file mode 100644 index 6cf2ba10d9..0000000000 --- a/info/examples/tip/graphmac.tip +++ /dev/null @@ -1,82 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/hex.tip b/info/examples/tip/hex.tip deleted file mode 100644 index 0f198cb9fb..0000000000 --- a/info/examples/tip/hex.tip +++ /dev/null @@ -1,44 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ifeven.tip b/info/examples/tip/ifeven.tip deleted file mode 100644 index 5f26d121a0..0000000000 --- a/info/examples/tip/ifeven.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ifx-def.tip b/info/examples/tip/ifx-def.tip deleted file mode 100644 index b9b9dd7259..0000000000 --- a/info/examples/tip/ifx-def.tip +++ /dev/null @@ -1,30 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ifx-mac.tip b/info/examples/tip/ifx-mac.tip deleted file mode 100644 index 0af3f324b0..0000000000 --- a/info/examples/tip/ifx-mac.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/imodn.tip b/info/examples/tip/imodn.tip deleted file mode 100644 index d8168abd52..0000000000 --- a/info/examples/tip/imodn.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/index-or.tip b/info/examples/tip/index-or.tip deleted file mode 100644 index aacb366a2a..0000000000 --- a/info/examples/tip/index-or.tip +++ /dev/null @@ -1,50 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/input-at.tip b/info/examples/tip/input-at.tip deleted file mode 100644 index bf41fd4958..0000000000 --- a/info/examples/tip/input-at.tip +++ /dev/null @@ -1,23 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/inputc.tip b/info/examples/tip/inputc.tip deleted file mode 100644 index a05dcf1473..0000000000 --- a/info/examples/tip/inputc.tip +++ /dev/null @@ -1,33 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/inputd.tip b/info/examples/tip/inputd.tip deleted file mode 100644 index e4bd777482..0000000000 --- a/info/examples/tip/inputd.tip +++ /dev/null @@ -1,41 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged 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/tip/inputdl.tip b/info/examples/tip/inputdl.tip deleted file mode 100644 index 696c2f029e..0000000000 --- a/info/examples/tip/inputdl.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/isleapyr.tip b/info/examples/tip/isleapyr.tip deleted file mode 100644 index e35bd6c9d1..0000000000 --- a/info/examples/tip/isleapyr.tip +++ /dev/null @@ -1,43 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/isprefix.tip b/info/examples/tip/isprefix.tip deleted file mode 100644 index 9bdefdce10..0000000000 --- a/info/examples/tip/isprefix.tip +++ /dev/null @@ -1,55 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/issuffix.tip b/info/examples/tip/issuffix.tip deleted file mode 100644 index 37bda46631..0000000000 --- a/info/examples/tip/issuffix.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/itemizel.tip b/info/examples/tip/itemizel.tip deleted file mode 100644 index 8ed23df9e8..0000000000 --- a/info/examples/tip/itemizel.tip +++ /dev/null @@ -1,48 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/itemltw.tip b/info/examples/tip/itemltw.tip deleted file mode 100644 index f4f13f319d..0000000000 --- a/info/examples/tip/itemltw.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/itemplan.tip b/info/examples/tip/itemplan.tip deleted file mode 100644 index 9dd2d94f2b..0000000000 --- a/info/examples/tip/itemplan.tip +++ /dev/null @@ -1,44 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ivpyr.tip b/info/examples/tip/ivpyr.tip deleted file mode 100644 index 86bd1a78bc..0000000000 --- a/info/examples/tip/ivpyr.tip +++ /dev/null @@ -1,67 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/largdp.tip b/info/examples/tip/largdp.tip deleted file mode 100644 index cd666f8b6d..0000000000 --- a/info/examples/tip/largdp.tip +++ /dev/null @@ -1,42 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/lbpar.tip b/info/examples/tip/lbpar.tip deleted file mode 100644 index c96c32ed3d..0000000000 --- a/info/examples/tip/lbpar.tip +++ /dev/null @@ -1,30 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/lc0to9.tip b/info/examples/tip/lc0to9.tip deleted file mode 100644 index c317c4c8ee..0000000000 --- a/info/examples/tip/lc0to9.tip +++ /dev/null @@ -1,35 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/leadingz.tip b/info/examples/tip/leadingz.tip deleted file mode 100644 index ef668522d8..0000000000 --- a/info/examples/tip/leadingz.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/leadline.tip b/info/examples/tip/leadline.tip deleted file mode 100644 index fa6486a7e9..0000000000 --- a/info/examples/tip/leadline.tip +++ /dev/null @@ -1,29 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/leftdm.tip b/info/examples/tip/leftdm.tip deleted file mode 100644 index 1f09928a53..0000000000 --- a/info/examples/tip/leftdm.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/legdate.tip b/info/examples/tip/legdate.tip deleted file mode 100644 index 336c8ecf27..0000000000 --- a/info/examples/tip/legdate.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/legmonth.tip b/info/examples/tip/legmonth.tip deleted file mode 100644 index ee7776bf67..0000000000 --- a/info/examples/tip/legmonth.tip +++ /dev/null @@ -1,23 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/legyear.tip b/info/examples/tip/legyear.tip deleted file mode 100644 index c952e42f79..0000000000 --- a/info/examples/tip/legyear.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/lfondem.tip b/info/examples/tip/lfondem.tip deleted file mode 100644 index eeb1039e08..0000000000 --- a/info/examples/tip/lfondem.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/linesr.tip b/info/examples/tip/linesr.tip deleted file mode 100644 index 53ff80db27..0000000000 --- a/info/examples/tip/linesr.tip +++ /dev/null @@ -1,23 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/list-mac.tip b/info/examples/tip/list-mac.tip deleted file mode 100644 index b8c1f6d72e..0000000000 --- a/info/examples/tip/list-mac.tip +++ /dev/null @@ -1,142 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/loadedla.tip b/info/examples/tip/loadedla.tip deleted file mode 100644 index 295d0a66b7..0000000000 --- a/info/examples/tip/loadedla.tip +++ /dev/null @@ -1,23 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/lpagetg.tip b/info/examples/tip/lpagetg.tip deleted file mode 100644 index da5b968623..0000000000 --- a/info/examples/tip/lpagetg.tip +++ /dev/null @@ -1,23 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/macvntip.tex b/info/examples/tip/macvntip.tex deleted file mode 100644 index b8c62165b9..0000000000 --- a/info/examples/tip/macvntip.tex +++ /dev/null @@ -1,296 +0,0 @@ -% 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/tip/mathenv.tip b/info/examples/tip/mathenv.tip deleted file mode 100644 index 098d040c40..0000000000 --- a/info/examples/tip/mathenv.tip +++ /dev/null @@ -1,77 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/maxmindi.tip b/info/examples/tip/maxmindi.tip deleted file mode 100644 index 239222ccd5..0000000000 --- a/info/examples/tip/maxmindi.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/mocal.tip b/info/examples/tip/mocal.tip deleted file mode 100644 index 240ceb9c9b..0000000000 --- a/info/examples/tip/mocal.tip +++ /dev/null @@ -1,90 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/mocal3.tip b/info/examples/tip/mocal3.tip deleted file mode 100644 index 67dc386869..0000000000 --- a/info/examples/tip/mocal3.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/modonead.tip b/info/examples/tip/modonead.tip deleted file mode 100644 index faf86ca38b..0000000000 --- a/info/examples/tip/modonead.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/mondofda.tip b/info/examples/tip/mondofda.tip deleted file mode 100644 index e6fd7c0fa3..0000000000 --- a/info/examples/tip/mondofda.tip +++ /dev/null @@ -1,39 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/mrdel.tip b/info/examples/tip/mrdel.tip deleted file mode 100644 index 3069f2913e..0000000000 --- a/info/examples/tip/mrdel.tip +++ /dev/null @@ -1,54 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/mspaces.tip b/info/examples/tip/mspaces.tip deleted file mode 100644 index 42d65e8a62..0000000000 --- a/info/examples/tip/mspaces.tip +++ /dev/null @@ -1,20 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/namedef.tip b/info/examples/tip/namedef.tip deleted file mode 100644 index bc3906875a..0000000000 --- a/info/examples/tip/namedef.tip +++ /dev/null @@ -1,64 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/nathd.tip b/info/examples/tip/nathd.tip deleted file mode 100644 index 1e849c65ba..0000000000 --- a/info/examples/tip/nathd.tip +++ /dev/null @@ -1,29 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/nctest.tip b/info/examples/tip/nctest.tip deleted file mode 100644 index 8b6fe53c93..0000000000 --- a/info/examples/tip/nctest.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ndaysmo.tip b/info/examples/tip/ndaysmo.tip deleted file mode 100644 index b45b693426..0000000000 --- a/info/examples/tip/ndaysmo.tip +++ /dev/null @@ -1,54 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/new-midi.tip b/info/examples/tip/new-midi.tip deleted file mode 100644 index 1cdea3e140..0000000000 --- a/info/examples/tip/new-midi.tip +++ /dev/null @@ -1,53 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/newdef.tip b/info/examples/tip/newdef.tip deleted file mode 100644 index 28f8cb3081..0000000000 --- a/info/examples/tip/newdef.tip +++ /dev/null @@ -1,43 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/newfont.tip b/info/examples/tip/newfont.tip deleted file mode 100644 index 26788f48cf..0000000000 --- a/info/examples/tip/newfont.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/newinput.tip b/info/examples/tip/newinput.tip deleted file mode 100644 index 0008943d0a..0000000000 --- a/info/examples/tip/newinput.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/newoutfr.tip b/info/examples/tip/newoutfr.tip deleted file mode 100644 index 5f1be0f30e..0000000000 --- a/info/examples/tip/newoutfr.tip +++ /dev/null @@ -1,37 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/newpage.tip b/info/examples/tip/newpage.tip deleted file mode 100644 index 63a6daf3dc..0000000000 --- a/info/examples/tip/newpage.tip +++ /dev/null @@ -1,22 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/nextday.tip b/info/examples/tip/nextday.tip deleted file mode 100644 index c4d3760e94..0000000000 --- a/info/examples/tip/nextday.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/nextmon.tip b/info/examples/tip/nextmon.tip deleted file mode 100644 index 09005c9e01..0000000000 --- a/info/examples/tip/nextmon.tip +++ /dev/null @@ -1,31 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/nlm.tip b/info/examples/tip/nlm.tip deleted file mode 100644 index 4f2519e6c1..0000000000 --- a/info/examples/tip/nlm.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/norpweek.tip b/info/examples/tip/norpweek.tip deleted file mode 100644 index 42b4e29e9d..0000000000 --- a/info/examples/tip/norpweek.tip +++ /dev/null @@ -1,39 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged 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/tip/npright.tip b/info/examples/tip/npright.tip deleted file mode 100644 index 17e7bb8737..0000000000 --- a/info/examples/tip/npright.tip +++ /dev/null @@ -1,42 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ntotext.tip b/info/examples/tip/ntotext.tip deleted file mode 100644 index cd1f26a4d0..0000000000 --- a/info/examples/tip/ntotext.tip +++ /dev/null @@ -1,119 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/numcond.tip b/info/examples/tip/numcond.tip deleted file mode 100644 index 11efcaffc5..0000000000 --- a/info/examples/tip/numcond.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/numdyr.tip b/info/examples/tip/numdyr.tip deleted file mode 100644 index 2732bf5aa9..0000000000 --- a/info/examples/tip/numdyr.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/numwhile.tip b/info/examples/tip/numwhile.tip deleted file mode 100644 index 1f8bb00271..0000000000 --- a/info/examples/tip/numwhile.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/oblines.tip b/info/examples/tip/oblines.tip deleted file mode 100644 index c7b294cd9e..0000000000 --- a/info/examples/tip/oblines.tip +++ /dev/null @@ -1,31 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/obspaces.tip b/info/examples/tip/obspaces.tip deleted file mode 100644 index 13d883fee7..0000000000 --- a/info/examples/tip/obspaces.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/oct.tip b/info/examples/tip/oct.tip deleted file mode 100644 index 8365ad591c..0000000000 --- a/info/examples/tip/oct.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/oddprin.tip b/info/examples/tip/oddprin.tip deleted file mode 100644 index fe9f42bef9..0000000000 --- a/info/examples/tip/oddprin.tip +++ /dev/null @@ -1,23 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/oeprin.tip b/info/examples/tip/oeprin.tip deleted file mode 100644 index be1c0eeba3..0000000000 --- a/info/examples/tip/oeprin.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ola-1p.tip b/info/examples/tip/ola-1p.tip deleted file mode 100644 index 223c9d1124..0000000000 --- a/info/examples/tip/ola-1p.tip +++ /dev/null @@ -1,91 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ola-2p.tip b/info/examples/tip/ola-2p.tip deleted file mode 100644 index 69b86108fa..0000000000 --- a/info/examples/tip/ola-2p.tip +++ /dev/null @@ -1,121 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ola-comm.tip b/info/examples/tip/ola-comm.tip deleted file mode 100644 index 2f5ea1014f..0000000000 --- a/info/examples/tip/ola-comm.tip +++ /dev/null @@ -1,75 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/op-endin.tip b/info/examples/tip/op-endin.tip deleted file mode 100644 index 21b02f03cb..0000000000 --- a/info/examples/tip/op-endin.tip +++ /dev/null @@ -1,61 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/op-pagec.tip b/info/examples/tip/op-pagec.tip deleted file mode 100644 index 077231da6e..0000000000 --- a/info/examples/tip/op-pagec.tip +++ /dev/null @@ -1,53 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/optargx.tip b/info/examples/tip/optargx.tip deleted file mode 100644 index 9928fa32cb..0000000000 --- a/info/examples/tip/optargx.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/orcards.tip b/info/examples/tip/orcards.tip deleted file mode 100644 index 337a7d88b6..0000000000 --- a/info/examples/tip/orcards.tip +++ /dev/null @@ -1,119 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ordbrule.tip b/info/examples/tip/ordbrule.tip deleted file mode 100644 index cab5d682a8..0000000000 --- a/info/examples/tip/ordbrule.tip +++ /dev/null @@ -1,36 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/orsimple.tip b/info/examples/tip/orsimple.tip deleted file mode 100644 index a49920d5c2..0000000000 --- a/info/examples/tip/orsimple.tip +++ /dev/null @@ -1,104 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/out-ds.tip b/info/examples/tip/out-ds.tip deleted file mode 100644 index 04ca97b0bc..0000000000 --- a/info/examples/tip/out-ds.tip +++ /dev/null @@ -1,443 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/out2-or.tip b/info/examples/tip/out2-or.tip deleted file mode 100644 index b412be9f8b..0000000000 --- a/info/examples/tip/out2-or.tip +++ /dev/null @@ -1,73 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/outf-rad.tip b/info/examples/tip/outf-rad.tip deleted file mode 100644 index 4ee4b7640c..0000000000 --- a/info/examples/tip/outf-rad.tip +++ /dev/null @@ -1,55 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/outpsel.tip b/info/examples/tip/outpsel.tip deleted file mode 100644 index 91b2f09882..0000000000 --- a/info/examples/tip/outpsel.tip +++ /dev/null @@ -1,37 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/par-fl.tip b/info/examples/tip/par-fl.tip deleted file mode 100644 index a1d7a58253..0000000000 --- a/info/examples/tip/par-fl.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/par-lab.tip b/info/examples/tip/par-lab.tip deleted file mode 100644 index 0c41944b69..0000000000 --- a/info/examples/tip/par-lab.tip +++ /dev/null @@ -1,82 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/par-lcl.tip b/info/examples/tip/par-lcl.tip deleted file mode 100644 index 5f503bcc51..0000000000 --- a/info/examples/tip/par-lcl.tip +++ /dev/null @@ -1,39 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/parin.tip b/info/examples/tip/parin.tip deleted file mode 100644 index b18b4cd20d..0000000000 --- a/info/examples/tip/parin.tip +++ /dev/null @@ -1,35 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/part-cr.tip b/info/examples/tip/part-cr.tip deleted file mode 100644 index 0627218539..0000000000 --- a/info/examples/tip/part-cr.tip +++ /dev/null @@ -1,94 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/part-lab.tip b/info/examples/tip/part-lab.tip deleted file mode 100644 index 1d8981dcd9..0000000000 --- a/info/examples/tip/part-lab.tip +++ /dev/null @@ -1,88 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/part-mac.tip b/info/examples/tip/part-mac.tip deleted file mode 100644 index fa45b1fa10..0000000000 --- a/info/examples/tip/part-mac.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/parv-1.tip b/info/examples/tip/parv-1.tip deleted file mode 100644 index d2b26e0f56..0000000000 --- a/info/examples/tip/parv-1.tip +++ /dev/null @@ -1,89 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/pdollars.tip b/info/examples/tip/pdollars.tip deleted file mode 100644 index fdafa4044f..0000000000 --- a/info/examples/tip/pdollars.tip +++ /dev/null @@ -1,37 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/pickfs.tip b/info/examples/tip/pickfs.tip deleted file mode 100644 index b779b03e10..0000000000 --- a/info/examples/tip/pickfs.tip +++ /dev/null @@ -1,20 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/pm-4.tip b/info/examples/tip/pm-4.tip deleted file mode 100644 index 86721bf4f7..0000000000 --- a/info/examples/tip/pm-4.tip +++ /dev/null @@ -1,122 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/pm-auxco.tip b/info/examples/tip/pm-auxco.tip deleted file mode 100644 index 0b01f9455d..0000000000 --- a/info/examples/tip/pm-auxco.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/pm-bas.tip b/info/examples/tip/pm-bas.tip deleted file mode 100644 index e979179547..0000000000 --- a/info/examples/tip/pm-bas.tip +++ /dev/null @@ -1,52 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/pm-main.tip b/info/examples/tip/pm-main.tip deleted file mode 100644 index 2ec2287495..0000000000 --- a/info/examples/tip/pm-main.tip +++ /dev/null @@ -1,111 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/pm-pagen.tip b/info/examples/tip/pm-pagen.tip deleted file mode 100644 index 8ee88fc978..0000000000 --- a/info/examples/tip/pm-pagen.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/pm-wrc.tip b/info/examples/tip/pm-wrc.tip deleted file mode 100644 index a6cc96c4d7..0000000000 --- a/info/examples/tip/pm-wrc.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/pmtime.tip b/info/examples/tip/pmtime.tip deleted file mode 100644 index 98042556e5..0000000000 --- a/info/examples/tip/pmtime.tip +++ /dev/null @@ -1,30 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/poorbold.tip b/info/examples/tip/poorbold.tip deleted file mode 100644 index 6c336e0c1f..0000000000 --- a/info/examples/tip/poorbold.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/pralph.tip b/info/examples/tip/pralph.tip deleted file mode 100644 index f7f92f7615..0000000000 --- a/info/examples/tip/pralph.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/prevday.tip b/info/examples/tip/prevday.tip deleted file mode 100644 index 2e4c8829be..0000000000 --- a/info/examples/tip/prevday.tip +++ /dev/null @@ -1,37 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/prevmon.tip b/info/examples/tip/prevmon.tip deleted file mode 100644 index 9513222954..0000000000 --- a/info/examples/tip/prevmon.tip +++ /dev/null @@ -1,31 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/prhyph.tip b/info/examples/tip/prhyph.tip deleted file mode 100644 index 1d7737a5c3..0000000000 --- a/info/examples/tip/prhyph.tip +++ /dev/null @@ -1,54 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/primmark.tip b/info/examples/tip/primmark.tip deleted file mode 100644 index 2e0e5dff76..0000000000 --- a/info/examples/tip/primmark.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/printast.tip b/info/examples/tip/printast.tip deleted file mode 100644 index 3ad5263963..0000000000 --- a/info/examples/tip/printast.tip +++ /dev/null @@ -1,37 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/printco.tip b/info/examples/tip/printco.tip deleted file mode 100644 index 2c41b3dc3c..0000000000 --- a/info/examples/tip/printco.tip +++ /dev/null @@ -1,68 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/printreg.tip b/info/examples/tip/printreg.tip deleted file mode 100644 index e7e3335b5b..0000000000 --- a/info/examples/tip/printreg.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/prmode.tip b/info/examples/tip/prmode.tip deleted file mode 100644 index 5576e88c83..0000000000 --- a/info/examples/tip/prmode.tip +++ /dev/null @@ -1,29 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/prmonth.tip b/info/examples/tip/prmonth.tip deleted file mode 100644 index dd9ea460f8..0000000000 --- a/info/examples/tip/prmonth.tip +++ /dev/null @@ -1,54 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/prot.tip b/info/examples/tip/prot.tip deleted file mode 100644 index 771a25fd2f..0000000000 --- a/info/examples/tip/prot.tip +++ /dev/null @@ -1,72 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/rangetst.tip b/info/examples/tip/rangetst.tip deleted file mode 100644 index b4966fd908..0000000000 --- a/info/examples/tip/rangetst.tip +++ /dev/null @@ -1,44 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/rboxt.tip b/info/examples/tip/rboxt.tip deleted file mode 100644 index d3e45a3599..0000000000 --- a/info/examples/tip/rboxt.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/readme b/info/examples/tip/readme deleted file mode 100644 index eaaeda142b..0000000000 --- a/info/examples/tip/readme +++ /dev/null @@ -1,27 +0,0 @@ -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/tip/readnu.tip b/info/examples/tip/readnu.tip deleted file mode 100644 index bf55ecd290..0000000000 --- a/info/examples/tip/readnu.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/redtost.tip b/info/examples/tip/redtost.tip deleted file mode 100644 index acbbfcf59e..0000000000 --- a/info/examples/tip/redtost.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/remtlsp.tip b/info/examples/tip/remtlsp.tip deleted file mode 100644 index 87bac0dd08..0000000000 --- a/info/examples/tip/remtlsp.tip +++ /dev/null @@ -1,50 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/restring.tip b/info/examples/tip/restring.tip deleted file mode 100644 index f83e586b72..0000000000 --- a/info/examples/tip/restring.tip +++ /dev/null @@ -1,52 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/reverses.tip b/info/examples/tip/reverses.tip deleted file mode 100644 index 08921b4d9b..0000000000 --- a/info/examples/tip/reverses.tip +++ /dev/null @@ -1,39 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/rh-dict.tip b/info/examples/tip/rh-dict.tip deleted file mode 100644 index a2c4315613..0000000000 --- a/info/examples/tip/rh-dict.tip +++ /dev/null @@ -1,31 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/robust.tip b/info/examples/tip/robust.tip deleted file mode 100644 index 925a2a2606..0000000000 --- a/info/examples/tip/robust.tip +++ /dev/null @@ -1,35 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/samplepa.tip b/info/examples/tip/samplepa.tip deleted file mode 100644 index 814f269405..0000000000 --- a/info/examples/tip/samplepa.tip +++ /dev/null @@ -1,40 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/setstrut.tip b/info/examples/tip/setstrut.tip deleted file mode 100644 index 441ec442b7..0000000000 --- a/info/examples/tip/setstrut.tip +++ /dev/null @@ -1,51 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/shboxes.tip b/info/examples/tip/shboxes.tip deleted file mode 100644 index 6137e5ab7e..0000000000 --- a/info/examples/tip/shboxes.tip +++ /dev/null @@ -1,42 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/shiftudb.tip b/info/examples/tip/shiftudb.tip deleted file mode 100644 index b2554b525a..0000000000 --- a/info/examples/tip/shiftudb.tip +++ /dev/null @@ -1,30 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/showpll.tip b/info/examples/tip/showpll.tip deleted file mode 100644 index 896edbf166..0000000000 --- a/info/examples/tip/showpll.tip +++ /dev/null @@ -1,46 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/showx.tip b/info/examples/tip/showx.tip deleted file mode 100644 index 7a02c3ef1f..0000000000 --- a/info/examples/tip/showx.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/sigline.tip b/info/examples/tip/sigline.tip deleted file mode 100644 index 1fe31c966c..0000000000 --- a/info/examples/tip/sigline.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/spacefac.tip b/info/examples/tip/spacefac.tip deleted file mode 100644 index 4e9488cc27..0000000000 --- a/info/examples/tip/spacefac.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/splitpar.tip b/info/examples/tip/splitpar.tip deleted file mode 100644 index d40236d2df..0000000000 --- a/info/examples/tip/splitpar.tip +++ /dev/null @@ -1,49 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ssmath.tip b/info/examples/tip/ssmath.tip deleted file mode 100644 index 395661358e..0000000000 --- a/info/examples/tip/ssmath.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/strleng.tip b/info/examples/tip/strleng.tip deleted file mode 100644 index 053de2ca60..0000000000 --- a/info/examples/tip/strleng.tip +++ /dev/null @@ -1,29 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/stswitch.tip b/info/examples/tip/stswitch.tip deleted file mode 100644 index 76d8c936d3..0000000000 --- a/info/examples/tip/stswitch.tip +++ /dev/null @@ -1,57 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/substf.tip b/info/examples/tip/substf.tip deleted file mode 100644 index d091324c5f..0000000000 --- a/info/examples/tip/substf.tip +++ /dev/null @@ -1,28 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/sumhd.tip b/info/examples/tip/sumhd.tip deleted file mode 100644 index fd81044f0a..0000000000 --- a/info/examples/tip/sumhd.tip +++ /dev/null @@ -1,22 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/swapbox.tip b/info/examples/tip/swapbox.tip deleted file mode 100644 index a5bdcd9b15..0000000000 --- a/info/examples/tip/swapbox.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/tabcent.tip b/info/examples/tip/tabcent.tip deleted file mode 100644 index c84cae05af..0000000000 --- a/info/examples/tip/tabcent.tip +++ /dev/null @@ -1,31 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/tabswb.tip b/info/examples/tip/tabswb.tip deleted file mode 100644 index 87d9698106..0000000000 --- a/info/examples/tip/tabswb.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged 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/tip/testdef.tip b/info/examples/tip/testdef.tip deleted file mode 100644 index d9bff77499..0000000000 --- a/info/examples/tip/testdef.tip +++ /dev/null @@ -1,30 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/testsubs.tip b/info/examples/tip/testsubs.tip deleted file mode 100644 index dc5bcf2691..0000000000 --- a/info/examples/tip/testsubs.tip +++ /dev/null @@ -1,42 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/texip.idx b/info/examples/tip/texip.idx deleted file mode 100644 index 3283cc0306..0000000000 --- a/info/examples/tip/texip.idx +++ /dev/null @@ -1,3918 +0,0 @@ -% 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/tip/texipexp.tex b/info/examples/tip/texipexp.tex deleted file mode 100644 index 710fc3013e..0000000000 --- a/info/examples/tip/texipexp.tex +++ /dev/null @@ -1,6888 +0,0 @@ -% 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/tip/tip-bugs.tex b/info/examples/tip/tip-bugs.tex deleted file mode 100644 index ad2c2b1fbf..0000000000 --- a/info/examples/tip/tip-bugs.tex +++ /dev/null @@ -1,3153 +0,0 @@ -% 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/tip/toc-mac.tip b/info/examples/tip/toc-mac.tip deleted file mode 100644 index e698de32fb..0000000000 --- a/info/examples/tip/toc-mac.tip +++ /dev/null @@ -1,57 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/today.tip b/info/examples/tip/today.tip deleted file mode 100644 index 3cf716e0a7..0000000000 --- a/info/examples/tip/today.tip +++ /dev/null @@ -1,21 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/todayx.tip b/info/examples/tip/todayx.tip deleted file mode 100644 index 4a5cc70eb3..0000000000 --- a/info/examples/tip/todayx.tip +++ /dev/null @@ -1,35 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/topinfix.tip b/info/examples/tip/topinfix.tip deleted file mode 100644 index ec2accf885..0000000000 --- a/info/examples/tip/topinfix.tip +++ /dev/null @@ -1,40 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-brefm.tip b/info/examples/tip/ts-brefm.tip deleted file mode 100644 index 3c5ba3e1bd..0000000000 --- a/info/examples/tip/ts-brefm.tip +++ /dev/null @@ -1,21 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-bul.tip b/info/examples/tip/ts-bul.tip deleted file mode 100644 index 8d82b4145c..0000000000 --- a/info/examples/tip/ts-bul.tip +++ /dev/null @@ -1,23 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-chap.tip b/info/examples/tip/ts-chap.tip deleted file mode 100644 index c59a4a08fb..0000000000 --- a/info/examples/tip/ts-chap.tip +++ /dev/null @@ -1,63 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-chhe.tip b/info/examples/tip/ts-chhe.tip deleted file mode 100644 index 4ade3e51c9..0000000000 --- a/info/examples/tip/ts-chhe.tip +++ /dev/null @@ -1,48 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-crm.tip b/info/examples/tip/ts-crm.tip deleted file mode 100644 index 83327431f3..0000000000 --- a/info/examples/tip/ts-crm.tip +++ /dev/null @@ -1,116 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-dime1.tip b/info/examples/tip/ts-dime1.tip deleted file mode 100644 index c098bf0690..0000000000 --- a/info/examples/tip/ts-dime1.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-dime2.tip b/info/examples/tip/ts-dime2.tip deleted file mode 100644 index 32c8524a75..0000000000 --- a/info/examples/tip/ts-dime2.tip +++ /dev/null @@ -1,44 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-dime3.tip b/info/examples/tip/ts-dime3.tip deleted file mode 100644 index a085aef107..0000000000 --- a/info/examples/tip/ts-dime3.tip +++ /dev/null @@ -1,20 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-enum.tip b/info/examples/tip/ts-enum.tip deleted file mode 100644 index 7bdfa97789..0000000000 --- a/info/examples/tip/ts-enum.tip +++ /dev/null @@ -1,69 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-float.tip b/info/examples/tip/ts-float.tip deleted file mode 100644 index 1ecb25db71..0000000000 --- a/info/examples/tip/ts-float.tip +++ /dev/null @@ -1,121 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-fonts.tip b/info/examples/tip/ts-fonts.tip deleted file mode 100644 index 3d3e7a0d13..0000000000 --- a/info/examples/tip/ts-fonts.tip +++ /dev/null @@ -1,111 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-foot.tip b/info/examples/tip/ts-foot.tip deleted file mode 100644 index 47d3982dd6..0000000000 --- a/info/examples/tip/ts-foot.tip +++ /dev/null @@ -1,41 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-gnot.tip b/info/examples/tip/ts-gnot.tip deleted file mode 100644 index 811c82287b..0000000000 --- a/info/examples/tip/ts-gnot.tip +++ /dev/null @@ -1,68 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-hall.tip b/info/examples/tip/ts-hall.tip deleted file mode 100644 index 5d4731bdd0..0000000000 --- a/info/examples/tip/ts-hall.tip +++ /dev/null @@ -1,21 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-hmore.tip b/info/examples/tip/ts-hmore.tip deleted file mode 100644 index dcc73dc9dc..0000000000 --- a/info/examples/tip/ts-hmore.tip +++ /dev/null @@ -1,39 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-hyph.tip b/info/examples/tip/ts-hyph.tip deleted file mode 100644 index 470cea540f..0000000000 --- a/info/examples/tip/ts-hyph.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-itize.tip b/info/examples/tip/ts-itize.tip deleted file mode 100644 index 2dafcfa20a..0000000000 --- a/info/examples/tip/ts-itize.tip +++ /dev/null @@ -1,46 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-lazy.tip b/info/examples/tip/ts-lazy.tip deleted file mode 100644 index cbd56c8191..0000000000 --- a/info/examples/tip/ts-lazy.tip +++ /dev/null @@ -1,24 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-loft.tip b/info/examples/tip/ts-loft.tip deleted file mode 100644 index e77c9b94c8..0000000000 --- a/info/examples/tip/ts-loft.tip +++ /dev/null @@ -1,31 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-logo.tip b/info/examples/tip/ts-logo.tip deleted file mode 100644 index 63fcfe3f2c..0000000000 --- a/info/examples/tip/ts-logo.tip +++ /dev/null @@ -1,26 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-main.tip b/info/examples/tip/ts-main.tip deleted file mode 100644 index 255055a55c..0000000000 --- a/info/examples/tip/ts-main.tip +++ /dev/null @@ -1,67 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-outpu.tip b/info/examples/tip/ts-outpu.tip deleted file mode 100644 index 39902664bf..0000000000 --- a/info/examples/tip/ts-outpu.tip +++ /dev/null @@ -1,188 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-page2.tip b/info/examples/tip/ts-page2.tip deleted file mode 100644 index 974be452c2..0000000000 --- a/info/examples/tip/ts-page2.tip +++ /dev/null @@ -1,122 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-pager.tip b/info/examples/tip/ts-pager.tip deleted file mode 100644 index 68e3688a0c..0000000000 --- a/info/examples/tip/ts-pager.tip +++ /dev/null @@ -1,38 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-robst.tip b/info/examples/tip/ts-robst.tip deleted file mode 100644 index c747fd9c61..0000000000 --- a/info/examples/tip/ts-robst.tip +++ /dev/null @@ -1,42 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-set.tip b/info/examples/tip/ts-set.tip deleted file mode 100644 index 12b7cbed43..0000000000 --- a/info/examples/tip/ts-set.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-shead.tip b/info/examples/tip/ts-shead.tip deleted file mode 100644 index 97904c01bb..0000000000 --- a/info/examples/tip/ts-shead.tip +++ /dev/null @@ -1,83 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-subst.tip b/info/examples/tip/ts-subst.tip deleted file mode 100644 index 57c1b61975..0000000000 --- a/info/examples/tip/ts-subst.tip +++ /dev/null @@ -1,34 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-toc.tip b/info/examples/tip/ts-toc.tip deleted file mode 100644 index e4b5b11f69..0000000000 --- a/info/examples/tip/ts-toc.tip +++ /dev/null @@ -1,46 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-verb.tip b/info/examples/tip/ts-verb.tip deleted file mode 100644 index cd9fd48b91..0000000000 --- a/info/examples/tip/ts-verb.tip +++ /dev/null @@ -1,84 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged 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/tip/ts-verb1.tip b/info/examples/tip/ts-verb1.tip deleted file mode 100644 index 106ce77d91..0000000000 --- a/info/examples/tip/ts-verb1.tip +++ /dev/null @@ -1,54 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-verb2.tip b/info/examples/tip/ts-verb2.tip deleted file mode 100644 index bd10258d96..0000000000 --- a/info/examples/tip/ts-verb2.tip +++ /dev/null @@ -1,34 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-vers.tip b/info/examples/tip/ts-vers.tip deleted file mode 100644 index 4e9b14d2a7..0000000000 --- a/info/examples/tip/ts-vers.tip +++ /dev/null @@ -1,19 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-vol.tip b/info/examples/tip/ts-vol.tip deleted file mode 100644 index 71a9ed3c5d..0000000000 --- a/info/examples/tip/ts-vol.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-wind.tip b/info/examples/tip/ts-wind.tip deleted file mode 100644 index fbb94c0c33..0000000000 --- a/info/examples/tip/ts-wind.tip +++ /dev/null @@ -1,174 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/ts-writc.tip b/info/examples/tip/ts-writc.tip deleted file mode 100644 index 9606338dac..0000000000 --- a/info/examples/tip/ts-writc.tip +++ /dev/null @@ -1,25 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/valdecpo.tip b/info/examples/tip/valdecpo.tip deleted file mode 100644 index 8d645b0d08..0000000000 --- a/info/examples/tip/valdecpo.tip +++ /dev/null @@ -1,34 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/vcentx.tip b/info/examples/tip/vcentx.tip deleted file mode 100644 index d272a7da1c..0000000000 --- a/info/examples/tip/vcentx.tip +++ /dev/null @@ -1,73 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/verb-bas.tip b/info/examples/tip/verb-bas.tip deleted file mode 100644 index dccaa8c1f3..0000000000 --- a/info/examples/tip/verb-bas.tip +++ /dev/null @@ -1,130 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/verb-mac.tip b/info/examples/tip/verb-mac.tip deleted file mode 100644 index db3a3a1261..0000000000 --- a/info/examples/tip/verb-mac.tip +++ /dev/null @@ -1,41 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/verb.tip b/info/examples/tip/verb.tip deleted file mode 100644 index 43236cd845..0000000000 --- a/info/examples/tip/verb.tip +++ /dev/null @@ -1,44 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/verbdisp.tip b/info/examples/tip/verbdisp.tip deleted file mode 100644 index 9cf598d474..0000000000 --- a/info/examples/tip/verbdisp.tip +++ /dev/null @@ -1,244 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/verbwr.tip b/info/examples/tip/verbwr.tip deleted file mode 100644 index e243f82bcf..0000000000 --- a/info/examples/tip/verbwr.tip +++ /dev/null @@ -1,86 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/vsmax.tip b/info/examples/tip/vsmax.tip deleted file mode 100644 index bc9eab50f2..0000000000 --- a/info/examples/tip/vsmax.tip +++ /dev/null @@ -1,32 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/vtbox.tip b/info/examples/tip/vtbox.tip deleted file mode 100644 index ee50844163..0000000000 --- a/info/examples/tip/vtbox.tip +++ /dev/null @@ -1,30 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/vwrt-mac.tip b/info/examples/tip/vwrt-mac.tip deleted file mode 100644 index 7490427317..0000000000 --- a/info/examples/tip/vwrt-mac.tip +++ /dev/null @@ -1,68 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/weekofyr.tip b/info/examples/tip/weekofyr.tip deleted file mode 100644 index 071eb36e35..0000000000 --- a/info/examples/tip/weekofyr.tip +++ /dev/null @@ -1,63 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged 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/tip/widestc.tip b/info/examples/tip/widestc.tip deleted file mode 100644 index 7e077b9248..0000000000 --- a/info/examples/tip/widestc.tip +++ /dev/null @@ -1,34 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/wl-parcp.tip b/info/examples/tip/wl-parcp.tip deleted file mode 100644 index ac9b462a23..0000000000 --- a/info/examples/tip/wl-parcp.tip +++ /dev/null @@ -1,57 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/wrtoc.tip b/info/examples/tip/wrtoc.tip deleted file mode 100644 index 11267744de..0000000000 --- a/info/examples/tip/wrtoc.tip +++ /dev/null @@ -1,27 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/wrverbar.tip b/info/examples/tip/wrverbar.tip deleted file mode 100644 index 2e327c44cb..0000000000 --- a/info/examples/tip/wrverbar.tip +++ /dev/null @@ -1,35 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/wtolist.tip b/info/examples/tip/wtolist.tip deleted file mode 100644 index 1919568d70..0000000000 --- a/info/examples/tip/wtolist.tip +++ /dev/null @@ -1,36 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/x-parsh.tip b/info/examples/tip/x-parsh.tip deleted file mode 100644 index 63f30a6a02..0000000000 --- a/info/examples/tip/x-parsh.tip +++ /dev/null @@ -1,64 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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/tip/yearcal.tip b/info/examples/tip/yearcal.tip deleted file mode 100644 index c9ce2d2b18..0000000000 --- a/info/examples/tip/yearcal.tip +++ /dev/null @@ -1,67 +0,0 @@ -% This macro source file is from the four volume series -% "TeX in Practice" by Stephan von Bechtolsheim, published -% 1993 by Springer-Verlag, New York. -% Copyright 1993 Stephan von Bechtolsheim. -% No warranty or liability is assumed. -% This macro may be copied freely if no fees other than -% media cost or shipping charges are charged and as long -% as this copyright and the following source code 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}% - }% - } -} diff --git a/info/whatstex/lit.dat b/info/whatstex/lit.dat deleted file mode 120000 index 1f6378b9c6..0000000000 --- a/info/whatstex/lit.dat +++ /dev/null @@ -1 +0,0 @@ -../../macros/blu/lit.dat \ No newline at end of file diff --git a/info/whatstex/lit.sel b/info/whatstex/lit.sel deleted file mode 100644 index c86c021f8e..0000000000 --- a/info/whatstex/lit.sel +++ /dev/null @@ -1,124 +0,0 @@ -%The list of selected references: -%Target Overview.tex 30 sept 93 -%\ls\amsa -\ls\amsb -\ls\amsc -\ls\amsd -\ls\amse -\ls\amsf -\ls\amsg -\ls\amsh -\ls\amsi -\ls\amsj -\ls\aps -\ls\beebenhfa -\ls\beebenhfb -\ls\beebenhfc -\ls\beebenhfd -\ls\beetonbn -\ls\bestr -\ls\bodenheimerb -\ls\botwaylc -\ls\braamsjl -\ls\bruinr -\ls\bryanm -\ls\buergerd -\ls\chemtex -\ls\cheswickb -\ls\clarkmb -\ls\clarkmc -\ls\clarkmd -\ls\cms -\ls\commacm -\ls\dobrowolskiae -\ls\dolw -\ls\doobma -\ls\drilcon -\ls\durstlka -\ls\durstlkc -\ls\dysonmc -\ls\furutar -\ls\goossensma -\ls\goossensmb -\ls\greenwadegd -\ls\haralambousy -\ls\hendersondb -\ls\herwijnene -\ls\hoenigaj -\ls\hoenigajc -\ls\hoenigajd -\ls\hooverazb -\ls\hooverazc -\ls\horakk -\ls\hornbkp -\ls\hosekd -\ls\jonesdm -\ls\kelleram -\ls\knuthdecb -\ls\knuthdecc -\ls\knuthded -\ls\knuthdee -\ls\knuthdeg -\ls\knuthdeib -\ls\knuthdej -\ls\kolodziejska -\ls\kopkah -\ls\laancga -\ls\laancgc -\ls\laancgd -\ls\laancge -\ls\laancgg -\ls\laancgga -\ls\laancgh -\ls\laancgi -\ls\laancgj -\ls\laancgk -\ls\laancgl -\ls\laancgm -%\ls\laancgn -\ls\laancgo -\ls\laancgp -\ls\laancgq -\ls\laancgs -\ls\lamportla -\ls\lamportlb -\ls\lamportlc -\ls\lavaudma -\ls\mattese -\ls\mittelbachfc -\ls\mittelbachfd -\ls\mittelbachff -\ls\mittelbachffb -\ls\mittelbachfg -\ls\oostrump -\ls\quinlre -\ls\rahtzspq -\ls\ramekmb -\ls\salomondg -\ls\samuelal -\ls\schrodj -\ls\sewellw -\ls\southallra -\ls\southallrb -\ls\sowafb -\ls\spivakmda -\ls\spivakmdb -\ls\spivakmdc -\ls\swansone -\ls\taylorp -\ls\tobing -\ls\treebusk -\ls\tugpub -\ls\tutelaersp -\ls\urbanm -\ls\vensej -\ls\williamst -\ls\winninkjj -\ls\winogradt -\ls\youngenra -\ls\youngenrb -\ls\youngenrc -\ls\zbikowskir -\ls\zlatuskaja -\ls\zlatuskajb -\endinput \ No newline at end of file diff --git a/info/whatstex/wots.tex b/info/whatstex/wots.tex deleted file mode 100644 index d342f0f638..0000000000 --- a/info/whatstex/wots.tex +++ /dev/null @@ -1,2956 +0,0 @@ -%What is TeX and METAfont all about? C.G van der Laan, cgl@risc1.rug.nl -\documentstyle[bezier]{article} %Version 1.1 Jan 94 -\def\Dash{---} -\def\dash{--} -\def\address#1{#1}\def\netaddress#1{}\def\network#1{} - -%Needed files: abr.tex, btable.tex, ds.pic, icon.tex, lit.dat, lit.sel, -% lus.pic, math.tex, pic.pic (tugboat.sty/cmn) -%In final version all these files have been included, however. -%\input{abr.tex} %Abbreviations from TUGboat.cmn -%\input{icon.tex} %Icon macros -%\input{manmac.cgl}%Some boxing macros from manmac -%Input at the appropriate place -% ds.pic , picture inspired by David Salomon -% lus.pic , picture from lustrum paper -% pic.pic , picture from Furuta -%Input along the way (within \begingroup ... \endgroup) -% btable.tex, bordered tabl macro (redefines \multispan!!!) -% math.tex , multipositioning of \eqalign (redefines centering needed) -% lit.dat , literature database (at the end) -% lit.sel , literature reference names pointing to the database. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\newcount\TestCount -\def\smc{\tensmc} -\def\SMC{\ninerm} -\font\tensmc=cmcsc10 -% -% ***** abbreviations and logos ***** -% - -\def\AllTeX{(\La)\TeX} - -\def\AMS{American Mathematical Society} - -\def\AmS{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox - {\the\textfont2 M}\kern-.125em{\the\textfont2 S}} -\def\AmSTeX{\AmS-\TeX} - -\def\aw{A\kern.1em-W} -\def\AW{Addison\kern.1em-\penalty\z@\hskip\z@skip Wesley} - -\def\BibTeX{{\rm B\kern-.05em{\smc i\kern-.025emb}\kern-.08em\TeX}} - -\def\CandT{{\sl Computers \& Typesetting}} - -\def\DVItoVDU{DVIto\kern-.12em VDU} - -\def\ISBN{{\SMC ISBN} } - -% Japanese TeX -\def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}} - -\def\JoT{{\sl The Joy of \TeX}} - -\def\LAMSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont2 A}% - \kern-.2em\lower.376ex\hbox{\the\textfont2 M}\kern-.125em - {\the\textfont2 S}-\TeX} - -% note -- \LaTeX definition is from LATEX.TEX 2.09 of 7 Jan 86, -% adapted for additional flexibility in TUGboat -%\def\LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex -% \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX} -% note -- broken in two parts, to permit separate use of La, -% as in (La)TeX -\def\La{\TestCount=\the\fam \leavevmode L\raise.42ex - \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}} -\def\LaTeX{\La\kern-.15em\TeX} - -% for Robert McGaffey -\def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}} - -\font\manual=logo10 % font used for the METAFONT logo, etc. -\def\MF{{\manual META}\-{\manual FONT}} -\def\mf{{\smc Metafont}} -\def\MFB{{\sl The \slMF book}} - -% multilingual (INRS) TeX -\def\mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX} - -\def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}MF} -\def\PCTeX{PC\thinspace\TeX} -\def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}\TeX} - -\def\Pas{Pascal} - -\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} -\def\PiCTeX{\PiC\kern-.11em\TeX} - -\def\plain{{\tt plain}} - -\def\POBox{P.\thinspace O.~Box } -\def\POBoxTUG{\POBox\unskip~9506, Providence, RI~02940} - -\def\PS{{Post\-Script}} - -\def\SC{Steering Committee} - -\def\SGML{{\SMC SGML}} - -\def\SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}} - -\def\slMF{\MF} -% Use \font\manualsl=logosl10 instead, if it's available, -% for \def\slMF{{\manualsl META}\-{\manualsl FONT}} - -% Atari ST (Klaus Guntermann) -\def\stTeX{{\smc st\rm\kern-0.13em\TeX}} - -\def\TANGLE{{\tt TANGLE}} - -\def\TB{{\sl The \TeX book}} -\def\TP{{\sl \TeX\/}: {\sl The Program\/}} - -\def\TeX{T\hbox{\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX}} - -\def\TeXhax{\TeX hax} - -% Don Hosek -\def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}\kern-.2267emG} - -%\def\TeXtures{\TestCount=\the\fam -% \TeX\-\hbox{$\fam\TestCount\scriptstyle TURES$}} -\def\TeXtures{{\it Textures}} -\let\Textures=\TeXtures - -\def\TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT} - -\def\ttn{{\sl TTN}} -\def\TTN{{\sl \TeX{} and TUG NEWS}} - -\def\tubfont{\sl} % redefined in other situations -\def\TUB{{\tubfont TUGboat\/}} - -\def\TUG{\TeX\ \UG} - -\def\UG{Users Group} - -\def\UNIX{{\SMC UNIX}} - -\def\VAX{\leavevmode\hbox{V\kern-.12em A\kern-.1em X}} -\def\VorTeX{V\kern-2.7pt\lower.5ex\hbox{O\kern-1.4pt R}\kern-2.6pt\TeX} - -\def\XeT{\leavevmode\hbox{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT}} - -\def\WEB{{\tt WEB}} -\def\WEAVE{{\tt WEAVE}} -%******************************************************************** -\def\icmat#1#2{%ICon MATrix(rectangular) -%#1 is ht of icon matrix, e.g. 4 -%#2 is wd of icon matrix, e.g. 2 -\vbox to#1\unitlength{\hrule - \hbox to#2\unitlength{\vrule - height#1\unitlength\hfil\vrule}% - \hrule}% -}%end icmat -% -\def\icurt#1#2{%IConUpperRightTriangle -%#1 is ht of icon matrix, with UT -%the upper triangular part, e.g. 4 -%#2 is wd of icon (upper triangular) -%matrix, e.g. 2 -\vbox to #1\unitlength{\hrule - \hbox{\picture(#2,#2)% - \put(0,#2){\line(1,-1){#2}}% - \endpicture\vrule}% - \vfil}% -}%end icurt -% -\def\icllt#1#2{%IConLowerLeftTriangle -%#1 is ht of icon matrix, with LT -%the lower triangular part, e.g. 4 -%#2 is wd of icon (lower triangular) -%matrix, e.g. 2 -\vbox to #1\unitlength{\vfil - \hbox{\vrule\picture(#2,#1)% - \put(0,#2){\line(1,-1){#2}}% - \endpicture}% - \hrule}% -}%end icllt -% -\def\icuh#1#2#3{%IConUpperHessenberg -%#1 is size of icon matrix, with UH -% the upper Hessenberg part, e.g. 4 -%#2 is wd of icon (upper Hesenberg) -% matrix, e.g. 1 -%#3 is size Lower Left triangular part, -% #1-#2 (for simplicity the latter is added, -% could have been calculated, perhaps some -% inconsistency test could be incorporated) -\vbox to #1\unitlength{\offinterlineskip - \hrule - \hbox to#1\unitlength{\vrule height% - #2\unitlength depth0pt\relax - \hfil\vrule}% - \hbox to#1\unitlength{\picture(#3,#3)% - \put(0,#3){\line(1,-1){#3}}\endpicture - \hfil\vrule}% - \hbox to#1\unitlength{\hfil\vrule - width#2\unitlength height.2pt\relax}% - }% -}%end icuh -% -\def\hidehrule#1#2{\kern-#1\hrule - height#1 depth#2 \kern-#2 } -\def\hidevrule#1#2{\kern-#1{\dimen0=#1 - \advance\dimen0 by#2\vrule width\dimen0}% - \kern-#2 } -% \makeblankbox puts rules at the edges of -% a blank box whose dimensions are those -% of \box0 (assuming nonnegative wd,ht,dp) -% #1 is rule thickness outside, -% #2 is rule thickness inside -\def\makeblankbox#1#2{\hbox{\lower\dp0 - \vbox{\hidehrule{#1}{#2}% - \kern-#1% overlap the rules at the corners - \hbox to\wd0{\hidevrule{#1}{#2}% - \raise\ht0\vbox to #1{}% set the vrule height - \lower\dp0\vtop to #1{}% set the vrule depth - \hfil\hidevrule{#2}{#1}}% - \kern-#1\hidehrule{#2}{#1}}}} -\def\maketypebox{\makeblankbox{0pt}{1pt}} -\def\makelightbox{\makeblankbox{.2pt}{.2pt}} -\def\<#1>{$\langle#1\rangle$} -\def\cs#1{{\tt\char92#1}} -% -\def\mm{{\tt manmac}} -\def\mmt{{\tt manmac.sty}} -%For abstracting and customizing -%\def\head*#1*{\chapter*{#1}} -%\def\subhead*#1*{\section*{#1}} -%\def\subsubhead*#1*{\subsection*{#1}} -%\def\ftn#1{\footnote{#1}} -\let\ea=\expandafter \let\ag=\aftergroup \let\nx=\noexpand -%Customize footer -\def\pfoottext{NLUUG meeting Fall '93} -% -\begin{document} - -\title{What is \TeX{} and METAfont all about?} -%\thanks{Paper to be presented at NLUUG meeting of 2 November, 1993.} -\author{Kees van der Laan} -\address{Hunzeweg 57, 9893 PB\\ - Garnwerd, Groningen (NL)\\ - +31 5941 1525} -\netaddress[\network{Internet}]{cgl@risc1.rug.nl} -\overfullrule0pt -%\begin{abstract} -%A survey of -% \TeX, -% its flavours, and -% its twin sister \MF{}, -%within the context of Electronic Publishing, -%is given. -%\end{abstract} -\maketitle -%\paragraph*{Keywords:}{\small \AmSTeX, -%education, electronic publishing, (La)\TeX, METAfont, (encapsulated) \PS, -% SGML, hypertext.} -\section*{Contents}% -\begingroup\small -Introduction\\ --- \TeX{} etc.{} tools\\ --- Importance\\ --- \TeX's flavours, drivers, and fonts\\ --- Descriptive mark-up\\ --- \TeX{} its author, users, and publishers\\ --- \TeX\ and other EP tools\\ --- Trends\\ --- Examples: generic format, and\\ -\phantom{--} in the small math, tables, and graphics\\ --- Front \& back matter \\ --- Guidelines for choosing\\ -Acknowledgements, Conclusions, References. -\endgroup -\section*{Introduction} -This work about computer-assisted typesetting by \AllTeX{} and \MF{} -in context, is aimed at a broad audience. -Novice users \`a la -BLU\footnote{BLU is Knuth's nickname for the innocent user, the so-called - Ben Lee User of the \TeX book fame, with BLUe its cousin, adopted by me. - Nowadays we would say Beginning \LaTeX\ User.} -who like to become informed what it is all about, -advanced \LaTeX\ users who hardly have heard of \mm, -and mathematicians and publishers who will find the offerings -of the \AMS{} interesting. - -There have been published many notes, articles and books about \TeX. -Advanced ones exploring \TeX's limits, and also contributions at -the survey and introductory level. -The latter deal with -the macroscopic mark-up features as well as -the microscopics of automatic kerning, - for example with A and V in AV, -the automatic handling of ligatures, -the automatic justification and hyphenation -supported by hyphenation tables, and the formatting of -math, tables and graphics. -They also boast of the quality which can be -obtained when formatting the typographic teasers: -math, tables and graphics. - -In the \TeX niques series we have the -tutorials: -A gentle introduction to \TeX, by Michael Doob, and -First grade \TeX, by Arthur Samuel. -For \LaTeX\ there is: An introduction to \LaTeX, by Michael Urban, -and---for the Dutch speaking community---Publiceren met \LaTeX, by -de Bruin. -Also noteworthy is Hoenig's \TeX\ for new users, and -the introduction chapter in Salomon's courseware Insights and Hindsights. -For \MF{} see Henderson's An introduction to \MF{}, -Tobin's \MF{} for beginners, and Knuth's -introductory article on the issue in TUGboat. -A survey with respect to EP tools (Electronic Publishing) is -Document Formatting Systems: -Survey, Concepts and Issues, by Furuta and co-authors. - -For trying it out and working with it, the user groups -distribute PD versions of (La)\TeX{} as well as -integrated working environments for PCs, -with all kinds of bells-and-whistles added. -Ubiquitous is Mattes' PD em\TeX, and the working environments - As\TeX{} (apart from Framework it is - in the Public Domain), next to the Dutch 4\TeX{} (which is shareware). - -This paper relates \TeX{} and \MF{} to EP, -SGML and the like, as a helicopter view, and accounts for the many -activities of its users. -At the end an annotated bibliography has been supplied. - -\paragraph*{Conventions and notations.} -I adhered to the historical development of \TeX\ et cetera, -and did not order the tools with respect to perceived importance. -The latter is a matter of taste and definitely time-dependent. - -The Contents list is not a one-to-one mapping of the section titles. -It is used to stress the main items and their treatment within a logical -hierarchy. -I clustered some section titles and subsection titles, whenever -convenient, to enhance readability. -The aim was to convey the contents and not so much the form, -to paraphrase Marvin Minsky. - -Because it is a `helicopter' view I need to refer to other work. -This has been done a little loose via the name of the -(first) author and the title, or keywords form the title. -The reader can easily spot from the supplied list of references -which work is hinted at. -Just start by the author name and look for the matching title. -I also did not bother about traditions which require that book titles are set -in italics or so. In my opinion to find out whether it is a book, a report or -a journal article follows easily from the ISBN number if provided, -respectively the journal name. -Hereby I assume that readers are familiar with some -journal names, for example TUGboat, the journal of the \TeX\ Users Group. - -For common words in the \TeX\ arcana\Dash like \TeX, \LaTeX, -\AMS, et cetera\Dash I adopted the TUGboat -typesetting conventions by using their macros for formatting these names. -File names are set in the \cs{tt} font. - -\section{\TeX{} etc.{} tools} -First of all \TeX\ etc.\ has been around for some fifteen years, -and many of its users have contributed to the components -and to the porting to many platforms, -with the result that it is -not easy to really survey the whole complex. - -Going back to the roots we can say that -\TeX\ is a program for formatting documents, -born as a twin with its sister \MF, for creating fonts. -\TeX\ and \MF{} have been designed to facilitate the -high-quality computer-assisted production of books. -A more modern way of talking is that \TeX\ is -a mark-up language with \MF{} the accompanying -tool for designing the needed graphics, starting with the fonts. - -A nice survey of the most important components and files when working with -\TeX\ is supplied by the accompanying diagram,\footnote{Inspired by - Salomon's diagram as supplied in his courseware: Insights and Hindsights.} -which illustrates the two main fields: font design and typesetting, with -the relations between the components and files, all in one, and abstracting -from details. - -\noindent -%Version Aug 93 cgl@risc1.rug.nl -\begingroup%Basically Salomon's diagram -%\Large\setlength{\unitlength}{3ex} - \setlength{\unitlength}{3.8ex} -\begin{picture}(14,16)(-.5, -3) -%1st column -\put(1, 0){\line(0, 1){1.5}} -\put(1, 2){\oval(2, 1)} -\put(1, 2){\makebox(0, 0){.pk}} -\put(1, 4){\vector(0, -1){1.5}} -\put(-.5, 4){\framebox(3, 1){METAfont}} -\put(1, 6.5){\vector(0, -1){1.5}} -\put(1, 7){\oval(2, 1)} -\put(1, 7){\makebox(0, 0){.mf}} -%second column -\put(7.5, -.5){\framebox(2, 1){driver}} -\put(9.6, .6){\line(-1, 0){.5}} -\put(9.6, .6){\line( 0, -1){.5}} -\put(9.7, .7){\line(-1, 0){.5}} -\put(9.7, .7){\line( 0, -1){.5}} -\put(8.5, 1.25){\vector(0, -1){.75}} -\put(8.5, 2){\oval(2, 1)} -\put(8.5, 2){\makebox(0, 0){.dvi}} -\put(8.5, 4){\vector(0, -1){1.5}} -\put(7.5, 4){\framebox(2, 1){\TeX}} -%Manmac -\put(9.75, 5.25){\line(-1, 0){1.25}} -\put(9.75, 5.25){\line( 0, -1){.5}} -\put(9.75, 4.75){\line(-1, 0){.25}} -\put(9.8, 4.75){{\tiny manmac}} -%LaTeX -\put(10, 5.5){\line(-1, 0){1.25}} -\put(10, 5.5){\line( 0, -1){.5}} -\put(10, 5){\line(-1, 0){.25}} -\put(8.75, 5.5){\line( 0, -1){.25}} -\put(10.1, 5){{\tiny \LaTeX}} -\put(10.25, 5.75){\line(-1, 0){1.25}} -\put(10.25, 5.75){\line( 0, -1){.5}} -\put(10.25, 5.25){\line(-1, 0){.25}} -\put(9, 5.75){\line( 0, -1){.25}} -\put(10.35, 5.35){{\tiny AMS-(La)\TeX}} -% -\put(10.35, 5.85){\hbox{.}\kern.1ex -\raise.5ex\hbox{.}\kern.1ex\raise1ex\hbox{.}} -% -\put(8.5, 6.5){\vector(0, -1){1.5}} -\put(8.5, 7){\oval(2, 1)} -\put(8.5, 7){\makebox(0, 0){.tex}} -% -\multiput(8.5, 9)(0, -.415){3}{\line(0, -1){.25}} -\put(8.5, 8.7){\vector(0, 1){.3}} -\put(8.5, 7.8){\vector(0, -1){.3}} -\put(7.5, 9){\framebox(2, 1){editor}} -%Spelling checker -\put(9.75, 10.25){\line(-1, 0){1.25}} -\put(9.75, 10.25){\line( 0, -1){.5}} -\put(9.75, 9.75){\line(-1, 0){.25}} -\put(9.85, 9.75){{\tiny spell}} -%Style checker -\put(10, 10.5){\line(-1, 0){1.25}} -\put(10, 10.5){\line( 0, -1){.5}} -\put(10, 10){\line(-1, 0){.25}} -\put(8.75, 10.5){\line( 0, -1){.25}} -\put(10.1, 10){{\tiny style}} -% -\put(10.1, 10.6){\hbox{.}\kern.1ex -\raise.5ex\hbox{.}\kern.1ex\raise1ex\hbox{.}} -% -\put(8.5, 11.5){\vector(0, -1){1.5}} -\put(8.5, 12){\oval(2, 1)} -\put(8.5, 12){\makebox(0, 0){copy}} -%basis -\put(1, 0){\vector(1, 0){6.5}} -\put(9.5, 0){\vector(1, 0){1.5}} -\put(11, -.75){\framebox(2, 1.5){}} -\put(11.25, -.4){\shortstack{\small printer\\\small screen}} -%middle -\multiput(5, 5.25)(0, 1){3}{\line(0,1){.5}} -\multiput(5, .25)(0, 1){4}{\line(0,1){.5}} -\multiput(5, -1.75)(0, 1.3){2}{\line(0,1){.2}} -% -\put(3.5, -1.250){\dashbox{.25}(3, .5){{\tiny \PS}}} -\multiput(6.5, -1)(.45, 0){4}{\line(1,0){.25}} -\put(8.5, -1){\line( -1, 0){.2}} -% -\put(8.5, -1){\vector(0, 1){.5}} -\put(2.5, 4.5){\vector(1, 0){1.5}} -\put(5, 4.5){\oval(2, 1)} -\put(5, 4.5){\makebox(0, 0){.tfm}} -\put(6, 4.5){\vector(1, 0){1.5}} -\put(9.5, 4.5){\vector(1, 0){1.5}} -\put(12, 4.5){\oval(2, 1)} -\put(12, 4.5){\makebox(0, 0){.log}} -%base line -\put(.51,-1.75){\vector(-1, 0){1}} -\put(2.25, -1.75){\makebox(0, 0){Fonts}} -\put(3.9,-1.75){\vector( 1, 0){1}} -\put(6.1,-1.75){\vector(-1, 0){1}} -\put(9, -1.75){\makebox(0, 0){Typesetting}} -\put(11.9,-1.75){\vector(1, 0){1}} -\end{picture} -\endgroup - -\noindent That is -\begin{itemize} -\item the flow from copy to printed results -\item where the editor and its associated tools come in -\item the location of \TeX\Dash its flavours, and add-ons\Dash at the heart -\item what is used from \MF{} and where -\item the printer independence via various drivers -\item at what level \PS{} can be included. -\end{itemize} -The important files are indicated by their extensions and are -depicted within ovals. What holds for creating the \verb|.tex| file -holds also for the \verb|.mf| file.\footnote{Not mentioned are vir\TeX\ - and ini\TeX. Erik-Jan Vens communicated the following functionalities - on the TeX-nl network: `Ini\TeX\ allows preparing and fast loading - of {\tt .fmt} files. Vir\TeX\ is a program that can accept fast - your macros and then do the typesetting job proper.'} - -\subsection{Working environments.} -The needed tools are nowadays embedded in -computer-assisted (scientific) working environments. -At first sight this seems trivial, but it is really handy that the tools -are integrated, also with non-formatting applications per se, such -as email, database applications and the old running of C or FORTRAN programs. -A model of thinking is that, for example, a thesis is prepared and all -the simulations and calculations are done as a side-step of the main work: -publishing! That is document preparation, formatting, typesetting, and -dissemination. -The graphics-oriented PCs like Macintosh and Atari paved the way. -Nowadays the 486-based PCs with their (graphics) window facilities allow -this way of working too. - -\subsection{Installation.} -The products are usually accompanied by their installation documentation. -Famous, and top class, are the AMS installation Guides. -With the PD PC versions the idea is to supply turn-key scripts so that -the installation goes automatically. ->From those distributed by the TUG/LUGs the only nice one -I have seen is the GUTenberg PD PC set and installation guide, -prepared by Lavaud. Installation of the working environments is more -complicated, because of the many components. - -\subsection{Lifetime.} -The kernel \TeX\ and \MF{} -programs have been designed with flexibility and portability in mind. -Knuth envisioned that the two could be used a hundred years from now, -just as we do today, with the same -input and results!\footnote{Or better.} -In order to make this possible Knuth -\begin{itemize} -\item invented the \WEB{} literate programming way of working -\item documented the programs (open system) well -\item worked hard on making the systems error free -\item delivered the twins into the public domain, and -\item froze the kernels. -\end{itemize} -Because of these goodies the user community could port the systems -to any conceivable platform, and add layers on top -to adjust for users' wishes and demands. All-in-all one can say -that the twins are portable in place and time, are powerful, useful, -and will serve a lifetime. - -The working environments suffer from a much shorter lifetime. -Read: need continuous maintenance and that is something, especially in -a volunteer-based world. -It is always -a matter of the right balance: how fast do I need to do the day-to-day -work and how often do I wish to upgrade the working environment. - -\section{Importance} ->From the computer science point of view -\TeX\ and \MF{} are big research achievements -in how software engineering should be done, -if not for the literate programming way of software design and creation. -Top-class algorithms for line-breaking, hyphenation and page make-up -have been incorporated. -It is designed to be device-independent. -That Knuth succeeded so well in his basic research can be witnessed -by the many publications which -have been built upon his Computer and Typesetting works, -and the many honorary degrees he has received. - ->From the users' point of view \TeX\ etc.\ -is relevant because of the quality which -can be obtained when used as a formatter. -\TeX\ is an open and freely available system. -It has been frozen, and delivered into the public domain to serve -for a lifetime. -That Knuth succeeded here so well can be distilled from the many organized -users of \AllTeX\ world-wide, and perhaps the tenfold more who -just use the systems. - -Its weakness is that \TeX\ proper does {\em not\/} have easy user guides. -This weakness has been compensated for by efforts like \LaTeX, -\AmSTeX/\LaTeX, and the styles from publishing houses and their user and -installation guides. -%\begin{quote} -Perhaps an unexpected side-effect of \TeX\ is that it is so heavily used -with alphabets different from Latin, and even with scripts -which run from right to left (Hebrew) or scripts which run vertically -(Japanese), not to mention specific hyphenation patterns. -%\end{quote} -That \TeX\ allows for these usages might give an idea of its power. - ->From the publishers' point of view \TeX\ has the potential of being used -for producing complex scientific documents cost-effectively. -This is the current practice of the \AMS, -and the American Physical Society, APS for short. -They supply authors with -\begin{itemize} -\item user and installation guides -\item fonts -\item style files -\item templates, and -\item support, in general. -\end{itemize} - -\paragraph*{The advantages}can be summarized as -\begin{itemize} -\item high-quality craftsman tool -\item lingua franca for exchange of typographically complex documents -\item stability (\TeX{} kernel has been frozen) -\item open system -\item available for nearly all platforms -\item in the public domain -\item portable, flexible, extensible, \ldots -\item 7.5--10k organized users world-wide -\item cost-effective production tool. -\end{itemize} - -\paragraph*{Disadvantages}are there any? -Of course there are. But it is questionable -whether one should talk about disadvantages. -Perhaps one should talk more in terms of incompleteness. -\begin{quote} -What is felt like an omission can be added, -because it is an extensible system. -\end{quote} -I for one miss that \mmt---Knuth's macros for formatting his books---doesn't -take a user guide, nor does plain \TeX. -Of course there is the \TeX book---the bible for the \TeX ies---but that does -{\em not\/} hide the details---it is all there, for the beginner as -well as for the advanced macro writer---which is confusing -and simply too much for a novice. In summary -\begin{itemize} -\item \AllTeX\ is not - WYSIWYG-like\footnote{Usually commercial.} -\item unusual macro language\footnote{It is always a matter of education, - and after that the {\em un\/}usual issues metamorphose into paradigms.} -\item complex: $\approx$ 1k commands, parameters, \ldots\footnote{Abstraction, - subsetting and user guides\Dash like those of \AmSTeX\Dash are needed. - Tools which concentrate on the publishing goal and not so much on - understanding and learning the formatting language per se.} -\end{itemize} -So its incompleteness is a challenge to all of us, to fill it up. - -It is true, however, that professionals have found some niches which deserve -further research and development. Surveys on these items are provided in -the E-\TeX\ paper by Mittelbach, and the New Typesetting System efforts -initiated by the German-speaking users group DANTE. -Also noteworthy is the effort to improve -\LaTeX\ via the so-called \LaTeX3 (better known as lxiii) project. - -One can also argue that delving into these details is sub-optimization, -concentrating too much on the mapping onto paper. Bigger issues are -related to the multi-media aspects, let us say to represent information -in a flexible way such that it can be processed by various technologies, -into forms suited for various users, their circumstances and their -tastes, limited only by their senses. -I like to call this {\em real\/} applied information technology: -information to be accessed by the masses. - -\section{\TeX's flavours} -\TeX\ has gotten its children already, like \mm, \LaTeX, and -\AmSTeX/\LaTeX, to name but a few. -As usual with children they live their own lives. -For \TeX\ this means that they have the confusing -side-effect of not being completely compatible. -In spite of this incompatibility reality has it that authors and publishers -make their choice---\TeX-based, or \LaTeX-oriented---and therefore -the incompatibilities don't hinder most of us. - -\paragraph*{\mmt} is a set of macros -written and used by Knuth to format his magnum opus: -The Art of Computer Programming, -his Computers and Typesetting series, -and so on. For an account see my Manmac BLUes. - -\paragraph*{\LaTeX}stresses the higher-level approach of descriptive mark-up -and hides the formatting details as much as possible from an author. -Because of the rigorous way this has been implemented, -it is hard to customize the prefab styles. - -Leslie Lamport's manual, \LaTeX, A Document Preparation System, -exhibits the functionalities -\begin{itemize} -\item prefab styles: article, book, letter, report, slides -\item automatic (symbolic) numbering and cross-referencing -\item multi-column formatting, with its embedded 1-column occasionally - for tables and figures -\item automatic generation of ToC, LoT, LoF -\item picture environment -\item bibliography environment. -\end{itemize} - -\paragraph*{\AmSTeX/\LaTeX}are the tools of the -pace-setting American Mathematical Society. This publisher adopted -and supported the \TeX\ development from the beginning. (See below -under \TeX\ and its publishers.) - -\paragraph*{\LAMSTeX} reimplemented in a flexible way - the descriptive \LaTeX\ approach, next to - a general automatic numbering and symbolic referencing scheme, - advanced table macros, and - sophisticated commutative diagram macros. - See my review of Spivak's \oe uvre - for more details about the Joy of \TeX\ and \LAMSTeX---The Synthesis. - -\paragraph*{In summary} -\begin{itemize} -\item \mmt, Knuth's format -\item \LaTeX, descriptive mark-up, and user's guide -\item \AmSTeX/\LaTeX\ styles and fonts, with support -\item \LAMSTeX -\item TUGboat styles -\item PD software and working environments -\end{itemize} - -\section{\TeX's drivers} -Normally the drivers come with your \TeX\ when you buy it. -With the PD versions, users have to be aware of the PD available drivers, -for the various PCs and printers, -unless your user group provides you with an -integrated working environment which contains all. -For a survey of the available `Output device -drivers' see Hosek's paper in TUG's resource directory. -He details drivers for -\begin{itemize} -\item laser xerographic and electron-erosion printers -\item impact printers and miscellaneous output devices -\item phototypesetters -\item screen previewers -\end{itemize} -\noindent and ends up with supplier information. -Joachim Schrod reported in TUGboat 13, 1, -(early 1992) from the TUG DVI driver standards committee. - -Well-known is the PD Beebe driver family. em\TeX\ comes with some -drivers for dot matrix printers and the HP LaserJets. - -At the TUG '92 meeting the attendees were surprised by Raman's paper -`An audio view of (La)\TeX\ documents.' It has all to do with -representing the contents of a publication for the blind. - -With respect to \PS\ the \verb|dvitops| driver is important. Formerly, -I also used \verb|dvitodvi| in order to print out selected pages. -Now I use \mm's facility to do that which is essential -simpler for that purpose because it ships out only the required pages. - -\section{\TeX{} and fonts} ->From the beginning Knuth provided \TeX\ with the computer modern family of -fonts. These fonts can be generated, and varied via \MF, -by adjusting some parameters. -Since the introduction of the virtual font concept, in revision '89 -better known as \TeX{} version 3, -many industrial fonts can be used as well. -Via this mechanism, font elements can be combined at the driver level. -The need for handling in a flexible way the positioning of diacritical marks -was the incentive for adding the virtual font concept, to make it -feasible to handle languages with their own special placements of -diacritical marks without the need to -regenerate complete new fonts. -The other way is to generate complete font tables for every language, -which is a perfectly acceptible way of doing it, -but will entail many font tables and -of larger size.\footnote{Reality has it that the \TeX\ community standardized - on the 256-character DC font tables, to allow for some special characteres, - like the use of the ij in Dutch. See Haralambous' paper in TTN 1, 4. - An entirely different approach is needed for the Japanese ideograms, - that is symbols representing things or ideas. At present there are some - 6,353 kanji characters available on various types of computers known - as JIS level 1 or 2 (Japanese Industrial Standard is akin to ASCII.) -} - -However, since \TeX\ is used for more and more applications -the need for more fonts\Dash different shapes, sizes and so on\Dash -has emerged. -Using standard bitmap technology much computer memory is needed. -Reality has it that scaling fonts linearly does not yield -pleasing results. -To compensate for this the intelligent scalable fonts technology emerged% ----near-linear and intelligent, that is with some enhancements---% -as opposed to the classical memory-consuming bitmap fonts, extended by -the linear scaling as such. - -Also the mark-up for fonts has gotten a new dimension: the linear space of -available fonts is seen as a 4-dimensional space governed by the coordinates -family, serie, shape, and size. The approach goes with the buzzword NFSS, -New Font Selection Scheme (See Goossens, Mittlebach and Samarin). - -\paragraph*{Which fonts can be used with \TeX?} -The following classes of {\em text\/} fonts can be used with \TeX -\begin{itemize} -\item CM, the native Computer Modern -\item 14,000 fonts in industry standard Adobe type 1 -\item several hundreds in formats such as TrueType. -\end{itemize} -(Very) few fonts can be used with math, -because of the specialities of the -font characteristics \TeX\ assumes. -However, the following fonts can be used with math -\begin{itemize} -\item CM math, the native Computer Modern -\item lucida math -\item lucida newmath -\item mathtimes. -\end{itemize} -For more details see Horn's Scalable outline fonts paper, and for Japanese -Fujiura in TTN 1, 2. - -\section{Descriptive mark-up} -Since the start of computer-assisted typography attention has been paid -to abstraction from details, to the principle of the -{\em separation of concerns}. - -Leading in this area is the SGML approach.\footnote{The relation - between SGML and \TeX\ will be discussed later.} -It is argued that -\begin{quote} -authors should concentrate on the contents\Dash and inherently on the -structure\Dash of their documents, leaving the details for formatting -to the publisher. -\end{quote} - -\paragraph*{Example:}(Call for papers, Furuta) -\begingroup\small\begin{verbatim} -\input cfp.tex%contains format and macros -%next copy proper -The aim of this paper... - -Paper are solicited on ... -\lstitm Picture editing -\lstitm Text processing -\lstitm Algorithms and software... - -Detailed abstracts should not ... - -Duration of presentation... -\bye -\end{verbatim}\endgroup -The above example is a mixture of natural input, where blank lines -have an intuitive but context-dependent meaning, and of -handling trivia automatically behind the scenes. -An example of a default is the heading. - -For this format the heading is always the same, -so there is no need for a user to provide it each time the format -is used. It comes along with the format. -So do the fonts used and the shortcuts -like \verb|\def\lstitm{\item{--} }|. - -My approach looks simpler than Furuta's\Dash in that paper all the low-level - formatting details were there\Dash -because I applied the principle of the separation of concerns -and abstracted from the low-level formatting details. -The point I'd like to make is that it is possible to hide -formatting details, to account for these separately and at a lower level. -I like to call this approach generic, because the mark-up is customized -at a lower level to the suited tool. - -\section{\TeX\ and its author} -Don Knuth started the design of \TeX\ in 1978. -The first major revison dates back to 1982. -The final version is dated 1989, and called \TeX\ version $\pi$.\footnote{% - Essentially version 3, but because reality has it that even Knuth - `makes errors' he allows for adjusted versions denoted by the decimals of - $\pi$: 3.1, 3.14, 3.141, et cetera.} -It is all a side-step(!) of his magnus opus: The Art of Computer Programming, -of which three volumes have appeared of the envisioned seven. -Because of the rapid development in computer science volume four consists of -three books already. - -In designing and developing \TeX, -Knuth adhered to several software engineering paradigms like: -portability, flexibility, robustness, and not to -forget correctness and documentation.\footnote{The software crises of the - seventies suffered much from inadequate documentation.} -In order to do this gracefully -he coined the words {\em literate programming}, -and provided en-passant tools for practical use! -In fact \TeX\ can be seen as -a real-life and significant example of literate programming. - -In designing \TeX\ he adopted and developed the following -\begin{itemize} -\item boxes, glue and penalties as building blocks -\item paragraph-wise searching for line-breaks -\item page mapping via the OTR,\footnote{A buzzword to denote the - output routine which performs this task.} - optimizing for least penalties -\item device-independent output, to be printed, typeset, or viewed, - by independent driver programs -\item virtual fonts. -\end{itemize} -\noindent \TeX\ was developed as a side-step. \MF{} can be seen as -an off-off-spring. - -\section{\TeX{} and its users} -It is unknown how many people use \AllTeX, and for what purposes. -We know, however, that it is used all over the world, to typset -\begin{itemize} -\item scientific documents, exchange - and publish such documents\footnote{For an impression of - published books formatted via \TeX\ see Beebe's bibliography - in the TUG resource directory.} -\item documents which require special fonts and layout - conventions, like Japanese, Arabic, Hebrew and so on -\item transparencies and slides -\item material associated with a - hobby (bridge, chess, crosswords, go, music, and add yours). -\end{itemize} -\noindent A great virtue of the users' action is -\begin{itemize} -\item the porting to various platforms -\item to provide macros, fonts and formats -\item to maintain \LaTeX -\item to ponder about and develop New Typsetting Systems -\item to develop and maintain integrated working environments. -\end{itemize} - -\paragraph*{The user groups.}We also know that many users have -organized themselves into user groups, -to start with the original \TeX\ Users Group (TUG), -and more recently into so-called LUGs---language-oriented -local user groups. -The Dutchies are organized since 1988 as the NTG, -Nederlandstalige \TeX\ Gebruikersgroep, that is Dutch language-oriented -\TeX\ Users' Group. We enjoy some 225 members of whom are 30 institutions. -\\ -World-wide some 7.5--10k users are organized. -\\ -The benefits of being organized, apart from those which come -from cooperation and sharing in general, are -\begin{itemize} -\item meetings -\item TUGboat, newsletter, casu quo bulletins, `specials' -\item resource directory (information about the (La)\TeX\ working environments - of members, their addresses and similar things) -\item TUGboat styles -\item assistance\\ - -- archives\\ - -- BBS (Bulletin Board Services) \\ - -- digests \\ - -- FAQs (Frequently Asked QuestionS) -\item courses -\item PD sets (Public Domain) -\item distributing point books (tutorials), software. -\end{itemize} -\noindent -Moreover, the user groups stimulate and support research and development, -such as the projects: \TeX HaX, \BibTeX, -and more recently \LaTeX3, and NTS. ->From the social side we have the TUG bursary fund, -to grant attendence for a TUG meeting for those TUG members who can't -afford it, next to the Knuth Scholarship award. The latter is a competition -which rewards the winner with attending a meeting for free. - -\paragraph*{Some addresses?} -\begin{quote} -TUG: Balboa Building, Room 307, 735 State Street, Santa Barbara, Ca 93101, USA, - {\tt tug@tug.org}\\[1ex] -NTG: Postbus 394, 1740 AJ Schagen, {\tt ntg@nic.surfnet.nl}. -\end{quote} -For other addresses consult the resource directory of TUG, or -your friendly NTG around the corner. - -\subsection{Add-ons}have been provided by the user communities. -They have also supplied mutual support, and have provided logistic facilities. -The latter is not restricted to \AllTeX\ proper. -It is about the general use of the electronic networks -\begin{itemize} -\item exchange via e-mail -\item electronic digests and list servers -\item the file servers, which store all the macro and style files. -\end{itemize} -Really, very nice goodies! The proper add-ons concern -\begin{itemize} -\item porting the complex to every system, especially the affordable - and widespread PCs -\item macro and style files\footnote{A survey of what is provided is contained - in the so-called Jones' index, and Beebe's TUGlib.} -\item extra fonts, casu quo font couplings via virtual font scripts -\item WYSIWYG user interfaces (commercial) -\item \TeX-based PD/shareware working environments -\item language-specific issues (hyphenation patterns, reserved words, \ldots) -\item drivers for new printers -\item \PS{} etc.{} inclusion at the dvi level. -\end{itemize} -And the end is not yet in sight. - - -\section{\TeX{} and the publishers} -The importance of the \AMS{} effort is that the AMS is leading in how (La)\TeX\ -can be used cost-effectively as a -high-quality tool in a production environment: -publishers cooperating with authors. - -As I understand it the American Physical Society is following -the AMS approach. - -At the TUG '91 meeting at Boston, it was estimated that commercial publishers -handle some 5 to 10\% of their (scientific) production via (La)\TeX. - -And in the CIS---Commonwealth of Independent States, the former Russia---MIR -has adopted the AMS approach as well. -And then there is the Ukraine group to be founded officially this fall, -and undoubtedly more to follow. -% -\paragraph*{The \AMS}do their -complete production via \TeX: $\approx$100,000 pages/year, - and provide authors with -\begin{itemize} -\item (generic) styles -\item macros, and fonts -\item user guides -\item support (keyboarding, mark-up, fine-tuning). -\end{itemize} -The approach can be depicted by the following scheme -$$\hbox{\vbox{\lineskip.5\lineskip -\hbox to15ex{\hss author(\TeX)\hss} -\hbox to15ex{\hss$\downarrow$\hss} -\hbox to15ex{\hss\tt amsppt.sty\hss} -\hbox to15ex{\hss$\downarrow$\hss} -\hbox to15ex{\hss\tt amstex.tex\hss} -\hbox to15ex{\hss$\downarrow$\hss} -\hbox to15ex{\hss\TeX\hss} -}\qquad\qquad\qquad\qquad\vbox{\lineskip.5\lineskip -\hbox to15ex{\hss author(\LaTeX)\hss} -\hbox to15ex{\hss$\downarrow$\hss} -\hbox to15ex{\hss\tt amsart.sty\hss} -\hbox to15ex{\hss$\downarrow$\hss} -\hbox to15ex{\hss\llap{{\tt amstex.sty}$\,% -\rightarrow\;$}\LaTeX\hss} -\hbox to15ex{\hss$\downarrow$\hss} -\hbox to15ex{\hss\TeX\hss} -}}$$ -They also supply fonts: Euler, Fraktur, \ldots - -For more details -consult the AMS sources or see my AMS BLUes paper on the issue. - -\paragraph*{The American Physical Society}handle some 20\% -of their production via \LaTeX. They cooperate with The Optical -Society of America and the American Institute of Physics. -Their style is called REV\TeX. - -\paragraph*{MIR}publishers Moscow---the driving force -behind CyrTUG, the Cyrillic language-oriented \TeX\ -users group\footnote{See also `News about CyrTUG and Russian \TeX\ Users' - in TTN 2, 1.}---translated Spivak's The Joy of \TeX\ -into Russian among others. -I would not be surprised to hear that they do the -production of their scientific documents with \TeX\ too, completely. -They have the knowledge and \TeX nology. And \TeX- and \MF-based -technology does not require much hard currency for investment. - -\paragraph*{JTUG?}And what is going on in Japan? -The JTUG has at least .5k members.\footnote{See also `Update of \TeX\ in Japan' - TTN 1, 2.} They have translated among others the \TeX book and the - \LaTeX\ manual into Japanese. -Some years ago I received a Japanese newspaper set by J\TeX! - -\section{\TeX\ and other EP tools} -Furuta gives a good account of the history and early tools -in relation with computer-assisted typesetting. However, since the appearance -of that paper -\begin{itemize} -\item the laser printer technology has taken off -\item many computer-based fonts have emerged -\item thinking in structures has gotten more interest (SGML) -\item the DTP (Desktop Publishing) credo has come into existence, and -\item hardware prices have continued to spiral down. -\end{itemize} -Everybody can afford a PC, a laser(jet) printer, and some software (especially -Word{\em whatever\/} or the PD \AllTeX). % and publish (or perish). ;-))) - -\subsection{\TeX\ and intelligent editors.} -Keyboarding compuscripts in (La)\TeX\ can be assisted by editors which -are (La)\TeX\ intelligent, and next, to use templates as `fill-in' forms. -An example is Beebe's \LaTeX-intelligent emacs. -This approach can prevent errors like the level 1 or so endings, or -non-matching braces and the like. -At this level we can also make use of spelling checkers and style -assistants. - -\subsection{Word{\it whatever\/} and \TeX?} -It is true that Word-you-name-it, has made the use of computers more popular. -They replaced the typewriters, don't forget that. And of course that was a -step forward. These are the tools the masses are using because of the -sufficient and improved quality which can be obtained. -This must be seen in context of course: most of the publications -are just in-house reports, memos and the like. - -\begin{quote} -For high-quality typesetting a \TeX-like tool, -high-resolution fonts and ipso facto printer, or viewer, -are needed. -\end{quote} -\noindent -Because wordprocessors are so widespread and heavily used, it can be -anticipated that users start from there and -need \TeX's formatting capabilities now and then. -For that group there exist conversion software: -the public domain DRILCON -and the commercial K-Talk. -Simpler, and better when it concerns complex structured copy, -is to -\begin{quote} -output in ASCII from Word{\it whatever\/} -and insert \AllTeX\ mark-up. -\end{quote} -\noindent And, of course, the wordprocessor can always be used as an editor -for \TeX, with taking advantage of the integrated spelling checker. - -\subsection{Troff or \TeX?} -Troff preceded \TeX. It comes with UNIX. -Both have been in use for the last decade. -To begin with Knuth built upon troff, scribe and similar tools. -On the other hand the troff add-ons have learned from \TeX. -So there has been mutual influence. - -With respect to the functionality the tools are comparable. Both aim at -computer-assisted typography. But there is also a world of difference. -Basically the difference is that troff is a program which can be -extended by independent preprocessors, and \TeX\ is an extensible -language itself, with plain \TeX---the kernel program---device independent, -that is the mapping on the media has to be done by independent drivers. -That the latter was not in troff -can be discerned from the subsequent nroff\Dash with accompanying neqn\Dash -and finally, di-roff, device-independent roff. -Furthermore, remember that \TeX\ is just one of the twins. - -Rumour has it that interest in troff weakened because -the early PCs did not come with UNIX, and that -the kernel has remained undocumented (Its author Ossanna -died in an accident.) -The following table is supplied to indicate roughly the differences. - -\begingroup\tiny -%\input{btable.tex} -%C.G. van der Laan, Hunzeweg 57, 9893PB, Garnwerd. Holland. 05941-1525. -%btable.tex version 1, 17/7/92 author: cgl@risc1.rug.nl -\newbox\tbl\let\ea=\expandafter -%Cell vertical size, row height and depth (separation implicit), -\newdimen\cvsize\newdimen\tsht\newdimen\tsdp\newdimen\tvsize\newdimen\thsize -%Parameter setting macros: Rules -\def\hruled{\def\lineglue{\hrulefill}\def\colsep{} \def\rowsep{\hrule} - \let\rowstbsep=\colsep\let\headersep=\rowsep} -\def\vruled{\def\lineglue{\hfil} \def\colsep{\vrule}\def\rowsep{} - \let\rowstbsep=\colsep\let\headersep=\hrule} -\def\ruled {\def\lineglue{\hrulefill}\def\colsep{\vrule}\def\rowsep{\hrule} - \let\rowstbsep=\colsep\let\headersep=\rowsep} -\def\nonruled{\def\lineglue{\hfil} \def\colsep{} \def\rowsep{} - \def\rowstbsep{\vrule}\def\headersep{\hrule}} -\def\dotruled{\def\lineglue{\dotfill}\def\rowsep{\hbox to\thsize{\dotfill}} -\def\colsep{\lower1.5\tsdp\vbox to\cvsize{% -\leaders\hbox to0pt{\vrule height2pt depth2pt width0pt\hss.\hss}\vfil}} -\let\rowstbsep=\colsep\let\headersep=\rowsep} -%Parameter setting macros: Controling positioning -\def\ctr{\def\lft{\hfil}\def\rgt{\hfil}}%Centered -\def\fll{\def\lft{} \def\rgt{\hfil}}%Flushed left -\def\flr{\def\lft{\hfil}\def\rgt{}} %Flushed right -%Parameter setting macros: Framing -\def\framed{\let\frameit=\boxit} -\def\nonframed{\def\frameit##1{##1}} -\def\dotframed{\let\frameit=\dotboxit} -% -\def\btable#1{\vbox{\let\rsl=\rowstblst%Copy -\ifx\empty\template\ifx\empty\rowstblst - \def\template{\colsepsurround\lft####\rgt&&\lft####\rgt\cr} - \else\def\template{\colsepsurround####\hfil&&\lft####\rgt\cr}\fi - \fi -\tsht=.775\cvsize\tsdp=.225\cvsize -\def\tstrut{\vrule height\tsht depth\tsdp width0pt} -%Logical mark up of column and row separators, via use of -\def\cs{&\colsepsurround\colsep\colsepsurround&} -\def\prs{&\colsepsurround\lineglue&} \def\srp{&\lineglue\colsepsurround&} -\def\rs{\colsepsurround\tstrut\cr - \ifx\empty\rowsep\else\noalign{\rowsep}\fi - \ifx\empty\rowstblst\else\ea\nxtrs\fi} -\def\grs{\colsepsurround\tstrut\cr\ghostrow} -\def\rss{&\colsepsurround\rowstbsep\colsepsurround&} -\def\hs{\colsepsurround\tstrut\cr - \ifx\empty\headersep\else\noalign{\headersep}\fi - \ifx\empty\rowstblst\else\ea\nxtrs\fi} -\preinsert -\setbox\tbl=\vbox{\tabskip=0pt\relax\offinterlineskip -\halign{\span\template\ifx\empty\first\ifx\empty\rowstblst\else -\ifx\empty\header\else\ea\rss\fi\fi\else\first\ea\rss\fi -\ifx\empty\header\ifx\empty\first\if\empty\rsl\else\ea\nxtrs\fi - \else\ea\hs\fi -\else\header\ea\hs\fi -#1\colsepsurround\tstrut\crcr} } %end \setbox -\postinsert -\ifx\caption\empty\else\hbox to\thsize{\strut\hfil\caption\hss}\captionsep\fi -\frameit{\copy\tbl} -\ifx\footer\empty\else\footersep\hbox{\vtop{\noindent\hsize=\thsize% -\footer}}\fi }} %end \btable -%Defaults -\cvsize=4ex\tsht=.775\cvsize\tsdp=.225\cvsize\def\colsepsurround{\kern.5em} -\def\caption{}\def\first{}\def\header{}\def\rowstblst{}\def\footer{}\def\data{} -\def\captionsep{\medskip} \def\headersep{\hrule} -\def\footersep{\smallskip} \def\rowstbsep{\vrule} -\def\preinsert{} -\def\postinsert{\global\thsize=\wd\tbl - \global\tvsize=\ht\tbl\global\advance\tvsize by\dp\tbl} -\ctr\nonruled\nonframed\def\template{}\def\ghostrow{} %end Defaults -%Auxiliaries -\def\boxit#1{\vbox{\hrule\hbox{\vrule\vbox{#1}\vrule}\hrule}} -\def\dotboxit#1{\vbox{\offinterlineskip\hbox to\thsize{\dotfill}% -\hbox{\lower\tsdp\vbox to\tvsize{% -\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}% -\vbox{#1}\lower\tsdp\vbox to\tvsize{% -\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}}% -\hbox to\thsize{\dotfill}}} -%And to account for logical columns with \multispan -\def\spicspan{\span\omit} -\def\multispan#1{\omit\mscount=#1\multiply\mscount by2 \advance\mscount by-1 -\loop\ifnum\mscount>1 \spicspan\advance\mscount by-1 \repeat} -%To process FIFO, an improved version is available -\def\bfifo#1{\ifx\efifo#1\else\def\nxt{\process#1\bfifo}\ea\nxt\fi} -\def\process#1{\hbox to0pt{\hss#1\hss}\kern.5ex} -%To handle the row stub list: \rsl -\def\nxtrs{\ifx\empty\rsl%\let\nxtel=\relax -\else\def\nxtel{\ea\nrs\rsl\srn}\ea\nxtel\fi}%next Row Stub -\def\nrs#1#2\srn{\gdef\rsl{#2}#1\rss} %end btable.tex -%%%%btable end%%%% -% -\def\data{%Costs\cs -PD \cs licensed via UNIX\rs -%Availability\cs -all platforms \cs under UNIX \rs -%Documentation\cs -\TeX book (also on-line)\cs On-line manual \rs -%Fonts \cs -METAfont's CM, virtual fonts \cs ?\rs -%Design \cs -open system \cs kernel undocumented\rs -%Printers \cs -device independent \cs di-roff approach\rs -%Flexibility \cs -complete \cs ?\rs -%Extensibility \cs -macros \cs preprocessors\rs -%Mark-up\cs -formats and styles\cs ms macros\rs -%Coding \cs -uniform in \WEB{} \cs C\rs -%Future \cs -kernel frozen, users augment \cs frozen\rs -%Acceptance \cs -users, AMS, APS, \ldots \cs users, ?\rs -} -\def\header{\AllTeX\cs T/Di-roff} -\def\rowstblst{{% -Costs}{% -Availability}{% -Documentation}{% -Fonts }{% -Design }{% -Printers }{% -Flexibility }{% -Extensibility }{% -Mark-up }{% -Coding }{% -Future }{{% -Acceptance }}} -$$\fll\btable\data$$ -\endgroup - -\subsection{SGML and \TeX?} -SGML stands for Standardized Generalized Mark-up Language. -It is an effort to formalize mark-up, and is defined as a meta-language -to define the mark-up language of each publication series into -so-called Document Type Definitions, DTDs for short. - -SGML is part of a huge standardization effort supported by the -US military via the CALS initiative. Other components are: FOSI---Formatted -Output Specification Instance\footnote{See Dobrowolski's paper.}---and -DSSSL.\footnote{See Bryan's paper.} -It is not so much a question of -\begin{quote}\TeX\ {\em or\/} SGML, -but more \TeX\ {\em and\/} SGML. -\end{quote} -\noindent -\TeX\ formats can learn a lot from the SGML approach and on the other hand -SGML needs a formatter when it is used to print documents. -This cooperative approach is known as -\begin{quote} -SGML the front-end, -\AllTeX\ the back-end. -\end{quote} -\noindent A diagram about the SGML-\TeX\ relation is -supplied in the accompanying picture. - -\newcount\leg -\begin{figure}[hbt] -\begin{center} -\begingroup\small -\setlength{\unitlength}{2.5ex} -\begin{picture}(20,23)(-10, 0) -\put(-7,\the\leg){\framebox(4,2){(La)\TeX}} -\put(-2,\the\leg){\framebox(4,2){TROFF}} -\put(3,\the\leg){\framebox(4,2){\ldots}} -\advance \leg by 4 -%hark -\put(-5,\the\leg){\vector(0,-1){1.75}} -\put(0,\the\leg){\vector(0,-1){1.75}} -\put(5,\the\leg){\vector(0,-1){1.75}} -\put(-5,\the\leg){\vector(1,0){5}} %backarrow -\put( 0,\the\leg){\line(1,0){5}} -%converters -\put(5.5,\the\leg){\vtop to 0pt{\hbox{Specific} - \hbox{format file}\vss - } - } -\put(0,\the\leg){\vector(0, 1){1}} %backarrow -\advance \leg by 1 -\put(-4,\the\leg){\framebox(8,2){% - \shortstack[c]{%\footnotesize - Generic markup\ \\ - %\footnotesize - $\Rightarrow$\ procedural} } - } -\advance \leg by 2 -\put(4.2,\the\leg.2){\line(0, -1){1}} -\put(4.2,\the\leg.2){\line(-1, 0){1}} -\put(4.4,\the\leg.4){\line(0, -1){1}} -\put(4.4,\the\leg.4){\line(-1, 0){1}} -\put(4.6,\the\leg.2){{\tiny Formats}} -% -\advance \leg by 1 -\put(0,\the\leg.5){\vector(0,-1){1.5}} -\put(0,\the\leg.5){\vector(0, 1){0}} %backarrow head -%applications -\advance \leg by 1 -\put(-10,\the\leg){\makebox(0,0){Exchange}} -\put(-5,\the\leg){\makebox(0,0){Storage}} -\put(0,\the\leg){\makebox(0,0){Publication}} -\put(5,\the\leg){\makebox(0,0){Database}} -\put(10,\the\leg){\makebox(0,0){\vtop to 0pt{\hbox{(Text-)} - \hbox{analysis}\vss} - } - } -%hark -\advance \leg by 2 -\put(0,\the\leg){\vector(0,-1){1.25}} -\put(-5,\the\leg){\vector(0,-1){1.25}} -\put(-10,\the\leg){\vector(0,-1){1.25}} -\put(5,\the\leg){\vector(0,-1){1.25}} -\put(10,\the\leg){\vector(0,-1){1.25}} -\put(-10.5,\the\leg){\line(1,0){21}} -\put(11.25,\the\leg){\makebox(0,0){\dots}} -\put(-11.25,\the\leg){\makebox(0,0){\dots}} -\advance \leg by 2 -\put(0,\the\leg){\line(0,-1){2}} -\put(0,\the\leg){\vector(0,1){0}} %back (up) arrow head -\put(-7.5,\the\leg){\framebox(15,1){Complete, correct SGML -document}} -\advance \leg by 2 -\put(.5,\the\leg.25){Parser} -\advance \leg by 2 -\put(0,\the\leg){\vector(0,-1){3}} -%\advance \leg by 1 -\put(-7.5,\the\leg){\framebox(15,3){ - \shortstack[l]{\verb==\\ - \verb==\\ - \verb== } - } - } -\advance \leg by 3 -%\corners -\put(7.7,\the\leg.2){\line(0,-1){2}} -\put(7.7,\the\leg.2){\line(-1,0){2}} -\put(7.9,\the\leg.4){\line(0,-1){2}} -\put(7.9,\the\leg.4){\line(-1,0){2}} -\put(8.1,\the\leg.2){{\tiny DTDs}} -% -\advance \leg by 1 -\put(.5,\the\leg){Editor} -\advance \leg by 1 -\put(0,\the\leg.5){\vector(0,-1){2.5}} -\advance \leg by 1 -\put(0,\the\leg){\framebox(0,0){\strut ``Copy''}} -\end{picture} -\endgroup% \small/\Large -\end{center} -%\caption{Relation SGML and (La)\TeX} -\end{figure} -% -\subsection{SGML and Hypermedia?} The following has been contributed -by Gerard van Nes (from SGML FAQs and -Personal Computer Word, March 1992) -\begin{quote} -`HyTime---Hypermedia/Time-based Structuring Language (ISO/IEC 10744). -HyTime is a standard neutral markup language for representing hypertext, -multimedia, hypermedia and time- and space-based documents in terms of their -logical structure. Its purpose is to make hyperdocuments interoperable -and maintainable over the long term. HyTime can be used to represent -documents containing any combination of digital notations. HyTime is -parsable as Standard Generalized Markup Language. -HyTime was accepted as a full International Standard in spring 1992. - -SGML's hypermedia capabilities have been beefed up in the SGML standard -extension HyTime. Although it started out in life as a specific set of -standards for representing music, it was soon realised that these could -be generalised for multimedia. HyTime provides -\begin{itemize} -\item SGML itself -\item Extended Hyperdocument management facilities, including support for - various types of hyperlink -\item A Coordinate Addressing Facility which positions and synchronises - on-screen events. This allows authors to specify how hypermedia - documents are to be rendered -\item Better version-control of comments and activity-tracking policy support. -\end{itemize} -HyTime has been adapted as the basis for hyperlinking in the US -Department of Defense's Interactive Electronic Technical Manual project. -HyTime is an extension of SGML, providing a set of syntactic constructs: -it doesn't specify a processing system.' -\end{quote} -\noindent Sounds very promising! - - -\subsection{\TeX\ within the context of EP.} -When we think about Electronic Publishing we can't avoid being -aware of the life-cycle of publications. -This obeys the biological invariant: produce, consume and reuse. -\subsection*{Life-cycle: producing.} -The production process has all to do with the dimensions - -\begingroup -\setlength{\unitlength}{1ex} -\begin{picture}(18,15)(2, -1) -\put(5,5){\vector(1,0){5}} -\put(5,5){\vector(0,1){5}} -\put(5,5){\vector(-1,-2){2.5}} -%Text -\put(11,5){Place} -\put(6,10){Representation} -\put(4,0){Time} -\end{picture} -\endgroup - -\noindent and with the characteristics -\begin{itemize} -\item representation of the contents, that is the typesetting proper aspects -\item logistics, that is distribution and selling points---the place dimension -\item reuse, that is the time aspect, when - (parts of) document are reused. -\end{itemize} -The flow can be depicted via - -$$\vbox{\halign{&\enspace\hfil#\hfil\cr -Produce&$\rightarrow$&Distribute&$\rightarrow$&Consume\cr -$\uparrow$&&$\uparrow$&&$\downarrow$\cr -reuse&$\leftarrow$&retrieve&$\leftarrow$&store\cr}}$$ - -\noindent -The big features are the unambiguous mark-up of copy via \AllTeX\ -and the lifetime of the \TeX\ kernel. Therefore storing documents -formatted by \TeX, leaves the reuse aspect open. Reality has it that -documents formatted via \TeX\ are easily redistributed via the electronic -networks, because it is all in ASCII, and \TeX\ is everywhere, so are its -drivers. - -My day-to-day reuse is transforming reports into articles and these -into transparencies. -In this work it is the other way round I'm recollecting elements I have set -earlier. Similarly with the book I'm working on Publishing with \TeX. -Actually my first work in the document preparation area, -in the early eighties, was called `Van rapport naar tranparant.' -% -\subsection*{Life-cycle: consuming.} -\TeX's drivers have not paid attention to other representations as yet, -although an exception is a driver for the blind. -Difficulties in formatting languages different from English have been -exercised in recent years. Undoubtedly research will be devoted -to the aspects hinted at in the diagram given below with the dimensions - -\begingroup -\hbox{\setlength{\unitlength}{1ex} -\begin{picture}(18,14)(2, -1) -\put(5,5){\vector(1,0){5}} -\put(5,5){\vector(0,1){5}} -\put(5,5){\vector(2,-1){5}} -\put(5,5){\vector(-1,-2){2.5}} -%Text -\put(11,5){Level} -\put(11,2.5){Media} -\put(6,10){Senses} -\put(4,0){Language} -\end{picture}%\quad -\vbox to3.5\baselineskip{\halign{#\hfil:&\enspace#\hfil\cr -Senses& eyes, ears, tactile\cr -Level&abridged, full, \ldots\cr -Language&English, Dutch, \ldots\cr} -\vss}}% -\endgroup - -\noindent and with the characteristics -\begin{itemize} -\item choice of consumer language independent of the submitted language, - that is automatic translation -\item choice of representation, that is for example voice - output from written submission. -\end{itemize} -\noindent -Of course the above aspects will -keep research busy for some time to come. -This is the direction multi-media development will go. - -\section{Trends} -Adobe has been the trendsetter of the last decade with respect to new -EP technologies. Recently, I heard about their -PDF---Portable Document Format---which is at the heart of their -Acrobat. Very promising, if not for the tools which come along -with this product. - -I believe that the multi-media information technology will take off in -the next century. -Much is known under the buzzword hypertext. -See the special issue of the Communications of the ACM for -an introductory survey. -As a \TeX ie it is fun to ponder about what niche -there will be for \TeX. At the various TUG meetings people are concerned -about the future of \TeX\ and share their doubts and optimisms. ->From that the following anthology -\begin{itemize} -\item \LaTeX\ is the future, forget about \TeX -\item make \AllTeX\ available on low-cost machines -\item embed \TeX\ etc. in working environments -\item improve \TeX, in short keep it alive -\item provide WYSIWYG user interfaces -\item increase the number of (organized) \AllTeX\ users -\item get \AllTeX\ accepted by publishers (formats, support, fonts, - and the like) -\item get \AllTeX\ accepted by other communities: SGML, - scientific societies -\item provide user guides and templates -\item education is paramount -\item keep it simple and small is beautiful. -\end{itemize} -\noindent and so on. -\paragraph*{Prophecy.} -The demand on IT will be that -\begin{quote} -people can access cost-effectively, and easily, -from their homes the information they need in a representation they wish. -\end{quote} -I envision that the following technologies will influence each other -in realizing the stated prophecy -\begin{itemize} -\item \TeX's role? Embedded in a Hypertext approach? -\item Increased self-publishing -\item Electronic Production \& Consumption \\ - + Photography\\ - + CD\\ - + TV/Radio, video\\ - + PC \\ - + Phone, fax, email \\ - + Holography \\ - + \ldots -\item Involvement of linguists and behaviourists -\end{itemize} -\noindent with the functionalities -\begin{itemize} -\item Various inputs (o.a. voice, photography, \ldots) -\item Diverse outputs -(language, level, media and representation,\ldots) -\end{itemize} -Some years ago I day-dreamed about holographic-based true 3-D `displays,' -as a generalization of computer-assisted interactive TV. -Science-fiction? Wait and see, or better hang on and make it happen! - -\section{Examples} -With a publication we have two main issues: macroscopic and microscopic. -With the first I mean the aspects which govern the total outer level of -a publication, let us say to look upon it as a tree consisting of -\begin{itemize} -\item front matter (front pages (title etc.), publication characteristics, - foreword, table of contents and the like) -\item copy proper (the chapters and their substructures), - and -\item back matter (appendixes with references, index, and other special - items). -\end{itemize} -\noindent These macroscopic aspects are accounted for in so-called formats or -style files. - -The microscopic aspects deal with formatting in the small within paragraphs, -the complex mark-up of math, tables and graphics. - - -Another basic way to look at the matter is that it has all to do with -\begin{quote} -positioning of typographical elements on pages. -\end{quote} -\noindent The following examples, -biased by my own (scientific) needs, are in the main about -\begin{itemize} -\item formats, generic and special -\end{itemize} -\noindent and deal in the small with -\begin{itemize} -\item special texts like programs -\item (displayed) math (formulae, matrices, \ldots) -\item tables -\item graphics -\item bibliographies, and -\item indexes. -\end{itemize} -\noindent So nothing in here about the use of \TeX\ for -non-Latin languages and the design and generation of the needed fonts, -simply because I don't speak them. -I also refrained from including examples about the hobby use---games---% -without a serious reason. -See NTG's PR set for the latter. -See the works of Haralambous with respect to non-Latin languages, and -the work of Horak for (math) \MF{} examples. - -\subsection{Examples: formats.} -In this section some detailed formatting examples are provided. - -I will consider \LaTeX\ as formatter for a rudimentary -house-style, followed by a generic approach customized to \mm{} and \LaTeX's -report style. - -\paragraph*{House-style.} -\LaTeX\ is heavily used for this {\em as-is} -\begingroup\small\begin{verbatim} -\documentstyle[options]{house} -%preamble -\begin{document} -%front matter -\title{...} -... -\begin{abstract} -... -\end{abstract} -\tableofcontents -\listoffigures -\listoftables -%copy proper -%\section, \subsection structuring with -%paragraphs with (displayed) math, tables -%and graphics. -%back matter -\begin{thebibliography}{xxx} -\bibitem{dek84} Knuth, D.E (1984):... -... -\end{thebibliography} -%Index material (\makeindex tool) -\end{document} -\end{verbatim}\endgroup -Options are, for example, -the number of columns,\footnote{It is not true in general that switching from - 1-column into 2-column format can be done without altering the mark-up - of displayed math, tables or figures. - At least one must change locally back into - 1-column format, or one has to scale the document element into smaller - size as was done in this paper.} -the size of the used fonts, -the paper size, and the like. - -As style files there are next to report, -the styles book, article, letter, and so on.\footnote{\LaTeX's \SliTeX\ -is a bit different. One can't simply switch from report into slides.} - - -\paragraph*{Generic mark-up.} -Many users start nowadays via \LaTeX. Sooner or later the demand for -a generic approach pops up. -Then the user wishes to -abstract from the concrete formatter and -use some higher-level mark-up for the global structuring commands, customizable -to a concrete formatter of choice.\footnote{This sounds like SGML, but without - its generality and its overhead. I like to call this `SGML on your mind - and \TeX\ in your hands.'} - -The idea is that the {\em user\/} mark-up at the outer level is -as independent as possible from the concrete formatter. -\begin{quote} -A generic approach is needed because of -the variety of environments we live in -and because of their rapid change. -\end{quote} -For the generic approach to become realistic, and to handle it gracefully, -I assume that -\begin{itemize} -\item the opening part is available for the various formats as - templates -\item the copy proper uses as structuring commands \verb|\head| and - the like -\item for the detailed formatting plain \TeX\ is used, - so that this can be used in - \AllTeX\ (math, tables, and graphics) -\item for the end matter a generic approach for the bibliography---see - my BLUe's Bibliography paper---is used -\item for index preparation a non-specific tool is used. -\end{itemize} -With the above a generic approach for a house-style is -\begingroup\small\begin{verbatim} -%Front matter -\opening%To be replaced by template -%Copy proper -% Structured via \head{...} and the like -% with detailed plain mark-up: math, tables, -% line diagrams,... -%Back matter - \bibliography - \index -\closing -\end{verbatim}\endgroup -\vskip1ex -\noindent Customization to \mm.\\ -\mm{} is flexible, and alas too much overlooked, -because it lacks a user guide. -Customization of the generic approach to manmac -goes along the following lines to give you an -impression. (Not tested!) -\begingroup\small\begin{verbatim} - \input manmac - \input manmac.cus%manmac customization - \input man.tem %manmac template - \input toc %table of contents - \input cover %see my manmac blues - %Copy proper - %Back matter - \closing -\end{verbatim}\endgroup -\noindent with in \verb|manmac.cus| -\begingroup\small\begin{verbatim} - %Customization of manmac - %Redefine \beginchapter also non-outer - \def\beginchapter#1 #2#3.#4\par{% - \def\hl{\gdef\hl{\issue\hfil\it\rhead}} - \headline{\hl} - \def\\{ }\xdef\rhead{#4} - {\let\\\cr\halign{\line{\titlefont - \hfil##\hfil}\\#1 #2#3 #4\unskip\\}} - \bigskip\tenpoint\noindent\ignorespaces} - \def\endchapter{\vfill\eject} - % - \newcnt\chpcnt \newcnt\seccnt - \def\head#1{\endchapter\beginchapter - \advance\chpcnt1 \seccnt0 - {} {}\the\chpcnt. #1\endgraf} - \def\subhead#1{\beginsection\advance\seccnt1 - \the\seccnt. #1\endgraf} - \def\bibliography{\beginchapter Bibliography - {}{}.{}\endgraf} - \def\closing{\bye} -\end{verbatim}\endgroup -\noindent and with in \verb|manmac.tem| -\begingroup\small\begin{verbatim} -\def\opening{ - \def\issue{% - MAPS Special 93.x %issue - }\def\title{% - MAPS Special Template %title - }\def\abstract{% - A template for MAPS Special is provided. - }\def\keywords{% - manmac, MAPS, NTG %keywords - } -} -\end{verbatim}\endgroup -\noindent In my Manmac BLUes paper I have worked out a prototype, directed -to customization of \mm. -\begin{quote} -Actually there it was the other way round: -I started from Manmac formatting and abstracted -into independent structures. -\end{quote} -In Manmac BLUes I also worked out \verb|cover|. -Too much detail here. -\vskip1ex -\noindent Customization to \LaTeX.\\ -The `title part'-template is inserted instead of \verb|\opening|, -edited to suit the publication at hand. -In \verb|latex.cus| the macros are supplied to customize the generic -mark-up to \LaTeX. -\begingroup\small\begin{verbatim} -%Begin LaTeX report \opening template -\documentstyle{report} -\input{latex.cus} -\begin{document} -\begin{title}...\end{title} -... -%end LaTeX \opening template -%Copy proper -... -%Back matter -\bibliography -\closing -\end{verbatim}\endgroup -\noindent with in \verb|latex.cus| -\begingroup\small\begin{verbatim} -\def\head#1{\chapter{#1}} -\def\subhead#1{\section{#}} -\def\bibliography{\appendix - \section*{Bibliography} - \input{lit.dat} - %\input{lit.tex} - \frenchspacing - \def\ls#1{\nul\\#1}%simple - \input{lit.sel} -} -\def\closing{\end{document}} -\end{verbatim}\endgroup -\noindent -The above ideas came to mind when working on this paper. -They deserve development, because it has all to do with the -\begin{quote} -user$\leftrightarrow$environment interaction, -\end{quote} -which has always been important. - -\paragraph*{Special texts}are computer programs. -First we like that these -reflect the structure and different quantities (constants, variables, -reserved words, comments etc.) of the program. Second we like that the -programs remain correct while formatting them (meaning: humans hands-off!). -These kind of texts come at two levels -\begin{itemize} -\item the small examples (less than a dozen of lines or so) - which are part of courseware, and -\item the documentation (and listings) of real-life programs. -\end{itemize} -Current practice is that for the first it does not really matter what you use. -For a survey see the compilation of Van Oostrum. -For the second Knuth developed \WEB, which stimulates a programmer to -design and {\em document\/} his program from the beginning, by rewarding him -with pretty-\TeX\ printing of it all via \TANGLE. Actually the hierarchical -way of working has been replaced by a relational approach, with the -documentation related to the various items of a program. -For a survey see Knuth's literal programming article of 1984. - -\subsection{Examples: math.} -The \TeX book has devoted at least 4 chapters to math mark-up: -typing math formula, -more about math, -fine points of math typing, and -displayed equations. - -See also my Math into BLUes paper for % an anthology of pitfalls. -a survey and how to cope with situations which go wrong---not so much that -\TeX\ complains, but the results are different -from what we expected---by innocent mark-up. - -\paragraph*{Displayed math}via (plain) \TeX. -A display is marked up by \$\$ at the beginning and the end. -Within a display the following is generally used -\begin{itemize} -\item just math mark-up -\item \verb|\displaylines|, for multi-liners -\item \verb|\(l)eqalign|, for aligned formulas\footnote{(l) denotes that - the numbering appears at the left instead of the default right.} -\item \verb|\(l)eqalignno|, similar to the above, but numbering per line. -\end{itemize} -For numbering there is the primitive \verb|\eqno|. -\vskip1ex\noindent ->From a user point of view the following are representative structures -\begingroup%local -%From plain; in LaTeX context the defs below should be grouped -\newskip\centering \centering=0pt plus 1000pt minus 1000pt -\catcode`\@=11 -\newdimen\netdpw -%The next is necessary because LaTeX redefined it!!!!!; -%\equalign with numbering went wrong! -% -\def\eqalign#1{%Changed TB361: dynamic number of alignment positions -%\, Had to be removed for two-column output, see TB189 (top) -\vcenter{\openup1\jot\m@th - \ialign{\strut\hfil$\displaystyle{##}$&& %Change is extra & - $\displaystyle{{}##}$\hfil\crcr - #1\crcr}}\,} -\def\eqalignno#1{\displ@y \tabskip=\centering - \halign to \displaywidth{\hfil$\displaystyle{##}$\tabskip=0pt - &$\displaystyle{{}##}$\hfil\tabskip=\centering - &\llap{$##$}\tabskip=0pt\crcr - #1\crcr}} -\def\leqalignno#1{\displ@y \tabskip=\centering - \halign to \displaywidth{\hfil$\displaystyle{##}$\tabskip=0pt - &$\displaystyle{{}##}$\hfil\tabskip=\centering - &\kern-\displaywidth\rlap{$##$}\tabskip=\displaywidth\crcr - #1\crcr}} -\def\midinsert{\bgroup\smallskip} -\def\endinsert{\smallskip\egroup} -\catcode`\@=12 - -%Display math examples for Mededelingen van het Wiskundig Genootschap, -%13/4/92, cgl@rug.nl -\def\com#1{{\tt\char92#1}} -% -%Essential ways of formula numbering num.tex -\begin{itemize} -\item Labeled 1-line -$$\sin2x=2\sin x\, \cos x - \eqno(\hbox{TB186})$$ -\item Three lines, second flushed right -(relevant for 2-column printing) -$$\displaylines{F(z)= -a_0+{a_1\over z}+{a_2\over z^2}+\cdots - +{a_{n-1}\over z^{n-1}}+R_n(z),\cr - \hfill n=1,2,\dots\,,\cr -\hfill F(z)\sim\sum_{n=0}^\infty a_nz^{-n}, - \quad z\to\infty\qquad\qquad\hfill - \llap{(TB ex19.16)}\cr}$$ -\item Two lines aligned, with middle labeling -$$\eqalign{\cos2x&=2\cos^2x-1\cr - &=\cos^2x-\sin^2x\cr} - \eqno(\hbox{TB193})$$ -\item Two lignes aligned, with labeling per line -$$\eqalignno{ -\cosh2x&=2\cosh^2x-1&(\hbox{TB192})\cr - &=\cosh^2x+\sinh^2x\cr}$$ -\end{itemize} -\noindent obtained via -\begingroup\small\begin{verbatim} -\begin{itemize} -\item Labeled 1-line -$$\sin2x=2\sin x\, \cos x - \eqno(\hbox{TB186})$$ -\item Three lines, second flushed right -(relevant for 2-column printing) -$$\displaylines{F(z)= -a_0+{a_1\over z}+{a_2\over z^2}+\cdots - +{a_{n-1}\over z^{n-1}}+R_n(z),\cr - \hfill n=1,2,\dots\,,\cr -\hfill F(z)\sim\sum_{n=0}^\infty a_nz^{-n}, - \quad z\to\infty\qquad\qquad\hfill - \llap{(TB ex19.16)}\cr}$$ -\item Two lines aligned, - with middle labeling -$$\eqalign{\cos2x&=2\cos^2x-1\cr - &=\cos^2x-\sin^2x\cr} - \eqno(\hbox{TB193})$$ -\item Two lignes aligned, - with labeling per line -$$\eqalignno{ -\cosh2x&=2\cosh^2x-1&(\hbox{TB192})\cr - &=\cosh^2x+\sinh^2x\cr}$$ -\end{itemize} -\end{verbatim}\endgroup - -\paragraph*{Matrices}via (plain) \TeX. -The examples show paradoxically that for practical use -we not only need \cs{matrix}, but -\begin{itemize} -\item \verb|\atop|, to stack elements on top of each other -\item \verb|\bordermatrix|, for bordered matrices, and this embedded within - \verb|\displaylines| -\item \verb|\halign|, to handle partitioning, and -\item some macros tailored to our situations, like the icon set. -\end{itemize} -%Samples for TeXing matrices for Mededelingen Wiskundig Genootschap%cgl@rug.nl -\noindent Examples -\begin{itemize} -\item {Hypergeometric function} -$$M_n(z)={}_{n+1}F_n\biggl({k+a_0, - \atop\phantom{kc_1}} - {k+a_1,\dots,k+a_n - \atop k+c_1,\dots,k+c_n};z\biggr)$$ -via -\begingroup\small\begin{verbatim} -$$M_n(z)={}_{n+1}F_n\biggl({k+a_0, - \atop\phantom{kc_1}} - {k+a_1,\dots,k+a_n - \atop k+c_1,\dots,k+c_n};z\biggr)$$ -\end{verbatim}\endgroup - -\item {Some matrix icons}, Wilkinson (1965) -%LaTeX use of linefonts for diag lines -\setlength{\unitlength}{1ex} -$$\icmat44\kern\unitlength\icllt44= - \icllt44\icuh413\qquad AL=LH$$ -$$\icmat63=\icmat63 -\kern\unitlength\icurt63\qquad A=QR$$ -%rectangular matrix\hfill$\icmat64$\\ -%lower left triangular matrix\hfill $\icllt44$\\ -%upper right triangular matrix \hfill$\icurt44$\\ -%upper Hessenberg f form \hfill $\icuh413$ -via -\begingroup\small\begin{verbatim} -$$\icmat44\kern\unitlength\icllt44= - \icllt44\icuh413\qquad AL=LH$$ -$$\icmat63=\icmat63 -\kern\unitlength\icurt63\qquad A=QR$$ -\end{verbatim}\endgroup - -\noindent See for the matrix icon macros my paper on the issue. -% -\item {Matrix reductions}, -Wilkinson(1965, p357) %---i.e.\ Math `hyphenation' -$$\displaylines{\indent -\bordermatrix{& &\rm A & \cr - &\times&\times&\times\cr - &\times&\times&\times\cr - &\times&\times&\times\cr} -\bordermatrix{& &\rm N & \cr - &1& & \cr - &0&1 & \cr - &0&\times&1\cr}\hfill\cr -\hfill= -\bordermatrix{& &\rm N & \cr - &1& & \cr - &0&1 & \cr - &0&\times&1\cr} -\bordermatrix{& &\rm H & \cr - &\times&\times&\times\cr - &\times&\times&\times\cr - &0 &\times&\times\cr} -}$$ -via -\begingroup\small\begin{verbatim} -$$\displaylines{\indent -\bordermatrix{& &\rm A & \cr - &\times&\times&\times\cr - &\times&\times&\times\cr - &\times&\times&\times\cr} -\bordermatrix{& &\rm N & \cr - &1& & \cr - &0&1 & \cr - &0&\times&1\cr}\hfill\cr -\hfill= -\bordermatrix{& &\rm N & \cr - &1& & \cr - &0&1 & \cr - &0&\times&1\cr} -\bordermatrix{& &\rm H & \cr - &\times&\times&\times\cr - &\times&\times&\times\cr - &0 &\times&\times\cr} -}$$ -\end{verbatim}\endgroup% -\item {Partitioning}, -Wilkinson(1965, p291) -$$P_r=\left(\vcenter{ - \offinterlineskip\tabskip0pt - \halign{ - \vrule height3ex depth1ex width 0pt - \hfil$\enspace#\enspace$\hfil - \vrule width.1pt\relax - &\hfil$\enspace#\enspace$\hfil\cr - I_{n-r}&0\cr - \noalign{\hrule height.1pt\relax} - 0 &I-2v_rv_r^T\cr} - }\right) $$ -via -\begingroup\small\begin{verbatim} -$$P_r=\left(\vcenter{ - \offinterlineskip\tabskip0pt - \halign{ - \vrule height3ex depth1ex width 0pt - \hfil$\enspace#\enspace$\hfil - \vrule width.1pt\relax - &\hfil$\enspace#\enspace$\hfil\cr - I_{n-r}&0\cr - \noalign{\hrule height.1pt\relax} - 0 &I-2v_rv_r^T\cr} - }\right) $$ -\end{verbatim}\endgroup -\end{itemize} -\endgroup - -\begingroup\noindent -Next some examples without the mark-up, just the -results, because they are real teasers. -\begin{itemize} -\item Braces and Matrices, Wilkinson(1965, p199) -$$\vcenter{ - \hbox{${\scriptstyle\phantom{n{-}}p} - \left\{\vrule height4.5ex width0pt - depth 0pt\right.$}\vglue3ex\relax - \hbox{${\scriptstyle n{-}p} - \left\{\vrule height3.0ex width0pt - depth 0pt\right.\kern2pt$} - \vglue.5ex\relax - } -\bordermatrix{&\multispan4{\hfil -$\overbrace{\vrule height0pt width10.5ex - depth0pt}^p$}\hfil - &\multispan3{\enspace\hfil -$\overbrace{\vrule height0pt width7.5ex - depth0pt}^{n-p}$}\hfil\cr -&\times&\times&\times&\times&\times& - \times&\times\cr -&0 &\times&\times&\times&\times& - \times&\times\cr -&0 &0 &\times&\times&\times& - \times&\times\cr -&0 &0 &0 &\times&\times& - \times&\times\cr -&0 &0 &0 &0 &\times& - \times&\times\cr -&0 &0 &0 &0 &\times& - \times&\times\cr -&0 &0 &0 &0 &\times& - \times&\times\cr -}$$ -\item -Matrices, braces, (dotted) partitioning -and icons; space efficient variant -%The simplest way is to make the 22-element -%separate, and measure the sizes. -%Subsequently one easily couples these -%sizes to the sizes of the braces. -%Hard things: automatic coupling, -%vertical dotted lines. -% -\def\vdts{\vbox{\baselineskip4pt - \lineskiplimit0pt - \vglue2pt\hbox{.}\hbox{.}\hbox{.}}}% -$$ -\vcenter{\offinterlineskip%No interline -% space in between parts -\halign{\hfil$#$&\hfil$#$\hfil\cr%2-column -%first row with braces, element 11 empty -{}&\hfil\enspace\mathop{\hbox to.9cm% - {\downbracefill}}\limits^{\vbox{\hbox{ - $\scriptstyle p$}\kern2pt}} - \enspace\hfil\mathop{\hbox to.6cm% - {\downbracefill}}\limits^{\vbox{\hbox to - 0pt{\hss$\scriptstyle n-p$\hss}\kern2pt}}% - \enspace\hfil\cr % end first row -%Separation between first (border) row and -%rest -\noalign{\vglue1ex} -%first column with braces -\vcenter{\vfil - \hbox{${\scriptstyle p}\left\{\vbox - to.8cm{}\right.$}\vfil\vglue2ex\vfil - \hbox{\llap{$\scriptstyle n{-}$}% - ${\scriptstyle p}\left\{\vbox to.5cm{} - \right.$}\vfil} -&%22-element is the matrix proper -\left(\vcenter{\offinterlineskip -\halign{\hfil$#$\hfil&\hfil$#$\hfil& -\hfil$#$\hfil&\hfil$#$\hfil -\tabskip=.5\tabskip&\vdts#& -\tabskip=2\tabskip -\hfil$#$\hfil&\hfil$#$\hfil& -\hfil$#$\hfil\cr%end template -\times&\times&\times&\times&&\times& - \times&\times\cr -0 &\times&\times&\times&&\times& - \times&\times\cr -0 &0 &\times&\times&&\times& - \times&\times\cr -0 &0 &0 &\times&&\times& - \times&\times\cr -\noalign{\vglue1ex} -\multispan8\dotfill\cr -0 &0 &0 &0 &&\times& - \times&\times\cr -0 &0 &0 &0 &&\times& - \times&\times\cr -0 &0 &0 &0 &&\times& -\times&\times\cr}%end halign (22) -}%end vcenter -\right)\cr %end 22-element -%Separation between last (border) row -%and rest -\noalign{\vglue1ex} -{}&\hfil\enspace\mathop{\hbox to.9cm{% - \upbracefill}}\limits_{\vbox{\kern2pt - \icurt42}} - \enspace\hfil - \mathop{\hbox to.6cm{% - \upbracefill}}\limits_{\vbox{\kern2pt - \icmat4{1.5}}}\enspace\hfil% -\cr % end last row -}%end halign -}%end vbox -$$ -\item Other interesting two-dimensional -structures are commutative diagrams. Consult for those Spivak's -\LAMSTeX.\footnote{Within the graphics section I - have supplied a simple example, however.} - -\noindent Interestingly enough, simple commutative diagrams are done by -\verb|\matrix|, while I would expect some graphic commands. -\end{itemize} -\endgroup - -\subsection{Examples: tables.} -For (full) rectangular tables \verb|\halign| or \verb|\valign| is generally -used, when they fit on the page. -Because of determining automatically the page breaks it might happen that -the page builder would like to split a table. Generally this is bad -typography, because we like to maintain the summary character of a table -all on one page.\footnote{When the latter is not important, for example for - tables of values which goes on for pages, we can modify - the row separator into a separator which allows line breaks. - For tables which don't fit on a page - there are special macros, like {\tt supertabular.sty}.} -A table smaller than the page should fit and in order to let that happen -we generally allow tables to float, that is they may be shifted around -a bit by the page builder. -For a survey on the issue see my Table Diversions paper, which also contains -a macro for handling bordered tables---the {\tt btable} macro (some 80 lines), -and used in this work (see later). - - Another important class of tables are the so-called trees. One can argue -whether they are tables or belong to graphics. Br\"uggeman-Klein has provided -a package called Tree\TeX. The user-interface looks good, -although I have not had any personal experience with it myself yet. - -\paragraph*{Simple tables}via (plain) \TeX. -When I read Furuta a decade ago, I was impressed by the ease of mark-up -for tables via the tbl preprocessor of troff.\footnote{Because of - that I was in favour of troff and its preprocessors. - Happily a math professor stressed the importance of \TeX, and because - UNIX was not widely available at the University, I entered \TeX-land.} -Below I'll show that a similar functionality---and some more, I also - abstracted from the kinds of rules, and the positioning of the elements---% -is provided with respect to tables -by my btable macro for the class of bordered tables, -where the (possibly complicated) headers are treated separately -and independently from the (proper) table data, and the rowstub list. - -\begingroup -%\input{btable.tex} -%btable.tex version 1, 15/7/92 author: cgl@rug.nl -%Table Diversions is Published in EuroTeX92 proceedings, and MAPS92.2 -%The article discusses typsetting tables via plain, surveys related work, -%introduces btable.tex, and provides a discipline for typesetting cell-blocks. -%Example of use (from the article) -%\def\data{2\cs7\cs6\rs -% 9\cs5\cs1\rs -% 4\cs3\cs8} -%\ruled\framed\btable\data -%Below is the btable macro listed -\newbox\tbl\let\ea=\expandafter -%Cell vertical size, row height and depth (separation implicit), -\newdimen\cvsize\newdimen\tsht\newdimen\tsdp\newdimen\tvsize\newdimen\thsize -%Parameter setting macros: Rules -\def\hruled{\def\lineglue{\hrulefill}\def\colsep{} \def\rowsep{\hrule} - \let\rowstbsep=\colsep\let\headersep=\rowsep} -\def\vruled{\def\lineglue{\hfil} \def\colsep{\vrule}\def\rowsep{} - \let\rowstbsep=\colsep\let\headersep=\hrule} -\def\ruled {\def\lineglue{\hrulefill}\def\colsep{\vrule}\def\rowsep{\hrule} - \let\rowstbsep=\colsep\let\headersep=\rowsep} -\def\nonruled{\def\lineglue{\hfil} \def\colsep{} \def\rowsep{} - \def\rowstbsep{\vrule}\def\headersep{\hrule}} -\def\dotruled{\def\lineglue{\dotfill}\def\rowsep{\hbox to\thsize{\dotfill}} -\def\colsep{\lower1.5\tsdp\vbox to\cvsize{% -\leaders\hbox to0pt{\vrule height2pt depth2pt width0pt\hss.\hss}\vfil}} -\let\rowstbsep=\colsep\let\headersep=\rowsep} -%Parameter setting macros: Controling positioning -\def\ctr{\def\lft{\hfil}\def\rgt{\hfil}}%Centered -\def\fll{\def\lft{} \def\rgt{\hfil}}%Flushed left -\def\flr{\def\lft{\hfil}\def\rgt{}} %Flushed right -%Parameter setting macros: Framing -\def\framed{\let\frameit=\boxit} -\def\nonframed{\def\frameit##1{##1}} -\def\dotframed{\let\frameit=\dotboxit} -% -\def\btable#1{\vbox{\let\rsl=\rowstblst%Copy -\ifx\empty\template\ifx\empty\rowstblst - \def\template{\colsepsurround\lft####\rgt&&\lft####\rgt\cr} - \else\def\template{\colsepsurround####\hfil&&\lft####\rgt\cr}\fi - \fi -\tsht=.775\cvsize\tsdp=.225\cvsize -\def\tstrut{\vrule height\tsht depth\tsdp width0pt} -%Logical mark up of column and row separators, via use of -\def\cs{&\colsepsurround\colsep\colsepsurround&} -\def\prs{&\colsepsurround\lineglue&} -\def\srp{&\lineglue\colsepsurround&} -\def\rs{\colsepsurround\tstrut\cr - \ifx\empty\rowsep\else\noalign{\rowsep}\fi - \ifx\empty\rowstblst\else\ea\nxtrs\fi} -\def\rss{&\colsepsurround\rowstbsep\colsepsurround&} -\def\hs{\colsepsurround\tstrut\cr - \ifx\empty\headersep\else\noalign{\headersep}\fi - \ifx\empty\rowstblst\else\ea\nxtrs\fi} -\preinsert -\setbox\tbl=\vbox{\tabskip=0pt\relax\offinterlineskip -\halign{\span\template\ifx\empty\first\ifx\empty\rowstblst\else -\ifx\empty\header\else\ea\rss\fi\fi\else\first\ea\rss\fi -\ifx\empty\header\ifx\empty\first\if\empty\rsl\else\ea\nxtrs\fi - \else\ea\hs\fi -\else\header\ea\hs\fi -#1\colsepsurround\tstrut\crcr} }%end setbox -\postinsert -\ifx\caption\empty\else\hbox to\thsize{\strut\hfil\caption\hss}\captionsep\fi -\frameit{\copy\tbl} -\ifx\footer\empty\else\footersep\hbox{\vtop{\noindent\hsize=\thsize% -\footer}}\fi }} -%Defaults -\cvsize=4ex\tsht=.775\cvsize\tsdp=.225\cvsize\def\colsepsurround{\kern.5em} -\ctr\nonruled -\def\caption{}\def\first{}\def\header{}\def\rowstblst{}\def\footer{}\def\data{} -\def\captionsep{\medskip} \def\headersep{\hrule} -\def\footersep{\smallskip} \def\rowstbsep{\vrule} -\def\preinsert{} -\def\postinsert{\global\thsize=\wd\tbl - \global\tvsize=\ht\tbl\global\advance\tvsize by\dp\tbl} -\ctr\nonruled\nonframed\def\template{} %end Defaults -%Auxiliaries -\def\boxit#1{\vbox{\hrule\hbox{\vrule\vbox{#1}\vrule}\hrule}} -\def\dotboxit#1{\vbox{\offinterlineskip\hbox to\thsize{\dotfill}% -\hbox{\lower\tsdp\vbox to\tvsize{% -\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}% -\vbox{#1}\lower\tsdp\vbox to\tvsize{% -\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}}% -\hbox to\thsize{\dotfill}}} -%And to account for logical columns with \multispan -\def\spicspan{\span\omit} -\def\multispan#1{\omit\mscount=#1\multiply\mscount by2 \advance\mscount by-1 -\loop\ifnum\mscount>1 \spicspan\advance\mscount by-1 \repeat} -%To process FIFO -\def\bfifo#1{\ifx\efifo#1\let\nxt=\relax\else\def\nxt{\process#1\bfifo}% - \fi\nxt}%end \bfifo -\def\process#1{\hbox to0pt{\hss#1\hss}\kern.5ex} -%To handle row stub list -\def\nxtrs{\ifx\empty\rsl%\let\nxtel=\relax -\else\def\nxtel{\ea\nrs\rsl\srn}\ea\nxtel\fi}%next Row Stub -\def\nrs#1#2\srn{\gdef\rsl{#2}#1\rss} %end btable.tex -% -\def\data{11\cs12\rs21\cs22} -\begin{itemize} -\item just framed data - $$\vcenter{\framed\btable\data}$$ -\item add header and rowstubs - \def\header{\multispan2\hfill - Header\hfill} - \def\rowstblst{{$1^{st}$ row}% - {{$2^{nd}$ row}}} - $$\vcenter{\btable\data}$$ -\item add caption and footer, - vary via dotted lines - \def\caption{Caption}\def\footer{Footer} - $$\vcenter{\dotruled\btable\data}$$ -\item vary with ruled and framed - $$\vcenter{\ruled\framed\btable\data}$$ -\end{itemize} -via -\begingroup\small\begin{verbatim} -\def\data{11\cs12\rs21\cs22} -\begin{itemize} -\item just framed data - $$\vcenter{\framed\btable\data}$$ -\item add header and rowstubs - \def\header{\multispan2\hfill - Header\hfill} - \def\rowstblst{{$1^{st}$ row}% - {{$2^{nd}$ row}}} - $$\vcenter{\btable\data}$$ -\item add caption and footer, - vary via dotted lines - \def\caption{Caption}\def\footer{Footer} - $$\vcenter{\dotruled\btable\data}$$ -\item vary with ruled and framed - $$\vcenter{\ruled\framed\btable\data}$$ -\end{itemize} -\end{verbatim}\endgroup - -\paragraph*{Real-life.} AT\&T's example -from the tbl (troff) documentation, also supplied in \TeX book p.247 -\begingroup -%\cite{lesk79} -\def\caption{AT\&T Common Stock} -\def\header{Year\cs Price\cs Dividend} -\catcode`?=\active \def?{\kern1.1ex} -\def\data{1971\cs41--54\cs\llap{\$}2.60\rs - 2\cs41--54\cs 2.70\rs - 3\cs46--55\cs 2.87\rs - 4\cs40--53\cs 3.24\rs - 5\cs45--52\cs 3.40\rs - 6\cs51--59\cs ?.95\rlap*} -\def\footer{* (first quarter only)} -$$\vcenter{\vbox{\small - \framed\ruled\btable\data}}$$ -The above is obtained via \verb|\btable| as follows -\endgroup -% -\begingroup\small\begin{verbatim} -\def\caption{AT\&T Common Stock} -\def\header{Year\cs Price\cs Dividend} -\catcode`?=\active \def?{\kern1.1ex} -\def\data{1971\cs41--54\cs\llap{\$}2.60\rs - 2\cs41--54\cs 2.70\rs - 3\cs46--55\cs 2.87\rs - 4\cs40--53\cs 3.24\rs - 5\cs45--52\cs 3.40\rs - 6\cs51--59\cs ?.95\rlap*} -\def\footer{* (first quarter only)} -$$\vcenter{\vbox{\small - \framed\ruled\btable\data}}$$ -\end{verbatim} -\endgroup -\endgroup -\subsection{Examples: graphics.} -The portable way is via \mmt, \LaTeX's picture environment, -or PiC\TeX. -For a survey see Clark's Portable Graphics in \TeX\ paper. -\TeX tures on the Macintosh by Blue Sky Research is famous for its -(non-portable) pic{\em tures\/} with \TeX. For inclusion of -photographs and in general halftones, see the work of Sowa.\footnote{On the - Mac one can easily incorporate photos after they - having been put onto CD in digitized form. Kodak provides the latter - service.} -For drawing on the screen and get (La)\TeX\ code out see GNUplot -or \TeX CAD, for example. - -Many disciplines make use of -special graphic diagrams. In this paper for example I won't -provide examples of -trees, -(math) graphs in general, -(advanced) commutative diagrams, -nor Feynmann diagrams, -to name but a few classes known to me. -\begin{itemize} -\item simple line diagrams via \mmt -\begingroup -\def\strut{\vrule height2.5ex depth1ex width0pt} -\def\fbox#1{\setbox0\hbox{\strut - $\;$#1$\,$}\leavevmode\rlap{\copy0}% - \makelightbox} -\def\element#1{\hbox to15ex{\hss#1\hss}} -\def\vconnector{\element{\strut\vrule}} -$$\hbox{\vbox{% -\element{\fbox{amsppt.sty}} -\vconnector -\element{\fbox{amstex.tex}} -\vconnector -\element{\fbox{\TeX}}} -\qquad\qquad\qquad -\vbox{% -\element{\fbox{amsart.sty}} -\vconnector -\element{\llap{\fbox{amstex.sty}---}% - \fbox{\LaTeX}} -\vconnector -\element{\fbox{\TeX}}} -}$$ -\endgroup -\noindent via -\begingroup\small\begin{verbatim} -$$\hbox{\vbox{% -\element{\fbox{amsppt.sty}} -\vconnector -\element{\fbox{amstex.tex}} -\vconnector -\element{\fbox{\TeX}} -}\qquad\qquad\qquad\vbox{% -\element{\fbox{amsart.sty}} -\vconnector -\element{\llap{\fbox{amstex.sty}---} - \fbox{\LaTeX}} -\vconnector -\element{\fbox{\TeX}} -}}$$ -\end{verbatim}\endgroup - -\noindent with the auxiliaries -\begingroup\small\begin{verbatim} -\def\strut{\vrule height2.5ex depth1ex - width0pt} -\def\fbox#1{\setbox0\hbox{\strut - $\;$#1$\,$}\leavevmode\rlap{\copy0}% - \makelightbox} -\def\element#1{\hbox to15ex{\hss#1\hss}} -\def\vconnector{\element{\strut\vrule}} . -\end{verbatim}\endgroup -\item flow chart borrowed from Furuta, via \LaTeX - -\noindent -%\input{pic.pic} -\begingroup\small -\setlength{\unitlength}{4ex} -\begin{picture}(14,4)(0,-1) -\put(1, 1){\oval(2, 1)} -\put(1, 1){\makebox(0, 0){Start}} -\put(2, 1){\vector(1, 0){1.5}} -\put(3.5,.25){\framebox(2,1.5){\shortstack - {\tiny Edit\\\tiny Document}}} -\put(5.5, 1){\vector(1, 0){1.5}} -\put(7,.25){\framebox(2,1.5){\shortstack - {\tiny Format\\\tiny Document}}} -\put(9, 1){\vector(1, 0){1.5}} -\put(11.5, 1){\oval(2, 1)} -\put(11.5, 1){\makebox(0, 0){End}} -\bezier{75}(4.5,.25)(6.25,-1)(8,.25) -\put(4.5,.25){\vector(-2, 1){0}} -\bezier{150}(4.5,1.75)(8,4)(11.5,1.5) -\put(11.5,1.5){\vector(2,-1){0}} -\end{picture} -\endgroup - -\par\noindent -via -\begingroup\small\begin{verbatim} -\setlength{\unitlength}{4ex} -\begin{picture}(14,4)(0,-1) -\put(1, 1){\oval(2, 1)} -\put(1, 1){\makebox(0, 0){Start}} -\put(2, 1){\vector(1, 0){1.5}} -\put(3.5,.25){\framebox(2,1.5){\shortstack - {\tiny Edit\\\tiny Document}}} -\put(5.5, 1){\vector(1, 0){1.5}} -\put(7,.25){\framebox(2,1.5){\shortstack - {\tiny Format\\\tiny Document}}} -\put(9, 1){\vector(1, 0){1.5}} -\put(11.5, 1){\oval(2, 1)} -\put(11.5, 1){\makebox(0, 0){End}} -\bezier{75}(4.5,.25)(6.25,-1)(8,.25) -\put(4.5,.25){\vector(-2, 1){0}} -\bezier{150}(4.5,1.75)(8,4)(11.5,1.5) -\put(11.5,1.5){\vector(2,-1){0}} -\end{picture} -\end{verbatim}\endgroup -\par\noindent -Although the specification is -not as easy as via the pic preprocessor, -it is not difficult when we -start from a template, like the one above. -Cumbersome is the treatment of the arrow heads, but these can be hidden. -\item a pie-chart via \LaTeX - -%\input{lus.pic} -\setlength{\unitlength}{6ex} -\begin{picture}(6, 5)(-3, -2) -%1st quadrant -%\bezier{100}(2, 0)(2, .54)(1.79, .89) - % 0 - `30' 2:1-lijn -\bezier{60}(1.79, .89)(1.46, 1.46)(1, 1.73) - % `30' - 60 -\bezier{60}(1, 1.73)(.54, 2)(0, 2) - % 60 - 90 -%2nd quadrant -\bezier{60}(0, 2)(-.54, 2)(-1, 1.73) - % 90 - 120 -\bezier{60}(-1,1.73)(-1.46,1.46)(-1.73,1) - %120 - 150 -\bezier{60}(-1.73, 1)(-2, .54)(-2, 0) - %150 - 180 -%3rd quadrant -\bezier{60}(-2, 0)(-2, -.54)(-1.73, -1) - %180 - 210 -\bezier{60}(-1.73,-1)(-1.46,-1.46)(-1,-1.73) - %210 -240 -\bezier{60}(-1, -1.73)(-.54, -2)(0, -2) - %240 - 270 -%4th quadrant -\bezier{60}(0, -2)(.54, -2)(1, -1.73) - %270 - 300 -\bezier{60}(1,-1.73)(1.46,-1.46)(1.73,-1) - %300 - 330 -\bezier{60}(1.73, -1)(2, -.54)(2, 0) - %330 - 360 -%division lines -\put(0, 0){\line(1, 0){2}} -\put(0, 0){\line(2, 1){1.79}} - %1.79 = 2 cos arctg .5 -%\put(0, 0){\line(-2, 1){1.79}} -\bezier{75}(0, 0)(-.81, .59)(-1.61, 1.18) - %-.81 = cos 144; .59 = sin 144 -%\put(0, 0){\line(-1, -2){.89}} - % .89 = 2 sin arctg .5 -\bezier{75}(0, 0)(-.59, -.81)(-1.18, -1.62) - %-.59 = cos -126; -.81 = sin -126 -%piece -\bezier{60}(2.5, 0.1)(2.5, .64)(2.29, .99) - % shift .5, .1 -\put(0.5, 0.1){\line(1, 0){2}} -\put(0.5, 0.1){\line(2, 1){1.79}} -%Candles: -\bezier{20}(0,1.31)(-.15,1.45)(0,1.61) -\bezier{20}(0,1.31)(.175,1.45)(0,1.61) -\put(-.1,.1){\line(0,1){1.2}} -\put(.1,.05){\line(0,1){.95}} -\put(.1,1){\line(-2,3){.2}} -%left -\bezier{20}(-.25,1.46)(-.40,1.6)(-.25,1.76) -\bezier{20}(-.25,1.46)(-.075,1.6)(-.25,1.76) -\put(-.35,.25){\line(0,1){1.2}} -\put(-.15,.2){\line(0,1){.95}} -\put(-.15,1.15){\line(-2,3){.2}} -%right -\bezier{20}(.25,1.46)(.40,1.6)(.25,1.76) -\bezier{20}(.25,1.46)(.075,1.6)(.25,1.76) -\put(.35,.25){\line(0,1){1.2}} -\put(.15,.2){\line(0,1){.95}} -\put(.15,1.15){\line(2,3){.2}} -%leftleft -\bezier{20}(-.5,1.61)(-.65,1.75)(-.5,1.91) -\bezier{20}(-.5,1.61)(-.325,1.75)(-.5,1.91) -\put(-.6,.4){\line(0,1){1.2}} -\put(-.4,.35){\line(0,1){.95}} -\put(-.4,1.3){\line(-2,3){.2}} -%rightright -\bezier{20}(.5,1.61)(.65,1.75)(.5,1.91) -\bezier{20}(.5,1.61)(.325,1.75)(.5,1.91) -\put(.6,.4){\line(0,1){1.2}} -\put(.4,.35){\line(0,1){.95}} -\put(.4,1.3){\line(2,3){.2}} -%texts -\put(-1, -.1){\makebox(0, 0){\strut Happy}} -\put(.5, -1){\makebox(0, 0){\strut Birthday}} -\put(1.9, .35){\makebox(0, 0){\strut NTG}} -\end{picture} - -\par\noindent via -\begingroup\small -%\begingroup\small -\begin{verbatim} -\setlength{\unitlength}{6ex} -\begin{picture}(6, 5)(-3, -2) -%1st quadrant -%\bezier{100}(2, 0)(2, .54)(1.79, .89) - % 0 - `30' 2:1-line -\bezier{60}(1.79, .89)(1.46, 1.46)(1, 1.73) - % `30' - 60 -\bezier{60}(1, 1.73)(.54, 2)(0, 2) - % 60 - 90 -%2nd quadrant -\bezier{60}(0, 2)(-.54, 2)(-1, 1.73) - % 90 - 120 -\bezier{60}(-1,1.73)(-1.46,1.46)(-1.73,1) - %120 - 150 -\bezier{60}(-1.73, 1)(-2, .54)(-2, 0) - %150 - 180 -%3rd quadrant -\bezier{60}(-2, 0)(-2, -.54)(-1.73, -1) - %180 - 210 -\bezier{60}(-1.73,-1)(-1.46,-1.46)(-1,-1.73) - %210 -240 -\bezier{60}(-1, -1.73)(-.54, -2)(0, -2) - %240 - 270 -%4th quadrant -\bezier{60}(0, -2)(.54, -2)(1, -1.73) - %270 - 300 -\bezier{60}(1,-1.73)(1.46,-1.46)(1.73,-1) - %300 - 330 -\bezier{60}(1.73, -1)(2, -.54)(2, 0) - %330 - 360 -%division lines -\put(0, 0){\line(1, 0){2}} -\put(0, 0){\line(2, 1){1.79}} - %1.79 = 2 cos arctg .5 -%\put(0, 0){\line(-2, 1){1.79}} -\bezier{75}(0, 0)(-.81, .59)(-1.61, 1.18) - %-.81 = cos 144; .59 = sin 144 -%\put(0, 0){\line(-1, -2){.89}} - % .89 = 2 sin arctg .5 -\bezier{75}(0, 0)(-.59, -.81)(-1.18, -1.62) - %-.59 = cos -126; -.81 = sin -126 -%piece -\bezier{60}(2.5, 0.1)(2.5, .64)(2.29, .99) - % shift .5, .1 -\put(0.5, 0.1){\line(1, 0){2}} -\put(0.5, 0.1){\line(2, 1){1.79}} -%Candles: -\bezier{20}(0,1.31)(-.15,1.45)(0,1.61) -\bezier{20}(0,1.31)(.175,1.45)(0,1.61) -\put(-.1,.1){\line(0,1){1.2}} -\put(.1,.05){\line(0,1){.95}} -\put(.1,1){\line(-2,3){.2}} -%left -\bezier{20}(-.25,1.46)(-.40,1.6)(-.25,1.76) -\bezier{20}(-.25,1.46)(-.075,1.6)(-.25,1.76) -\put(-.35,.25){\line(0,1){1.2}} -\put(-.15,.2){\line(0,1){.95}} -\put(-.15,1.15){\line(-2,3){.2}} -%right -\bezier{20}(.25,1.46)(.40,1.6)(.25,1.76) -\bezier{20}(.25,1.46)(.075,1.6)(.25,1.76) -\put(.35,.25){\line(0,1){1.2}} -\put(.15,.2){\line(0,1){.95}} -\put(.15,1.15){\line(2,3){.2}} -%leftleft -\bezier{20}(-.5,1.61)(-.65,1.75)(-.5,1.91) -\bezier{20}(-.5,1.61)(-.325,1.75)(-.5,1.91) -\put(-.6,.4){\line(0,1){1.2}} -\put(-.4,.35){\line(0,1){.95}} -\put(-.4,1.3){\line(-2,3){.2}} -%rightright -\bezier{20}(.5,1.61)(.65,1.75)(.5,1.91) -\bezier{20}(.5,1.61)(.325,1.75)(.5,1.91) -\put(.6,.4){\line(0,1){1.2}} -\put(.4,.35){\line(0,1){.95}} -\put(.4,1.3){\line(2,3){.2}} -%texts -\put(-1, -.1){\makebox(0, 0){\strut Happy}} -\put(.5, -1){\makebox(0, 0){\strut Birthday}} -\put(1.9, .35){\makebox(0, 0){\strut NTG}} -\end{picture} -\end{verbatim}\endgroup -\noindent -The above use of the bezier splines makes the -creation of scaling invariant circles -easier than the approach by Ramek in the proceedings of -\TeX eter '88. - -\item commutative diagrams (\LAMSTeX, \ldots). As a simple example -the calculation flow of the autocorrelation -function, -$a_f$, inspired by the \TeX Book ex18.46, p.358. -${\cal F}$ denotes the Fourier transform and -${\cal F}\strut^{-}$ the inverse Fourier transform -\vskip1ex -% -\def\lllongrightarrow{\relbar\joinrel% - \relbar\joinrel\relbar\joinrel% - \relbar\joinrel\rightarrow} -\def\llongrightarrow{\relbar\joinrel% - \relbar\joinrel\rightarrow} -\def\normalbaselines{% - \baselineskip20pt - \lineskip3pt - \lineskiplimit3pt} -\def\mapright#1{\smash{\mathop{ - \llongrightarrow}\limits^{#1}}} -\def\lmapright#1{\smash{\mathop{ - \lllongrightarrow}\limits^{#1}}} -\def\mapdown#1{\Big\downarrow - \rlap{$\vcenter{\hbox{$#1$}}$}} -\def\mapup#1{\Big\uparrow - \rlap{$\vcenter{\hbox{$#1$}}$}} -$$%Diagram -\matrix{f&\lmapright\otimes&a_f\cr - \mapdown{{\cal F}}&&\mapup{% - {\cal F}\strut^{-}}\cr - \hbox to 0pt{\hss${\cal F}(f)$\hss} - &\mapright\times\hfil& - \hbox to 0pt{\hss$\bigl({\cal F}(f) - \bigr)^2$\hss}\cr} -\qquad$$%a little to the left -via -\begingroup\small\begin{verbatim} -$$\matrix{f&\lmapright\otimes&a_f\cr - \mapdown{{\cal F}}&&\mapup{% - {\cal F}\strut^{-}}\cr - \hbox to 0pt{\hss${\cal F}(f)$\hss} - &\mapright\times\hfil& - \hbox to 0pt{\hss$\bigl({\cal F}(f) - \bigr)^2$\hss}\cr}$$ -\end{verbatim}\endgroup -\noindent with auxiliaries -\begingroup\small\begin{verbatim} -\def\lllongrightarrow{\relbar\joinrel% - \relbar\joinrel\relbar\joinrel% - \relbar\joinrel\rightarrow} -\def\llongrightarrow{\relbar\joinrel% - \relbar\joinrel\rightarrow} -\def\normalbaselines{% - \baselineskip20pt - \lineskip3pt - \lineskiplimit3pt} -\def\mapright#1{\smash{\mathop{ - \llongrightarrow}\limits^{#1}}} -\def\lmapright#1{\smash{\mathop{ - \lllongrightarrow}\limits^{#1}}} -\def\mapdown#1{\Big\downarrow - \rlap{$\vcenter{\hbox{$#1$}}$}} -\def\mapup#1{\Big\uparrow - \rlap{$\vcenter{\hbox{$#1$}}$}} -\end{verbatim}\endgroup - -\item \MF{} coupled to \TeX. Leading in this area is the work of Hoenig, for -example see his `When \TeX\ and \MF{} work together.' -He has worked out the printing along curved lines, -and the typesetting of paragraphs which flow around -arbitrary shapes! -Very powerul, but not simple to use for the moment. -It looks like going back to the roots, -because Knuth's first version of the `\TeX book' contained it all: -`\TeX\ and \MF{}, New directions in typesetting.' - -\item (encapsulated) \PS. Knuth left some niches for handling these - kinds of things via the \cs{special} command. A very nice survey of - the possibilities which can be obtained when incorporating \PS{} is - given in Goossens' `\PS{} en \LaTeX,' which is also a chapter in - the \LaTeX-companion. A survey of the various user approaches has been - compiled by Anita Hoover. -\item Screen drawings. An example is GNUplot. Cameron in \TeX line - characterized these kind of systems as -\begin{quote} - `\ldots There are a couple of programs available which take all the - calculation out: you draw your picture using the mouse, and it is - automagically compiled into \LaTeX\ source. But for complicated - figures, mathematical insight or computational power may be required.' -\end{quote} - An example of figures that require math insight are Hoenig's `Fractal - images with \TeX.' - We can add to that the reuse aspect, which is hindered by the drawing - approach, and the unreadable nature of machine-generated code. - But certainly these tools have their niche in the spectrum of tools for EP. -\end{itemize} - -\section{Front matter} -Much attention is paid to front matter: -cover, -publication characteristics (source, ISBN or other classification), -title etc., -abstract, -keywords, -table of contents and the like if not considered as an appendix, -foreword. -Basically the style or format can handle these easily. -Because of the eye-catching need of a cover a designer -is generally involved and the cover, especially -the graphics, typeset by different means. -The page with publication characteristics can be left to -the copy editor. -For the others just obey the mark-up characteristics, as demanded -by the style file. -\section{Back matter} -As back matter we have the various appendices. Two kinds are -noteworthy: the list of references and the index. Both are -complicated because of the {\em cross-referencing on the fly.} -\paragraph*{Bibliography creation.}% -With a publication we have the problem of -handling a list of references, -to extract them from our literature database, -and to format them appropriately. -We also like to cross-reference them to the list of references, -such that it is adaptable to different journal traditions, -with respect to formatting of citations. -There are tools available to do that, for example -\LaTeX's \BibTeX\ with its {\tt thebibliography} environment, and -\AmSTeX's \cs{ref} and \cs{endref} structures. -I designed my own `little language -within \TeX' to handle that all in a one-pass job within \AllTeX. -To get the flavour, the bibliography at the end of this paper -has been prepared via -\begingroup\small\begin{verbatim} -\section*{References} -\input{lit.dat}%database file - \def\tubissue#1(#2){{\sl TUGboat\/} - {\bf#1} (#2)} - \def\ls#1{\ea\bibentry#1\endgraf} -\input{lit.sel}%file with names -\end{verbatim}\endgroup -See my BLUe's Bibliography paper -for more details, and my solution of the cross-referencing in a one-pass job. - -\paragraph*{Index preparation.} -This is complicated because of the dynamic allocation of page numbers -and inclusion of these in the index. It is also an art to provide the -right entries. Generally (external) sorting needs to be done too, -next to the formatting. A complicated job. -\begin{quote}\TeX nically - there is the tool Makeindex, to cooperate with (La)\TeX. -\end{quote} -Knuth provided a mark-up mechanism for extracting -the index entries and let the OTR add the page numbers. -These items are writen on a file -for further processing, like sorting, and adding comments and the like. -I consider that very powerful, but it is not completely automatic. -The user, or publisher, has to account for the finishing touch, for the -moment. For a survey of the intricacies which come along -when writing automatic index generators, see -the report of Chen and Harrison about developing Makeindex. - -I have exercised index preparation \`a la Knuth in my Sorting in BLUe paper. -Although the approach of doing it all within \TeX\ looks promising, -it still needs some polishing for BLU to become useful. - -\section{Guidelines for Choosing} -Given the above-mentioned variety of tools %and your personal circumstances -the following questions can be useful -\begin{quote} -What facilities does your publisher provide?\\ -What is the document like? \\ -What tools are already in use? \\ -Whom is it aimed at? \\ -How many authors are involved? \\ -%(many authors many publications?), \\ -Is (partial, e.g.\ bibliographical) reuse also envisaged?\\ -Is future use, different from formatting, in sight? -\end{quote} -\noindent -First, contact your publisher and agree upon the tools to be used.\\ -Next best, when you are on your own, consider -\begin{description} -\item[]No structure \hfill it does not matter \\%what will be used - (For right-to-left etc.\hfill \TeXXeT) -\item[]Scientific papers \hfill \AllTeX%can best be used -\item[]Reuse \hfill \AllTeX, SGML? %can best be used -\item[]Various authors\hfill \AllTeX, SGML? % as a uniform language -%\TeX\ which is {\em de facto\/} in use for that purpose -\item[]Future (nonformatting) use\hfill \AllTeX, SGML? -\end{description} -A user sufficiently fluent in di-roff would like me to -substitute x-roff for \TeX\ in the table above. Be my guest, I don't -have experience with x-roff. - -\section*{Acknowledgements} -This paper has been processed via \LaTeX\ because I needed the -functionality of the picture environment. The standard formatting of -the peculiar \TeX-related names have been borrowed from \verb|tugboat.cmn|. -I used the \verb|ltugproc.sty|---style for -TUG proceedings---because of the nice way the front matter -is typeset. - -I like to thank Christina Thiele for polishing my English -and pointing to the right use of fonts for established names.\footnote{Although - this has its difficulties simply using \cs{MF} for example goes wrong - when we vary size.} -Gerard van Nes blew his horn once again. Thank you! - -\section*{Conclusions} -For high-quality computer-assisted typography \TeX{} etc.{} is -a flexible and excellent craftsman-like tool, -with the following characteristics -\begin{itemize} -\item \TeX\ is in the PD, available for all platforms -\item flavours of \TeX\ have been added -to facilitate its use, next to macro toolboxes -\item formats and style files have been added to facilitate the publication -process -\item \TeX\ can be used with many fonts, and takes its own font generation tool -\item drivers, WSYIWYG interfaces are commercially available -\item working environments are provided by user groups -\item lingua franca for scientific email communication -\item publishing houses accept compuscripts marked up by (La)\TeX -\item users maintain digests, discussion lists and file servers -\item some 10k organized users, with many books published via \AllTeX. -\end{itemize} -\noindent -Once mastered \TeX\ is a nice basic tool. -However, the way to error-less mark-up is hard and haunting, unless, -supported (by a publisher) with -generic styles, -user's guides, and -templates. -Using \LaTeX\ {\em as-is\/} and -supported by publishers is much simpler -than learning \TeX\ per se. - -The \TeX\ arcana is complex. -(Professional) Education is paramount! -The twins \TeX-\MF{} will serve for a lifetime. -And above all let us keep it simple! -\section*{References} -\begin{thebibliography}{xxxxx} -\input{lit.dat} -%\input{lit.lat} - \def\tubissue#1(#2){{\sl TUGboat\/} {\bf#1} (#2)} - \def\ls#1{\ea\bibitem{}#1\endgraf} -\input{lit.sel} -\end{thebibliography} - -\end{document} - - - - - - - - - diff --git a/macros/ec-plain/00readme.doc b/macros/ec-plain/00readme.doc deleted file mode 100644 index 66db615f61..0000000000 --- a/macros/ec-plain/00readme.doc +++ /dev/null @@ -1,44 +0,0 @@ -This is the complete set of files to generate a EC font oriented PLAIN.FMT - -The main file for plain format is EC-PLAIN. -The main file for pdf plain format is EC-PDFPLAIN. - -The EC-PLFMT.BAT is MSDOS file (for 386 and emTeX) which I -used to generate the EC-PLAIN format under emTeX. - -For the TeXLive distribution, the building commands are: - - -- initex ec-plain - -- pdfinitex ec-pdfplain - -The code page converter I use (to avoid active characters >127) -is 850DCTEX.TCP (to be transferred in BINARY). Its source -to be compiled with maketcp is 850DCTEX.MTC (to be transferred -in ASCII). Use maketcp version 1.1c or later with option -c -to generate 850DCTEX.TCP - -With the TeXLive distribution, one should only change he [pdf]texing -commands by adding the option "translate-file": - -tex.exe -translate-file=cp850-fr.tcx &ec-plain \input %1 %2 %3 %4 -pdftex.exe -translate-file=cp850-fr.tcx &ec-pdfplain \input %1 %2 %3 %4 - - -CAUTION -======= -File names in this directory have been changed from the original (e.g. -dcacceur.tex --> hyacceur.tex) in order to have no missing file when -generating format. Thus you should put these files in a directory distinct -from your usual TEXINPUT, unless you look at EC-PLFMT.BAT to rename them -backwards. - -ec-plain.tex differs from plain.tex for: - - font names (e.g. cmr10 -> ecrm1000) - - cmmi* -> exmi* with 128 additional chars to have upright greek capitals - - several mathchardefs - - inclusion of hyacceur.tex+acmacros.sty+hyconfig.ptx instead of hyphen.tex - - \magstep up to 9 - -Daniel TAUPIN - -taupin@lps.u-psud.fr diff --git a/macros/ec-plain/README b/macros/ec-plain/README deleted file mode 120000 index 2ba1706e78..0000000000 --- a/macros/ec-plain/README +++ /dev/null @@ -1 +0,0 @@ -00readme.doc \ No newline at end of file diff --git a/macros/ec-plain/acmacros.sty b/macros/ec-plain/acmacros.sty deleted file mode 100644 index e161d7efd6..0000000000 --- a/macros/ec-plain/acmacros.sty +++ /dev/null @@ -1,594 +0,0 @@ -% special distinction EURO-TeX/tm.fonts/dm.fonts -\ifx\rm\undefined\relax -\else\rm -\def\wordsplita#1#2#3.{#1}% -\def\wordsplitb#1#2#3.{#2}% -% -\ifx\fonthdg\undefined - \edef\fonthdg{\expandafter\wordsplita\fontname\the\font.}\fi -\ifx\fonthdge\undefined - \edef\fonthdge{\expandafter\wordsplitb\fontname\the\font.}\fi -\fi - -\newif\ifeurotex -\immediate\write16{ Font heading:\fonthdg\fonthdge}\relax -\if\fonthdg d\relax - \if\fonthdge c\relax - \immediate\write16{ DC fonts active}% - \eurotextrue - \fi -\fi -% -\if\fonthdg e\relax - \if\fonthdge c\relax - \immediate\write16{ EC fonts active}% - \eurotextrue - \fi -\fi -% -\ifx\protect\undefined\let\protect\relax\fi -% -% ================== Special accent macro codes ============================ -% taken from dc-plain.ch -\ifeurotex - \def\acute{\mathaccent"7001 } - \def\grave{\mathaccent"7000 } - \def\ddot{\mathaccent"7004 } - \def\tilde{\mathaccent"7003 } - \def\bar{\mathaccent"7009 } - \def\breve{\mathaccent"7008 } - \def\check{\mathaccent"7007 } - \def\hat{\mathaccent"7002 } - \def\vec{\mathaccent"017E } - \def\dot{\mathaccent"700A } - \def\ss{^^ff} - \def\ae{^^e6} - \def\oe{^^f7} - \def\o{^^f8} - \def\AE{^^c6} - \def\OE{^^d7} - \def\O{^^d8} - \def\i{^^19}\def\j{^^1a} % dotless letters - \def\aa{^^e5} - \def\AA{^^c5} - \def\l{^^aa} %backslash-lowercase L for Polish waw} - \def\L{^^8a} - \def\th{^^fe} - \def\TH{^^de} - \def\dh{^^f0} - \def\DH{^^d0} - \def\dj{^^9e} - \def\DJ{^^d0} - \def\ng{^^ad} - \def\NG{^^8d} - \def\SS{^^df} -\else - \def\ae{^^1a} - \def\oe{^^1b} - \def\o{^^1c} - \def\AE{^^1d} - \def\OE{^^1e} - \def\O{^^1f} - \def\i{^^10} - \def\j{^^11} % dotless letters -\fi - -\ifeurotex - \def\b#1{\oalign{#1\crcr\hidewidth - \vbox to.2ex{\hbox{\char"09}\vss}\hidewidth}} -\fi - -\ifeurotex -\def\@gr@#1{{\accent"00 #1}} -\else -\def\@gr@#1{{\accent18 #1}} -\fi - -\def\`#1{\ifx#1a^^e0% {} - \else\ifx#1e^^e8% {} - \else\ifx#1\i ^^ec% {} - \else\ifx#1i^^ec% {} - \else\ifx#1o^^f2% {} - \else\ifx#1u^^f9% {} - \else\ifx#1A^^c0% {} - \else\ifx#1E^^c8% {} - \else\ifx#1I^^cc% {} - \else\ifx#1O^^d2% {} - \else\ifx#1U^^d9% {} - \else\protect\@gr@{#1}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} - -\def\c@{\@c@} -\ifeurotex -\def\@c@#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent"0B #1% - \else{\ooalign{\hidewidth\char"0B\hidewidth\crcr\unhbox\z@}}\fi}% -\else -\def\@c@#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent 24 #1% - \else{\ooalign{\hidewidth\char 24\hidewidth\crcr\unhbox\z@}}\fi}% -\fi - - -\ifeurotex -\def\c#1{\ifx#1c^^e7% {} - \else\ifx#1a^^a1% {} - \else\ifx#1e^^a6% {} - \else\ifx#1s^^b3% {} - \else\ifx#1t^^b5% {} - \else\ifx#1C^^c7% {} - \else\ifx#1A^^81% {} - \else\ifx#1E^^86% {} - \else\ifx#1S^^93% {} - \else\ifx#1T^^95% {} - \else\protect\@c@{#1}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -\else -\def\c#1{\ifx#1c^^e7% {} - \else\ifx#1C^^c7% {} - \else\protect\@c@{#1}% - \fi\fi} -\fi - -\ifeurotex -\def\@r@#1{{\accent"06 #1}} -\else -\def\@r@#1{{\accent"17 #1}} -\fi - -\ifeurotex -\def\r#1{\ifx#1a^^e5% {} - \else\ifx#1A^^c5% {} - \else\ifx#1u^^b7% {} - \else\ifx#1U^^97% {} - \else\protect\@r@{#1}% - \fi\fi\fi\fi} -\else -\def\r#1{\ifx#1a^^e5% {} - \else\ifx#1A^^c5% {} - \else\protect\@r@{#1}% - \fi\fi} -\fi - -\ifeurotex -\def\@ac@#1{{\accent"01 #1}} -\else -\def\@ac@#1{{\accent19 #1}} -\fi - -\ifeurotex -\def\'#1{\ifx#1a^^e1% {} - \else\ifx#1e^^e9% {} - \else\ifx#1\i ^^ed% {} - \else\ifx#1i^^ed% {} - \else\ifx#1o^^f3% {} - \else\ifx#1u^^fa% {} - \else\ifx#1y^^fd% {} - \else\ifx#1c^^a2% {} - \else\ifx#1l^^a8% {} - \else\ifx#1n^^ab% {} - \else\ifx#1r^^af% {} - \else\ifx#1s^^b1% {} - \else\ifx#1z^^b9% {} - \else\ifx#1A^^c1% {} - \else\ifx#1E^^c9% {} - \else\ifx#1I^^cd% {} - \else\ifx#1O^^d3% {} - \else\ifx#1U^^da% {} - \else\ifx#1Y^^dd% {} - \else\ifx#1C^^82% {} - \else\ifx#1L^^88% {} - \else\ifx#1N^^8b% {} - \else\ifx#1R^^8f% {} - \else\ifx#1S^^91% {} - \else\ifx#1Z^^99% {} - \else\protect\@ac@{#1}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -\else -\def\'#1{\ifx#1a^^e1% {} - \else\ifx#1e^^e9% {} - \else\ifx#1\i ^^ed% {} - \else\ifx#1i^^ed% {} - \else\ifx#1o^^f3% {} - \else\ifx#1u^^fa% {} - \else\ifx#1y^^fd% {} - \else\ifx#1A^^c1% {} - \else\ifx#1E^^c9% {} - \else\ifx#1I^^cd% {} - \else\ifx#1O^^d3% {} - \else\ifx#1U^^da% {} - \else\ifx#1Y^^dd% {} - \else\protect\@ac@{#1}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -\fi - -\ifeurotex -\def\@v@#1{{\accent"07 #1}} -\else -\def\@v@#1{{\accent 20 #1}} -\fi - -\ifeurotex -\def\v#1{\ifx#1c^^a3% {} - \else\ifx#1d^^a4% {} - \else\ifx#1e^^a5% {} - \else\ifx#1n^^ac% {} - \else\ifx#1r^^b0% {} - \else\ifx#1s^^b2% {} - \else\ifx#1t^^b4% {} - \else\ifx#1l^^a9% {} - \else\ifx#1C^^83% {} - \else\ifx#1D^^84% {} - \else\ifx#1E^^85% {} - \else\ifx#1N^^8c% {} - \else\ifx#1R^^90% {} - \else\ifx#1S^^92% {} - \else\ifx#1T^^94% {} - \else\ifx#1L^^89% {} - \else\protect\@v@{#1}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -\else -\def\v#1{\protect\@v@{#1}}% -\fi - -\ifeurotex -\def\@u@#1{{\accent"08 #1}} -\else -\def\@u@#1{{\accent 21 #1}} -\fi - -%\check - -\ifeurotex -\def\u#1{\ifx#1a^^a0% {} - \else\ifx#1g^^a7% {} - \else\ifx#1A^^80% {} - \else\ifx#1G^^87% {} - \else\protect\@u@{#1}% - \fi\fi\fi\fi} -\else -\def\u#1{\protect\@u@{#1}}% -\fi - -\ifeurotex -\def\@dot@#1{{\accent"0A #1}} -\else -\def\@dot@#1{{\accent 95 #1}} -\fi - -%\check - -\ifeurotex -\def\.#1{\ifx#1z^^bb% {} - \else\ifx#1Z^^9b% {} - \else\ifx#1I^^9d% {} - \else\protect\@dot@{#1}% - \fi\fi\fi} -\else -\def\.#1{\protect\@dot@{#1}}% -\fi - -%\check - -\ifeurotex -\def\@H@#1{{\accent"05 #1}} -\else -\def\@H@#1{{\accent"7D #1}} -\fi - -\ifeurotex -\def\H#1{\ifx#1o^^ae% {} - \else\ifx#1u^^b6% {} - \else\ifx#1O^^8e% {} - \else\ifx#1U^^96% {} - \else\protect\@H@{#1}% - \fi\fi\fi\fi} -\else -\def\H#1{\protect\@H@{#1}}% -\fi - -%\check - -\ifeurotex -\def\@um@#1{{\accent"04 #1}} -\else -\def\@um@#1{{\accent"7F #1}} -\fi - -\ifeurotex -\def\"#1{\ifx#1a^^e4% {} - \else\ifx#1e^^eb% {} - \else\ifx#1\i ^^ef% {} - \else\ifx#1i^^ef% {} - \else\ifx#1o^^f6% {} - \else\ifx#1u^^fc% {} - \else\ifx#1y^^b8% {} - \else\ifx#1A^^c4% {} - \else\ifx#1E^^cb% {} - \else\ifx#1I^^cf% {} - \else\ifx#1O^^d6% {} - \else\ifx#1U^^dc% {} - \else\ifx#1Y^^98% {} - \else\protect\@um@{#1}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -\else -\def\"#1{\ifx#1a^^e4% {} - \else\ifx#1e^^eb% {} - \else\ifx#1\i ^^ef% {} - \else\ifx#1i^^ef% {} - \else\ifx#1o^^f6% {} - \else\ifx#1u^^fc% {} - \else\ifx#1A^^c4% {} - \else\ifx#1E^^cb% {} - \else\ifx#1I^^cf% {} - \else\ifx#1O^^d6% {} - \else\ifx#1U^^dc% {} - \else\protect\@um@{#1}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -\fi - - -\ifeurotex -\def\@eq@#1{{\accent"09 #1}} -\else -\def\@eq@#1{{\accent22 #1}} -\fi - -\def\=#1{\protect\@eq@{#1}} - -\ifeurotex -\def\@hat@#1{{\accent"02 #1}} -\else -\def\@hat@#1{{\accent94 #1}} -\fi - -\def\^#1{\ifx#1a^^e2% {} - \else\ifx#1e^^ea% {} - \else\ifx#1\i ^^ee% {} - \else\ifx#1i^^ee% {} - \else\ifx#1o^^f4% {} - \else\ifx#1u^^fb% {} - \else\ifx#1A^^c2% {} - \else\ifx#1E^^ca% {} - \else\ifx#1I^^ce% {} - \else\ifx#1O^^d4% {} - \else\ifx#1U^^db% {} - \else\protect\@hat@{#1}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} - -%\check - - -\ifeurotex -\def\@til@#1{{\accent"03 #1}} -\else -\def\@til@#1{{\accent"7E #1}} -\fi - -\def\~#1{\ifx#1a^^e3% {} - \else\ifx#1n^^f1% {} - \else\ifx#1o^^f5% {} - \else\ifx#1A^^c3% {} - \else\ifx#1N^^d1% {} - \else\ifx#1O^^d5% {} - \else\protect\@til@{#1}% - \fi\fi\fi\fi\fi\fi} - -\ifeurotex -% normal greek symbols : lower case slanted, uppercase upright -\mathchardef\Gamma="0180 -\mathchardef\Delta="0181 -\mathchardef\Theta="0182 -\mathchardef\Lambda="0183 -\mathchardef\Xi="0184 -\mathchardef\Pi="0185 -\mathchardef\Sigma="0186 -\mathchardef\Upsilon="0187 -\mathchardef\Phi="0188 -\mathchardef\Psi="0189 -\mathchardef\Omega="018A -\mathchardef\alpha="010B -\mathchardef\beta="010C -\mathchardef\gamma="010D -\mathchardef\delta="010E -\mathchardef\epsilon="010F -\mathchardef\zeta="0110 -\mathchardef\eta="0111 -\mathchardef\theta="0112 -\mathchardef\iota="0113 -\mathchardef\kappa="0114 -\mathchardef\lambda="0115 -\mathchardef\mu="0116 -\mathchardef\nu="0117 -\mathchardef\xi="0118 -\mathchardef\pi="0119 -\mathchardef\rho="011A -\mathchardef\sigma="011B -\mathchardef\tau="011C -\mathchardef\upsilon="011D -\mathchardef\phi="011E -\mathchardef\chi="011F -\mathchardef\psi="0120 -\mathchardef\omega="0121 -\mathchardef\varepsilon="0122 -\mathchardef\vartheta="0123 -\mathchardef\varpi="0124 -\mathchardef\varrho="0125 -\mathchardef\varsigma="0126 -\mathchardef\varphi="0127 - % -% slanted greek symbols : -\mathchardef\slGamma="0100 -\mathchardef\slDelta="0101 -\mathchardef\slTheta="0102 -\mathchardef\slLambda="0103 -\mathchardef\slXi="0104 -\mathchardef\slPi="0105 -\mathchardef\slSigma="0106 -\mathchardef\slUpsilon="0107 -\mathchardef\slPhi="0108 -\mathchardef\slPsi="0109 -\mathchardef\slOmega="010A -\mathchardef\slalpha="010B -\mathchardef\slbeta="010C -\mathchardef\slgamma="010D -\mathchardef\sldelta="010E -\mathchardef\slepsilon="010F -\mathchardef\slzeta="0110 -\mathchardef\sleta="0111 -\mathchardef\sltheta="0112 -\mathchardef\sliota="0113 -\mathchardef\slkappa="0114 -\mathchardef\sllambda="0115 -\mathchardef\slmu="0116 -\mathchardef\slnu="0117 -\mathchardef\slxi="0118 -\mathchardef\slpi="0119 -\mathchardef\slrho="011A -\mathchardef\slsigma="011B -\mathchardef\sltau="011C -\mathchardef\slupsilon="011D -\mathchardef\slphi="011E -\mathchardef\slchi="011F -\mathchardef\slpsi="0120 -\mathchardef\slomega="0121 -\mathchardef\slvarepsilon="0122 -\mathchardef\slvartheta="0123 -\mathchardef\slvarpi="0124 -\mathchardef\slvarrho="0125 -\mathchardef\slvarsigma="0126 -\mathchardef\slvarphi="0127 - % -% upright (roman) greek symbols : -\mathchardef\rmGamma="0180 -\mathchardef\rmDelta="0181 -\mathchardef\rmTheta="0182 -\mathchardef\rmLambda="0183 -\mathchardef\rmXi="0184 -\mathchardef\rmPi="0185 -\mathchardef\rmSigma="0186 -\mathchardef\rmUpsilon="0187 -\mathchardef\rmPhi="0188 -\mathchardef\rmPsi="0189 -\mathchardef\rmOmega="018A -\mathchardef\rmalpha="018B -\mathchardef\rmbeta="018C -\mathchardef\rmgamma="018D -\mathchardef\rmdelta="018E -\mathchardef\rmepsilon="018F -\mathchardef\rmzeta="0190 -\mathchardef\rmeta="0191 -\mathchardef\rmtheta="0192 -\mathchardef\rmiota="0193 -\mathchardef\rmkappa="0194 -\mathchardef\rmlambda="0195 -\mathchardef\rmmu="0196 -\mathchardef\rmnu="0197 -\mathchardef\rmxi="0198 -\mathchardef\rmpi="0199 -\mathchardef\rmrho="019A -\mathchardef\rmsigma="019B -\mathchardef\rmtau="019C -\mathchardef\rmupsilon="019D -\mathchardef\rmphi="019E -\mathchardef\rmchi="019F -\mathchardef\rmpsi="0120 -\mathchardef\rmomega="01A1 -\mathchardef\rmvarepsilon="01A2 -\mathchardef\rmvartheta="01A3 -\mathchardef\rmvarpi="01A4 -\mathchardef\rmvarrho="01A5 -\mathchardef\rmvarsigma="01A6 -\mathchardef\rmvarphi="01A7 - % - % -% bold greek symbols : -\mathchardef\bfGamma="01A8 -\mathchardef\bfDelta="01A9 -\mathchardef\bfTheta="01AA -\mathchardef\bfLambda="01AB -\mathchardef\bfXi="01AC -\mathchardef\bfPi="01AD -\mathchardef\bfSigma="01AE -\mathchardef\bfUpsilon="01AF -\mathchardef\bfPhi="01B0 -\mathchardef\bfPsi="01B1 -\mathchardef\bfOmega="01B2 -\mathchardef\bfalpha="01B3 -\mathchardef\bfbeta="01B4 -\mathchardef\bfgamma="01B5 -\mathchardef\bfdelta="01B6 -\mathchardef\bfepsilon="01B7 -\mathchardef\bfzeta="01B8 -\mathchardef\bfeta="01B9 -\mathchardef\bftheta="01BA -\mathchardef\bfiota="01BB -\mathchardef\bfkappa="01BC -\mathchardef\bflambda="01BD -\mathchardef\bfmu="01BE -\mathchardef\bfnu="01BF -\mathchardef\bfxi="01C0 -\mathchardef\bfpi="01C1 -\mathchardef\bfrho="01C2 -\mathchardef\bfsigma="01C3 -\mathchardef\bftau="01C4 -\mathchardef\bfupsilon="01C5 -\mathchardef\bfphi="01C6 -\mathchardef\bfchi="01C7 -\mathchardef\bfpsi="01C8 -\mathchardef\bfomega="01C9 -\mathchardef\bfvarepsilon="01CA -\mathchardef\bfvartheta="01CB -\mathchardef\bfvarpi="01CC -\mathchardef\bfvarrho="01CD -\mathchardef\bfvarsigma="01CE -\mathchardef\bfvarphi="01CF - % - % -% bold slanted greek symbols : -\mathchardef\bfslGamma="01D0 -\mathchardef\bfslDelta="01D1 -\mathchardef\bfslTheta="01D2 -\mathchardef\bfslLambda="01D3 -\mathchardef\bfslXi="01D4 -\mathchardef\bfslPi="01D5 -\mathchardef\bfslSigma="01D6 -\mathchardef\bfslUpsilon="01D7 -\mathchardef\bfslPhi="01D8 -\mathchardef\bfslPsi="01D9 -\mathchardef\bfslOmega="01DA -\mathchardef\bfslalpha="01DB -\mathchardef\bfslbeta="01DC -\mathchardef\bfslgamma="01DD -\mathchardef\bfsldelta="01DE -\mathchardef\bfslepsilon="01DF -\mathchardef\bfslzeta="01E0 -\mathchardef\bfsleta="01E1 -\mathchardef\bfsltheta="01E2 -\mathchardef\bfsliota="01E3 -\mathchardef\bfslkappa="01E4 -\mathchardef\bfsllambda="01E5 -\mathchardef\bfslmu="01E6 -\mathchardef\bfslnu="01E7 -\mathchardef\bfslxi="01E8 -\mathchardef\bfslpi="01E9 -\mathchardef\bfslrho="01EA -\mathchardef\bfslsigma="01EB -\mathchardef\bfsltau="01EC -\mathchardef\bfslupsilon="01ED -\mathchardef\bfslphi="01EE -\mathchardef\bfslchi="01EF -\mathchardef\bfslpsi="01F0 -\mathchardef\bfslomega="01F1 -\mathchardef\bfslvarepsilon="01F2 -\mathchardef\bfslvartheta="01F3 -\mathchardef\bfslvarpi="01F4 -\mathchardef\bfslvarrho="01F5 -\mathchardef\bfslvarsigma="01F6 -\mathchardef\bfslvarphi="01F7 - % -\def\c@{\@c@} -\fi - - -\gdef\accenthyphcodes{} - -\endinput diff --git a/macros/ec-plain/dybx10.mf b/macros/ec-plain/dybx10.mf deleted file mode 100644 index 722592dfa9..0000000000 --- a/macros/ec-plain/dybx10.mf +++ /dev/null @@ -1,69 +0,0 @@ -u#:=23/36pt#; % unit width -width_adj#:=11/36pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=0pt#; % extra space added to all sidebars - -body_height#:=270/36pt#; % height of tallest characters -asc_height#:=250/36pt#; % height of lowercase ascenders -cap_height#:=247/36pt#; % height of caps -fig_height#:=232/36pt#; % height of numerals -x_height#:=160/36pt#; % height of lowercase without ascenders -math_axis#:=90/36pt#; % axis of symmetry for math symbols -bar_height#:=85/36pt#; % height of crossbar in lowercase e -comma_depth#:=70/36pt#; % depth of comma below baseline -desc_depth#:=70/36pt#; % depth of lowercase descenders - -crisp#:=0pt#; % diameter of serif corners -tiny#:=13/36pt#; % diameter of rounded corners -fine#:=10/36pt#; % diameter of sharply rounded corners -thin_join#:=10/36pt#; % width of extrafine details -hair#:=17/36pt#; % lowercase hairline breadth -stem#:=41/36pt#; % lowercase stem breadth -curve#:=46/36pt#; % lowercase curve breadth -ess#:=38/36pt#; % breadth in middle of lowercase s -flare#:=45/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=56/36pt#; % diameter of dots -cap_hair#:=19/36pt#; % uppercase hairline breadth -cap_stem#:=51/36pt#; % uppercase stem breadth -cap_curve#:=55/36pt#; % uppercase curve breadth -cap_ess#:=53/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.6pt#; % thickness of lines in math symbols - -dish#:=1/36pt#; % amount erased at top or bottom of serifs -bracket#:=10/36pt#; % vertical distance from serif base to tangent -jut#:=25/36pt#; % protrusion of lowercase serifs -cap_jut#:=39/36pt#; % protrusion of uppercase serifs -beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs -beak#:=70/36pt#; % vertical protrusion of beak serifs -vair#:=13/36pt#; % vertical diameter of hairlines -notch_cut#:=10pt#; % maximum breadth above or below notches -bar#:=17/36pt#; % lowercase bar thickness -slab#:=17/36pt#; % serif and arm thickness -cap_bar#:=17/36pt#; % uppercase bar thickness -cap_band#:=17/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches -serif_drop#:=3/36pt#; % vertical drop of sloped serifs -stem_corr#:=2/36pt#; % for small refinements of stem breadth -vair_corr#:=1.5/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=4/36pt#; % amount of overshoot for curves -apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions - -slant:=0; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=.5; % extra openness of math symbols -superness:=8/11; % parameter for superellipses -superpull:=1/8; % extra openness inside bowls -beak_darkness:=.4; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=false; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=false; % should math-mode spacing be used? - diff --git a/macros/ec-plain/dybx12.mf b/macros/ec-plain/dybx12.mf deleted file mode 100644 index 2b460fbfd5..0000000000 --- a/macros/ec-plain/dybx12.mf +++ /dev/null @@ -1,70 +0,0 @@ -u#:=27/36pt#; % unit width -width_adj#:=13/36pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=0pt#; % extra space added to all sidebars - -body_height#:=324/36pt#; % height of tallest characters -asc_height#:=300/36pt#; % height of lowercase ascenders -cap_height#:=296.4/36pt#; % height of caps -fig_height#:=278.4/36pt#; % height of numerals -x_height#:=192/36pt#; % height of lowercase without ascenders -math_axis#:=108/36pt#; % axis of symmetry for math symbols -bar_height#:=102/36pt#; % height of crossbar in lowercase e -comma_depth#:=84/36pt#; % depth of comma below baseline -desc_depth#:=84/36pt#; % depth of lowercase descenders - -crisp#:=0pt#; % diameter of serif corners -tiny#:=13/36pt#; % diameter of rounded corners -fine#:=10/36pt#; % diameter of sharply rounded corners -thin_join#:=10.5/36pt#; % width of extrafine details -hair#:=18.3/36pt#; % lowercase hairline breadth -stem#:=47/36pt#; % lowercase stem breadth -curve#:=52/36pt#; % lowercase curve breadth -ess#:=44/36pt#; % breadth in middle of lowercase s -flare#:=51/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=62/36pt#; % diameter of dots -cap_hair#:=20/36pt#; % uppercase hairline breadth -cap_stem#:=57/36pt#; % uppercase stem breadth -cap_curve#:=61/36pt#; % uppercase curve breadth -cap_ess#:=59/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.66pt#; % thickness of lines in math symbols - -dish#:=1/36pt#; % amount erased at top or bottom of serifs -bracket#:=12/36pt#; % vertical distance from serif base to tangent -jut#:=30/36pt#; % protrusion of lowercase serifs -cap_jut#:=46/36pt#; % protrusion of uppercase serifs -beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs -beak#:=84/36pt#; % vertical protrusion of beak serifs -vair#:=14.3/36pt#; % vertical diameter of hairlines -notch_cut#:=12pt#; % maximum breadth above or below notches -bar#:=18.5/36pt#; % lowercase bar thickness -slab#:=18.5/36pt#; % serif and arm thickness -cap_bar#:=18.5/36pt#; % uppercase bar thickness -cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches -serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs -stem_corr#:=2/36pt#; % for small refinements of stem breadth -vair_corr#:=1.5/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=5/36pt#; % amount of overshoot for curves -apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions - -slant:=0; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=.4; % extra openness of math symbols -superness:=8/11; % parameter for superellipses -superpull:=1/8; % extra openness inside bowls -beak_darkness:=.4; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=false; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=false; % should math-mode spacing be used? - - diff --git a/macros/ec-plain/dybx5.mf b/macros/ec-plain/dybx5.mf deleted file mode 100644 index cbe1c0bab1..0000000000 --- a/macros/ec-plain/dybx5.mf +++ /dev/null @@ -1,69 +0,0 @@ -u#:=14.5/36pt#; % unit width -width_adj#:=7/36pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=3/36pt#; % extra space added to all sidebars - -body_height#:=135/36pt#; % height of tallest characters -asc_height#:=125/36pt#; % height of lowercase ascenders -cap_height#:=123.5/36pt#; % height of caps -fig_height#:=116/36pt#; % height of numerals -x_height#:=80/36pt#; % height of lowercase without ascenders -math_axis#:=45/36pt#; % axis of symmetry for math symbols -bar_height#:=40/36pt#; % height of crossbar in lowercase e -comma_depth#:=35/36pt#; % depth of comma below baseline -desc_depth#:=35/36pt#; % depth of lowercase descenders - -crisp#:=0pt#; % diameter of serif corners -tiny#:=9/36pt#; % diameter of rounded corners -fine#:=8/36pt#; % diameter of sharply rounded corners -thin_join#:=8/36pt#; % width of extrafine details -hair#:=15/36pt#; % lowercase hairline breadth -stem#:=24/36pt#; % lowercase stem breadth -curve#:=27/36pt#; % lowercase curve breadth -ess#:=19/36pt#; % breadth in middle of lowercase s -flare#:=27/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=31/36pt#; % diameter of dots -cap_hair#:=17/36pt#; % uppercase hairline breadth -cap_stem#:=28/36pt#; % uppercase stem breadth -cap_curve#:=31/36pt#; % uppercase curve breadth -cap_ess#:=24/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.43pt#; % thickness of lines in math symbols - -dish#:=.7/36pt#; % amount erased at top or bottom of serifs -bracket#:=5/36pt#; % vertical distance from serif base to tangent -jut#:=13/36pt#; % protrusion of lowercase serifs -cap_jut#:=19/36pt#; % protrusion of uppercase serifs -beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs -beak#:=25/36pt#; % vertical protrusion of beak serifs -vair#:=10/36pt#; % vertical diameter of hairlines -notch_cut#:=5pt#; % maximum breadth above or below notches -bar#:=12/36pt#; % lowercase bar thickness -slab#:=12/36pt#; % serif and arm thickness -cap_bar#:=12/36pt#; % uppercase bar thickness -cap_band#:=12/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches -serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs -stem_corr#:=1.5/36pt#; % for small refinements of stem breadth -vair_corr#:=1/36pt#; % for small refinements of hairline height -apex_corr#:=9/36pt#; % extra width at diagonal junctions - -o#:=3/36pt#; % amount of overshoot for curves -apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions - -slant:=0; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=1.5; % extra openness of math symbols -superness:=8/11; % parameter for superellipses -superpull:=1/8; % extra openness inside bowls -beak_darkness:=.4; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=false; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=false; % should math-mode spacing be used? - diff --git a/macros/ec-plain/dybx6.mf b/macros/ec-plain/dybx6.mf deleted file mode 100644 index a3d298a3cf..0000000000 --- a/macros/ec-plain/dybx6.mf +++ /dev/null @@ -1,69 +0,0 @@ -u#:=16.2/36pt#; % unit width -width_adj#:=7.8/36pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=2/36pt#; % extra space added to all sidebars - -body_height#:=162/36pt#; % height of tallest characters -asc_height#:=150/36pt#; % height of lowercase ascenders -cap_height#:=148.2/36pt#; % height of caps -fig_height#:=139.2/36pt#; % height of numerals -x_height#:=96/36pt#; % height of lowercase without ascenders -math_axis#:=54/36pt#; % axis of symmetry for math symbols -bar_height#:=49/36pt#; % height of crossbar in lowercase e -comma_depth#:=42/36pt#; % depth of comma below baseline -desc_depth#:=42/36pt#; % depth of lowercase descenders - -crisp#:=0pt#; % diameter of serif corners -tiny#:=10/36pt#; % diameter of rounded corners -fine#:=9/36pt#; % diameter of sharply rounded corners -thin_join#:=9/36pt#; % width of extrafine details -hair#:=15.4/36pt#; % lowercase hairline breadth -stem#:=28/36pt#; % lowercase stem breadth -curve#:=31/36pt#; % lowercase curve breadth -ess#:=25/36pt#; % breadth in middle of lowercase s -flare#:=31/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=36/36pt#; % diameter of dots -cap_hair#:=18/36pt#; % uppercase hairline breadth -cap_stem#:=33/36pt#; % uppercase stem breadth -cap_curve#:=36/36pt#; % uppercase curve breadth -cap_ess#:=31/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.47pt#; % thickness of lines in math symbols - -dish#:=.8/36pt#; % amount erased at top or bottom of serifs -bracket#:=6/36pt#; % vertical distance from serif base to tangent -jut#:=15/36pt#; % protrusion of lowercase serifs -cap_jut#:=23/36pt#; % protrusion of uppercase serifs -beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs -beak#:=36/36pt#; % vertical protrusion of beak serifs -vair#:=11/36pt#; % vertical diameter of hairlines -notch_cut#:=6pt#; % maximum breadth above or below notches -bar#:=13/36pt#; % lowercase bar thickness -slab#:=13/36pt#; % serif and arm thickness -cap_bar#:=13/36pt#; % uppercase bar thickness -cap_band#:=13/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches -serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs -stem_corr#:=1.6/36pt#; % for small refinements of stem breadth -vair_corr#:=1.1/36pt#; % for small refinements of hairline height -apex_corr#:=5/36pt#; % extra width at diagonal junctions - -o#:=3/36pt#; % amount of overshoot for curves -apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions - -slant:=0; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=1.3; % extra openness of math symbols -superness:=8/11; % parameter for superellipses -superpull:=1/8; % extra openness inside bowls -beak_darkness:=.4; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=false; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=false; % should math-mode spacing be used? - diff --git a/macros/ec-plain/dybx7.mf b/macros/ec-plain/dybx7.mf deleted file mode 100644 index 99c6ae3b19..0000000000 --- a/macros/ec-plain/dybx7.mf +++ /dev/null @@ -1,70 +0,0 @@ -u#:=17.9/36pt#; % unit width -width_adj#:=8.6/36pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=1/36pt#; % extra space added to all sidebars - -body_height#:=189/36pt#; % height of tallest characters -asc_height#:=175/36pt#; % height of lowercase ascenders -cap_height#:=172.9/36pt#; % height of caps -fig_height#:=162.4/36pt#; % height of numerals -x_height#:=112/36pt#; % height of lowercase without ascenders -math_axis#:=63/36pt#; % axis of symmetry for math symbols -bar_height#:=58/36pt#; % height of crossbar in lowercase e -comma_depth#:=49/36pt#; % depth of comma below baseline -desc_depth#:=49/36pt#; % depth of lowercase descenders - -crisp#:=0pt#; % diameter of serif corners -tiny#:=11/36pt#; % diameter of rounded corners -fine#:=9/36pt#; % diameter of sharply rounded corners -thin_join#:=9/36pt#; % width of extrafine details -hair#:=15.8/36pt#; % lowercase hairline breadth -stem#:=32/36pt#; % lowercase stem breadth -curve#:=35/36pt#; % lowercase curve breadth -ess#:=29/36pt#; % breadth in middle of lowercase s -flare#:=35/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=41/36pt#; % diameter of dots -cap_hair#:=18/36pt#; % uppercase hairline breadth -cap_stem#:=38/36pt#; % uppercase stem breadth -cap_curve#:=41/36pt#; % uppercase curve breadth -cap_ess#:=37/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.51pt#; % thickness of lines in math symbols - -dish#:=.9/36pt#; % amount erased at top or bottom of serifs -bracket#:=7/36pt#; % vertical distance from serif base to tangent -jut#:=17/36pt#; % protrusion of lowercase serifs -cap_jut#:=27/36pt#; % protrusion of uppercase serifs -beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs -beak#:=46/36pt#; % vertical protrusion of beak serifs -vair#:=11.5/36pt#; % vertical diameter of hairlines -notch_cut#:=7pt#; % maximum breadth above or below notches -bar#:=14/36pt#; % lowercase bar thickness -slab#:=14/36pt#; % serif and arm thickness -cap_bar#:=14/36pt#; % uppercase bar thickness -cap_band#:=14/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches -serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs -stem_corr#:=1.7/36pt#; % for small refinements of stem breadth -vair_corr#:=1.2/36pt#; % for small refinements of hairline height -apex_corr#:=2/36pt#; % extra width at diagonal junctions - -o#:=3/36pt#; % amount of overshoot for curves -apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions - -slant:=0; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=1.1; % extra openness of math symbols -superness:=8/11; % parameter for superellipses -superpull:=1/8; % extra openness inside bowls -beak_darkness:=.4; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=false; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=false; % should math-mode spacing be used? - - diff --git a/macros/ec-plain/dybx8.mf b/macros/ec-plain/dybx8.mf deleted file mode 100644 index 8ecd0b2a89..0000000000 --- a/macros/ec-plain/dybx8.mf +++ /dev/null @@ -1,69 +0,0 @@ -u#:=19.6/36pt#; % unit width -width_adj#:=9.4/36pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=0pt#; % extra space added to all sidebars - -body_height#:=216/36pt#; % height of tallest characters -asc_height#:=200/36pt#; % height of lowercase ascenders -cap_height#:=197.6/36pt#; % height of caps -fig_height#:=185.6/36pt#; % height of numerals -x_height#:=128/36pt#; % height of lowercase without ascenders -math_axis#:=72/36pt#; % axis of symmetry for math symbols -bar_height#:=67/36pt#; % height of crossbar in lowercase e -comma_depth#:=56/36pt#; % depth of comma below baseline -desc_depth#:=56/36pt#; % depth of lowercase descenders - -crisp#:=0pt#; % diameter of serif corners -tiny#:=12/36pt#; % diameter of rounded corners -fine#:=10/36pt#; % diameter of sharply rounded corners -thin_join#:=10/36pt#; % width of extrafine details -hair#:=16.2/36pt#; % lowercase hairline breadth -stem#:=35/36pt#; % lowercase stem breadth -curve#:=39/36pt#; % lowercase curve breadth -ess#:=32/36pt#; % breadth in middle of lowercase s -flare#:=39/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=46/36pt#; % diameter of dots -cap_hair#:=19/36pt#; % uppercase hairline breadth -cap_stem#:=43/36pt#; % uppercase stem breadth -cap_curve#:=46/36pt#; % uppercase curve breadth -cap_ess#:=43/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.54pt#; % thickness of lines in math symbols - -dish#:=1/36pt#; % amount erased at top or bottom of serifs -bracket#:=8/36pt#; % vertical distance from serif base to tangent -jut#:=19/36pt#; % protrusion of lowercase serifs -cap_jut#:=31/36pt#; % protrusion of uppercase serifs -beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs -beak#:=55/36pt#; % vertical protrusion of beak serifs -vair#:=12/36pt#; % vertical diameter of hairlines -notch_cut#:=8pt#; % maximum breadth above or below notches -bar#:=15/36pt#; % lowercase bar thickness -slab#:=15/36pt#; % serif and arm thickness -cap_bar#:=15/36pt#; % uppercase bar thickness -cap_band#:=15/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches -serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs -stem_corr#:=1.8/36pt#; % for small refinements of stem breadth -vair_corr#:=1.3/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=4/36pt#; % amount of overshoot for curves -apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions - -slant:=0; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=.9; % extra openness of math symbols -superness:=8/11; % parameter for superellipses -superpull:=1/8; % extra openness inside bowls -beak_darkness:=.4; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=false; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=false; % should math-mode spacing be used? - diff --git a/macros/ec-plain/dybx9.mf b/macros/ec-plain/dybx9.mf deleted file mode 100644 index 0a7832316a..0000000000 --- a/macros/ec-plain/dybx9.mf +++ /dev/null @@ -1,69 +0,0 @@ -u#:=21.3/36pt#; % unit width -width_adj#:=10.2/36pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=0pt#; % extra space added to all sidebars - -body_height#:=243/36pt#; % height of tallest characters -asc_height#:=225/36pt#; % height of lowercase ascenders -cap_height#:=222.3/36pt#; % height of caps -fig_height#:=208.8/36pt#; % height of numerals -x_height#:=144/36pt#; % height of lowercase without ascenders -math_axis#:=81/36pt#; % axis of symmetry for math symbols -bar_height#:=76/36pt#; % height of crossbar in lowercase e -comma_depth#:=63/36pt#; % depth of comma below baseline -desc_depth#:=63/36pt#; % depth of lowercase descenders - -crisp#:=0pt#; % diameter of serif corners -tiny#:=13/36pt#; % diameter of rounded corners -fine#:=10/36pt#; % diameter of sharply rounded corners -thin_join#:=10/36pt#; % width of extrafine details -hair#:=16.6/36pt#; % lowercase hairline breadth -stem#:=38/36pt#; % lowercase stem breadth -curve#:=43/36pt#; % lowercase curve breadth -ess#:=35/36pt#; % breadth in middle of lowercase s -flare#:=42/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=51/36pt#; % diameter of dots -cap_hair#:=19/36pt#; % uppercase hairline breadth -cap_stem#:=47/36pt#; % uppercase stem breadth -cap_curve#:=51/36pt#; % uppercase curve breadth -cap_ess#:=48/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.57pt#; % thickness of lines in math symbols - -dish#:=1/36pt#; % amount erased at top or bottom of serifs -bracket#:=9/36pt#; % vertical distance from serif base to tangent -jut#:=22/36pt#; % protrusion of lowercase serifs -cap_jut#:=35/36pt#; % protrusion of uppercase serifs -beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs -beak#:=63/36pt#; % vertical protrusion of beak serifs -vair#:=12.5/36pt#; % vertical diameter of hairlines -notch_cut#:=9pt#; % maximum breadth above or below notches -bar#:=16/36pt#; % lowercase bar thickness -slab#:=16/36pt#; % serif and arm thickness -cap_bar#:=16/36pt#; % uppercase bar thickness -cap_band#:=16/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches -serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs -stem_corr#:=1.9/36pt#; % for small refinements of stem breadth -vair_corr#:=1.4/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=4/36pt#; % amount of overshoot for curves -apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions - -slant:=0; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=.7; % extra openness of math symbols -superness:=8/11; % parameter for superellipses -superpull:=1/8; % extra openness inside bowls -beak_darkness:=.4; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=false; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=false; % should math-mode spacing be used? - diff --git a/macros/ec-plain/dymi10.mf b/macros/ec-plain/dymi10.mf deleted file mode 100644 index 7bfa592cfe..0000000000 --- a/macros/ec-plain/dymi10.mf +++ /dev/null @@ -1,69 +0,0 @@ -u#:=20/36pt#; % unit width -width_adj#:=0pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=0pt#; % extra space added to all sidebars - -body_height#:=270/36pt#; % height of tallest characters -asc_height#:=250/36pt#; % height of lowercase ascenders -cap_height#:=246/36pt#; % height of caps -fig_height#:=232/36pt#; % height of numerals -x_height#:=155/36pt#; % height of lowercase without ascenders -math_axis#:=90/36pt#; % axis of symmetry for math symbols -bar_height#:=87/36pt#; % height of crossbar in lowercase e -comma_depth#:=70/36pt#; % depth of comma below baseline -desc_depth#:=70/36pt#; % depth of lowercase descenders - -crisp#:=8/36pt#; % diameter of serif corners -tiny#:=8/36pt#; % diameter of rounded corners -fine#:=7/36pt#; % diameter of sharply rounded corners -thin_join#:=7/36pt#; % width of extrafine details -hair#:=9/36pt#; % lowercase hairline breadth -stem#:=24/36pt#; % lowercase stem breadth -curve#:=29/36pt#; % lowercase curve breadth -ess#:=27/36pt#; % breadth in middle of lowercase s -flare#:=32/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=38/36pt#; % diameter of dots -cap_hair#:=11/36pt#; % uppercase hairline breadth -cap_stem#:=30/36pt#; % uppercase stem breadth -cap_curve#:=35/36pt#; % uppercase curve breadth -cap_ess#:=33/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.4pt#; % thickness of lines in math symbols - -dish#:=1/36pt#; % amount erased at top or bottom of serifs -bracket#:=20/36pt#; % vertical distance from serif base to tangent -jut#:=30/36pt#; % protrusion of lowercase serifs -cap_jut#:=37/36pt#; % protrusion of uppercase serifs -beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs -beak#:=70/36pt#; % vertical protrusion of beak serifs -vair#:=8/36pt#; % vertical diameter of hairlines -notch_cut#:=10pt#; % maximum breadth above or below notches -bar#:=11/36pt#; % lowercase bar thickness -slab#:=11/36pt#; % serif and arm thickness -cap_bar#:=11/36pt#; % uppercase bar thickness -cap_band#:=11/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches -serif_drop#:=4/36pt#; % vertical drop of sloped serifs -stem_corr#:=1/36pt#; % for small refinements of stem breadth -vair_corr#:=1/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=8/36pt#; % amount of overshoot for curves -apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions - -slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=0; % extra openness of math symbols -superness:=1/sqrt2; % parameter for superellipses -superpull:=1/6; % extra openness inside bowls -beak_darkness:=11/30; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=true; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=true; % should math-mode spacing be used? - diff --git a/macros/ec-plain/dymi12.mf b/macros/ec-plain/dymi12.mf deleted file mode 100644 index e1b9f398ec..0000000000 --- a/macros/ec-plain/dymi12.mf +++ /dev/null @@ -1,70 +0,0 @@ -u#:=23.5/36pt#; % unit width -width_adj#:=0pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=0pt#; % extra space added to all sidebars - -body_height#:=324/36pt#; % height of tallest characters -asc_height#:=300/36pt#; % height of lowercase ascenders -cap_height#:=295.2/36pt#; % height of caps -fig_height#:=278.4/36pt#; % height of numerals -x_height#:=186/36pt#; % height of lowercase without ascenders -math_axis#:=108/36pt#; % axis of symmetry for math symbols -bar_height#:=104.4/36pt#; % height of crossbar in lowercase e -comma_depth#:=84/36pt#; % depth of comma below baseline -desc_depth#:=84/36pt#; % depth of lowercase descenders - -crisp#:=8/36pt#; % diameter of serif corners -tiny#:=8/36pt#; % diameter of rounded corners -fine#:=7/36pt#; % diameter of sharply rounded corners -thin_join#:=7.5/36pt#; % width of extrafine details -hair#:=9.5/36pt#; % lowercase hairline breadth -stem#:=27/36pt#; % lowercase stem breadth -curve#:=32/36pt#; % lowercase curve breadth -ess#:=30/36pt#; % breadth in middle of lowercase s -flare#:=35/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=42/36pt#; % diameter of dots -cap_hair#:=11.5/36pt#; % uppercase hairline breadth -cap_stem#:=33/36pt#; % uppercase stem breadth -cap_curve#:=38/36pt#; % uppercase curve breadth -cap_ess#:=32/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.44pt#; % thickness of lines in math symbols - -dish#:=1/36pt#; % amount erased at top or bottom of serifs -bracket#:=24/36pt#; % vertical distance from serif base to tangent -jut#:=35/36pt#; % protrusion of lowercase serifs -cap_jut#:=41/36pt#; % protrusion of uppercase serifs -beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs -beak#:=84/36pt#; % vertical protrusion of beak serifs -vair#:=8.5/36pt#; % vertical diameter of hairlines -notch_cut#:=12pt#; % maximum breadth above or below notches -bar#:=12.5/36pt#; % lowercase bar thickness -slab#:=12.5/36pt#; % serif and arm thickness -cap_bar#:=12.5/36pt#; % uppercase bar thickness -cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches -serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs -stem_corr#:=1/36pt#; % for small refinements of stem breadth -vair_corr#:=1/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=9/36pt#; % amount of overshoot for curves -apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions - -slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=-0.2; % extra openness of math symbols -superness:=1/sqrt2; % parameter for superellipses -superpull:=1/6; % extra openness inside bowls -beak_darkness:=11/30; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=true; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=true; % should math-mode spacing be used? - - diff --git a/macros/ec-plain/dymi5.mf b/macros/ec-plain/dymi5.mf deleted file mode 100644 index b0921607cc..0000000000 --- a/macros/ec-plain/dymi5.mf +++ /dev/null @@ -1,69 +0,0 @@ -u#:=12.5/36pt#; % unit width -width_adj#:=0pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=10/36pt#; % extra space added to all sidebars - -body_height#:=135/36pt#; % height of tallest characters -asc_height#:=125/36pt#; % height of lowercase ascenders -cap_height#:=123/36pt#; % height of caps -fig_height#:=116/36pt#; % height of numerals -x_height#:=77.5/36pt#; % height of lowercase without ascenders -math_axis#:=45/36pt#; % axis of symmetry for math symbols -bar_height#:=43.5/36pt#; % height of crossbar in lowercase e -comma_depth#:=35/36pt#; % depth of comma below baseline -desc_depth#:=35/36pt#; % depth of lowercase descenders - -crisp#:=6/36pt#; % diameter of serif corners -tiny#:=6/36pt#; % diameter of rounded corners -fine#:=5/36pt#; % diameter of sharply rounded corners -thin_join#:=5/36pt#; % width of extrafine details -hair#:=7.5/36pt#; % lowercase hairline breadth -stem#:=15.5/36pt#; % lowercase stem breadth -curve#:=17.5/36pt#; % lowercase curve breadth -ess#:=12/36pt#; % breadth in middle of lowercase s -flare#:=18.5/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=22/36pt#; % diameter of dots -cap_hair#:=8/36pt#; % uppercase hairline breadth -cap_stem#:=18.5/36pt#; % uppercase stem breadth -cap_curve#:=20.5/36pt#; % uppercase curve breadth -cap_ess#:=13.5/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.28pt#; % thickness of lines in math symbols - -dish#:=.7/36pt#; % amount erased at top or bottom of serifs -bracket#:=10/36pt#; % vertical distance from serif base to tangent -jut#:=17/36pt#; % protrusion of lowercase serifs -cap_jut#:=20/36pt#; % protrusion of uppercase serifs -beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs -beak#:=35/36pt#; % vertical protrusion of beak serifs -vair#:=6/36pt#; % vertical diameter of hairlines -notch_cut#:=5pt#; % maximum breadth above or below notches -bar#:=8/36pt#; % lowercase bar thickness -slab#:=8/36pt#; % serif and arm thickness -cap_bar#:=8/36pt#; % uppercase bar thickness -cap_band#:=8/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches -serif_drop#:=2/36pt#; % vertical drop of sloped serifs -stem_corr#:=.7/36pt#; % for small refinements of stem breadth -vair_corr#:=.5/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=4/36pt#; % amount of overshoot for curves -apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions - -slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=1; % extra openness of math symbols -superness:=1/sqrt2; % parameter for superellipses -superpull:=1/6; % extra openness inside bowls -beak_darkness:=11/30; % fraction of triangle inside beak serifs -ligs:=1; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=true; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=true; % should math-mode spacing be used? - diff --git a/macros/ec-plain/dymi6.mf b/macros/ec-plain/dymi6.mf deleted file mode 100644 index ba4f8b30ff..0000000000 --- a/macros/ec-plain/dymi6.mf +++ /dev/null @@ -1,69 +0,0 @@ -u#:=14/36pt#; % unit width -width_adj#:=0pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=6/36pt#; % extra space added to all sidebars - -body_height#:=162/36pt#; % height of tallest characters -asc_height#:=150/36pt#; % height of lowercase ascenders -cap_height#:=147.6/36pt#; % height of caps -fig_height#:=139.2/36pt#; % height of numerals -x_height#:=93/36pt#; % height of lowercase without ascenders -math_axis#:=54/36pt#; % axis of symmetry for math symbols -bar_height#:=52.2/36pt#; % height of crossbar in lowercase e -comma_depth#:=42/36pt#; % depth of comma below baseline -desc_depth#:=42/36pt#; % depth of lowercase descenders - -crisp#:=6.5/36pt#; % diameter of serif corners -tiny#:=6.5/36pt#; % diameter of rounded corners -fine#:=6/36pt#; % diameter of sharply rounded corners -thin_join#:=6/36pt#; % width of extrafine details -hair#:=8/36pt#; % lowercase hairline breadth -stem#:=17.5/36pt#; % lowercase stem breadth -curve#:=20/36pt#; % lowercase curve breadth -ess#:=17/36pt#; % breadth in middle of lowercase s -flare#:=20.5/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=26/36pt#; % diameter of dots -cap_hair#:=8.5/36pt#; % uppercase hairline breadth -cap_stem#:=21/36pt#; % uppercase stem breadth -cap_curve#:=23.5/36pt#; % uppercase curve breadth -cap_ess#:=18.5/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.31pt#; % thickness of lines in math symbols - -dish#:=.8/36pt#; % amount erased at top or bottom of serifs -bracket#:=12/36pt#; % vertical distance from serif base to tangent -jut#:=19/36pt#; % protrusion of lowercase serifs -cap_jut#:=23/36pt#; % protrusion of uppercase serifs -beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs -beak#:=42/36pt#; % vertical protrusion of beak serifs -vair#:=7/36pt#; % vertical diameter of hairlines -notch_cut#:=6pt#; % maximum breadth above or below notches -bar#:=8.5/36pt#; % lowercase bar thickness -slab#:=8.5/36pt#; % serif and arm thickness -cap_bar#:=8.5/36pt#; % uppercase bar thickness -cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches -serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs -stem_corr#:=.8/36pt#; % for small refinements of stem breadth -vair_corr#:=.7/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=4.5/36pt#; % amount of overshoot for curves -apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions - -slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=.8; % extra openness of math symbols -superness:=1/sqrt2; % parameter for superellipses -superpull:=1/6; % extra openness inside bowls -beak_darkness:=11/30; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=true; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=true; % should math-mode spacing be used? - diff --git a/macros/ec-plain/dymi7.mf b/macros/ec-plain/dymi7.mf deleted file mode 100644 index 8a22845789..0000000000 --- a/macros/ec-plain/dymi7.mf +++ /dev/null @@ -1,69 +0,0 @@ -u#:=15.5/36pt#; % unit width -width_adj#:=0pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=4/36pt#; % extra space added to all sidebars - -body_height#:=189/36pt#; % height of tallest characters -asc_height#:=175/36pt#; % height of lowercase ascenders -cap_height#:=172.2/36pt#; % height of caps -fig_height#:=162.4/36pt#; % height of numerals -x_height#:=108.5/36pt#; % height of lowercase without ascenders -math_axis#:=63/36pt#; % axis of symmetry for math symbols -bar_height#:=60.9/36pt#; % height of crossbar in lowercase e -comma_depth#:=49/36pt#; % depth of comma below baseline -desc_depth#:=49/36pt#; % depth of lowercase descenders - -crisp#:=7/36pt#; % diameter of serif corners -tiny#:=7/36pt#; % diameter of rounded corners -fine#:=6/36pt#; % diameter of sharply rounded corners -thin_join#:=6/36pt#; % width of extrafine details -hair#:=8.5/36pt#; % lowercase hairline breadth -stem#:=19.5/36pt#; % lowercase stem breadth -curve#:=22.5/36pt#; % lowercase curve breadth -ess#:=21/36pt#; % breadth in middle of lowercase s -flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=29/36pt#; % diameter of dots -cap_hair#:=9/36pt#; % uppercase hairline breadth -cap_stem#:=23.5/36pt#; % uppercase stem breadth -cap_curve#:=26.5/36pt#; % uppercase curve breadth -cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.34pt#; % thickness of lines in math symbols - -dish#:=.9/36pt#; % amount erased at top or bottom of serifs -bracket#:=14/36pt#; % vertical distance from serif base to tangent -jut#:=21/36pt#; % protrusion of lowercase serifs -cap_jut#:=26/36pt#; % protrusion of uppercase serifs -beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs -beak#:=49/36pt#; % vertical protrusion of beak serifs -vair#:=7/36pt#; % vertical diameter of hairlines -notch_cut#:=7pt#; % maximum breadth above or below notches -bar#:=9/36pt#; % lowercase bar thickness -slab#:=9/36pt#; % serif and arm thickness -cap_bar#:=9/36pt#; % uppercase bar thickness -cap_band#:=9/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches -serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs -stem_corr#:=.9/36pt#; % for small refinements of stem breadth -vair_corr#:=.9/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=5/36pt#; % amount of overshoot for curves -apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions - -slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=.6; % extra openness of math symbols -superness:=1/sqrt2; % parameter for superellipses -superpull:=1/6; % extra openness inside bowls -beak_darkness:=11/30; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=true; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=true; % should math-mode spacing be used? - diff --git a/macros/ec-plain/dymi8.mf b/macros/ec-plain/dymi8.mf deleted file mode 100644 index 997808f3c5..0000000000 --- a/macros/ec-plain/dymi8.mf +++ /dev/null @@ -1,69 +0,0 @@ -u#:=17/36pt#; % unit width -width_adj#:=0pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=0pt#; % extra space added to all sidebars - -body_height#:=216/36pt#; % height of tallest characters -asc_height#:=200/36pt#; % height of lowercase ascenders -cap_height#:=196.8/36pt#; % height of caps -fig_height#:=185.6/36pt#; % height of numerals -x_height#:=124/36pt#; % height of lowercase without ascenders -math_axis#:=72/36pt#; % axis of symmetry for math symbols -bar_height#:=69.6/36pt#; % height of crossbar in lowercase e -comma_depth#:=56/36pt#; % depth of comma below baseline -desc_depth#:=56/36pt#; % depth of lowercase descenders - -crisp#:=8/36pt#; % diameter of serif corners -tiny#:=8/36pt#; % diameter of rounded corners -fine#:=7/36pt#; % diameter of sharply rounded corners -thin_join#:=7/36pt#; % width of extrafine details -hair#:=9/36pt#; % lowercase hairline breadth -stem#:=21.5/36pt#; % lowercase stem breadth -curve#:=25/36pt#; % lowercase curve breadth -ess#:=23/36pt#; % breadth in middle of lowercase s -flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=32/36pt#; % diameter of dots -cap_hair#:=9.5/36pt#; % uppercase hairline breadth -cap_stem#:=25.5/36pt#; % uppercase stem breadth -cap_curve#:=29/36pt#; % uppercase curve breadth -cap_ess#:=26/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.36pt#; % thickness of lines in math symbols - -dish#:=1/36pt#; % amount erased at top or bottom of serifs -bracket#:=16/36pt#; % vertical distance from serif base to tangent -jut#:=24/36pt#; % protrusion of lowercase serifs -cap_jut#:=29/36pt#; % protrusion of uppercase serifs -beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs -beak#:=56/36pt#; % vertical protrusion of beak serifs -vair#:=8/36pt#; % vertical diameter of hairlines -notch_cut#:=8pt#; % maximum breadth above or below notches -bar#:=9.5/36pt#; % lowercase bar thickness -slab#:=9.5/36pt#; % serif and arm thickness -cap_bar#:=9.5/36pt#; % uppercase bar thickness -cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches -serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs -stem_corr#:=1/36pt#; % for small refinements of stem breadth -vair_corr#:=1/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=6/36pt#; % amount of overshoot for curves -apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions - -slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=.4; % extra openness of math symbols -superness:=1/sqrt2; % parameter for superellipses -superpull:=1/6; % extra openness inside bowls -beak_darkness:=11/30; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=true; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=true; % should math-mode spacing be used? - diff --git a/macros/ec-plain/dymi9.mf b/macros/ec-plain/dymi9.mf deleted file mode 100644 index a06ca59966..0000000000 --- a/macros/ec-plain/dymi9.mf +++ /dev/null @@ -1,70 +0,0 @@ -u#:=18.5/36pt#; % unit width -width_adj#:=0pt#; % width adjustment for certain characters -serif_fit#:=0pt#; % extra sidebar near lowercase serifs -cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs -letter_fit#:=0pt#; % extra space added to all sidebars - -body_height#:=243/36pt#; % height of tallest characters -asc_height#:=225/36pt#; % height of lowercase ascenders -cap_height#:=221.4/36pt#; % height of caps -fig_height#:=208.8/36pt#; % height of numerals -x_height#:=139.5/36pt#; % height of lowercase without ascenders -math_axis#:=81/36pt#; % axis of symmetry for math symbols -bar_height#:=78.3/36pt#; % height of crossbar in lowercase e -comma_depth#:=63/36pt#; % depth of comma below baseline -desc_depth#:=63/36pt#; % depth of lowercase descenders - -crisp#:=8/36pt#; % diameter of serif corners -tiny#:=8/36pt#; % diameter of rounded corners -fine#:=7/36pt#; % diameter of sharply rounded corners -thin_join#:=7/36pt#; % width of extrafine details -hair#:=9/36pt#; % lowercase hairline breadth -stem#:=23/36pt#; % lowercase stem breadth -curve#:=27/36pt#; % lowercase curve breadth -ess#:=25/36pt#; % breadth in middle of lowercase s -flare#:=29/36pt#; % diameter of bulbs or breadth of terminals -dot_size#:=35/36pt#; % diameter of dots -cap_hair#:=10/36pt#; % uppercase hairline breadth -cap_stem#:=28/36pt#; % uppercase stem breadth -cap_curve#:=32/36pt#; % uppercase curve breadth -cap_ess#:=30/36pt#; % breadth in middle of uppercase s -rule_thickness#:=.38pt#; % thickness of lines in math symbols - -dish#:=1/36pt#; % amount erased at top or bottom of serifs -bracket#:=18/36pt#; % vertical distance from serif base to tangent -jut#:=27/36pt#; % protrusion of lowercase serifs -cap_jut#:=33/36pt#; % protrusion of uppercase serifs -beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs -beak#:=63/36pt#; % vertical protrusion of beak serifs -vair#:=8/36pt#; % vertical diameter of hairlines -notch_cut#:=9pt#; % maximum breadth above or below notches -bar#:=10/36pt#; % lowercase bar thickness -slab#:=10/36pt#; % serif and arm thickness -cap_bar#:=10/36pt#; % uppercase bar thickness -cap_band#:=10/36pt#; % uppercase thickness above/below lobes -cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches -serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs -stem_corr#:=1/36pt#; % for small refinements of stem breadth -vair_corr#:=1/36pt#; % for small refinements of hairline height -apex_corr#:=0pt#; % extra width at diagonal junctions - -o#:=7/36pt#; % amount of overshoot for curves -apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions - -slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ -fudge:=1; % factor applied to weights of heavy characters -math_spread:=.2; % extra openness of math symbols -superness:=1/sqrt2; % parameter for superellipses -superpull:=1/6; % extra openness inside bowls -beak_darkness:=11/30; % fraction of triangle inside beak serifs -ligs:=2; % level of ligatures to be included - -square_dots:=false; % should dots be square? -hefty:=false; % should we try hard not to be overweight? -serifs:=true; % should serifs and bulbs be attached? -monospace:=false; % should all characters have the same width? -variant_g:=true; % should an italic-style g be used? -low_asterisk:=false; % should the asterisk be centered at the axis? -math_fitting:=true; % should math-mode spacing be used? - - diff --git a/macros/ec-plain/ec-pdfplain.fmt b/macros/ec-plain/ec-pdfplain.fmt deleted file mode 100644 index f782620f7a..0000000000 Binary files a/macros/ec-plain/ec-pdfplain.fmt and /dev/null differ diff --git a/macros/ec-plain/ec-pdfplain.tex b/macros/ec-plain/ec-pdfplain.tex deleted file mode 100644 index 398667a0d9..0000000000 --- a/macros/ec-plain/ec-pdfplain.tex +++ /dev/null @@ -1,2 +0,0 @@ -\input ec-plain.tex -\endinput diff --git a/macros/ec-plain/ec-plain.fmt b/macros/ec-plain/ec-plain.fmt deleted file mode 100644 index 09ccec42f2..0000000000 Binary files a/macros/ec-plain/ec-plain.fmt and /dev/null differ diff --git a/macros/ec-plain/ec-plain.tex b/macros/ec-plain/ec-plain.tex deleted file mode 100644 index 38ee66fff5..0000000000 --- a/macros/ec-plain/ec-plain.tex +++ /dev/null @@ -1,1245 +0,0 @@ -% This is the plain TeX format that's described in The TeXbook. -% N.B.: A version number is defined at the very end of this file; -% please change that number whenever the file is modified! -% And don't modify the file under any circumstances. -% These circumstances are the use of EC fonts which changes font names -% cmmi --> exmi (same with additional greek chars above 127) -% cmr --> ecrm, cmbx --> ecbx, etc. -% mathchardefs for uppercase greek letters -% -% Provided by Daniel TAUPIN : taupin@lps.u-psud.fr - -\catcode`\{=1 % left brace is begin-group character -\catcode`\}=2 % right brace is end-group character -\catcode`\$=3 % dollar sign is math shift -\catcode`\&=4 % ampersand is alignment tab -\catcode`\#=6 % hash mark is macro parameter character -\catcode`\^=7 \catcode`\^^K=7 % circumflex and uparrow are for superscripts -\catcode`\_=8 \catcode`\^^A=8 % underline and downarrow are for subscripts -\catcode`\^^I=10 % ascii tab is a blank space -\chardef\active=13 \catcode`\~=\active % tilde is active -\catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par" - -\message{Preloading the plain format: codes,} - -% We had to define the \catcodes right away, before the message line, -% since \message uses the { and } characters. -% When INITEX (the TeX initializer) starts up, -% it has defined the following \catcode values: -% \catcode`\^^@=9 % ascii null is ignored -% \catcode`\^^M=5 % ascii return is end-line -% \catcode`\\=0 % backslash is TeX escape character -% \catcode`\%=14 % percent sign is comment character -% \catcode`\ =10 % ascii space is blank space -% \catcode`\^^?=15 % ascii delete is invalid -% \catcode`\A=11 ... \catcode`\Z=11 % uppercase letters -% \catcode`\a=11 ... \catcode`\z=11 % lowercase letters -% all others are type 12 (other) - -% Here is a list of the characters that have been specially catcoded: -\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&% - \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~} -% (not counting ascii null, tab, linefeed, formfeed, return, delete) -% Each symbol in the list is preceded by \do, which can be defined -% if you want to do something to every item in the list. - -% We make @ signs act like letters, temporarily, to avoid conflict -% between user names and internal control sequences of plain format. -\catcode`@=11 - -% INITEX sets up \mathcode x=x, for x=0..255, except that -% \mathcode x=x+"7100, for x = `A to `Z and `a to `z; -% \mathcode x=x+"7000, for x = `0 to `9. -% The following changes define internal codes as recommended -% in Appendix C of The TeXbook: -\mathcode`\^^@="2201 % \cdot -\mathcode`\^^A="3223 % \downarrow -\mathcode`\^^B="010B % \alpha -\mathcode`\^^C="010C % \beta -\mathcode`\^^D="225E % \land -\mathcode`\^^E="023A % \lnot -\mathcode`\^^F="3232 % \in -\mathcode`\^^G="0119 % \pi -\mathcode`\^^H="0115 % \lambda -\mathcode`\^^I="010D % \gamma -\mathcode`\^^J="010E % \delta -\mathcode`\^^K="3222 % \uparrow -\mathcode`\^^L="2206 % \pm -\mathcode`\^^M="2208 % \oplus -\mathcode`\^^N="0231 % \infty -\mathcode`\^^O="0140 % \partial -\mathcode`\^^P="321A % \subset -\mathcode`\^^Q="321B % \supset -\mathcode`\^^R="225C % \cap -\mathcode`\^^S="225B % \cup -\mathcode`\^^T="0238 % \forall -\mathcode`\^^U="0239 % \exists -\mathcode`\^^V="220A % \otimes -\mathcode`\^^W="3224 % \leftrightarrow -\mathcode`\^^X="3220 % \leftarrow -\mathcode`\^^Y="3221 % \rightarrow -\mathcode`\^^Z="8000 % \ne -\mathcode`\^^[="2205 % \diamond -\mathcode`\^^\="3214 % \le -\mathcode`\^^]="3215 % \ge -\mathcode`\^^^="3211 % \equiv -\mathcode`\^^_="225F % \lor -\mathcode`\ ="8000 % \space -\mathcode`\!="5021 -\mathcode`\'="8000 % ^\prime -\mathcode`\(="4028 -\mathcode`\)="5029 -\mathcode`\*="2203 % \ast -\mathcode`\+="202B -\mathcode`\,="613B -\mathcode`\-="2200 -\mathcode`\.="013A -\mathcode`\/="013D -\mathcode`\:="303A -\mathcode`\;="603B -\mathcode`\<="313C -\mathcode`\=="303D -\mathcode`\>="313E -\mathcode`\?="503F -\mathcode`\[="405B -\mathcode`\\="026E % \backslash -\mathcode`\]="505D -\mathcode`\_="8000 % \_ -\mathcode`\{="4266 -\mathcode`\|="026A -\mathcode`\}="5267 -\mathcode`\^^?="1273 % \smallint - -% INITEX sets \uccode`x=`X and \uccode `X=`X for all letters x, -% and \lccode`x=`x, \lccode`X=`x; all other values are zero. -% No changes to those tables are needed in plain TeX format. - -% INITEX sets \sfcode x=1000 for all x, except that \sfcode`X=999 -% for uppercase letters. The following changes are needed: -\sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0 -% The \nonfrenchspacing macro will make further changes to \sfcode values. - -% Finally, INITEX sets all \delcode values to -1, except \delcode`.=0 -\delcode`\(="028300 -\delcode`\)="029301 -\delcode`\[="05B302 -\delcode`\]="05D303 -\delcode`\<="26830A -\delcode`\>="26930B -\delcode`\/="02F30E -\delcode`\|="26A30C -\delcode`\\="26E30F -% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! - -% To make the plain macros more efficient in time and space, -% several constant values are declared here as control sequences. -% If they were changed, anything could happen; so they are private symbols. -\chardef\@ne=1 -\chardef\tw@=2 -\chardef\thr@@=3 -\chardef\sixt@@n=16 -\chardef\@cclv=255 -\mathchardef\@cclvi=256 -\mathchardef\@m=1000 -\mathchardef\@M=10000 -\mathchardef\@MM=20000 - -% Allocation of registers - -% Here are macros for the automatic allocation of \count, \box, \dimen, -% \skip, \muskip, and \toks registers, as well as \read and \write -% stream numbers, \fam codes, \language codes, and \insert numbers. - -\message{registers,} - -% When a register is used only temporarily, it need not be allocated; -% grouping can be used, making the value previously in the register return -% after the close of the group. The main use of these macros is for -% registers that are defined by one macro and used by others, possibly at -% different nesting levels. All such registers should be defined through -% these macros; otherwise conflicts may occur, especially when two or more -% more macro packages are being used at once. - -% The following counters are reserved: -% 0 to 9 page numbering -% 10 count allocation -% 11 dimen allocation -% 12 skip allocation -% 13 muskip allocation -% 14 box allocation -% 15 toks allocation -% 16 read file allocation -% 17 write file allocation -% 18 math family allocation -% 19 language allocation -% 20 insert allocation -% 21 the most recently allocated number -% 22 constant -1 -% New counters are allocated starting with 23, 24, etc. Other registers are -% allocated starting with 10. This leaves 0 through 9 for the user to play -% with safely, except that counts 0 to 9 are considered to be the page and -% subpage numbers (since they are displayed during output). In this scheme, -% \count 10 always contains the number of the highest-numbered counter that -% has been allocated, \count 14 the highest-numbered box, etc. -% Inserts are given numbers 254, 253, etc., since they require a \count, -% \dimen, \skip, and \box all with the same number; \count 20 contains the -% lowest-numbered insert that has been allocated. Of course, \box255 is -% reserved for \output; \count255, \dimen255, and \skip255 can be used freely. - -% It is recommended that macro designers always use -% \global assignments with respect to registers numbered 1, 3, 5, 7, 9, and -% always non-\global assignments with respect to registers 0, 2, 4, 6, 8, 255. -% This will prevent ``save stack buildup'' that might otherwise occur. - -\count10=22 % allocates \count registers 23, 24, ... -\count11=9 % allocates \dimen registers 10, 11, ... -\count12=9 % allocates \skip registers 10, 11, ... -\count13=9 % allocates \muskip registers 10, 11, ... -\count14=9 % allocates \box registers 10, 11, ... -\count15=9 % allocates \toks registers 10, 11, ... -\count16=-1 % allocates input streams 0, 1, ... -\count17=-1 % allocates output streams 0, 1, ... -\count18=3 % allocates math families 4, 5, ... -\count19=0 % allocates \language codes 1, 2, ... -\count20=255 % allocates insertions 254, 253, ... -\countdef\insc@unt=20 % the insertion counter -\countdef\allocationnumber=21 % the most recent allocation -\countdef\m@ne=22 \m@ne=-1 % a handy constant -\def\wlog{\immediate\write\m@ne} % write on log file (only) - -% Here are abbreviations for the names of scratch registers -% that don't need to be allocated. - -\countdef\count@=255 -\dimendef\dimen@=0 -\dimendef\dimen@i=1 % global only -\dimendef\dimen@ii=2 -\skipdef\skip@=0 -\toksdef\toks@=0 - -% Now, we define \newcount, \newbox, etc. so that you can say \newcount\foo -% and \foo will be defined (with \countdef) to be the next counter. -% To find out which counter \foo is, you can look at \allocationnumber. -% Since there's no \boxdef command, \chardef is used to define a \newbox, -% \newinsert, \newfam, and so on. - -\outer\def\newcount{\alloc@0\count\countdef\insc@unt} -\outer\def\newdimen{\alloc@1\dimen\dimendef\insc@unt} -\outer\def\newskip{\alloc@2\skip\skipdef\insc@unt} -\outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi} -\outer\def\newbox{\alloc@4\box\chardef\insc@unt} -\let\newtoks=\relax % we do this to allow plain.tex to be read in twice -\outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}} -\outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi} -\outer\def\newread{\alloc@6\read\chardef\sixt@@n} -\outer\def\newwrite{\alloc@7\write\chardef\sixt@@n} -\outer\def\newfam{\alloc@8\fam\chardef\sixt@@n} -\outer\def\newlanguage{\alloc@9\language\chardef\@cclvi} -\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne - \ch@ck#1#4#2% make sure there's still room - \allocationnumber=\count1#1% - \global#3#5=\allocationnumber - \wlog{\string#5=\string#2\the\allocationnumber}} -\outer\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\ch@ck#1#2#3{\ifnum\count1#1<#2% - \else\errmessage{No room for a new #3}\fi} - -% Here are some examples of allocation. -\newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal -\newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow -\newskip\centering \centering=0pt plus 1000pt minus 1000pt -\newdimen\p@ \p@=1pt % this saves macro space and time -\newdimen\z@ \z@=0pt % can be used both for 0pt and 0 -\newskip\z@skip \z@skip=0pt plus0pt minus0pt -\newbox\voidb@x % permanently void box register - -% And here's a different sort of allocation: -% For example, \newif\iffoo creates \footrue, \foofalse to go with \iffoo. -\outer\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\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname} -{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required - -% Assign initial values to TeX's parameters - -\message{parameters,} - -% All of TeX's numeric parameters are listed here, -% but the code is commented out if no special value needs to be set. -% INITEX makes all parameters zero except where noted. - -\pretolerance=100 -\tolerance=200 % INITEX sets this to 10000 -\hbadness=1000 -\vbadness=1000 -\linepenalty=10 -\hyphenpenalty=50 -\exhyphenpenalty=50 -\binoppenalty=700 -\relpenalty=500 -\clubpenalty=150 -\widowpenalty=150 -\displaywidowpenalty=50 -\brokenpenalty=100 -\predisplaypenalty=10000 -% \postdisplaypenalty=0 -% \interlinepenalty=0 -% \floatingpenalty=0, set during \insert -% \outputpenalty=0, set before TeX enters \output -\doublehyphendemerits=10000 -\finalhyphendemerits=5000 -\adjdemerits=10000 -% \looseness=0, cleared by TeX after each paragraph -% \pausing=0 -% \holdinginserts=0 -% \tracingonline=0 -% \tracingmacros=0 -% \tracingstats=0 -% \tracingparagraphs=0 -% \tracingpages=0 -% \tracingoutput=0 -\tracinglostchars=1 -% \tracingcommands=0 -% \tracingrestores=0 -% \language=0 -\uchyph=1 -% \lefthyphenmin=2 \righthyphenmin=3 set below -% \globaldefs=0 -% \maxdeadcycles=25 % INITEX does this -% \hangafter=1 % INITEX does this, also TeX after each paragraph -% \fam=0 -% \mag=1000 % INITEX does this -% \escapechar=`\\ % INITEX does this -\defaulthyphenchar=`\- -\defaultskewchar=-1 -% \endlinechar=`\^^M % INITEX does this -\newlinechar=-1 -\delimiterfactor=901 -% \time=now % TeX does this at beginning of job -% \day=now % TeX does this at beginning of job -% \month=now % TeX does this at beginning of job -% \year=now % TeX does this at beginning of job -\showboxbreadth=5 -\showboxdepth=3 -\errorcontextlines=5 - -\hfuzz=0.1pt -\vfuzz=0.1pt -\overfullrule=5pt -\hsize=6.5in -\vsize=8.9in -\maxdepth=4pt -\splitmaxdepth=\maxdimen -\boxmaxdepth=\maxdimen -% \lineskiplimit=0pt, changed by \normalbaselines -\delimitershortfall=5pt -\nulldelimiterspace=1.2pt -\scriptspace=0.5pt -% \mathsurround=0pt -% \predisplaysize=0pt, set before TeX enters $$ -% \displaywidth=0pt, set before TeX enters $$ -% \displayindent=0pt, set before TeX enters $$ -\parindent=20pt -% \hangindent=0pt, zeroed by TeX after each paragraph -% \hoffset=0pt -% \voffset=0pt - -% \baselineskip=0pt, changed by \normalbaselines -% \lineskip=0pt, changed by \normalbaselines -\parskip=0pt plus 1pt -\abovedisplayskip=12pt plus 3pt minus 9pt -\abovedisplayshortskip=0pt plus 3pt -\belowdisplayskip=12pt plus 3pt minus 9pt -\belowdisplayshortskip=7pt plus 3pt minus 4pt -% \leftskip=0pt -% \rightskip=0pt -\topskip=10pt -\splittopskip=10pt -% \tabskip=0pt -% \spaceskip=0pt -% \xspaceskip=0pt -\parfillskip=0pt plus 1fil - -\thinmuskip=3mu -\medmuskip=4mu plus 2mu minus 4mu -\thickmuskip=5mu plus 5mu - -% We also define special registers that function like parameters: -\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt -\newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt -\newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt -\newskip\normalbaselineskip \normalbaselineskip=12pt -\newskip\normallineskip \normallineskip=1pt -\newdimen\normallineskiplimit \normallineskiplimit=0pt -\newdimen\jot \jot=3pt -\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100 -\newcount\interfootnotelinepenalty \interfootnotelinepenalty=100 - -% Definitions for preloaded fonts - -\def\magstephalf{1095 } -\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or - 2488\or 2986\or 3583\or 4300\or 5160\fi\relax} - -% Fonts assigned to \preloaded are not part of "plain TeX", -% but they are preloaded so that other format packages can use them. -% For example, if another set of macros says "\font\ninerm=cmr9", -% TeX will not have to reload the font metric information for cmr9. - -\message{fonts,} - -\font\tenrm=ecrm1000 % roman text -%\font\preloaded=ecrm0900 -%\font\preloaded=ecrm0800 -\font\sevenrm=ecrm0700 -%\font\preloaded=ecrm0600 -\font\fiverm=ecrm0500 - -\font\teni=exmi10 % math italic -%\font\preloaded=exmi9 -%\font\preloaded=exmi8 -\font\seveni=exmi7 -%\font\preloaded=exmi6 -\font\fivei=exmi5 - -\font\tensy=cmsy10 % math symbols -%\font\preloaded=cmsy9 -%\font\preloaded=cmsy8 -\font\sevensy=cmsy7 -%\font\preloaded=cmsy6 -\font\fivesy=cmsy5 - -\font\tenex=cmex10 % math extension - -%\font\preloaded=ecss1000 % sans serif -%\font\preloaded=cmssq8 - -%\font\preloaded=ecsi1000 % sans serif italic -%\font\preloaded=cmssqi8 - -\font\tenbf=ecbx1000 % boldface extended -%\font\preloaded=ecbx0900 -%\font\preloaded=ecbx0800 -\font\sevenbf=ecbx0700 -%\font\preloaded=ecbx0600 -\font\fivebf=ecbx0500 - -\font\tentt=ectt1000 % typewriter -%\font\preloaded=ectt0900 -%\font\preloaded=ectt0800 - -%\font\preloaded=ecst1000 % slanted typewriter - -\font\tensl=ecsl1000 % slanted roman -%\font\preloaded=ecsl0900 -%\font\preloaded=ecsl0800 - -\font\tenit=ecti1000 % text italic -%\font\preloaded=ecti0900 -%\font\preloaded=ecti0800 -%\font\preloaded=ecti0700 - -\message{more fonts,} -%\font\preloaded=ecui1000 % unslanted text italic - -%\font\preloaded=cmmib10 % bold math italic -%\font\preloaded=cmbsy10 % bold math symbols - -%\font\preloaded=eccc1000 % caps and small caps - -%\font\preloaded=ecso1000 % sans serif bold extended - -%\font\preloaded=cmdunh10 % Dunhill style - -%\font\preloaded=ecrm0700 scaled \magstep4 % for titles -%\font\preloaded=ectt1000 scaled \magstep2 -%\font\preloaded=ecso1000 scaled \magstep2 - -%\font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols - -% Additional \preloaded fonts can be specified here. -% (And those that were \preloaded above can be eliminated.) - -\let\preloaded=\undefined % preloaded fonts must be declared anew later. - -\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177 -\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60 - -\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm -\def\rm{\fam\z@\tenrm} -\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei -\def\mit{\fam\@ne} \def\oldstyle{\fam\@ne\teni} -\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy -\def\cal{\fam\tw@} -\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex -\newfam\itfam \def\it{\fam\itfam\tenit} % \it is family 4 -\textfont\itfam=\tenit -\newfam\slfam \def\sl{\fam\slfam\tensl} % \sl is family 5 -\textfont\slfam=\tensl -\newfam\bffam \def\bf{\fam\bffam\tenbf} % \bf is family 6 -\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf -\scriptscriptfont\bffam=\fivebf -\newfam\ttfam \def\tt{\fam\ttfam\tentt} % \tt is family 7 -\textfont\ttfam=\tentt - -% Macros for setting ordinary text -\message{macros,} - -\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m - \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m} -\def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000% - \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 } - -\def\normalbaselines{\lineskip\normallineskip - \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit} - -\def\^^M{\ } % control = control -\def\^^I{\ } % same for - -\def\lq{`} \def\rq{'} -\def\lbrack{[} \def\rbrack{]} - -\let\endgraf=\par \let\endline=\cr - -\def\space{ } -\def\empty{} -\def\null{\hbox{}} - -\let\bgroup={ \let\egroup=} - -% In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}' -% since this allows, for example, `\let\par=\cr \obeylines \halign{...' -{\catcode`\^^M=\active % these lines must end with % - \gdef\obeylines{\catcode`\^^M\active \let^^M\par}% - \global\let^^M\par} % this is in case ^^M appears in a \write -\def\obeyspaces{\catcode`\ \active} -{\obeyspaces\global\let =\space} - -\def\loop#1\repeat{\def\body{#1}\iterate} -\def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next} -\let\repeat=\fi % this makes \loop...\if...\repeat skippable - -\def\thinspace{\kern .16667em } -\def\negthinspace{\kern-.16667em } -\def\enspace{\kern.5em } - -\def\enskip{\hskip.5em\relax} -\def\quad{\hskip1em\relax} -\def\qquad{\hskip2em\relax} - -\def\smallskip{\vskip\smallskipamount} -\def\medskip{\vskip\medskipamount} -\def\bigskip{\vskip\bigskipamount} - -\def\nointerlineskip{\prevdepth-1000\p@} -\def\offinterlineskip{\baselineskip-1000\p@ - \lineskip\z@ \lineskiplimit\maxdimen} - -\def\topglue{\nointerlineskip\vglue-\topskip\vglue} % for top of page -\def\vglue{\afterassignment\vgl@\skip@=} -\def\vgl@{\par \dimen@\prevdepth \hrule height\z@ - \nobreak\vskip\skip@ \prevdepth\dimen@} -\def\hglue{\afterassignment\hgl@\skip@=} -\def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@ - \nobreak\hskip\skip@ \spacefactor\count@} - -\def~{\penalty\@M \ } % tie -\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-' - -\def\break{\penalty-\@M} -\def\nobreak{\penalty \@M} -\def\allowbreak{\penalty \z@} - -\def\filbreak{\par\vfil\penalty-200\vfilneg} -\def\goodbreak{\par\penalty-500 } -\def\eject{\par\break} -\def\supereject{\par\penalty-\@MM} - -\def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi} -\def\smallbreak{\par\ifdim\lastskip<\smallskipamount - \removelastskip\penalty-50\smallskip\fi} -\def\medbreak{\par\ifdim\lastskip<\medskipamount - \removelastskip\penalty-100\medskip\fi} -\def\bigbreak{\par\ifdim\lastskip<\bigskipamount - \removelastskip\penalty-200\bigskip\fi} - -\def\line{\hbox to\hsize} -\def\leftline#1{\line{#1\hss}} -\def\rightline#1{\line{\hss#1}} -\def\centerline#1{\line{\hss#1\hss}} - -\def\rlap#1{\hbox to\z@{#1\hss}} -\def\llap#1{\hbox to\z@{\hss#1}} - -\def\m@th{\mathsurround\z@} -\def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@ - \m@th \underline{\box\z@}$} - -\newbox\strutbox -\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@} -\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} - -\def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out -\def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign -\newcount\mscount -\def\multispan#1{\omit \mscount#1\relax - \loop\ifnum\mscount>\@ne \sp@n\repeat} -\def\sp@n{\span\omit\advance\mscount\m@ne} - -\newif\ifus@ \newif\if@cr -\newbox\tabs \newbox\tabsyet \newbox\tabsdone - -\def\cleartabs{\global\setbox\tabsyet\null \setbox\tabs\null} -\def\settabs{\setbox\tabs\null \futurelet\next\sett@b} -\let\+=\relax % in case this file is being read in twice -\def\sett@b{\ifx\next\+\def\nxt{\afterassignment\s@tt@b\let\nxt}% - \else\let\nxt\s@tcols\fi \let\next\relax \nxt} -\def\s@tt@b{\let\nxt\relax \us@false\m@ketabbox} -\def\tabalign{\us@true\m@ketabbox} % non-\outer version of \+ -\outer\def\+{\tabalign} -\def\s@tcols#1\columns{\count@#1\dimen@\hsize - \loop\ifnum\count@>\z@ \@nother \repeat} -\def\@nother{\dimen@ii\dimen@ \divide\dimen@ii\count@ - \setbox\tabs\hbox{\hbox to\dimen@ii{}\unhbox\tabs}% - \advance\dimen@-\dimen@ii \advance\count@\m@ne} - -\def\m@ketabbox{\begingroup - \global\setbox\tabsyet\copy\tabs - \global\setbox\tabsdone\null - \def\cr{\@crtrue\crcr\egroup\egroup - \ifus@\unvbox\z@\lastbox\fi\endgroup - \setbox\tabs\hbox{\unhbox\tabsyet\unhbox\tabsdone}}% - \setbox\z@\vbox\bgroup\@crfalse - \ialign\bgroup&\t@bbox##\t@bb@x\crcr} - -\def\t@bbox{\setbox\z@\hbox\bgroup} -\def\t@bb@x{\if@cr\egroup % now \box\z@ holds the column - \else\hss\egroup \global\setbox\tabsyet\hbox{\unhbox\tabsyet - \global\setbox\@ne\lastbox}% now \box\@ne holds its size - \ifvoid\@ne\global\setbox\@ne\hbox to\wd\z@{}% - \else\setbox\z@\hbox to\wd\@ne{\unhbox\z@}\fi - \global\setbox\tabsdone\hbox{\box\@ne\unhbox\tabsdone}\fi - \box\z@} - -\def\hang{\hangindent\parindent} -\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces} -\def\item{\par\hang\textindent} -\def\itemitem{\par\indent \hangindent2\parindent \textindent} -\def\narrower{\advance\leftskip\parindent - \advance\rightskip\parindent} - -\outer\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} -\outer\def\proclaim #1. #2\par{\medbreak - \noindent{\bf#1.\enspace}{\sl#2\par}% - \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi} - -\def\raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax} -\def\ttraggedright{\tt\rightskip\z@ plus2em\relax} % for use with \tt only - -\chardef\%=`\% -\chardef\&=`\& -\chardef\#=`\# -\chardef\$=`\$ -\chardef\ss="19 -\chardef\ae="1A -\chardef\oe="1B -\chardef\o="1C -\chardef\AE="1D -\chardef\OE="1E -\chardef\O="1F -\chardef\i="10 \chardef\j="11 % dotless letters -\def\aa{\accent23a} -\def\l{\char32l} -\def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}} - -\def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary -\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}} -\def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex% - \rlap{\raise.67\dimen@\hbox{\char'27}}A} - -\def\mathhexbox#1#2#3{\leavevmode - \hbox{$\m@th \mathchar"#1#2#3$}} -\def\dag{\mathhexbox279} -\def\ddag{\mathhexbox27A} -\def\S{\mathhexbox278} -\def\P{\mathhexbox27B} - -\def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% - \ialign{##\crcr#1\crcr}}} \def\o@lign{\lineskiplimit\z@ \oalign} -\def\ooalign{\lineskiplimit-\maxdimen \oalign} % chars over each other -\def\sh@ft#1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font - \kern-.0156\dimen\z@} % compensate for slant in lowered accents -\def\d#1{{\o@lign{\relax#1\crcr\hidewidth\sh@ft{10}.\hidewidth}}} -\def\b#1{{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% - \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}} -\def\c#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% - \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi} -\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}} - -\def\dots{\relax\ifmmode\ldots\else$\m@th\ldots\,$\fi} -\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX} - -\def\`#1{{\accent18 #1}} -\def\'#1{{\accent19 #1}} -\def\v#1{{\accent20 #1}} \let\^^_=\v -\def\u#1{{\accent21 #1}} \let\^^S=\u -\def\=#1{{\accent22 #1}} -\def\^#1{{\accent94 #1}} \let\^^D=\^ -\def\.#1{{\accent95 #1}} -\def\H#1{{\accent"7D #1}} -\def\~#1{{\accent"7E #1}} -\def\"#1{{\accent"7F #1}} -\def\t#1{{\edef\next{\the\font}\the\textfont1\accent"7F\next#1}} - -\def\hrulefill{\leaders\hrule\hfill} -\def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill} -\def\rightarrowfill{$\m@th\smash-\mkern-7mu% - \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill - \mkern-7mu\mathord\rightarrow$} -\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-7mu% - \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill - \mkern-7mu\smash-$} -\mathchardef\braceld="37A \mathchardef\bracerd="37B -\mathchardef\bracelu="37C \mathchardef\braceru="37D -\def\downbracefill{$\m@th \setbox\z@\hbox{$\braceld$}% - \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru - \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd$} -\def\upbracefill{$\m@th \setbox\z@\hbox{$\braceld$}% - \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd - \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru$} - -\outer\def\bye{\par\vfill\supereject\end} - -% Macros for math setting -\message{math definitions,} - -\let\sp=^ \let\sb=_ -\def\,{\mskip\thinmuskip} -\def\>{\mskip\medmuskip} -\def\;{\mskip\thickmuskip} -\def\!{\mskip-\thinmuskip} -\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}} -{\catcode`\'=\active \gdef'{^\bgroup\prim@s}} -\def\prim@s{\prime\futurelet\next\pr@m@s} -\def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t - \else\let\nxt\egroup\fi\fi \nxt} -\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup} -{\catcode`\^^Z=\active \gdef^^Z{\not=}} % ^^Z is like \ne in math - -{\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_ - -\mathchardef\alpha="010B -\mathchardef\beta="010C -\mathchardef\gamma="010D -\mathchardef\delta="010E -\mathchardef\epsilon="010F -\mathchardef\zeta="0110 -\mathchardef\eta="0111 -\mathchardef\theta="0112 -\mathchardef\iota="0113 -\mathchardef\kappa="0114 -\mathchardef\lambda="0115 -\mathchardef\mu="0116 -\mathchardef\nu="0117 -\mathchardef\xi="0118 -\mathchardef\pi="0119 -\mathchardef\rho="011A -\mathchardef\sigma="011B -\mathchardef\tau="011C -\mathchardef\upsilon="011D -\mathchardef\phi="011E -\mathchardef\chi="011F -\mathchardef\psi="0120 -\mathchardef\omega="0121 -\mathchardef\varepsilon="0122 -\mathchardef\vartheta="0123 -\mathchardef\varpi="0124 -\mathchardef\varrho="0125 -\mathchardef\varsigma="0126 -\mathchardef\varphi="0127 -\mathchardef\Gamma="0800 -\mathchardef\Delta="0801 -\mathchardef\Theta="0802 -\mathchardef\Lambda="0803 -\mathchardef\Xi="0804 -\mathchardef\Pi="0805 -\mathchardef\Sigma="0806 -\mathchardef\Upsilon="0807 -\mathchardef\Phi="0808 -\mathchardef\Psi="0809 -\mathchardef\Omega="080A - -\mathchardef\aleph="0240 -\def\hbar{{\mathchar'26\mkern-9muh}} -\mathchardef\imath="017B -\mathchardef\jmath="017C -\mathchardef\ell="0160 -\mathchardef\wp="017D -\mathchardef\Re="023C -\mathchardef\Im="023D -\mathchardef\partial="0140 -\mathchardef\infty="0231 -\mathchardef\prime="0230 -\mathchardef\emptyset="023B -\mathchardef\nabla="0272 -\def\surd{{\mathchar"1270}} -\mathchardef\top="023E -\mathchardef\bot="023F -\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr - \not\mathrel{\mkern14mu}\crcr - \noalign{\nointerlineskip} - \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}} -\mathchardef\triangle="0234 -\mathchardef\forall="0238 -\mathchardef\exists="0239 -\mathchardef\neg="023A \let\lnot=\neg -\mathchardef\flat="015B -\mathchardef\natural="015C -\mathchardef\sharp="015D -\mathchardef\clubsuit="027C -\mathchardef\diamondsuit="027D -\mathchardef\heartsuit="027E -\mathchardef\spadesuit="027F - -\mathchardef\coprod="1360 -\mathchardef\bigvee="1357 -\mathchardef\bigwedge="1356 -\mathchardef\biguplus="1355 -\mathchardef\bigcap="1354 -\mathchardef\bigcup="1353 -\mathchardef\intop="1352 \def\int{\intop\nolimits} -\mathchardef\prod="1351 -\mathchardef\sum="1350 -\mathchardef\bigotimes="134E -\mathchardef\bigoplus="134C -\mathchardef\bigodot="134A -\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} -\mathchardef\bigsqcup="1346 -\mathchardef\smallint="1273 - -\mathchardef\triangleleft="212F -\mathchardef\triangleright="212E -\mathchardef\bigtriangleup="2234 -\mathchardef\bigtriangledown="2235 -\mathchardef\wedge="225E \let\land=\wedge -\mathchardef\vee="225F \let\lor=\vee -\mathchardef\cap="225C -\mathchardef\cup="225B -\mathchardef\ddagger="227A -\mathchardef\dagger="2279 -\mathchardef\sqcap="2275 -\mathchardef\sqcup="2274 -\mathchardef\uplus="225D -\mathchardef\amalg="2271 -\mathchardef\diamond="2205 -\mathchardef\bullet="220F -\mathchardef\wr="226F -\mathchardef\div="2204 -\mathchardef\odot="220C -\mathchardef\oslash="220B -\mathchardef\otimes="220A -\mathchardef\ominus="2209 -\mathchardef\oplus="2208 -\mathchardef\mp="2207 -\mathchardef\pm="2206 -\mathchardef\circ="220E -\mathchardef\bigcirc="220D -\mathchardef\setminus="226E % for set difference A\setminus B -\mathchardef\cdot="2201 -\mathchardef\ast="2203 -\mathchardef\times="2202 -\mathchardef\star="213F - -\mathchardef\propto="322F -\mathchardef\sqsubseteq="3276 -\mathchardef\sqsupseteq="3277 -\mathchardef\parallel="326B -\mathchardef\mid="326A -\mathchardef\dashv="3261 -\mathchardef\vdash="3260 -\mathchardef\nearrow="3225 -\mathchardef\searrow="3226 -\mathchardef\nwarrow="322D -\mathchardef\swarrow="322E -\mathchardef\Leftrightarrow="322C -\mathchardef\Leftarrow="3228 -\mathchardef\Rightarrow="3229 -\def\neq{\not=} \let\ne=\neq -\mathchardef\leq="3214 \let\le=\leq -\mathchardef\geq="3215 \let\ge=\geq -\mathchardef\succ="321F -\mathchardef\prec="321E -\mathchardef\approx="3219 -\mathchardef\succeq="3217 -\mathchardef\preceq="3216 -\mathchardef\supset="321B -\mathchardef\subset="321A -\mathchardef\supseteq="3213 -\mathchardef\subseteq="3212 -\mathchardef\in="3232 -\mathchardef\ni="3233 \let\owns=\ni -\mathchardef\gg="321D -\mathchardef\ll="321C -\mathchardef\not="3236 -\mathchardef\leftrightarrow="3224 -\mathchardef\leftarrow="3220 \let\gets=\leftarrow -\mathchardef\rightarrow="3221 \let\to=\rightarrow -\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} -\mathchardef\sim="3218 -\mathchardef\simeq="3227 -\mathchardef\perp="323F -\mathchardef\equiv="3211 -\mathchardef\asymp="3210 -\mathchardef\smile="315E -\mathchardef\frown="315F -\mathchardef\leftharpoonup="3128 -\mathchardef\leftharpoondown="3129 -\mathchardef\rightharpoonup="312A -\mathchardef\rightharpoondown="312B - -\def\joinrel{\mathrel{\mkern-3mu}} -\def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as + -\def\Relbar{\mathrel=} -\mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow} -\mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook} -\def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft} -\def\models{\mathrel|\joinrel=} -\def\Longrightarrow{\Relbar\joinrel\Rightarrow} -\def\longrightarrow{\relbar\joinrel\rightarrow} -\def\longleftarrow{\leftarrow\joinrel\relbar} -\def\Longleftarrow{\Leftarrow\joinrel\Relbar} -\def\longmapsto{\mapstochar\longrightarrow} -\def\longleftrightarrow{\leftarrow\joinrel\rightarrow} -\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow} -\def\iff{\;\Longleftrightarrow\;} - -\mathchardef\ldotp="613A % ldot as a punctuation mark -\mathchardef\cdotp="6201 % cdot as a punctuation mark -\mathchardef\colon="603A % colon as a punctuation mark -\def\ldots{\mathinner{\ldotp\ldotp\ldotp}} -\def\cdots{\mathinner{\cdotp\cdotp\cdotp}} -\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ - \kern6\p@\hbox{.}\hbox{.}\hbox{.}}} -\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu - \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}} - -\def\acute{\mathaccent"7013 } -\def\grave{\mathaccent"7012 } -\def\ddot{\mathaccent"707F } -\def\tilde{\mathaccent"707E } -\def\bar{\mathaccent"7016 } -\def\breve{\mathaccent"7015 } -\def\check{\mathaccent"7014 } -\def\hat{\mathaccent"705E } -\def\vec{\mathaccent"017E } -\def\dot{\mathaccent"705F } -\def\widetilde{\mathaccent"0365 } -\def\widehat{\mathaccent"0362 } -\def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr - \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} - $\hfil\displaystyle{#1}\hfil$\crcr}}} -\def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr - \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} - $\hfil\displaystyle{#1}\hfil$\crcr}}} -\def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@} - \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip} - $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits} -\def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr - $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip} - \upbracefill\crcr\noalign{\kern3\p@}}}}\limits} -\def\skew#1#2#3{{\muskip\z@#1mu\divide\muskip\z@\tw@ \mkern\muskip\z@ - #2{\mkern-\muskip\z@{#3}\mkern\muskip\z@}\mkern-\muskip\z@}{}} - -\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) -\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( -\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips -\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips -\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads -\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads -\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces -\def\Vert{\delimiter"26B30D } \let\|=\Vert -\def\vert{\delimiter"26A30C } -\def\uparrow{\delimiter"3222378 } -\def\downarrow{\delimiter"3223379 } -\def\updownarrow{\delimiter"326C33F } -\def\Uparrow{\delimiter"322A37E } -\def\Downarrow{\delimiter"322B37F } -\def\Updownarrow{\delimiter"326D377 } -\def\backslash{\delimiter"26E30F } % for double coset G\backslash H -\def\rangle{\delimiter"526930B } -\def\langle{\delimiter"426830A } -\def\rbrace{\delimiter"5267309 } \let\}=\rbrace -\def\lbrace{\delimiter"4266308 } \let\{=\lbrace -\def\rceil{\delimiter"5265307 } -\def\lceil{\delimiter"4264306 } -\def\rfloor{\delimiter"5263305 } -\def\lfloor{\delimiter"4262304 } - -\def\bigl{\mathopen\big} -\def\bigm{\mathrel\big} -\def\bigr{\mathclose\big} -\def\Bigl{\mathopen\Big} -\def\Bigm{\mathrel\Big} -\def\Bigr{\mathclose\Big} -\def\biggl{\mathopen\bigg} -\def\biggm{\mathrel\bigg} -\def\biggr{\mathclose\bigg} -\def\Biggl{\mathopen\Bigg} -\def\Biggm{\mathrel\Bigg} -\def\Biggr{\mathclose\Bigg} -\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} -\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} -\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} -\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} -\def\n@space{\nulldelimiterspace\z@ \m@th} - -\def\choose{\atopwithdelims()} -\def\brack{\atopwithdelims[]} -\def\brace{\atopwithdelims\{\}} - -\def\sqrt{\radical"270370 } - -\def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}% - {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}} -\newbox\rootbox -\def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$} - \mathpalette\r@@t} -\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$} - \dimen@\ht\z@ \advance\dimen@-\dp\z@ - \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@} -\newif\ifv@ \newif\ifh@ -\def\vphantom{\v@true\h@false\ph@nt} -\def\hphantom{\v@false\h@true\ph@nt} -\def\phantom{\v@true\h@true\ph@nt} -\def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}% - \else\let\next\makeph@nt\fi\next} -\def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt} -\def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt} -\def\finph@nt{\setbox\tw@\null - \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi - \ifh@ \wd\tw@\wd\z@\fi \box\tw@} -\def\mathstrut{\vphantom(} -\def\smash{\relax % \relax, in case this comes first in \halign - \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh - \fi\next} -\def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh} -\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh} -\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@} - -\def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign -\def\@vereq#1#2{\lower.5\p@\vbox{\lineskiplimit\maxdimen\lineskip-.5\p@ - \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}} -\def\notin{\mathrel{\mathpalette\c@ncel\in}} -\def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}} -\def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}} -\def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt - \hbox{$#1\rightharpoonup$}\crcr - $#1\leftharpoondown$}}}} -\def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}} -\def\doteq{\buildrel\textstyle.\over=} - -\def\log{\mathop{\rm log}\nolimits} -\def\lg{\mathop{\rm lg}\nolimits} -\def\ln{\mathop{\rm ln}\nolimits} -\def\lim{\mathop{\rm lim}} -\def\limsup{\mathop{\rm lim\,sup}} -\def\liminf{\mathop{\rm lim\,inf}} -\def\sin{\mathop{\rm sin}\nolimits} -\def\arcsin{\mathop{\rm arcsin}\nolimits} -\def\sinh{\mathop{\rm sinh}\nolimits} -\def\cos{\mathop{\rm cos}\nolimits} -\def\arccos{\mathop{\rm arccos}\nolimits} -\def\cosh{\mathop{\rm cosh}\nolimits} -\def\tan{\mathop{\rm tan}\nolimits} -\def\arctan{\mathop{\rm arctan}\nolimits} -\def\tanh{\mathop{\rm tanh}\nolimits} -\def\cot{\mathop{\rm cot}\nolimits} -\def\coth{\mathop{\rm coth}\nolimits} -\def\sec{\mathop{\rm sec}\nolimits} -\def\csc{\mathop{\rm csc}\nolimits} -\def\max{\mathop{\rm max}} -\def\min{\mathop{\rm min}} -\def\sup{\mathop{\rm sup}} -\def\inf{\mathop{\rm inf}} -\def\arg{\mathop{\rm arg}\nolimits} -\def\ker{\mathop{\rm ker}\nolimits} -\def\dim{\mathop{\rm dim}\nolimits} -\def\hom{\mathop{\rm hom}\nolimits} -\def\det{\mathop{\rm det}} -\def\exp{\mathop{\rm exp}\nolimits} -\def\Pr{\mathop{\rm Pr}} -\def\gcd{\mathop{\rm gcd}} -\def\deg{\mathop{\rm deg}\nolimits} - -\def\bmod{\nonscript\mskip-\medmuskip\mkern5mu - \mathbin{\rm mod}\penalty900\mkern5mu\nonscript\mskip-\medmuskip} -\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)} - -\def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th - \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}\right.} -\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th - \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr - \mathstrut\crcr\noalign{\kern-\baselineskip} - #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,} -\def\pmatrix#1{\left(\matrix{#1}\right)} -\newdimen\p@renwd -\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left ( -\def\bordermatrix#1{\begingroup \m@th - \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}% - \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil - &&\quad\hfil$##$\hfil\crcr - \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}% - #1\crcr\omit\strut\cr}}% - \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% - \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% - \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne - \global\setbox\@ne\vbox{\box\@ne\kern2\p@}% - \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}% - \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup} - -\def\openup{\afterassignment\@penup\dimen@=} -\def\@penup{\advance\lineskip\dimen@ - \advance\baselineskip\dimen@ - \advance\lineskiplimit\dimen@} -\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th - \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil - \crcr#1\crcr}}\,} -\newif\ifdt@p -\def\displ@y{\global\dt@ptrue\openup\jot\m@th - \everycr{\noalign{\ifdt@p \global\dt@pfalse \ifdim\prevdepth>-1000\p@ - \vskip-\lineskiplimit \vskip\normallineskiplimit \fi - \else \penalty\interdisplaylinepenalty \fi}}} -\def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y -\def\displaylines#1{\displ@y \tabskip\z@skip - \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr - #1\crcr}} -\def\eqalignno#1{\displ@y \tabskip\centering - \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip - &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering - &\llap{$\@lign##$}\tabskip\z@skip\crcr - #1\crcr}} -\def\leqalignno#1{\displ@y \tabskip\centering - \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip - &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering - &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr - #1\crcr}} - -% Definitions related to output - -\message{output routines,} - -\countdef\pageno=0 \pageno=1 % first page is number 1 -\newtoks\headline \headline={\hfil} % headline is normally blank -\newtoks\footline \footline={\hss\tenrm\folio\hss} - % footline is normally a centered page number in font \tenrm -\newif\ifr@ggedbottom -\def\raggedbottom{\topskip 10\p@ plus60\p@ \r@ggedbottomtrue} -\def\normalbottom{\topskip 10\p@ \r@ggedbottomfalse} % undoes \raggedbottom -\def\folio{\ifnum\pageno<\z@ \romannumeral-\pageno \else\number\pageno \fi} -\def\nopagenumbers{\footline{\hfil}} % blank out the footline -\def\advancepageno{\ifnum\pageno<\z@ \global\advance\pageno\m@ne - \else\global\advance\pageno\@ne \fi} % increase |pageno| - -\newinsert\footins -\def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later - \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi - #1\@sf\vfootnote{#1}} -\def\vfootnote#1{\insert\footins\bgroup - \interlinepenalty\interfootnotelinepenalty - \splittopskip\ht\strutbox % top baseline for broken footnotes - \splitmaxdepth\dp\strutbox \floatingpenalty\@MM - \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip - \textindent{#1}\footstrut\futurelet\next\fo@t} -\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t - \else\let\next\f@t\fi \next} -\def\f@@t{\bgroup\aftergroup\@foot\let\next} -\def\f@t#1{#1\@foot} -\def\@foot{\strut\egroup} -\def\footstrut{\vbox to\splittopskip{}} -\skip\footins=\bigskipamount % space added when footnote is present -\count\footins=1000 % footnote magnification factor (1 to 1) -\dimen\footins=8in % maximum footnotes per page - -\newinsert\topins -\newif\ifp@ge \newif\if@mid -\def\topinsert{\@midfalse\p@gefalse\@ins} -\def\midinsert{\@midtrue\@ins} -\def\pageinsert{\@midfalse\p@getrue\@ins} -\skip\topins=\z@skip % no space added when a topinsert is present -\count\topins=1000 % magnification factor (1 to 1) -\dimen\topins=\maxdimen % no limit per page -\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup} % start a \vbox -\def\endinsert{\egroup % finish the \vbox - \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ \advance\dimen@12\p@ - \advance\dimen@\pagetotal \advance\dimen@-\pageshrink - \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi - \if@mid \bigskip\box\z@\bigbreak - \else\insert\topins{\penalty100 % floating insertion - \splittopskip\z@skip - \splitmaxdepth\maxdimen \floatingpenalty\z@ - \ifp@ge \dimen@\dp\z@ - \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero - \else \box\z@\nobreak\bigskip\fi}\fi\endgroup} - -\output{\plainoutput} -\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}% - \advancepageno - \ifnum\outputpenalty>-\@MM \else\dosupereject\fi} -\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}} -\def\makeheadline{\vbox to\z@{\vskip-22.5\p@ - \line{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip} -\def\makefootline{\baselineskip24\p@\line{\the\footline}} -\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over - \line{}\kern-\topskip\nobreak\vfill\supereject\fi} - -\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi - \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255 - \ifvoid\footins\else % footnote info is present - \vskip\skip\footins - \footnoterule - \unvbox\footins\fi - \ifr@ggedbottom \kern-\dimen@ \vfil \fi} -\def\footnoterule{\kern-3\p@ - \hrule width 2truein \kern 2.6\p@} % the \hrule is .4pt high - -% Hyphenation, miscellaneous macros, and initial values for standard layout -\message{hyphenation} - -\lefthyphenmin=2 \righthyphenmin=3 % disallow x- or -xx breaks - -\input hyacceur.tex % special lc.uc codes for characters > 127 -\input acmacros.sty % macros for accented letters -\input hyconfig.ptx - -\def\magnification{\afterassignment\m@g\count@} -\def\m@g{\mag\count@ - \hsize6.5truein\vsize8.9truein\dimen\footins8truein} - -\def\tracingall{\tracingonline\@ne\tracingcommands\tw@\tracingstats\tw@ - \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne - \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne - \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode} - -\def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm - \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}} - -\normalbaselines\rm % select roman font -\nonfrenchspacing % punctuation affects the spacing -\catcode`@=12 % at signs are no longer letters - -\def\fmtname{plain}\def\fmtversion{3.141592} % identifies the current format -\dump -\endinput diff --git a/macros/ec-plain/ec-plfmt.bat b/macros/ec-plain/ec-plfmt.bat deleted file mode 100644 index dc7b25e39d..0000000000 --- a/macros/ec-plain/ec-plfmt.bat +++ /dev/null @@ -1,46 +0,0 @@ -echo on -echo fmt.bat for 5 languages -del *.bak -del *.log -del *.tex -del *.sty -del *.ch -del *.mf -del *.tfm -del *.min -del *.doc -del *.dat -del *.zip -del *.tmp - -rem copy d:\emtex\texinput\etc\plain.tex - -copy d:\emtex\texinput\acmacros.sty -copy d:\emtex\texinput\hyconfig.ptx -copy d:\emtex\texinput\dcacceur.tex hyacceur.tex -copy d:\emtex\texinput\enhyph.tex -copy d:\emtex\texinput\enhyphex.tex -copy d:\emtex\texinput\f8hyph.tex -rem copy d:\emtex\texinput\french\f8hyphex.tex -rem copy d:\emtex\texinput\french\frhyphex.tex -copy d:\emtex\texinput\ithyph.tex -copy d:\emtex\texinput\eshyph.tex -copy d:\emtex\texinput\ghyph31.tex -copy d:\emtex\texinput\ec-plain.tex -copy d:\emtex\texinput\ec-plain.doc 00readme.doc -copy d:\emtex\mfinput\ec\exmi*.mf -del exmib*.mf -copy d:\emtex\mfinput\ec\ecbxmath.mf -copy d:\emtex\mfinput\ec\ecmathit.mf -copy d:\emtex\mfinput\misc\dy*.mf -copy d:\emtex\mfinput\misc\ofgree*.mf -copy d:\emtex\tfm\ec\exmi*.tfm -del exmib*.tfm -del dymib*.mf - -echo french-english-german-italian-spanish plain -copy d:\emtex\texinput\language.eur language.dat -initex ec-plain \dump -if errorlevel 1 goto error - -:error diff --git a/macros/ec-plain/ecbxmath.mf b/macros/ec-plain/ecbxmath.mf deleted file mode 100644 index 686db6ea04..0000000000 --- a/macros/ec-plain/ecbxmath.mf +++ /dev/null @@ -1,21 +0,0 @@ -% bold greek letters -character_offset:=168; - -font_setup; - -input ofgreeku; % -input ofgreekl; % - -% bold italic Greek letters -character_offset:=208; -currenttransform:=old_currenttransform; -slant:=old_slant; -mono_charic#:=old_mono_charic#; -% crisp#:=old_crisp#; % diameter of serif corners - -font_setup; - -input ofgreeku; % -input ofgreekl; % - - diff --git a/macros/ec-plain/ecmathit.mf b/macros/ec-plain/ecmathit.mf deleted file mode 100644 index 0f279acdc8..0000000000 --- a/macros/ec-plain/ecmathit.mf +++ /dev/null @@ -1,88 +0,0 @@ -% The Computer Modern Math Italic family (by D. E. Knuth, 1979--1985) - -font_coding_scheme:="TeX math italic"; -mode_setup; font_setup; - -input romanu; % upper case (majuscules) -input itall; % lower case (minuscules) -input greeku; % upper case greek letters -input greekl; % lower case Greek letters -input italms; % special symbols for math italic - -font_slant slant; font_x_height x_height#; -font_quad 18u#+4letter_fit#; - -% saving normal variables to re-use them for Taupin's additions. -transform old_currenttransform; -old_slant:=slant; -old_mono_charic#:=mono_charic#; -old_currenttransform:=currenttransform; - -slant:=mono_charic#:=0; % the remaining characters will not be slanted -currenttransform:=identity yscaled aspect_ratio scaled granularity; -input olddig; % oldstyle numerals -input romms; % roman math specials - -% additions by D. Taupin for upright Greek letters, bold Greek letters - -old_crisp#:=crisp#; -old_u#:=u#; - -% upright greek letters -character_offset:=128; -slant:=0; mono_charic#:=0; -crisp#:=0pt; % diameter of serif corners -currenttransform:=identity yscaled aspect_ratio scaled granularity; -input ofgreeku; % -input ofgreekl; % - -character_offset:=0; -slant:=old_slant; -mono_charic#:=old_mono_charic#; -crisp#:=old_crisp#; -u#:=old_u#; - -skewchar=oct"177"; skew#=.5u#; -save comma; -period=oct"72"; comma=oct"73"; slash=oct"75"; % non-ASCII positions -ligtable "h": skewchar kern -skew#; -ligtable oct"027":oct"034": comma kern -u#, period kern -u#, % $\nu:\tau:$ - "L":"g":"u":"v":"x": oct"013": oct"026": % $L:g:u:v:x:\alpha:\mu:$ - oct"035":oct"173": skewchar kern skew#; % $\upsilon:\imath:$ -ligtable "U": comma kern-2u#, period kern-2u#, % $U:$ - slash kern-u#, skewchar kern skew#; -ligtable "K":oct"011": slash kern-u#, % $K:\it\Psi:$ - oct"016":"r": comma kern-u#, period kern-u#, % $\delta:r:$ - "D":"c":"e":"o":"s":"y":"z":oct"017": % $D:c:e:o:s:y:z:\epsilon:$ - oct"021":oct"023":oct"037": skewchar kern 2skew#; % $\eta:\iota:\chi:$ -ligtable oct"007": slash kern-u#, % $\it\Upsilon:$ - comma kern-2u#, period kern-2u#, skewchar kern 2skew#; -ligtable oct"005":"H": slash kern-u#, % $\it\Pi:H:$ - comma kern-u#, period kern-u#, skewchar kern 2skew#; -ligtable "N":"X": slash kern -1.5u#, % $N:X:$ - "C":"T": slash kern -.5u#, comma kern -u#, period kern -u#, % $C:T:$ - "B":"E":"G":"O":"Q":"R":oct"174": % $B:E:G:O:Q:R:\jmath:$ - "l":"p":"q":"t":"w":oct"002":oct"004": % $l:p:q:t:w:\it\Theta:\Xi:$ - oct"006":oct"010":oct"012":oct"014": % $\it\Sigma:\Phi:\Omega:\beta:$ - oct"020":oct"022":oct"032":oct"036": % $\zeta:\theta:\rho:\phi:$ - oct"042":oct"043":oct"045": % $\varepsilon:\vartheta:\varrho:$ - oct"046":oct"047":oct"100": % $\varsigma:\varphi:\partial:$ - skewchar kern 3skew#; -ligtable "M":"S":"Z": slash kern-u#, % $M:S:Z:$ - comma kern-u#, period kern-u#, skewchar kern 3skew#; -ligtable oct"000":"F":"P": slash kern -u#, % $\it\Gamma:F:P:$ - comma kern-2u#, period kern-2u#, skewchar kern 3skew#; -ligtable "I":oct"030":oct"040":oct"140":oct"175": % $I:\xi:\psi:\ell:\wp:$ - skewchar kern 4skew#; -ligtable "A": skewchar kern 5skew#; % $A:$ -ligtable "d": "Y" kern u#, "Z" kern-u#, "j" kern-2u#, "f" kern-3u#, % $d:$ - oct"001":oct"003": skewchar kern 6skew#; % $\it\Delta:\Lambda:$ -ligtable "f": comma kern-u#, period kern-u#, skewchar kern 6skew#; % $f:$ -ligtable "J": slash kern-u#, % $J:$ - comma kern-2u#, period kern-2u#, skewchar kern 6skew#; -ligtable "j":oct"033": comma kern -u#, period kern -u#; % $j:\sigma:$ -ligtable "V":"W":"Y":comma kern-3u#, period kern-3u#, % $V:W:Y:$ - slash kern-2u#; -ligtable slash: oct"001" kern -u#, "A" kern -u#, "M" kern -u#, % $/:$ - "N" kern -u#, "Y" kern +u#, "Z" kern -u#; - diff --git a/macros/ec-plain/enhyph.tex b/macros/ec-plain/enhyph.tex deleted file mode 100644 index 74ee805b02..0000000000 --- a/macros/ec-plain/enhyph.tex +++ /dev/null @@ -1,4457 +0,0 @@ -% ------- English hyphen patterns ----- -\message{Enhyph.tex English hyphenation pattern.} -% -% The Plain TeX hyphenation tables [NOT TO BE CHANGED IN ANY WAY!] - -\patterns{ % just type if you're not using INITEX -.ach4 -.ad4der -.af1t -.al3t -.am5at -.an5c -.ang4 -.ani5m -.ant4 -.an3te -.anti5s -.ar5s -.ar4tie -.ar4ty -.as3c -.as1p -.as1s -.aster5 -.atom5 -.au1d -.av4i -.awn4 -.ba4g -.ba5na -.bas4e -.ber4 -.be5ra -.be3sm -.be5sto -.bri2 -.but4ti -.cam4pe -.can5c -.capa5b -.car5ol -.ca4t -.ce4la -.ch4 -.chill5i -.ci2 -.cit5r -.co3e -.co4r -.cor5ner -.de4moi -.de3o -.de3ra -.de3ri -.des4c -.dictio5 -.do4t -.du4c -.dumb5 -.earth5 -.eas3i -.eb4 -.eer4 -.eg2 -.el5d -.el3em -.enam3 -.en3g -.en3s -.eq5ui5t -.er4ri -.es3 -.eu3 -.eye5 -.fes3 -.for5mer -.ga2 -.ge2 -.gen3t4 -.ge5og -.gi5a -.gi4b -.go4r -.hand5i -.han5k -.he2 -.hero5i -.hes3 -.het3 -.hi3b -.hi3er -.hon5ey -.hon3o -.hov5 -.id4l -.idol3 -.im3m -.im5pin -.in1 -.in3ci -.ine2 -.in2k -.in3s -.ir5r -.is4i -.ju3r -.la4cy -.la4m -.lat5er -.lath5 -.le2 -.leg5e -.len4 -.lep5 -.lev1 -.li4g -.lig5a -.li2n -.li3o -.li4t -.mag5a5 -.mal5o -.man5a -.mar5ti -.me2 -.mer3c -.me5ter -.mis1 -.mist5i -.mon3e -.mo3ro -.mu5ta -.muta5b -.ni4c -.od2 -.odd5 -.of5te -.or5ato -.or3c -.or1d -.or3t -.os3 -.os4tl -.oth3 -.out3 -.ped5al -.pe5te -.pe5tit -.pi4e -.pio5n -.pi2t -.pre3m -.ra4c -.ran4t -.ratio5na -.ree2 -.re5mit -.res2 -.re5stat -.ri4g -.rit5u -.ro4q -.ros5t -.row5d -.ru4d -.sci3e -.self5 -.sell5 -.se2n -.se5rie -.sh2 -.si2 -.sing4 -.st4 -.sta5bl -.sy2 -.ta4 -.te4 -.ten5an -.th2 -.ti2 -.til4 -.tim5o5 -.ting4 -.tin5k -.ton4a -.to4p -.top5i -.tou5s -.trib5ut -.un1a -.un3ce -.under5 -.un1e -.un5k -.un5o -.un3u -.up3 -.ure3 -.us5a -.ven4de -.ve5ra -.wil5i -.ye4 -4ab. -a5bal -a5ban -abe2 -ab5erd -abi5a -ab5it5ab -ab5lat -ab5o5liz -4abr -ab5rog -ab3ul -a4car -ac5ard -ac5aro -a5ceou -ac1er -a5chet -4a2ci -a3cie -ac1in -a3cio -ac5rob -act5if -ac3ul -ac4um -a2d -ad4din -ad5er. -2adi -a3dia -ad3ica -adi4er -a3dio -a3dit -a5diu -ad4le -ad3ow -ad5ran -ad4su -4adu -a3duc -ad5um -ae4r -aeri4e -a2f -aff4 -a4gab -aga4n -ag5ell -age4o -4ageu -ag1i -4ag4l -ag1n -a2go -3agog -ag3oni -a5guer -ag5ul -a4gy -a3ha -a3he -ah4l -a3ho -ai2 -a5ia -a3ic. -ai5ly -a4i4n -ain5in -ain5o -ait5en -a1j -ak1en -al5ab -al3ad -a4lar -4aldi -2ale -al3end -a4lenti -a5le5o -al1i -al4ia. -ali4e -al5lev -4allic -4alm -a5log. -a4ly. -4alys -5a5lyst -5alyt -3alyz -4ama -am5ab -am3ag -ama5ra -am5asc -a4matis -a4m5ato -am5era -am3ic -am5if -am5ily -am1in -ami4no -a2mo -a5mon -amor5i -amp5en -a2n -an3age -3analy -a3nar -an3arc -anar4i -a3nati -4and -ande4s -an3dis -an1dl -an4dow -a5nee -a3nen -an5est. -a3neu -2ang -ang5ie -an1gl -a4n1ic -a3nies -an3i3f -an4ime -a5nimi -a5nine -an3io -a3nip -an3ish -an3it -a3niu -an4kli -5anniz -ano4 -an5ot -anoth5 -an2sa -an4sco -an4sn -an2sp -ans3po -an4st -an4sur -antal4 -an4tie -4anto -an2tr -an4tw -an3ua -an3ul -a5nur -4ao -apar4 -ap5at -ap5ero -a3pher -4aphi -a4pilla -ap5illar -ap3in -ap3ita -a3pitu -a2pl -apoc5 -ap5ola -apor5i -apos3t -aps5es -a3pu -aque5 -2a2r -ar3act -a5rade -ar5adis -ar3al -a5ramete -aran4g -ara3p -ar4at -a5ratio -ar5ativ -a5rau -ar5av4 -araw4 -arbal4 -ar4chan -ar5dine -ar4dr -ar5eas -a3ree -ar3ent -a5ress -ar4fi -ar4fl -ar1i -ar5ial -ar3ian -a3riet -ar4im -ar5inat -ar3io -ar2iz -ar2mi -ar5o5d -a5roni -a3roo -ar2p -ar3q -arre4 -ar4sa -ar2sh -4as. -as4ab -as3ant -ashi4 -a5sia. -a3sib -a3sic -5a5si4t -ask3i -as4l -a4soc -as5ph -as4sh -as3ten -as1tr -asur5a -a2ta -at3abl -at5ac -at3alo -at5ap -ate5c -at5ech -at3ego -at3en. -at3era -ater5n -a5terna -at3est -at5ev -4ath -ath5em -a5then -at4ho -ath5om -4ati. -a5tia -at5i5b -at1ic -at3if -ation5ar -at3itu -a4tog -a2tom -at5omiz -a4top -a4tos -a1tr -at5rop -at4sk -at4tag -at5te -at4th -a2tu -at5ua -at5ue -at3ul -at3ura -a2ty -au4b -augh3 -au3gu -au4l2 -aun5d -au3r -au5sib -aut5en -au1th -a2va -av3ag -a5van -ave4no -av3era -av5ern -av5ery -av1i -avi4er -av3ig -av5oc -a1vor -3away -aw3i -aw4ly -aws4 -ax4ic -ax4id -ay5al -aye4 -ays4 -azi4er -azz5i -5ba. -bad5ger -ba4ge -bal1a -ban5dag -ban4e -ban3i -barbi5 -bari4a -bas4si -1bat -ba4z -2b1b -b2be -b3ber -bbi4na -4b1d -4be. -beak4 -beat3 -4be2d -be3da -be3de -be3di -be3gi -be5gu -1bel -be1li -be3lo -4be5m -be5nig -be5nu -4bes4 -be3sp -be5str -3bet -bet5iz -be5tr -be3tw -be3w -be5yo -2bf -4b3h -bi2b -bi4d -3bie -bi5en -bi4er -2b3if -1bil -bi3liz -bina5r4 -bin4d -bi5net -bi3ogr -bi5ou -bi2t -3bi3tio -bi3tr -3bit5ua -b5itz -b1j -bk4 -b2l2 -blath5 -b4le. -blen4 -5blesp -b3lis -b4lo -blun4t -4b1m -4b3n -bne5g -3bod -bod3i -bo4e -bol3ic -bom4bi -bon4a -bon5at -3boo -5bor. -4b1ora -bor5d -5bore -5bori -5bos4 -b5ota -both5 -bo4to -bound3 -4bp -4brit -broth3 -2b5s2 -bsor4 -2bt -bt4l -b4to -b3tr -buf4fer -bu4ga -bu3li -bumi4 -bu4n -bunt4i -bu3re -bus5ie -buss4e -5bust -4buta -3butio -b5uto -b1v -4b5w -5by. -bys4 -1ca -cab3in -ca1bl -cach4 -ca5den -4cag4 -2c5ah -ca3lat -cal4la -call5in -4calo -can5d -can4e -can4ic -can5is -can3iz -can4ty -cany4 -ca5per -car5om -cast5er -cas5tig -4casy -ca4th -4cativ -cav5al -c3c -ccha5 -cci4a -ccompa5 -ccon4 -ccou3t -2ce. -4ced. -4ceden -3cei -5cel. -3cell -1cen -3cenc -2cen4e -4ceni -3cent -3cep -ce5ram -4cesa -3cessi -ces5si5b -ces5t -cet4 -c5e4ta -cew4 -2ch -4ch. -4ch3ab -5chanic -ch5a5nis -che2 -cheap3 -4ched -che5lo -3chemi -ch5ene -ch3er. -ch3ers -4ch1in -5chine. -ch5iness -5chini -5chio -3chit -chi2z -3cho2 -ch4ti -1ci -3cia -ci2a5b -cia5r -ci5c -4cier -5cific. -4cii -ci4la -3cili -2cim -2cin -c4ina -3cinat -cin3em -c1ing -c5ing. -5cino -cion4 -4cipe -ci3ph -4cipic -4cista -4cisti -2c1it -cit3iz -5ciz -ck1 -ck3i -1c4l4 -4clar -c5laratio -5clare -cle4m -4clic -clim4 -cly4 -c5n -1co -co5ag -coe2 -2cog -co4gr -coi4 -co3inc -col5i -5colo -col3or -com5er -con4a -c4one -con3g -con5t -co3pa -cop3ic -co4pl -4corb -coro3n -cos4e -cov1 -cove4 -cow5a -coz5e -co5zi -c1q -cras5t -5crat. -5cratic -cre3at -5cred -4c3reta -cre4v -cri2 -cri5f -c4rin -cris4 -5criti -cro4pl -crop5o -cros4e -cru4d -4c3s2 -2c1t -cta4b -ct5ang -c5tant -c2te -c3ter -c4ticu -ctim3i -ctu4r -c4tw -cud5 -c4uf -c4ui -cu5ity -5culi -cul4tis -3cultu -cu2ma -c3ume -cu4mi -3cun -cu3pi -cu5py -cur5a4b -cu5ria -1cus -cuss4i -3c4ut -cu4tie -4c5utiv -4cutr -1cy -cze4 -1d2a -5da. -2d3a4b -dach4 -4daf -2dag -da2m2 -dan3g -dard5 -dark5 -4dary -3dat -4dativ -4dato -5dav4 -dav5e -5day -d1b -d5c -d1d4 -2de. -deaf5 -deb5it -de4bon -decan4 -de4cil -de5com -2d1ed -4dee. -de5if -deli4e -del5i5q -de5lo -d4em -5dem. -3demic -dem5ic. -de5mil -de4mons -demor5 -1den -de4nar -de3no -denti5f -de3nu -de1p -de3pa -depi4 -de2pu -d3eq -d4erh -5derm -dern5iz -der5s -des2 -d2es. -de1sc -de2s5o -des3ti -de3str -de4su -de1t -de2to -de1v -dev3il -4dey -4d1f -d4ga -d3ge4t -dg1i -d2gy -d1h2 -5di. -1d4i3a -dia5b -di4cam -d4ice -3dict -3did -5di3en -d1if -di3ge -di4lato -d1in -1dina -3dine. -5dini -di5niz -1dio -dio5g -di4pl -dir2 -di1re -dirt5i -dis1 -5disi -d4is3t -d2iti -1di1v -d1j -d5k2 -4d5la -3dle. -3dled -3dles. -4dless -2d3lo -4d5lu -2dly -d1m -4d1n4 -1do -3do. -do5de -5doe -2d5of -d4og -do4la -doli4 -do5lor -dom5iz -do3nat -doni4 -doo3d -dop4p -d4or -3dos -4d5out -do4v -3dox -d1p -1dr -drag5on -4drai -dre4 -drea5r -5dren -dri4b -dril4 -dro4p -4drow -5drupli -4dry -2d1s2 -ds4p -d4sw -d4sy -d2th -1du -d1u1a -du2c -d1uca -duc5er -4duct. -4ducts -du5el -du4g -d3ule -dum4be -du4n -4dup -du4pe -d1v -d1w -d2y -5dyn -dy4se -dys5p -e1a4b -e3act -ead1 -ead5ie -ea4ge -ea5ger -ea4l -eal5er -eal3ou -eam3er -e5and -ear3a -ear4c -ear5es -ear4ic -ear4il -ear5k -ear2t -eart3e -ea5sp -e3ass -east3 -ea2t -eat5en -eath3i -e5atif -e4a3tu -ea2v -eav3en -eav5i -eav5o -2e1b -e4bel. -e4bels -e4ben -e4bit -e3br -e4cad -ecan5c -ecca5 -e1ce -ec5essa -ec2i -e4cib -ec5ificat -ec5ifie -ec5ify -ec3im -eci4t -e5cite -e4clam -e4clus -e2col -e4comm -e4compe -e4conc -e2cor -ec3ora -eco5ro -e1cr -e4crem -ec4tan -ec4te -e1cu -e4cul -ec3ula -2e2da -4ed3d -e4d1er -ede4s -4edi -e3dia -ed3ib -ed3ica -ed3im -ed1it -edi5z -4edo -e4dol -edon2 -e4dri -e4dul -ed5ulo -ee2c -eed3i -ee2f -eel3i -ee4ly -ee2m -ee4na -ee4p1 -ee2s4 -eest4 -ee4ty -e5ex -e1f -e4f3ere -1eff -e4fic -5efici -efil4 -e3fine -ef5i5nite -3efit -efor5es -e4fuse. -4egal -eger4 -eg5ib -eg4ic -eg5ing -e5git5 -eg5n -e4go. -e4gos -eg1ul -e5gur -5egy -e1h4 -eher4 -ei2 -e5ic -ei5d -eig2 -ei5gl -e3imb -e3inf -e1ing -e5inst -eir4d -eit3e -ei3th -e5ity -e1j -e4jud -ej5udi -eki4n -ek4la -e1la -e4la. -e4lac -elan4d -el5ativ -e4law -elaxa4 -e3lea -el5ebra -5elec -e4led -el3ega -e5len -e4l1er -e1les -el2f -el2i -e3libe -e4l5ic. -el3ica -e3lier -el5igib -e5lim -e4l3ing -e3lio -e2lis -el5ish -e3liv3 -4ella -el4lab -ello4 -e5loc -el5og -el3op. -el2sh -el4ta -e5lud -el5ug -e4mac -e4mag -e5man -em5ana -em5b -e1me -e2mel -e4met -em3ica -emi4e -em5igra -em1in2 -em5ine -em3i3ni -e4mis -em5ish -e5miss -em3iz -5emniz -emo4g -emoni5o -em3pi -e4mul -em5ula -emu3n -e3my -en5amo -e4nant -ench4er -en3dic -e5nea -e5nee -en3em -en5ero -en5esi -en5est -en3etr -e3new -en5ics -e5nie -e5nil -e3nio -en3ish -en3it -e5niu -5eniz -4enn -4eno -eno4g -e4nos -en3ov -en4sw -ent5age -4enthes -en3ua -en5uf -e3ny. -4en3z -e5of -eo2g -e4oi4 -e3ol -eop3ar -e1or -eo3re -eo5rol -eos4 -e4ot -eo4to -e5out -e5ow -e2pa -e3pai -ep5anc -e5pel -e3pent -ep5etitio -ephe4 -e4pli -e1po -e4prec -ep5reca -e4pred -ep3reh -e3pro -e4prob -ep4sh -ep5ti5b -e4put -ep5uta -e1q -equi3l -e4q3ui3s -er1a -era4b -4erand -er3ar -4erati. -2erb -er4bl -er3ch -er4che -2ere. -e3real -ere5co -ere3in -er5el. -er3emo -er5ena -er5ence -4erene -er3ent -ere4q -er5ess -er3est -eret4 -er1h -er1i -e1ria4 -5erick -e3rien -eri4er -er3ine -e1rio -4erit -er4iu -eri4v -e4riva -er3m4 -er4nis -4ernit -5erniz -er3no -2ero -er5ob -e5roc -ero4r -er1ou -er1s -er3set -ert3er -4ertl -er3tw -4eru -eru4t -5erwau -e1s4a -e4sage. -e4sages -es2c -e2sca -es5can -e3scr -es5cu -e1s2e -e2sec -es5ecr -es5enc -e4sert. -e4serts -e4serva -4esh -e3sha -esh5en -e1si -e2sic -e2sid -es5iden -es5igna -e2s5im -es4i4n -esis4te -esi4u -e5skin -es4mi -e2sol -es3olu -e2son -es5ona -e1sp -es3per -es5pira -es4pre -2ess -es4si4b -estan4 -es3tig -es5tim -4es2to -e3ston -2estr -e5stro -estruc5 -e2sur -es5urr -es4w -eta4b -eten4d -e3teo -ethod3 -et1ic -e5tide -etin4 -eti4no -e5tir -e5titio -et5itiv -4etn -et5ona -e3tra -e3tre -et3ric -et5rif -et3rog -et5ros -et3ua -et5ym -et5z -4eu -e5un -e3up -eu3ro -eus4 -eute4 -euti5l -eu5tr -eva2p5 -e2vas -ev5ast -e5vea -ev3ell -evel3o -e5veng -even4i -ev1er -e5verb -e1vi -ev3id -evi4l -e4vin -evi4v -e5voc -e5vu -e1wa -e4wag -e5wee -e3wh -ewil5 -ew3ing -e3wit -1exp -5eyc -5eye. -eys4 -1fa -fa3bl -fab3r -fa4ce -4fag -fain4 -fall5e -4fa4ma -fam5is -5far -far5th -fa3ta -fa3the -4fato -fault5 -4f5b -4fd -4fe. -feas4 -feath3 -fe4b -4feca -5fect -2fed -fe3li -fe4mo -fen2d -fend5e -fer1 -5ferr -fev4 -4f1f -f4fes -f4fie -f5fin. -f2f5is -f4fly -f2fy -4fh -1fi -fi3a -2f3ic. -4f3ical -f3ican -4ficate -f3icen -fi3cer -fic4i -5ficia -5ficie -4fics -fi3cu -fi5del -fight5 -fil5i -fill5in -4fily -2fin -5fina -fin2d5 -fi2ne -f1in3g -fin4n -fis4ti -f4l2 -f5less -flin4 -flo3re -f2ly5 -4fm -4fn -1fo -5fon -fon4de -fon4t -fo2r -fo5rat -for5ay -fore5t -for4i -fort5a -fos5 -4f5p -fra4t -f5rea -fres5c -fri2 -fril4 -frol5 -2f3s -2ft -f4to -f2ty -3fu -fu5el -4fug -fu4min -fu5ne -fu3ri -fusi4 -fus4s -4futa -1fy -1ga -gaf4 -5gal. -3gali -ga3lo -2gam -ga5met -g5amo -gan5is -ga3niz -gani5za -4gano -gar5n4 -gass4 -gath3 -4gativ -4gaz -g3b -gd4 -2ge. -2ged -geez4 -gel4in -ge5lis -ge5liz -4gely -1gen -ge4nat -ge5niz -4geno -4geny -1geo -ge3om -g4ery -5gesi -geth5 -4geto -ge4ty -ge4v -4g1g2 -g2ge -g3ger -gglu5 -ggo4 -gh3in -gh5out -gh4to -5gi. -1gi4a -gia5r -g1ic -5gicia -g4ico -gien5 -5gies. -gil4 -g3imen -3g4in. -gin5ge -5g4ins -5gio -3gir -gir4l -g3isl -gi4u -5giv -3giz -gl2 -gla4 -glad5i -5glas -1gle -gli4b -g3lig -3glo -glo3r -g1m -g4my -gn4a -g4na. -gnet4t -g1ni -g2nin -g4nio -g1no -g4non -1go -3go. -gob5 -5goe -3g4o4g -go3is -gon2 -4g3o3na -gondo5 -go3ni -5goo -go5riz -gor5ou -5gos. -gov1 -g3p -1gr -4grada -g4rai -gran2 -5graph. -g5rapher -5graphic -4graphy -4gray -gre4n -4gress. -4grit -g4ro -gruf4 -gs2 -g5ste -gth3 -gu4a -3guard -2gue -5gui5t -3gun -3gus -4gu4t -g3w -1gy -2g5y3n -gy5ra -h3ab4l -hach4 -hae4m -hae4t -h5agu -ha3la -hala3m -ha4m -han4ci -han4cy -5hand. -han4g -hang5er -hang5o -h5a5niz -han4k -han4te -hap3l -hap5t -ha3ran -ha5ras -har2d -hard3e -har4le -harp5en -har5ter -has5s -haun4 -5haz -haz3a -h1b -1head -3hear -he4can -h5ecat -h4ed -he5do5 -he3l4i -hel4lis -hel4ly -h5elo -hem4p -he2n -hena4 -hen5at -heo5r -hep5 -h4era -hera3p -her4ba -here5a -h3ern -h5erou -h3ery -h1es -he2s5p -he4t -het4ed -heu4 -h1f -h1h -hi5an -hi4co -high5 -h4il2 -himer4 -h4ina -hion4e -hi4p -hir4l -hi3ro -hir4p -hir4r -his3el -his4s -hith5er -hi2v -4hk -4h1l4 -hlan4 -h2lo -hlo3ri -4h1m -hmet4 -2h1n -h5odiz -h5ods -ho4g -hoge4 -hol5ar -3hol4e -ho4ma -home3 -hon4a -ho5ny -3hood -hoon4 -hor5at -ho5ris -hort3e -ho5ru -hos4e -ho5sen -hos1p -1hous -house3 -hov5el -4h5p -4hr4 -hree5 -hro5niz -hro3po -4h1s2 -h4sh -h4tar -ht1en -ht5es -h4ty -hu4g -hu4min -hun5ke -hun4t -hus3t4 -hu4t -h1w -h4wart -hy3pe -hy3ph -hy2s -2i1a -i2al -iam4 -iam5ete -i2an -4ianc -ian3i -4ian4t -ia5pe -iass4 -i4ativ -ia4tric -i4atu -ibe4 -ib3era -ib5ert -ib5ia -ib3in -ib5it. -ib5ite -i1bl -ib3li -i5bo -i1br -i2b5ri -i5bun -4icam -5icap -4icar -i4car. -i4cara -icas5 -i4cay -iccu4 -4iceo -4ich -2ici -i5cid -ic5ina -i2cip -ic3ipa -i4cly -i2c5oc -4i1cr -5icra -i4cry -ic4te -ictu2 -ic4t3ua -ic3ula -ic4um -ic5uo -i3cur -2id -i4dai -id5anc -id5d -ide3al -ide4s -i2di -id5ian -idi4ar -i5die -id3io -idi5ou -id1it -id5iu -i3dle -i4dom -id3ow -i4dr -i2du -id5uo -2ie4 -ied4e -5ie5ga -ield3 -ien5a4 -ien4e -i5enn -i3enti -i1er. -i3esc -i1est -i3et -4if. -if5ero -iff5en -if4fr -4ific. -i3fie -i3fl -4ift -2ig -iga5b -ig3era -ight3i -4igi -i3gib -ig3il -ig3in -ig3it -i4g4l -i2go -ig3or -ig5ot -i5gre -igu5i -ig1ur -i3h -4i5i4 -i3j -4ik -i1la -il3a4b -i4lade -i2l5am -ila5ra -i3leg -il1er -ilev4 -il5f -il1i -il3ia -il2ib -il3io -il4ist -2ilit -il2iz -ill5ab -4iln -il3oq -il4ty -il5ur -il3v -i4mag -im3age -ima5ry -imenta5r -4imet -im1i -im5ida -imi5le -i5mini -4imit -im4ni -i3mon -i2mu -im3ula -2in. -i4n3au -4inav -incel4 -in3cer -4ind -in5dling -2ine -i3nee -iner4ar -i5ness -4inga -4inge -in5gen -4ingi -in5gling -4ingo -4ingu -2ini -i5ni. -i4nia -in3io -in1is -i5nite. -5initio -in3ity -4ink -4inl -2inn -2i1no -i4no4c -ino4s -i4not -2ins -in3se -insur5a -2int. -2in4th -in1u -i5nus -4iny -2io -4io. -ioge4 -io2gr -i1ol -io4m -ion3at -ion4ery -ion3i -io5ph -ior3i -i4os -io5th -i5oti -io4to -i4our -2ip -ipe4 -iphras4 -ip3i -ip4ic -ip4re4 -ip3ul -i3qua -iq5uef -iq3uid -iq3ui3t -4ir -i1ra -ira4b -i4rac -ird5e -ire4de -i4ref -i4rel4 -i4res -ir5gi -ir1i -iri5de -ir4is -iri3tu -5i5r2iz -ir4min -iro4g -5iron. -ir5ul -2is. -is5ag -is3ar -isas5 -2is1c -is3ch -4ise -is3er -3isf -is5han -is3hon -ish5op -is3ib -isi4d -i5sis -is5itiv -4is4k -islan4 -4isms -i2so -iso5mer -is1p -is2pi -is4py -4is1s -is4sal -issen4 -is4ses -is4ta. -is1te -is1ti -ist4ly -4istral -i2su -is5us -4ita. -ita4bi -i4tag -4ita5m -i3tan -i3tat -2ite -it3era -i5teri -it4es -2ith -i1ti -4itia -4i2tic -it3ica -5i5tick -it3ig -it5ill -i2tim -2itio -4itis -i4tism -i2t5o5m -4iton -i4tram -it5ry -4itt -it3uat -i5tud -it3ul -4itz. -i1u -2iv -iv3ell -iv3en. -i4v3er. -i4vers. -iv5il. -iv5io -iv1it -i5vore -iv3o3ro -i4v3ot -4i5w -ix4o -4iy -4izar -izi4 -5izont -5ja -jac4q -ja4p -1je -jer5s -4jestie -4jesty -jew3 -jo4p -5judg -3ka. -k3ab -k5ag -kais4 -kal4 -k1b -k2ed -1kee -ke4g -ke5li -k3en4d -k1er -kes4 -k3est. -ke4ty -k3f -kh4 -k1i -5ki. -5k2ic -k4ill -kilo5 -k4im -k4in. -kin4de -k5iness -kin4g -ki4p -kis4 -k5ish -kk4 -k1l -4kley -4kly -k1m -k5nes -1k2no -ko5r -kosh4 -k3ou -kro5n -4k1s2 -k4sc -ks4l -k4sy -k5t -k1w -lab3ic -l4abo -laci4 -l4ade -la3dy -lag4n -lam3o -3land -lan4dl -lan5et -lan4te -lar4g -lar3i -las4e -la5tan -4lateli -4lativ -4lav -la4v4a -2l1b -lbin4 -4l1c2 -lce4 -l3ci -2ld -l2de -ld4ere -ld4eri -ldi4 -ld5is -l3dr -l4dri -le2a -le4bi -left5 -5leg. -5legg -le4mat -lem5atic -4len. -3lenc -5lene. -1lent -le3ph -le4pr -lera5b -ler4e -3lerg -3l4eri -l4ero -les2 -le5sco -5lesq -3less -5less. -l3eva -lev4er. -lev4era -lev4ers -3ley -4leye -2lf -l5fr -4l1g4 -l5ga -lgar3 -l4ges -lgo3 -2l3h -li4ag -li2am -liar5iz -li4as -li4ato -li5bi -5licio -li4cor -4lics -4lict. -l4icu -l3icy -l3ida -lid5er -3lidi -lif3er -l4iff -li4fl -5ligate -3ligh -li4gra -3lik -4l4i4l -lim4bl -lim3i -li4mo -l4im4p -l4ina -1l4ine -lin3ea -lin3i -link5er -li5og -4l4iq -lis4p -l1it -l2it. -5litica -l5i5tics -liv3er -l1iz -4lj -lka3 -l3kal -lka4t -l1l -l4law -l2le -l5lea -l3lec -l3leg -l3lel -l3le4n -l3le4t -ll2i -l2lin4 -l5lina -ll4o -lloqui5 -ll5out -l5low -2lm -l5met -lm3ing -l4mod -lmon4 -2l1n2 -3lo. -lob5al -lo4ci -4lof -3logic -l5ogo -3logu -lom3er -5long -lon4i -l3o3niz -lood5 -5lope. -lop3i -l3opm -lora4 -lo4rato -lo5rie -lor5ou -5los. -los5et -5losophiz -5losophy -los4t -lo4ta -loun5d -2lout -4lov -2lp -lpa5b -l3pha -l5phi -lp5ing -l3pit -l4pl -l5pr -4l1r -2l1s2 -l4sc -l2se -l4sie -4lt -lt5ag -ltane5 -l1te -lten4 -ltera4 -lth3i -l5ties. -ltis4 -l1tr -ltu2 -ltur3a -lu5a -lu3br -luch4 -lu3ci -lu3en -luf4 -lu5id -lu4ma -5lumi -l5umn. -5lumnia -lu3o -luo3r -4lup -luss4 -lus3te -1lut -l5ven -l5vet4 -2l1w -1ly -4lya -4lyb -ly5me -ly3no -2lys4 -l5yse -1ma -2mab -ma2ca -ma5chine -ma4cl -mag5in -5magn -2mah -maid5 -4mald -ma3lig -ma5lin -mal4li -mal4ty -5mania -man5is -man3iz -4map -ma5rine. -ma5riz -mar4ly -mar3v -ma5sce -mas4e -mas1t -5mate -math3 -ma3tis -4matiza -4m1b -mba4t5 -m5bil -m4b3ing -mbi4v -4m5c -4me. -2med -4med. -5media -me3die -m5e5dy -me2g -mel5on -mel4t -me2m -mem1o3 -1men -men4a -men5ac -men4de -4mene -men4i -mens4 -mensu5 -3ment -men4te -me5on -m5ersa -2mes -3mesti -me4ta -met3al -me1te -me5thi -m4etr -5metric -me5trie -me3try -me4v -4m1f -2mh -5mi. -mi3a -mid4a -mid4g -mig4 -3milia -m5i5lie -m4ill -min4a -3mind -m5inee -m4ingl -min5gli -m5ingly -min4t -m4inu -miot4 -m2is -mis4er. -mis5l -mis4ti -m5istry -4mith -m2iz -4mk -4m1l -m1m -mma5ry -4m1n -mn4a -m4nin -mn4o -1mo -4mocr -5mocratiz -mo2d1 -mo4go -mois2 -moi5se -4mok -mo5lest -mo3me -mon5et -mon5ge -moni3a -mon4ism -mon4ist -mo3niz -monol4 -mo3ny. -mo2r -4mora. -mos2 -mo5sey -mo3sp -moth3 -m5ouf -3mous -mo2v -4m1p -mpara5 -mpa5rab -mpar5i -m3pet -mphas4 -m2pi -mpi4a -mp5ies -m4p1in -m5pir -mp5is -mpo3ri -mpos5ite -m4pous -mpov5 -mp4tr -m2py -4m3r -4m1s2 -m4sh -m5si -4mt -1mu -mula5r4 -5mult -multi3 -3mum -mun2 -4mup -mu4u -4mw -1na -2n1a2b -n4abu -4nac. -na4ca -n5act -nag5er. -nak4 -na4li -na5lia -4nalt -na5mit -n2an -nanci4 -nan4it -nank4 -nar3c -4nare -nar3i -nar4l -n5arm -n4as -nas4c -nas5ti -n2at -na3tal -nato5miz -n2au -nau3se -3naut -nav4e -4n1b4 -ncar5 -n4ces. -n3cha -n5cheo -n5chil -n3chis -nc1in -nc4it -ncour5a -n1cr -n1cu -n4dai -n5dan -n1de -nd5est. -ndi4b -n5d2if -n1dit -n3diz -n5duc -ndu4r -nd2we -2ne. -n3ear -ne2b -neb3u -ne2c -5neck -2ned -ne4gat -neg5ativ -5nege -ne4la -nel5iz -ne5mi -ne4mo -1nen -4nene -3neo -ne4po -ne2q -n1er -nera5b -n4erar -n2ere -n4er5i -ner4r -1nes -2nes. -4nesp -2nest -4nesw -3netic -ne4v -n5eve -ne4w -n3f -n4gab -n3gel -nge4n4e -n5gere -n3geri -ng5ha -n3gib -ng1in -n5git -n4gla -ngov4 -ng5sh -n1gu -n4gum -n2gy -4n1h4 -nha4 -nhab3 -nhe4 -3n4ia -ni3an -ni4ap -ni3ba -ni4bl -ni4d -ni5di -ni4er -ni2fi -ni5ficat -n5igr -nik4 -n1im -ni3miz -n1in -5nine. -nin4g -ni4o -5nis. -nis4ta -n2it -n4ith -3nitio -n3itor -ni3tr -n1j -4nk2 -n5kero -n3ket -nk3in -n1kl -4n1l -n5m -nme4 -nmet4 -4n1n2 -nne4 -nni3al -nni4v -nob4l -no3ble -n5ocl -4n3o2d -3noe -4nog -noge4 -nois5i -no5l4i -5nologis -3nomic -n5o5miz -no4mo -no3my -no4n -non4ag -non5i -n5oniz -4nop -5nop5o5li -nor5ab -no4rary -4nosc -nos4e -nos5t -no5ta -1nou -3noun -nov3el3 -nowl3 -n1p4 -npi4 -npre4c -n1q -n1r -nru4 -2n1s2 -ns5ab -nsati4 -ns4c -n2se -n4s3es -nsid1 -nsig4 -n2sl -ns3m -n4soc -ns4pe -n5spi -nsta5bl -n1t -nta4b -nter3s -nt2i -n5tib -nti4er -nti2f -n3tine -n4t3ing -nti4p -ntrol5li -nt4s -ntu3me -nu1a -nu4d -nu5en -nuf4fe -n3uin -3nu3it -n4um -nu1me -n5umi -3nu4n -n3uo -nu3tr -n1v2 -n1w4 -nym4 -nyp4 -4nz -n3za -4oa -oad3 -o5a5les -oard3 -oas4e -oast5e -oat5i -ob3a3b -o5bar -obe4l -o1bi -o2bin -ob5ing -o3br -ob3ul -o1ce -och4 -o3chet -ocif3 -o4cil -o4clam -o4cod -oc3rac -oc5ratiz -ocre3 -5ocrit -octor5a -oc3ula -o5cure -od5ded -od3ic -odi3o -o2do4 -odor3 -od5uct. -od5ucts -o4el -o5eng -o3er -oe4ta -o3ev -o2fi -of5ite -ofit4t -o2g5a5r -og5ativ -o4gato -o1ge -o5gene -o5geo -o4ger -o3gie -1o1gis -og3it -o4gl -o5g2ly -3ogniz -o4gro -ogu5i -1ogy -2ogyn -o1h2 -ohab5 -oi2 -oic3es -oi3der -oiff4 -oig4 -oi5let -o3ing -oint5er -o5ism -oi5son -oist5en -oi3ter -o5j -2ok -o3ken -ok5ie -o1la -o4lan -olass4 -ol2d -old1e -ol3er -o3lesc -o3let -ol4fi -ol2i -o3lia -o3lice -ol5id. -o3li4f -o5lil -ol3ing -o5lio -o5lis. -ol3ish -o5lite -o5litio -o5liv -olli4e -ol5ogiz -olo4r -ol5pl -ol2t -ol3ub -ol3ume -ol3un -o5lus -ol2v -o2ly -om5ah -oma5l -om5atiz -om2be -om4bl -o2me -om3ena -om5erse -o4met -om5etry -o3mia -om3ic. -om3ica -o5mid -om1in -o5mini -5ommend -omo4ge -o4mon -om3pi -ompro5 -o2n -on1a -on4ac -o3nan -on1c -3oncil -2ond -on5do -o3nen -on5est -on4gu -on1ic -o3nio -on1is -o5niu -on3key -on4odi -on3omy -on3s -onspi4 -onspir5a -onsu4 -onten4 -on3t4i -ontif5 -on5um -onva5 -oo2 -ood5e -ood5i -oo4k -oop3i -o3ord -oost5 -o2pa -ope5d -op1er -3opera -4operag -2oph -o5phan -o5pher -op3ing -o3pit -o5pon -o4posi -o1pr -op1u -opy5 -o1q -o1ra -o5ra. -o4r3ag -or5aliz -or5ange -ore5a -o5real -or3ei -ore5sh -or5est. -orew4 -or4gu -4o5ria -or3ica -o5ril -or1in -o1rio -or3ity -o3riu -or2mi -orn2e -o5rof -or3oug -or5pe -3orrh -or4se -ors5en -orst4 -or3thi -or3thy -or4ty -o5rum -o1ry -os3al -os2c -os4ce -o3scop -4oscopi -o5scr -os4i4e -os5itiv -os3ito -os3ity -osi4u -os4l -o2so -os4pa -os4po -os2ta -o5stati -os5til -os5tit -o4tan -otele4g -ot3er. -ot5ers -o4tes -4oth -oth5esi -oth3i4 -ot3ic. -ot5ica -o3tice -o3tif -o3tis -oto5s -ou2 -ou3bl -ouch5i -ou5et -ou4l -ounc5er -oun2d -ou5v -ov4en -over4ne -over3s -ov4ert -o3vis -oviti4 -o5v4ol -ow3der -ow3el -ow5est -ow1i -own5i -o4wo -oy1a -1pa -pa4ca -pa4ce -pac4t -p4ad -5pagan -p3agat -p4ai -pain4 -p4al -pan4a -pan3el -pan4ty -pa3ny -pa1p -pa4pu -para5bl -par5age -par5di -3pare -par5el -p4a4ri -par4is -pa2te -pa5ter -5pathic -pa5thy -pa4tric -pav4 -3pay -4p1b -pd4 -4pe. -3pe4a -pear4l -pe2c -2p2ed -3pede -3pedi -pedia4 -ped4ic -p4ee -pee4d -pek4 -pe4la -peli4e -pe4nan -p4enc -pen4th -pe5on -p4era. -pera5bl -p4erag -p4eri -peri5st -per4mal -perme5 -p4ern -per3o -per3ti -pe5ru -per1v -pe2t -pe5ten -pe5tiz -4pf -4pg -4ph. -phar5i -phe3no -ph4er -ph4es. -ph1ic -5phie -ph5ing -5phisti -3phiz -ph2l -3phob -3phone -5phoni -pho4r -4phs -ph3t -5phu -1phy -pi3a -pian4 -pi4cie -pi4cy -p4id -p5ida -pi3de -5pidi -3piec -pi3en -pi4grap -pi3lo -pi2n -p4in. -pind4 -p4ino -3pi1o -pion4 -p3ith -pi5tha -pi2tu -2p3k2 -1p2l2 -3plan -plas5t -pli3a -pli5er -4plig -pli4n -ploi4 -plu4m -plum4b -4p1m -2p3n -po4c -5pod. -po5em -po3et5 -5po4g -poin2 -5point -poly5t -po4ni -po4p -1p4or -po4ry -1pos -pos1s -p4ot -po4ta -5poun -4p1p -ppa5ra -p2pe -p4ped -p5pel -p3pen -p3per -p3pet -ppo5site -pr2 -pray4e -5preci -pre5co -pre3em -pref5ac -pre4la -pre3r -p3rese -3press -pre5ten -pre3v -5pri4e -prin4t3 -pri4s -pris3o -p3roca -prof5it -pro3l -pros3e -pro1t -2p1s2 -p2se -ps4h -p4sib -2p1t -pt5a4b -p2te -p2th -pti3m -ptu4r -p4tw -pub3 -pue4 -puf4 -pul3c -pu4m -pu2n -pur4r -5pus -pu2t -5pute -put3er -pu3tr -put4ted -put4tin -p3w -qu2 -qua5v -2que. -3quer -3quet -2rab -ra3bi -rach4e -r5acl -raf5fi -raf4t -r2ai -ra4lo -ram3et -r2ami -rane5o -ran4ge -r4ani -ra5no -rap3er -3raphy -rar5c -rare4 -rar5ef -4raril -r2as -ration4 -rau4t -ra5vai -rav3el -ra5zie -r1b -r4bab -r4bag -rbi2 -rbi4f -r2bin -r5bine -rb5ing. -rb4o -r1c -r2ce -rcen4 -r3cha -rch4er -r4ci4b -rc4it -rcum3 -r4dal -rd2i -rdi4a -rdi4er -rdin4 -rd3ing -2re. -re1al -re3an -re5arr -5reav -re4aw -r5ebrat -rec5oll -rec5ompe -re4cre -2r2ed -re1de -re3dis -red5it -re4fac -re2fe -re5fer. -re3fi -re4fy -reg3is -re5it -re1li -re5lu -r4en4ta -ren4te -re1o -re5pin -re4posi -re1pu -r1er4 -r4eri -rero4 -re5ru -r4es. -re4spi -ress5ib -res2t -re5stal -re3str -re4ter -re4ti4z -re3tri -reu2 -re5uti -rev2 -re4val -rev3el -r5ev5er. -re5vers -re5vert -re5vil -rev5olu -re4wh -r1f -rfu4 -r4fy -rg2 -rg3er -r3get -r3gic -rgi4n -rg3ing -r5gis -r5git -r1gl -rgo4n -r3gu -rh4 -4rh. -4rhal -ri3a -ria4b -ri4ag -r4ib -rib3a -ric5as -r4ice -4rici -5ricid -ri4cie -r4ico -rid5er -ri3enc -ri3ent -ri1er -ri5et -rig5an -5rigi -ril3iz -5riman -rim5i -3rimo -rim4pe -r2ina -5rina. -rin4d -rin4e -rin4g -ri1o -5riph -riph5e -ri2pl -rip5lic -r4iq -r2is -r4is. -ris4c -r3ish -ris4p -ri3ta3b -r5ited. -rit5er. -rit5ers -rit3ic -ri2tu -rit5ur -riv5el -riv3et -riv3i -r3j -r3ket -rk4le -rk4lin -r1l -rle4 -r2led -r4lig -r4lis -rl5ish -r3lo4 -r1m -rma5c -r2me -r3men -rm5ers -rm3ing -r4ming. -r4mio -r3mit -r4my -r4nar -r3nel -r4ner -r5net -r3ney -r5nic -r1nis4 -r3nit -r3niv -rno4 -r4nou -r3nu -rob3l -r2oc -ro3cr -ro4e -ro1fe -ro5fil -rok2 -ro5ker -5role. -rom5ete -rom4i -rom4p -ron4al -ron4e -ro5n4is -ron4ta -1room -5root -ro3pel -rop3ic -ror3i -ro5ro -ros5per -ros4s -ro4the -ro4ty -ro4va -rov5el -rox5 -r1p -r4pea -r5pent -rp5er. -r3pet -rp4h4 -rp3ing -r3po -r1r4 -rre4c -rre4f -r4reo -rre4st -rri4o -rri4v -rron4 -rros4 -rrys4 -4rs2 -r1sa -rsa5ti -rs4c -r2se -r3sec -rse4cr -rs5er. -rs3es -rse5v2 -r1sh -r5sha -r1si -r4si4b -rson3 -r1sp -r5sw -rtach4 -r4tag -r3teb -rten4d -rte5o -r1ti -rt5ib -rti4d -r4tier -r3tig -rtil3i -rtil4l -r4tily -r4tist -r4tiv -r3tri -rtroph4 -rt4sh -ru3a -ru3e4l -ru3en -ru4gl -ru3in -rum3pl -ru2n -runk5 -run4ty -r5usc -ruti5n -rv4e -rvel4i -r3ven -rv5er. -r5vest -r3vey -r3vic -rvi4v -r3vo -r1w -ry4c -5rynge -ry3t -sa2 -2s1ab -5sack -sac3ri -s3act -5sai -salar4 -sal4m -sa5lo -sal4t -3sanc -san4de -s1ap -sa5ta -5sa3tio -sat3u -sau4 -sa5vor -5saw -4s5b -scan4t5 -sca4p -scav5 -s4ced -4scei -s4ces -sch2 -s4cho -3s4cie -5scin4d -scle5 -s4cli -scof4 -4scopy -scour5a -s1cu -4s5d -4se. -se4a -seas4 -sea5w -se2c3o -3sect -4s4ed -se4d4e -s5edl -se2g -seg3r -5sei -se1le -5self -5selv -4seme -se4mol -sen5at -4senc -sen4d -s5ened -sen5g -s5enin -4sentd -4sentl -sep3a3 -4s1er. -s4erl -ser4o -4servo -s1e4s -se5sh -ses5t -5se5um -5sev -sev3en -sew4i -5sex -4s3f -2s3g -s2h -2sh. -sh1er -5shev -sh1in -sh3io -3ship -shiv5 -sho4 -sh5old -shon3 -shor4 -short5 -4shw -si1b -s5icc -3side. -5sides -5sidi -si5diz -4signa -sil4e -4sily -2s1in -s2ina -5sine. -s3ing -1sio -5sion -sion5a -si2r -sir5a -1sis -3sitio -5siu -1siv -5siz -sk2 -4ske -s3ket -sk5ine -sk5ing -s1l2 -s3lat -s2le -slith5 -2s1m -s3ma -small3 -sman3 -smel4 -s5men -5smith -smol5d4 -s1n4 -1so -so4ce -soft3 -so4lab -sol3d2 -so3lic -5solv -3som -3s4on. -sona4 -son4g -s4op -5sophic -s5ophiz -s5ophy -sor5c -sor5d -4sov -so5vi -2spa -5spai -spa4n -spen4d -2s5peo -2sper -s2phe -3spher -spho5 -spil4 -sp5ing -4spio -s4ply -s4pon -spor4 -4spot -squal4l -s1r -2ss -s1sa -ssas3 -s2s5c -s3sel -s5seng -s4ses. -s5set -s1si -s4sie -ssi4er -ss5ily -s4sl -ss4li -s4sn -sspend4 -ss2t -ssur5a -ss5w -2st. -s2tag -s2tal -stam4i -5stand -s4ta4p -5stat. -s4ted -stern5i -s5tero -ste2w -stew5a -s3the -st2i -s4ti. -s5tia -s1tic -5stick -s4tie -s3tif -st3ing -5stir -s1tle -5stock -stom3a -5stone -s4top -3store -st4r -s4trad -5stratu -s4tray -s4trid -4stry -4st3w -s2ty -1su -su1al -su4b3 -su2g3 -su5is -suit3 -s4ul -su2m -sum3i -su2n -su2r -4sv -sw2 -4swo -s4y -4syc -3syl -syn5o -sy5rin -1ta -3ta. -2tab -ta5bles -5taboliz -4taci -ta5do -4taf4 -tai5lo -ta2l -ta5la -tal5en -tal3i -4talk -tal4lis -ta5log -ta5mo -tan4de -tanta3 -ta5per -ta5pl -tar4a -4tarc -4tare -ta3riz -tas4e -ta5sy -4tatic -ta4tur -taun4 -tav4 -2taw -tax4is -2t1b -4tc -t4ch -tch5et -4t1d -4te. -tead4i -4teat -tece4 -5tect -2t1ed -te5di -1tee -teg4 -te5ger -te5gi -3tel. -teli4 -5tels -te2ma2 -tem3at -3tenan -3tenc -3tend -4tenes -1tent -ten4tag -1teo -te4p -te5pe -ter3c -5ter3d -1teri -ter5ies -ter3is -teri5za -5ternit -ter5v -4tes. -4tess -t3ess. -teth5e -3teu -3tex -4tey -2t1f -4t1g -2th. -than4 -th2e -4thea -th3eas -the5at -the3is -3thet -th5ic. -th5ica -4thil -5think -4thl -th5ode -5thodic -4thoo -thor5it -tho5riz -2ths -1tia -ti4ab -ti4ato -2ti2b -4tick -t4ico -t4ic1u -5tidi -3tien -tif2 -ti5fy -2tig -5tigu -till5in -1tim -4timp -tim5ul -2t1in -t2ina -3tine. -3tini -1tio -ti5oc -tion5ee -5tiq -ti3sa -3tise -tis4m -ti5so -tis4p -5tistica -ti3tl -ti4u -1tiv -tiv4a -1tiz -ti3za -ti3zen -2tl -t5la -tlan4 -3tle. -3tled -3tles. -t5let. -t5lo -4t1m -tme4 -2t1n2 -1to -to3b -to5crat -4todo -2tof -to2gr -to5ic -to2ma -tom4b -to3my -ton4ali -to3nat -4tono -4tony -to2ra -to3rie -tor5iz -tos2 -5tour -4tout -to3war -4t1p -1tra -tra3b -tra5ch -traci4 -trac4it -trac4te -tras4 -tra5ven -trav5es5 -tre5f -tre4m -trem5i -5tria -tri5ces -5tricia -4trics -2trim -tri4v -tro5mi -tron5i -4trony -tro5phe -tro3sp -tro3v -tru5i -trus4 -4t1s2 -t4sc -tsh4 -t4sw -4t3t2 -t4tes -t5to -ttu4 -1tu -tu1a -tu3ar -tu4bi -tud2 -4tue -4tuf4 -5tu3i -3tum -tu4nis -2t3up. -3ture -5turi -tur3is -tur5o -tu5ry -3tus -4tv -tw4 -4t1wa -twis4 -4two -1ty -4tya -2tyl -type3 -ty5ph -4tz -tz4e -4uab -uac4 -ua5na -uan4i -uar5ant -uar2d -uar3i -uar3t -u1at -uav4 -ub4e -u4bel -u3ber -u4bero -u1b4i -u4b5ing -u3ble. -u3ca -uci4b -uc4it -ucle3 -u3cr -u3cu -u4cy -ud5d -ud3er -ud5est -udev4 -u1dic -ud3ied -ud3ies -ud5is -u5dit -u4don -ud4si -u4du -u4ene -uens4 -uen4te -uer4il -3ufa -u3fl -ugh3en -ug5in -2ui2 -uil5iz -ui4n -u1ing -uir4m -uita4 -uiv3 -uiv4er. -u5j -4uk -u1la -ula5b -u5lati -ulch4 -5ulche -ul3der -ul4e -u1len -ul4gi -ul2i -u5lia -ul3ing -ul5ish -ul4lar -ul4li4b -ul4lis -4ul3m -u1l4o -4uls -uls5es -ul1ti -ultra3 -4ultu -u3lu -ul5ul -ul5v -um5ab -um4bi -um4bly -u1mi -u4m3ing -umor5o -um2p -unat4 -u2ne -un4er -u1ni -un4im -u2nin -un5ish -uni3v -un3s4 -un4sw -unt3ab -un4ter. -un4tes -unu4 -un5y -un5z -u4ors -u5os -u1ou -u1pe -uper5s -u5pia -up3ing -u3pl -up3p -upport5 -upt5ib -uptu4 -u1ra -4ura. -u4rag -u4ras -ur4be -urc4 -ur1d -ure5at -ur4fer -ur4fr -u3rif -uri4fic -ur1in -u3rio -u1rit -ur3iz -ur2l -url5ing. -ur4no -uros4 -ur4pe -ur4pi -urs5er -ur5tes -ur3the -urti4 -ur4tie -u3ru -2us -u5sad -u5san -us4ap -usc2 -us3ci -use5a -u5sia -u3sic -us4lin -us1p -us5sl -us5tere -us1tr -u2su -usur4 -uta4b -u3tat -4ute. -4utel -4uten -uten4i -4u1t2i -uti5liz -u3tine -ut3ing -ution5a -u4tis -5u5tiz -u4t1l -ut5of -uto5g -uto5matic -u5ton -u4tou -uts4 -u3u -uu4m -u1v2 -uxu3 -uz4e -1va -5va. -2v1a4b -vac5il -vac3u -vag4 -va4ge -va5lie -val5o -val1u -va5mo -va5niz -va5pi -var5ied -3vat -4ve. -4ved -veg3 -v3el. -vel3li -ve4lo -v4ely -ven3om -v5enue -v4erd -5vere. -v4erel -v3eren -ver5enc -v4eres -ver3ie -vermi4n -3verse -ver3th -v4e2s -4ves. -ves4te -ve4te -vet3er -ve4ty -vi5ali -5vian -5vide. -5vided -4v3iden -5vides -5vidi -v3if -vi5gn -vik4 -2vil -5vilit -v3i3liz -v1in -4vi4na -v2inc -vin5d -4ving -vio3l -v3io4r -vi1ou -vi4p -vi5ro -vis3it -vi3so -vi3su -4viti -vit3r -4vity -3viv -5vo. -voi4 -3vok -vo4la -v5ole -5volt -3volv -vom5i -vor5ab -vori4 -vo4ry -vo4ta -4votee -4vv4 -v4y -w5abl -2wac -wa5ger -wag5o -wait5 -w5al. -wam4 -war4t -was4t -wa1te -wa5ver -w1b -wea5rie -weath3 -wed4n -weet3 -wee5v -wel4l -w1er -west3 -w3ev -whi4 -wi2 -wil2 -will5in -win4de -win4g -wir4 -3wise -with3 -wiz5 -w4k -wl4es -wl3in -w4no -1wo2 -wom1 -wo5ven -w5p -wra4 -wri4 -writa4 -w3sh -ws4l -ws4pe -w5s4t -4wt -wy4 -x1a -xac5e -x4ago -xam3 -x4ap -xas5 -x3c2 -x1e -xe4cuto -x2ed -xer4i -xe5ro -x1h -xhi2 -xhil5 -xhu4 -x3i -xi5a -xi5c -xi5di -x4ime -xi5miz -x3o -x4ob -x3p -xpan4d -xpecto5 -xpe3d -x1t2 -x3ti -x1u -xu3a -xx4 -y5ac -3yar4 -y5at -y1b -y1c -y2ce -yc5er -y3ch -ych4e -ycom4 -ycot4 -y1d -y5ee -y1er -y4erf -yes4 -ye4t -y5gi -4y3h -y1i -y3la -ylla5bl -y3lo -y5lu -ymbol5 -yme4 -ympa3 -yn3chr -yn5d -yn5g -yn5ic -5ynx -y1o4 -yo5d -y4o5g -yom4 -yo5net -y4ons -y4os -y4ped -yper5 -yp3i -y3po -y4poc -yp2ta -y5pu -yra5m -yr5ia -y3ro -yr4r -ys4c -y3s2e -ys3ica -ys3io -3ysis -y4so -yss4 -ys1t -ys3ta -ysur4 -y3thin -yt3ic -y1w -za1 -z5a2b -zar2 -4zb -2ze -ze4n -ze4p -z1er -ze3ro -zet4 -2z1i -z4il -z4is -5zl -4zm -1zo -zo4m -zo5ol -zte4 -4z1z2 -z4zy -} -\def\enhyph{\english}\def\ehyph{\english} -\endinput - diff --git a/macros/ec-plain/enhyphex.tex b/macros/ec-plain/enhyphex.tex deleted file mode 100644 index efc05018d4..0000000000 --- a/macros/ec-plain/enhyphex.tex +++ /dev/null @@ -1,29 +0,0 @@ -% Ascii 7 bits file -% File enhyphex.tex -% English hyphenation exception words. -\message{Enhyphex.tex English exception words.} -\hyphenation{ % Do NOT make any alterations to this list! --- DEK -as-so-ciate -as-so-ciates -dec-li-na-tion -oblig-a-tory -phil-an-thropic -present -presents -project -projects -reci-procity -re-cog-ni-zance -ref-or-ma-tion -ret-ri-bu-tion -ta-ble -} - -% additional exceptions (mjf) -\hyphenation{ -man-u-script -man-u-scripts -equi-sp-a-ced -} -\endinput - diff --git a/macros/ec-plain/eshyph.tex b/macros/ec-plain/eshyph.tex deleted file mode 100644 index f84bacfcf6..0000000000 --- a/macros/ec-plain/eshyph.tex +++ /dev/null @@ -1,114 +0,0 @@ -% File received from Mario Widel at University of Illinois at Chicago. -% Original author unclear. -\patterns{ -a1b a1c a1d a1f a1g a1h a1j a1k a1l a1m a1n - a1p a1q a1r a1s a1t a1v a1w a1x a1y a1z -e1b e1c e1d e1f e1g e1h e1j e1k e1l e1m e1n - e1p e1q e1r e1s e1t e1v e1w e1x e1y e1z -i1b i1c i1d i1f i1g i1h i1j i1k i1l i1m i1n - i1p i1q i1r i1s i1t i1v i1w i1x i1y i1z -o1b o1c o1d o1f o1g o1h o1j o1k o1l o1m o1n - o1p o1q o1r o1s o1t o1v o1w o1x o1y o1z -u1b u1c u1d u1f u1g u1h u1j u1k u1l u1m u1n - u1p u1q u1r u1s u1t u1v u1w u1x u1y u1z -n2s1t n2s1p n2s1c b2s1t b2s1c d2s1c -2b1b 2b1c 2b1d 2b1f 2b1g 2b1h 2b1j 2b1k 2b1m 2b1n - 2b1p 2b1q 2b1s 2b1t 2b1v 2b1w 2b1x 2b1y 2b1z -2c1b 2c1c 2c1d 2c1f 2c1g 2c1j 2c1k 2c1m 2c1n - 2c1p 2c1q 2c1s 2c1t 2c1v 2c1w 2c1x 2c1y 2c1z -2ch1t -2d1b 2d1c 2d1d 2d1f 2d1g 2d1h 2d1j 2d1k 2d1m 2d1n - 2d1p 2d1q 2d1s 2d1t 2d1v 2d1w 2d1x 2d1y 2d1z -2f1b 2f1c 2f1d 2f1f 2f1g 2f1h 2f1j 2f1k 2f1m 2f1n - 2f1p 2f1q 2f1s 2f1t 2f1v 2f1w 2f1x 2f1y 2f1z -2g1b 2g1c 2g1d 2g1f 2g1h 2g1j 2g1k 2g1m 2g1n - 2g1p 2g1q 2g1s 2g1t 2g1v 2g1w 2g1x 2g1y 2g1z -2j1b 2j1c 2j1d 2j1f 2j1g 2j1h 2j1l 2j1m 2j1n - 2j1p 2j1q 2j1r 2j1s 2j1t 2j1v 2j1w -2l1b 2l1c 2l1d 2l1f 2l1g 2l1h 2l1j 2l1k 2l1m 2l1n - 2l1p 2l1q 2l1r 2l1s 2l1t 2l1v 2l1w 2l1x 2l1y 2l1z -2m1b 2m1c 2m1d 2m1f 2m1g 2m1h 2m1j 2m1k 2m1l 2m1m 2m1n - 2m1p 2m1q 2m1r 2m1s 2m1t 2m1v 2m1w 2m1x 2m1y 2m1z -2n1b 2n1c 2n1d 2n1f 2n1g 2n1h 2n1j 2n1k 2n1l 2n1m 2n1n - 2n1p 2n1q 2n1r 2n1s 2n1t 2n1v 2n1w 2n1x 2n1y 2n1z -2p1b 2p1c 2p1d 2p1f 2p1g 2p1j 2p1k 2p1m 2p1n - 2p1p 2p1q 2p1s 2p1t 2p1v 2p1w 2p1x 2p1y 2p1z -2r1b 2r1c 2r1d 2r1f 2r1g 2r1h 2r1j 2r1k 2r1l 2r1m 2r1n - 2r1p 2r1q 2r1s 2r1t 2r1v 2r1w 2r1x 2r1y 2r1z -2s1b 2s1c 2s1d 2s1f 2s1g 2s1h 2s1j 2s1k 2s1l 2s1m 2s1n - 2s1p 2s1q 2s1r 2s1s 2s1t 2s1v 2s1w 2s1x 2s1y 2s1z -2t1b 2t1c 2t1d 2t1f 2t1g 2t1h 2t1j 2t1k 2t1m 2t1n - 2t1p 2t1q 2t1s 2t1t 2t1v 2t1w 2t1x 2t1y 2t1z -2x1b 2x1c 2x1d 2x1f 2x1g 2x1h 2x1j 2x1k 2x1l 2x1m 2x1n - 2x1p 2x1q 2x1r 2x1s 2x1t 2x1v 2x1w 2x1y 2x1z -2y1b 2y1c 2y1d 2y1f 2y1g 2y1h 2y1j 2y1k 2y1l 2y1m 2y1n - 2y1p 2y1q 2y1r 2y1s 2y1t 2y1v 2y1w 2y1x 2y1z -2z1b 2z1c 2z1d 2z1f 2z1g 2z1h 2z1j 2z1k 2z1l 2z1m 2z1n - 2z1p 2z1q 2z1r 2z1s 2z1t 2z1v 2z1w 2z1x -.m2n .p2s .p2t -.a2 .e2 .i2 .o2 .u2 -2a. 2b. 2c. 2d. 2e. 2f. 2g. 2h. 2i. 2j. 2k. 2l. 2m. - 2n. 2o. 2p. 2r. 2s. 2t. 2u. 2v. 2w. 2x. 2y. 2z. -2caca. 2cacas. -2caga. 2cagas. -2cola. 2colas. -2culo. 2culos. -2cular. -2loco. 2locos. 2loca. 2locas. -2moco. 2mocos. -2mula. 2mulas. -2pedo. 2pedos. 2peda. 2pedas. -2pito. 2pitos. -2puto. 2putos. 2puta. 2putas. -.caca2 -a1a2 e1e2 i1i2 o1o2 u1u2 -.de2s1a2 .de2s1e2 .de2s1i2 .de2s1o2 .de2s1u2 -.in1a2 .in1e2 .in1i2 .in1o2 .in1u2 -.co1a2 .co1e2 .co1i2 .co1o2 .co1u2 -.re1a2 .re1e2 .re1i2 .re1o2 .re1u2 -de3s2ea -in2i3ci -} - -%.su2b1a2 .su2b1e2 .su2b1i2 .su2b1o2 .su2b1u2 - -\hyphenation{ -arz-obis-po -coi-to coa-hui-la -de-sa-lar -de-sa-li-na-do-ra -de-seo de-ser-tar -de-ser-tor -de-ser-ti-co -de-si-de-ra-tum -de-si-dia -de-si-dio-so -de-sier-to -de-sig-nar -de-sig-na-cion -de-sig-nio -de-so-la-dor -de-so-la-cion -de-sas-tre -hard-ware -ino-cuo -mi-cro-sco-pio -ohm-me-tro -pe-nin-su-la -post-o-pe-ra-to-rio -sacer-do-te -soft-ware -sub-acua-ti-co -sub-al-ge-bra -sub-al-pi-no -sub-a-rren-dar -sub-al-ter-no -sub-in-di-ce -sub-ins-pec-tor -sub-in-ten-den-te -sub-ur-ba-no -sub-u-ti-li-zar -tungs-te-no -} - -\endinput diff --git a/macros/ec-plain/exmi.mf b/macros/ec-plain/exmi.mf deleted file mode 100644 index c7fdc1bfd8..0000000000 --- a/macros/ec-plain/exmi.mf +++ /dev/null @@ -1,14 +0,0 @@ -% Computer Modern Math Italic 10 point -if unknown cmbase: input cmbase fi - -font_identifier:="EXMI"; font_size ###pt#; - -input dymi### ; - -input ecmathit ; % switch to the driver file - -input dybx### ; - -input ecbxmath ; - -end diff --git a/macros/ec-plain/exmi10.mf b/macros/ec-plain/exmi10.mf deleted file mode 100644 index 4d4506a6d0..0000000000 --- a/macros/ec-plain/exmi10.mf +++ /dev/null @@ -1,14 +0,0 @@ -% Computer Modern Math Italic 10 point -if unknown cmbase: input cmbase fi - -font_identifier:="EXMI"; font_size 10pt#; - -input dymi10 ; - -input ecmathit ; % switch to the driver file - -input dybx10 ; - -input ecbxmath ; - -end diff --git a/macros/ec-plain/exmi10.tfm b/macros/ec-plain/exmi10.tfm deleted file mode 100644 index 83e8cf5803..0000000000 Binary files a/macros/ec-plain/exmi10.tfm and /dev/null differ diff --git a/macros/ec-plain/exmi12.mf b/macros/ec-plain/exmi12.mf deleted file mode 100644 index 5b097b0685..0000000000 --- a/macros/ec-plain/exmi12.mf +++ /dev/null @@ -1,14 +0,0 @@ -% Computer Modern Math Italic 10 point -if unknown cmbase: input cmbase fi - -font_identifier:="EXMI"; font_size 12pt#; - -input dymi12 ; - -input ecmathit ; % switch to the driver file - -input dybx12 ; - -input ecbxmath ; - -end diff --git a/macros/ec-plain/exmi12.tfm b/macros/ec-plain/exmi12.tfm deleted file mode 100644 index 22d6adab78..0000000000 Binary files a/macros/ec-plain/exmi12.tfm and /dev/null differ diff --git a/macros/ec-plain/exmi5.mf b/macros/ec-plain/exmi5.mf deleted file mode 100644 index 179d35e15c..0000000000 --- a/macros/ec-plain/exmi5.mf +++ /dev/null @@ -1,14 +0,0 @@ -% Computer Modern Math Italic 10 point -if unknown cmbase: input cmbase fi - -font_identifier:="EXMI"; font_size 5pt#; - -input dymi5 ; - -input ecmathit ; % switch to the driver file - -input dybx5 ; - -input ecbxmath ; - -end diff --git a/macros/ec-plain/exmi5.tfm b/macros/ec-plain/exmi5.tfm deleted file mode 100644 index 86d355b82a..0000000000 Binary files a/macros/ec-plain/exmi5.tfm and /dev/null differ diff --git a/macros/ec-plain/exmi6.mf b/macros/ec-plain/exmi6.mf deleted file mode 100644 index bb91119739..0000000000 --- a/macros/ec-plain/exmi6.mf +++ /dev/null @@ -1,14 +0,0 @@ -% Computer Modern Math Italic 10 point -if unknown cmbase: input cmbase fi - -font_identifier:="EXMI"; font_size 6pt#; - -input dymi6 ; - -input ecmathit ; % switch to the driver file - -input dybx6 ; - -input ecbxmath ; - -end diff --git a/macros/ec-plain/exmi6.tfm b/macros/ec-plain/exmi6.tfm deleted file mode 100644 index a3c3eb1271..0000000000 Binary files a/macros/ec-plain/exmi6.tfm and /dev/null differ diff --git a/macros/ec-plain/exmi7.mf b/macros/ec-plain/exmi7.mf deleted file mode 100644 index 238b4dbe8b..0000000000 --- a/macros/ec-plain/exmi7.mf +++ /dev/null @@ -1,14 +0,0 @@ -% Computer Modern Math Italic 10 point -if unknown cmbase: input cmbase fi - -font_identifier:="EXMI"; font_size 7pt#; - -input dymi7 ; - -input ecmathit ; % switch to the driver file - -input dybx7 ; - -input ecbxmath ; - -end diff --git a/macros/ec-plain/exmi7.tfm b/macros/ec-plain/exmi7.tfm deleted file mode 100644 index 1bf9c053bc..0000000000 Binary files a/macros/ec-plain/exmi7.tfm and /dev/null differ diff --git a/macros/ec-plain/exmi8.mf b/macros/ec-plain/exmi8.mf deleted file mode 100644 index 8ffd90c684..0000000000 --- a/macros/ec-plain/exmi8.mf +++ /dev/null @@ -1,14 +0,0 @@ -% Computer Modern Math Italic 10 point -if unknown cmbase: input cmbase fi - -font_identifier:="EXMI"; font_size 8pt#; - -input dymi8 ; - -input ecmathit ; % switch to the driver file - -input dybx8 ; - -input ecbxmath ; - -end diff --git a/macros/ec-plain/exmi8.tfm b/macros/ec-plain/exmi8.tfm deleted file mode 100644 index 5fe39fb05b..0000000000 Binary files a/macros/ec-plain/exmi8.tfm and /dev/null differ diff --git a/macros/ec-plain/exmi9.mf b/macros/ec-plain/exmi9.mf deleted file mode 100644 index 04a3675896..0000000000 --- a/macros/ec-plain/exmi9.mf +++ /dev/null @@ -1,14 +0,0 @@ -% Computer Modern Math Italic 10 point -if unknown cmbase: input cmbase fi - -font_identifier:="EXMI"; font_size 9pt#; - -input dymi9 ; - -input ecmathit ; % switch to the driver file - -input dybx9 ; - -input ecbxmath ; - -end diff --git a/macros/ec-plain/exmi9.tfm b/macros/ec-plain/exmi9.tfm deleted file mode 100644 index 066657adc3..0000000000 Binary files a/macros/ec-plain/exmi9.tfm and /dev/null differ diff --git a/macros/ec-plain/f8hyph1.tex b/macros/ec-plain/f8hyph1.tex deleted file mode 100644 index cb19b8714f..0000000000 --- a/macros/ec-plain/f8hyph1.tex +++ /dev/null @@ -1,1332 +0,0 @@ -% f8hyph1.tex % French hyphenation patterns (8-bit T1 encoding) -\message{f8hyph1.tex french hyphenation patterns. 8-bit T1 encoding (V2.0) updated 31/05/2002 by D. Taupin} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% *BEFORE* using this file *PLEASE* run checksum on it: % -% checksum -v f8hyph.tex % -% to make sure that it hasn't been damaged. % -% Then if you notice anything wrong in french hyphenation please report to % -% Daniel Flipo and Bernard Gaulle at the email address: cesure-l@ens.fr % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% checksum = "57304 1329 2321 30022" -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%% The most famous good guys who worked hard to obtain something usable. -% Jacques Desarmenien, Universite de Strasbourg : -% - << how to run TeX in a French environment: hyphenation, fonts, -% typography. >> in Tugboat, 5 (1984) 91-102. and TeX85 conference -% - << La division par ordinateur des mots francais : -% application a TeX >> in TSI vol. 5 No 4, 1986 (C) AFCET- -% Gauthier-Villars -% Norman Buckle, UQAH (nb; many additions) -% Michael Ferguson, INRS-Telecommunications (mjf) June 1988 -% Justin Bur, Universite de Montreal (jbb; checked against original list) -% all patterns including apostrophe missing from nb list -% after that, GUTenberg and specially Daniel Flipo and Bernard Gaulle -% did their best effort to improve the list of patterns. -\begingroup -%%%%%%% Adaptation to T1 encoding by Yannis Haralambous : -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Villeneuve d'Ascq 10/7/91 -% unused \catcode(s) and \uccode(s) removed --bg 29/05/92 -% reset \catcode(s) to 11 (these might be active characters) --bg 14/10/92 -\catcode`\^^e0=11\lccode`\^^e0=`\^^e0 % \`a -\catcode`\^^e2=11\lccode`\^^e2=`\^^e2 % \^a -\catcode`\^^e7=11\lccode`\^^e7=`\^^e7 % \c{c} -\catcode`\^^e9=11\lccode`\^^e9=`\^^e9 % \'e -\catcode`\^^e8=11\lccode`\^^e8=`\^^e8 % \`e -\catcode`\^^ea=11\lccode`\^^ea=`\^^ea % \^e -\catcode`\^^eb=11\lccode`\^^eb=`\^^eb % \"e -\catcode`\^^ee=11\lccode`\^^ee=`\^^ee % \^\i{} -\catcode`\^^ef=11\lccode`\^^ef=`\^^ef % \"\i{} -\catcode`\^^f4=11\lccode`\^^f4=`\^^f4 % \^o -\catcode`\^^f6=11\lccode`\^^f6=`\^^f6 % \"o -\catcode`\^^fb=11\lccode`\^^fb=`\^^fb % \^u -\catcode`\^^f7=11\lccode`\^^f7=`\^^f7 % \oe{} -\lccode`\'=`\' -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% The following is the common part produced automatically from f7hyph.tex -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\patterns{ -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%* -2'2 -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%a -.a4 -'a4 -.^^e24 -'^^e24 -ab2h % df-bg 1998/02/07 for abhorrer - .ab3r^^e9a - 'ab3r^^e9a -ad2h % df-bg 1998/02/07 for adh\`esion & co - a1^^e82dre - .ae3s4ch - 'ae3s4ch - 1alcool - a2l1algi - .amino1a2c - 'amino1a2c - .ana3s4tr - 'ana3s4tr - 1a2nesth^^e9si - .anti1a2 - 'anti1a2 - .anti1e2 - 'anti1e2 - .anti1^^e92 - .anti2enne - 'anti2enne - 'anti1^^e92 - .anti1s2 - 'anti1s2 - .apo2s3ta - 'apo2s3ta - apo2s3tr - archi1^^e92pis - .as2ta - 'as2ta - a2s3tro -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%b -1ba -1b^^e2 - .bai2se3main % hyphen disappeared from french 5/2/94 -1be -1b^^e9 -1b^^e8 -1b^^ea -4be. -4bes. -2bent. % mute syllable: tombent (df) 22/02/94 -1bi -1b^^ee - .bi1a2c - .bi1a2t % like .tri1a2t for tri-athlon bg 12/27/93 - .bi1au - .bio1a2 - .bi2s1a2 - .bi1u2 -1b2l -4ble. -4bles. -2blent. % mute syllable: troublent (df) 28/02/94 -1bo -1b^^f4 -1b2r -4bre. -4bres. -2brent. % mute syllable: palabrent (df) 28/02/94 -1bu -1b^^fb -1by -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%c -1^^e7 -1ca -1c^^e2 -ca3ou3t2 % pour caoutchou... added 3/1/94 df-bg -1ce -1c^^e9 -1c^^e8 -1c^^ea -4ce. -4ces. -% words ending with -cent (df) 22/02/94 - 2cent. - ja3cent. - ac3cent. - ^^e93cent. - munifi3cent. - r^^e9ti3cent. -privatdo3cent. - inno3cent. - es3cent. - acquies4cent. - is3cent. - immis4cent. -% -.ch4 -1c2h -4ch. -2chb -4che. -4ches. -2chent. % mute syllable: touchent (df) 22/02/94 - .ch^^e82vre3feuille % hyphen disappeared from french 5/2/94 -2chg -ch2l -4chle. -4chles. - chlo2r3a2c - chlo2r3^^e92t -2chm -2chn -2chp -ch2r -4chre. -4chres. -2chs -2cht -2chw -1ci -1c^^ee - .ci2s1alp -1c2k -4ck. -2ckb -4cke. -4ckes. -2ckent. % mute syllable: stockent (df) 22/02/94 -2ckf -2ckg -2ck3h -2ckp -2cks -2ckt -1c2l -4cle. -4cles. -2clent. % mute syllable: encerclent (df) 28/02/94 -1co -1c^^f4 - co1acc - co1acq - co1a2d - co1ap - co1ar - co1assoc - co1assur - co1au - co1ax -1c^^f7 - co1^^e92 - co1ef - co1en - co1ex - .con4 % missing from nb list - .cons4 % missing from nb list - .contre1s2c - .contre3ma^^eetre % hyphen disappeared from french 5/2/94 - co2nurb - .co1o2 - .co2o3lie -1c2r -4cre. -4cres. -2crent. % mute syllable: massacrent (df) 28/02/94 -1cu -1c^^fb -1cy -.cul4 % -- as .con4 .cons4 (march 92) -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%d -1d' -1da -1d^^e2 - .dacryo1a2 -d1d2h -1de -1d^^e9 -1d^^e8 -1d^^ea -4de. -4des. -% words ending with -dent (df) 22/02/94 - 2dent. -d^^e9ca3dent. - ^^e93dent. - cci3dent. - inci3dent. - confi3dent. - tri3dent. - dissi3dent. - chien3dent. - .ar3dent. - impu3dent. - pru3dent. -% - .d^^e91a2 - .d^^e91io - .d^^e91o2 - .d^^e92s % originaly in JD file - %.d^^e92s1a2 removed 09/17/92 because wrong for the - % original JD 500 words test - .d^^e93s2a3cr - .d^^e9s2a3m % .d^^e9s2a2mi introduced 09/17/92 bec. i - % can't see why d^^e9samidonner ran in JD. - % Moved to .d^^e9s2a3m df 12/27/93. - .d^^e93s2a3tell - .d^^e93s2astr - .d^^e93s2c % 1 moved 3 due to .d^^e92s 09/17/92 - %.d^^e92s1e2 removed 09/17/92 because wrong for the - % original JD 500 words test - .d^^e92s1^^e92 - .d^^e93s2^^e93gr - .d^^e93s2ensib - .d^^e93s2ert - .d^^e93s2exu - %.d^^e92s3h removed 09/17/92 because wrong for the - % original JD 500 words test - .d^^e92s1i2 - .d^^e93s2i3d - .d^^e93s2i3gn - .d^^e93s2i3li - .d^^e93s2i3nen - .d^^e93s2invo - .d^^e93s2i3r - .d^^e93s2ist - %.d^^e92s1o2 removed 09/17/92 because wrong for the - % original JD 500 words test - .d^^e93s2o3d^^e9 - .d^^e92s1^^f70 % final zero essential to terminate cs - .d^^e93s2o3l - .d^^e93s2o3pil - .d^^e93s2orm - .d^^e93s2orp - .d^^e93s2oufr - .d^^e93s2p % 1 moved 3 due to .d^^e92s 09/17/92 - .d^^e93s2t % 1 moved 3 due to .d^^e92s 09/17/92 - .d^^e92s1u2n - 3d2hal - 3d2houd -1di -1d^^ee - di2s3cop - .di1a2c^^e9 - .di1a2cid - dia2g3n - .di1ald - .di1a2mi - .di1a2tom - .di1e2n - .di2s3h -2dlent. % mute syllable: jodlent (df) 28/02/94 -1do -1d^^f4 -1d2r -4dre. -4dres. -2drent. % mute syllable: engendrent (df) 28/02/94 -d1s2 -1du -1d^^fb -1dy - .dy2s3 - .dy2s1a2 - .dy2s1i2 - .dy2s1o2 % missing from nb list - .dy2s1u2 -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%e -.e4 -'e4 -.^^ea4 -'^^ea4 -.^^e94 -'^^e94 -.^^e84 -'^^e84 -^^e9ed2hi % df-bg 1998/02/07 for r\'edhibitoire - 1^^e92drie - 1^^e92drique - 1^^e92lectr - 1^^e92l^^e9ment - .en1a2 - 'en1a2 - 1^^e92nerg - e2n1i2vr - .en1o2 - 'en1o2 - ^^e9pi2s3cop - ^^e9pi3s4cope - e2s3cop - .eu2r1a2 - 'eu2r1a2 - eu1s2tat - extra1 - extra2c - extra2i -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%f -1fa -1f^^e2 -1fe -1f^^e9 -1f^^e8 -1f^^ea -4fe. -4fes. -2fent. % mute syllable: agrafent chauffent (df) 22/02/94 -% -1fi -1f^^ee -1f2l -4fle. -4fles. -2flent. % mute syllable: gonflent (df) 28/02/94 -1fo -1f^^f4 -1f2r -4fre. -4fres. -2frent. % mute syllable: balafrent (df) 28/02/94 -f1s2 -1fu -1f^^fb -1fy -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%g -1ga -1g^^e2 -1ge -1g^^e9 -1g^^e8 -1g^^ea -4ge. -4ges. -% words ending with -gent (df) 22/02/94 - 2gent. - r^^e93gent. - entre3gent. - indi3gent. - dili3gent. -intelli3gent. - indul3gent. - tan3gent. - rin3gent. - contin3gent. - .ar3gent. - 'ar3gent. - ser3gent. - ter3gent. -r^^e9sur3gent. -% -1g2ha -1g2he -1g2hi -1g2ho -1g2hy -1gi -1g^^ee -1g2l -4gle. -4gles. -2glent. % mute syllable: meuglent (df) 28/02/94 - 1g2n -.sta2g3n - wa2g3n -4gne. -4gnes. -2gnent. % mute syllable: accompagnent (df) 28/02/94 -1go -1g^^f4 -1g2r -4gre. -4gres. -2grent. % mute syllable: immigrent (df) 28/02/94 -1gu -1g^^fb -g1s2 -4gue. -4gues. -% words ending with -guent (df) 22/02/94 - 2guent. -.on3guent. -'on3guent. -% -1gy -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%h -1ha -1h^^e2 -1he -1h^^e9 -1h^^e8 -1h^^ea - h^^e9mi1^^e9 - h^^e9mo1p2t -4he. -4hes. -1hi -1h^^ee -1ho -1h^^f4 -1hu -1h^^fb -1hy - hypera2 - hypere2 - hyper^^e92 - hyperi2 - hypero2 - hypers2 - hype4r1 - hyperu2 - hypo1a2 - hypo1e2 % missing from nb list - hypo1^^e92 - hypo1i2 - hypo1o2 - hypo1s2 - hypo1u2 -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%i -.i4 -'i4 -.^^ee4 -'^^ee4 - i1algi - i1arthr - i1^^e82dre -% ill patterns missing from nb list - il2l - cil3l - rcil4l - ucil4l - vacil4l - gil3l - hil3l - lil3l - l3lion - mil3l - mil4let -^^e9mil4l - semil4l - rmil4l - armil5l - capil3l - papil3la - papil3le - papil3li - papil3lom - pupil3l - piril3l - thril3l - cyril3l - ibril3l - pusil3l - .stil3l -distil3l -instil3l -fritil3l -boutil3l - vanil3lin - vanil3lis - vil3l - avil4l -chevil4l - uevil4l - uvil4l - xil3l -% end of ill patterns - 1informat % missing from nb list - .in1a2 - 'in1a2 - .in2a3nit - 'in2a3nit - .in2augur - 'in2augur - .in1e2 - 'in1e2 - .in1^^e92 - 'in1^^e92 - .in2effab % missing from nb list - 'in2effab - .in2^^e93lucta - 'in2^^e93lucta - .in2^^e93narra - 'in2^^e93narra - .in2ept - 'in2ept - .in2er - 'in2er - .in2exora % missing from nb list - 'in2exora - .in1i2 - 'in1i2 - .in2i3miti - 'in2i3miti - .in2i3q - 'in2i3q - .in2i3t - 'in2i3t - .in1o2 - 'in1o2 - .in2o3cul - 'in2o3cul - .in2ond - 'in2ond - .in1s2tab - 'in1s2tab - 'inte4r3 - .intera2 - 'intera2 - .intere2 - 'intere2 - .inter^^e92 - 'inter^^e92 - .interi2 - 'interi2 - .intero2 - 'intero2 - .inte4r3 - .interu2 - 'interu2 - .inters2 - 'inters2 - .in1u2 - 'in1u2 - .in2uit - 'in2uit - .in2u3l - 'in2u3l - io1a2ct - i1oxy - i1s2tat -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%j -1j -2jk -4je. -4jes. -2jent. % mute syllable: gal^^e8jent (df) 22/02/94 -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%k -1ka -1k^^e2 -1ke -1k^^e9 -1k^^e8 -1k^^ea -4ke. -4kes. -2kent. % mute syllable: jerkent (df) 22/02/94 -1k2h -4kh. -.kh4 -1ki -1k^^ee -1ko -1k^^f4 -1k2r -1ku -1k^^fb -1ky -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%l -1la -1l^^e2 -1l^^e0 - la2w3re -1le -1l^^e9 -1l^^e8 -1l^^ea -4le. -4les. -% words ending with -lent (df) 22/02/94 - 2lent. - .ta3lent. - iva3lent. -^^e9quiva4lent. - monova3lent. - polyva3lent. - re3lent. - .do3lent. - indo3lent. - inso3lent. - turbu3lent. - succu3lent. - f^^e9cu3lent. - trucu3lent. - opu3lent. - corpu3lent. - ru3lent. - sporu4lent. -% -1li -1l^^ee -1lo -1l^^f4 -l1s2t -1lu -1l^^fb -1ly -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%m -1ma -1m^^e2 - .ma2c3k - .macro1s2c - .ma2l1a2dres - .ma2l1a2dro - .ma2l1ais^^e9 - .ma2l1ap - .ma2l1a2v - .ma2l1en - .ma2l1int - .ma2l1oc - .ma2l1o2d - .ma2r1x % nb (jbb: ?) -1me -1m^^e9 -1m^^e8 -1m^^ea - .m^^e92g1oh - .m^^e92sa % missing from nb list - .m^^e93san % missing from nb list - .m^^e92s1es - .m^^e92s1i - .m^^e92s1u2s - .m^^e9ta1s2ta -4me. -4mes. -% words ending with -ment (df) 22/02/94 - ^^e22ment. - da2ment. - fa2ment. - amalga2ment. - cla2ment. - ra2ment. -temp^^e9ra3ment. - ta2ment. - testa3ment. - qua2ment. - ^^e82ment. - car^^ea2ment. - diaphrag2ment. - ryth2ment. - ai2ment. - rai3ment. - ab^^ee2ment. - ^^e9ci2ment. - vidi2ment. - subli2ment. - ^^e9li2ment. - reli2ment. - mi2ment. - ani2ment. - veni2ment. - ri2ment. - d^^e9tri3ment. - nutri3ment. - inti2ment. - esti2ment. - l2ment. - flam2ment. - gram2ment. - .gem2ment. - om2ment. - .com3ment. - ^^f42ment. - slalo2ment. - chro2ment. - to2ment. - ar2ment. - .sar3ment. - er2ment. - antifer3ment. - .ser3ment. - fir2ment. - or2ment. - as2ment. - au2ment. - ^^e9cu2ment. - fu2ment. - hu2ment. - fichu3ment. - llu2ment. - plu2ment. - bou2ment. - bru2ment. - su2ment. - tu2ment. -% -1mi -1m^^ee - .milli1am - 1m2n^^e9mo - 1m2n^^e8s - 1m2n^^e9si -1mo -1m^^f4 -1m^^f70 % final zero essential to terminate cs - .mono1a2 - .mono1e2 - .mono1^^e92 - .mono1i2 - .mono1^^ef2d^^e9 - .mono1o2 - .mono1u2 - .mono1s2 - mon2t3r^^e9al % missing from nb list -m1s2 -1mu -1m^^fb -1my - moye2n1^^e22g -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%n -1na -1n^^e2 -1ne -1n^^e9 -1n^^e8 -1n^^ea -4ne. -4nes. -% words ending with -nent (df) 22/02/94 - 2nent. % fric-tionnent - syllable muette - bg 27/12/93 - r^^e9ma3nent. - imma3nent. - perma3nent. - .^^e9mi3nent. -pr^^e9^^e9mi3nent. - pro^^e9mi3nent. - sur^^e9mi3nent. - immi3nent. - conti3nent. - perti3nent. - absti3nent. -% -1ni -1n^^ee -1no -1n^^f4 -1n^^f70 % final zero essential to terminate cs - .no2n1obs -1nu -1n^^fb - n3s2at. - n3s2ats. -n1x -1ny -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%o -.o4 -'o4 -'^^f44 -.^^f44 -%'^^f62 % mjf % deleted 3/1/94 df-bg - o2b3long - 1octet % missing from nb list - o1d2l - o1^^e82dre - o1ioni - ombud2s3 - omni1s2 - o1s2tas - o1s2tat - o1s2t^^e9ro - o1s2tim - o1s2tom - o1s2trad - o1s2tratu - o1s2triction - .oua1ou - 'oua1ou - .ovi1s2c - 'ovi1s2c - oxy1a2 -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%p -1pa -1p^^e2 - pal^^e9o1^^e92 - .pa2n1a2f - .pa2n1a2m^^e9 - .pa2n1a2ra - .pa2n1is - .pa2n1o2ph - .pa2n1opt - .pa2r1a2che - .pa2r1a2ch^^e8 - .para1s2 - .pa2r3h^^e9 -1pe -1p^^e9 -1p^^e8 -1p^^ea -4pe. -4pes. -% words ending with -pent (df) 22/02/94 - 2pent. - re3pent. -.ar3pent. -'ar3pent. -ser3pent. -% - .pen2ta % pent- or penta- but never pen-ta bg 12/27/93 - per3h - p^^e92nul % p^^e92n1ul moved back 09/17/92 to JD def. - .pe4r - .per1a2 - .per1e2 - .per1^^e92 - .per1i2 - .per1o2 - .per1u2 - p^^e91r2^^e92q % 2r1 moved 09/17/92 to 1r2(it was a typo) - .p^^e9ri1os - .p^^e9ri1s2 - .p^^e9ri2s3s - .p^^e9ri2s3ta - .p^^e9ri1u2 -1p2h -.ph4 -4ph. - .phalan3s2t -4phe. -4phes. -2phent. % mute syllable: triomphent (df) 22/02/94 -ph2l -4phle. -4phles. -2phn - photo1s2 -ph2r -4phre. -4phres. -2phs -2pht - 3ph2tal^^e9 - 3ph2tis -%%%% Here is an example of a pb involving phonetic and etymologic patterns 5/94 -%%%% .phyto3ph2 % originaly, but wrong for phy-toph-thora 9/92 -%%%% .phy2topha % for -pharmacie but wrong for phyto-biol.. 5/94 -1pi -1p^^ee -1p2l -4ple. -4ples. -2plent. % mute syllable: accouplent (df) 28/02/94 - .pluri1a - 1p2n^^e9 - 1p2neu -1po -1p^^f4 - po1astre - poly1a2 - poly1e2 - poly1^^e92 - poly1^^e82 - poly1i2 - poly1o2 - poly1s2 - poly1u2 - .pon2tet % JD hypenated it asis 09/17/92, exception - .pos2t3h - .pos2t1in - .pos2t1o2 - .pos2t3r - .post1s2 -1p2r -4pre. -4pres. -2prent. % mute syllable: empourprent (df) 28/02/94 - .pr^^e91a2 - .pr^^e92a3la % missing from nb list - .pr^^e92au - .pr^^e91^^e92 - .pr^^e91e2 - .pr^^e91i2 - .pr^^e91o2 - .pr^^e91u2 - .pr^^e91s2 - .pro1^^e92 - .pro1s2c^^e9 - pro2s3tat - .prou3d2h - 1p2sych - .psycho1a2n - 1p2t^^e8r - 1p2t^^e9r -1pu - .pud1d2l -1p^^fb -1py -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%q -1q -4que. -4ques. -% words ending with -quent (df) 22/02/94 - 2quent. - ^^e93quent. - ^^e9lo3quent. -grandilo3quent. -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%r -1ra -1r^^e2 - radio1a2 % missing from nb list -1re -1r^^e9 -1r^^e8 -1r^^ea - .r^^e91a2 - .r^^e92a3le - .r^^e92a3lis - .r^^e92a3lit - .r^^e92aux - .r^^e91^^e92 - .r^^e91e2 - .r^^e92el - .r^^e92er - .r^^e92^^e8r - .r^^e91i2 - .r^^e92i3fi - .r^^e91o2 - .re1s2 - .re2s3cap - .re2s3cisi % for res-cision 09/17/92 (missing from nb) - .re2s3ciso % for res-cisoire 09/17/92(missing from nb) - .re2s3cou - .re2s3cri - .re2s3pect - .re2s3pir - .re2s3plend - .re2s3pons - .re2s3quil - .re2s3s - .re2s3t - .re3s4tab - .re3s4tag - .re3s4tand - .re3s4tat - .re3s4t^^e9n - .re3s4t^^e9r - .re3s4tim - .re3s4tip - .re3s4toc - .re3s4top - .re3s4tr - .re4s5trein - .re4s5trict - .re4s5trin - .re3s4tu - .re3s4ty - .r^^e9u2 %.r^^e91u2 % pattern rejected 12/2/92 - % (don't hyphenate as r^^e9-union nor r^^e9u-nion) - .r^^e92uss - .r^^e9tro1a2 -4re. -4res. -% words ending with -rent (df) 22/02/94 - 2rent. % es-p^^e8rent - syllable muette - bg 27/12/93 - .pa3rent. - appa3rent. -transpa3rent. - ^^e93rent. - tor3rent. - cur3rent. -% -1r2h -4rhe. -4rhes. - 2r3heur - 2r3hydr -1ri -1r^^ee -1ro -1r^^f4 -1ru -1r^^fb -1ry -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%s -1sa -1s^^e2 -.sch4 - 1s2caph - 1s2cl^^e9r - 1s2cop - 1s2ch -e2s3ch -i2s3ch^^e9 -i2s3chia -i2s3chio -4sch. -4sche. -4sches. -2schs -1se -1s^^e9 -1s^^e8 -1s^^ea - sesqui1a2 -4se. -4ses. -% words ending with -sent (df) 22/02/94 - 2sent. % massent - syllable muette - bg 27/12/93 - ab3sent. -pr^^e93sent. - .res3sent. -% -.seu2le % jbb -.sh4 -1s2h -4sh. -4she. -4shes. -2shent. % mute syllable: smashent (df) 22/02/94 -2shm - 2s3hom -2shr -2shs -1si -1s^^ee - 1s2lav - 1s2lov -1so -1s^^f4 -1s^^f70 % final zero essential to terminate cs - 1s2patia - 1s2perm - 1s2por - 1s2ph^^e8r - 1s2ph^^e9r - 1s2piel - 1s2piros - 1s2tandard - 1s2tein - st^^e9r^^e9o1s2 - 1s2tigm - 1s2tock - 1s2tomos - 1s2troph - 1s2tructu - 1s2tyle -1su -1s^^fb - .su2b1a2 - .su3b2alt - .su2b1^^e92 - .su3b2^^e93r - .su2b1in - .su2b3limin - .su2b3lin - .su2b3lu - sub1s2 - .su2b1ur - supero2 - supe4r1 - supers2 - .su2r1a2 - su3r2ah - .su3r2a3t - .su2r1e2 - .su3r2eau - .su3r2ell - .su3r2et - .su2r1^^e92 - .su2r3h - .su2r1i2m - .su2r1inf - .su2r1int - .su2r1of - .su2r1ox -1sy -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%t -1ta -1t^^e2 -1t^^e0 - tachy1a2 - tchin3t2 -1te -1t^^e9 -1t^^e8 -1t^^ea - t^^e9l^^e91e2 - t^^e9l^^e91i2 - t^^e9l^^e91o2b - t^^e9l^^e91o2p - t^^e9l^^e91s2 -4te. -4tes. -% words ending with -tent (df) 22/02/94 - 2tent. % mentent - syllable muette - bg 27/12/93 - .la3tent. - .pa3tent. - comp^^e93tent. - ^^e9ni3tent. - m^^e9con3tent. - omnipo3tent. -ventripo3tent. -^^e9quipo3tent. - impo3tent. - mit3tent. -% -.th4 -1t2h -4th. -4the. -4thes. - thermo1s2 - 2t3heur -2thl % th2l was wrong for ...ath-lon (jd said 2thl) df 12/27/93 -2thm -2thn -th2r -4thre. -4thres. -2ths -1ti -1t^^ee -1to -1t^^f4 -1t2r - tran2s1a2 - tran3s2act - tran3s2ats - tran2s3h - tran2s1o2 - tran2s3p - tran2s1u2 -4tre. -4tres. -2trent. % mute syllable: infiltrent (df) 28/02/94 - .tri1a2c - .tri1a2n - .tri1a2t - .tri1o2n - t1t2l -1tu -1t^^fb -tung2s3 -1ty -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%u -.u4 -'u4 -.^^fb4 -'^^fb4 - uni1o2v - uni1a2x - u2s3tr -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%v -1va -1v^^e2 -1ve -1v^^e9 -1v^^e8 -1v^^ea - v^^e9lo1s2ki -4ve. -4ves. -% words ending with -vent (df) 22/02/94 - 2vent. -conni3vent. - .sou3vent. -% -1vi -1v^^ee -1vo -1v^^f4 - vol2t1amp -1v2r -4vre. -4vres. -2vrent. % mute syllable: recouvrent (df) 28/02/94 -1vu -1v^^fb -1vy -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%w -1wa -1we -4we. -4wes. -2went. % mute syllable: interviewent (df) 22/02/94 -1wi -1wo -1wu -1w2r -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%x -2xent. % mute syllable: malaxent (df) 22/02/94 -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%y -.y4 -'y4 - y1asth - y1s2tom - y1algi -%-------------------%-----------------------% -% phonetic patterns % etymological patterns % -%-------------------%-----------------------% -%%z -1za -1ze -1z^^e9 -1z^^e8 -4ze. -4zes. -% words ending with -zent (df) 22/02/94 - 2zent. -privatdo3zent. -% -1zi -1zo -1zu -1zy -} -\endgroup -\endinput -%Fin du fichier f8hyph.tex -%%%%%%%%%%%%%%%%%%%%%%%%%% - diff --git a/macros/ec-plain/frhyphx1.tex b/macros/ec-plain/frhyphx1.tex deleted file mode 100644 index e3216c5c30..0000000000 --- a/macros/ec-plain/frhyphx1.tex +++ /dev/null @@ -1,19 +0,0 @@ -% frhyphx1.tex % French hyphenation exceptions provided with accent macros. -% -% Usually \hyphenation doesn't allow accent macros in its argument, just -% only characters, but french.sty and hyconfig.tex allows this. Thus this -% file can be reloaded each time you change your input encoding. The keyboard -% package do it via kbconfig.tex (and \kbencoding macro). -% -\message{frhyphex.tex french exceptions.}% -% Do NOT make any alterations to this french hyphenation exceptions list! --bg -% This WAS the official one from GUTenberg V3.0)}% 99/08/10 -% But you can -%have your private one via language.dat and \frhyphex % look at the% -%documentation... % -% Syntax corrected May 2002 by D. Taupin to avoid errors due to empty lines in -% \hyphenation specifications -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hyphenation{GUTenberg fichier fichiers} % end of exceptions -%\endinput%%%%%%%%%%%%%%%%%%%%%% - diff --git a/macros/ec-plain/ghyph31.tex b/macros/ec-plain/ghyph31.tex deleted file mode 100644 index de252327ef..0000000000 --- a/macros/ec-plain/ghyph31.tex +++ /dev/null @@ -1,848 +0,0 @@ -% This is `ghyph31.tex' as of 13. Feb 94. -% -% Copyright (C) 1988,1991 Rechenzentrum der Ruhr-Universitaet Bochum -% [german hyphen patterns] -% Copyright (C) 1993,1994 Bernd Raichle/DANTE e.V. -% [macros, adaption for TeX 2] -% -% General permission for use and non-profit redistribution is granted. -% For special commercial use, contact the below address. -% -% Commercial use is generally granted, if a reference copy -% - for use by the Rechenzentrum of the Ruhr-Universitaet - -% is received. -% -% -% This file contains 5719 german hyphen patterns with umlauts -% in the recommended version of September 27, 1990. -% It is an experimental version for testing the integration of -% umlauts and `es-zett', but without `c-k' and triple consonants. -% -% For use with TeX generated by -% -% Norbert Schwarz -% Rechenzentrum Ruhr-Universitaet Bochum -% Universitaetsstrasse 150 -% D-44721 Bochum, FRG -% -% Email (X.400): -% Norbert.Schwarz@RUBA.RZ.RUHR-UNI-BOCHUM.DBP.DE -% -% -% Adaption of these patterns for TeX, Version 2.x and 3.x and -% all fonts in `Cork'/EC/DC and/or CM encoding by -% -% Bernd Raichle -% Stettener Str. 73 -% D-73732 Esslingen, FRG -% Email: raichle@Informatik.Uni-Stuttgart.DE -% -% -% Error reports in case of UNCHANGED versions to -% -% DANTE e.V., Koordinator `german.sty' -% Postfach 10 18 40 -% D-69008 Heidelberg, FRG -% Email: german@Dante.DE -% -% or one of the addresses given above. -% -% Changes: -% 1990-09-27 First version of `ghyphen3.tex' (Norbert Schwarz) -% 1991-02-13 PC umlauts changed to ^^xx (Norbert Schwarz) -% 1993-08-27 Umlauts/\ss changed to "a/\3 macros, added macro -% definitions and additional logic to select correct -% patterns/encoding (Bernd Raichle) -% 1994-02-13 Release of `ghyph31.tex' -% -% -% For more informations see the additional documentation -% at the end of this file. -% -% ----------------------------------------------------------------- -% -\message{German Hyphenation Patterns `ghyphen' Version 3.1a <94/02/13>} -% -\begingroup -\ifnum 0\ifx\inputlineno\undefined \else - \ifnum\inputlineno<1 \else 1\fi\fi<1 - \let\x=\endgroup -\else - \def\x{\endgroup -% -% The following commands ensure correct \catcodes, \lccodes and -% \uccodes if your TeX implementations uses these character codes. -% -\catcode"E4=11 \catcode"C4=11 % \"a \"A -\catcode"F6=11 \catcode"D6=11 % \"o \"O -\catcode"FC=11 \catcode"DC=11 % \"u \"U -\catcode"FF=11 \catcode"DF=11 % \ss SS -% -\lccode"C4="E4 \uccode"C4="C4 \lccode"E4="E4 \uccode"E4="C4 -\lccode"D6="F6 \uccode"D6="D6 \lccode"F6="F6 \uccode"F6="D6 -\lccode"DC="FC \uccode"DC="DC \lccode"FC="FC \uccode"FC="DC -\lccode"DF="FF \uccode"DF="DF \lccode"FF="FF \uccode"FF="DF -% -} -\fi -% Now execute the changes of the above \*codes for TeX 3.x -\x - - -% -% Next we define some commands, which are used inside the patterns. -% To keep them local, we enclose the rest of the file in a group -% (The \patterns command globally changes the hyphenation trie!). -% -\begingroup -% -% Because we use ^^e4, ^^f6, ... in the following definition, -% we have to ensure that the catcodes of ^^e and ^^f are ok -% for TeX 2. (The macro is not used for TeX 2.) -\catcode"0E=12 \catcode"0F=12 -% -% And we have to change the \lccode of ^^Y to make sure that -% we can include this character in the hyphenation patterns. -\catcode`\^^Y=11 \lccode`\^^Y=`\^^Y -% -% Define a simple " macro... -\catcode`\"=13 -\def"#1{\ifx#1a^^e4\else \ifx#1o^^f6\else - \ifx#1u^^fc\else - \errmessage{Hyphenation pattern file corrupted!}% - \fi\fi\fi} -% -% ... and define a macro to allow the use of this file -% with TeX 2 and TeX 3. -\ifnum 0\ifx\inputlineno\undefined \else - \ifnum\inputlineno<1 \else 1\fi\fi<1 - % for TeX 2: - % ignore the patterns with umlauts - \def\n#1{} - % ignore the duplicated patterns with \ss - \def\c#1{} - % define \3 to be code ^^Y - \def\3{^^Y} -\else - % for TeX 3: - % patterns with umlauts are ok - \def\n#1{#1} - % duplicated patterns are ok (for CM fonts) - \def\c#1{#1} - % >>>>>> UNCOMMENT the next line, if you do not want - % >>>>>> to use fonts with CM layout - %\def\c#1{} - % define \3 to be code `\^^ff (\ss in DC/EC font layout) - % define \9 to be code `\^^Y (\ss in CM font layout) - \def\3{^^ff} - \def\9{^^Y} -\fi -% -% -\patterns{% -.aa6l .ab3a4s .ab3ei .abi2 .ab3it .ab1l .ab1r .ab3u .ad3o4r .alti6 -.ana3c .an5alg .an1e .ang8s .an1s .ap1p .ar6sc .ar6ta .ar6tei .as2z -.au2f1 .au2s3 .be5erb .be3na .ber6t5r .bie6r5 .bim6s5t .brot3 .bru6s -.ch6 .che6f5 .da8c .da2r .dar5in .dar5u .den6ka .de5r6en .des6pe -.de8spo .de3sz .dia3s4 .dien4 .dy2s1 .ehren5 .eine6 .ei6n5eh .ei8nen -.ein5sa .en6der .en6d5r .en3k4 .en8ta8 .en8tei .en4t3r .epo1 .er6ban -.er6b5ei .er6bla .er6d5um .er3ei .er5er .er3in .er3o4b .erwi5s .es1p -.es8t .ex1a2 .ex3em .fal6sc .fe6st5a .flu4g3 .furch8 .ga6ner .ge3n4a -\n{.ge5r"o} .ges6 .halb5 .halbe6 .hal6br .haup4 .hau4t .heima6 .he4r3e -.her6za .he5x .hin3 .hir8sc .ho4c .hu3sa .hy5o .ibe5 .ima6ge .in1 -.ini6 .is5chi .jagd5 .kal6k5o .ka6ph .ki4e .kop6f3 .kraf6 \n{.k"u5ra} -.lab6br .liie6 .lo6s5k \n{.l"o4s3t} .ma5d .mi2t1 .no6th .no6top -.obe8ri .ob1l .obs2 .ob6st5e .or3c .ort6s5e .ost3a .oste8r .pe4re -.pe3ts .ph6 .po8str .rau4m3 .re5an .ro8q .ru5the \n{.r"u5be} -\n{.r"u8stet} .sch8 .se6e .se5n6h .se5ra .si2e .spi6ke .st4 .sy2n -.tages5 .tan6kl .ta8th .te6e .te8str .to6der .to8nin .to6we .um1 -.umpf4 .un1 .une6 .unge5n .ur1c .ur5en .ve6rin .vora8 .wah6l5 .we8ges -.wo6r .wor3a .wun4s .zi4e .zuch8 \n{."ande8re} \n{."och8} aa1c aa2gr -aal5e aa6r5a a5arti aa2s1t aat2s 6aba ab3art 1abdr 6abel aben6dr -ab5erk ab5err ab5esse 1abf 1abg \n{1abh"a} ab1ir 1abko a1bl ab1la -5ablag a6bla\3 \c{a6bla\9} ab4ler ab1lu \n{a8bl"a} \n{5a6bl"o} abma5c -1abn ab1ra ab1re 5a6brec ab1ro ab1s ab8sk abs2z 3abtei ab1ur 1abw -5abze 5abzu \n{ab1"an} \n{ab"au8} a4ce. a5chal ach5art ach5au a1che -a8chent ach6er. a6ch5erf a1chi ach1l ach3m ach5n a1cho ach3re a1chu -ach1w a1chy \n{ach5"af} ack1o acks6t ack5sta a1d 8ad. a6d5ac ad3ant -ad8ar 5addi a8dein ade5o8 adi5en 1adj 1adle ad1op a2dre 3adres adt1 -1adv \n{a6d"a} a1e2d ae1r a1er. 1aero 8afa a3fal af1an a5far a5fat -af1au a6fentl a2f1ex af1fr af5rau af1re 1afri af6tent af6tra aft5re -a6f5um \n{8af"a} ag5abe 5a4gent ag8er ages5e 1aggr ag5las ag1lo a1gn -ag2ne 1agog a6g5und a1ha a1he ah5ein a4h3erh a1hi ahl1a ah1le ah4m3ar -ahn1a a5ho ahra6 ahr5ab ah1re ah8rei ahren8s ahre4s3 ahr8ti ah1ru a1hu -\n{ah8"o} ai3d2s ai1e aif6 a3inse ai4re. a5isch. ais8e a3ismu ais6n -aiso6 a1j 1akad a4kade a1ke a1ki 1akko 5akro1 a5lal al5ans 3al8arm -al8beb al8berw alb5la 3album al1c a1le a6l5e6be a4l3ein a8lel a8lerb -a8lerh a6lert 5a6l5eth 1algi al4gli al3int al4lab al8lan al4l3ar -alle3g a1lo a4l5ob al6schm al4the altist5 al4t3re 8a1lu alu5i a6lur -alu3ta \n{a1l"a} a6mate 8ame. 5a6meise am6m5ei am6mum am2n ampf3a -am6schw am2ta a1mu \n{a1m"a} a3nac a1nad anadi5e an3ako an3alp 3analy -an3ame an3ara a1nas an5asti a1nat anat5s an8dent ande4s3 an1ec an5eis -an1e2k 4aner. a6n5erd a8nerf a6n5erke 1anfa 5anfert \n{1anf"a} 3angab -5angebo an3gli ang6lis an2gn 3angri ang5t6 \n{5anh"a} ani5g ani4ka -an5i8on an1kl an6kno an4kro 1anl anma5c anmar4 3annah anne4s3 a1no -5a6n1o2d 5a6n3oma 5a6nord 1anr an1sa 5anschl an4soz an1st 5anstal -an1s2z 5antenn an1th \n{5anw"a} a5ny an4z3ed 5anzeig 5anzieh 3anzug -\n{an1"a} \n{5an"as} \n{a1n"o} \n{an"o8d} a1os a1pa 3apfel a2ph1t -\n{aph5"a6} a1pi 8apl apo1c apo1s a6poste a6poth 1appa ap1pr a1pr -\n{a5p"a} \n{a3p"u} a1ra a4r3af ar3all 3arbei 2arbt ar1c 2a1re ar3ein -ar2gl 2a1ri ari5es ar8kers ar6les ar4nan ar5o6ch ar1o2d a1rol ar3ony -a8ror a3ros ar5ox ar6schl 8artei ar6t5ri a1ru a1ry 1arzt arz1w -\n{ar8z"a} \n{ar"a8m} \n{ar"o6} \n{ar5"om} \n{ar1"u2} a1sa a6schec -asch5l asch3m a6schn a3s4hi as1pa asp5l a8steb as5tev 1asth a6stoc -a1str ast3re 8a1ta ata5c ata3la a6tapf ata5pl a1te a6teli aten5a -ate5ran 6atf 6atg a1th at3hal 1athl 2a1ti 5atlant 3atlas 8atmus 6atn -a1to a6t5ops ato6ra a6t5ort. 4a1tr a6t5ru at2t1h \n{at5t6h"a} 6a1tu -atz1w \n{a1t"a} \n{a1t"u} au1a au6bre auch3a au1e aue4l 5aufent -\n{3auff"u} 3aufga 1aufn auf1t 3auftr 1aufw 3auge. au4kle aule8s 6aum -au8mar aum5p 1ausb 3ausd 1ausf 1ausg au8sin 3auss au4sta 1ausw 1ausz -aut5eng au1th 1auto au\3e8 \c{au\9e8} a1v ave5r6a aver6i a1w a6wes a1x -a2xia a6xio a1ya a1z azi5er. 8a\3 \c{8a\9} 1ba 8ba8del ba1la ba1na -ban6k5r ba5ot bardi6n ba1ro basten6 bau3sp 2b1b bb6le b2bli 2b1c 2b1d -1be be1a be8at. be1ch 8becht 8becke. be5el be1en bee8rei be5eta bef2 -8beff be1g2 \n{beh"o8} bei1s 6b5eisen bei3tr b8el bel8o belu3t be3nac -bend6o be6ners be6nerw be4nor ben4se6 bens5el \n{be1n"a} \n{be1n"u} -be1o2 b8er. be1ra be8rac ber8gab. ber1r \n{be1r"u} bes8c bes5erh -bes2p be5tha bet5sc be1un be1ur 8bex be6zwec 2b1f8 bfe6st5e 2b1g2 -bga2s5 bge1 2b1h bhole6 1bi bi1bl b6ie bi1el bi1la \n{bil"a5} bi1na -bi4nok bi5str bi6stu bi5tr bit4t5r b1j 2b1k2 \n{bk"u6} bl8 b6la. -6b1lad 6blag 8blam 1blat b8latt 3blau. b6lav 3ble. b1leb b1led -8b1leg 8b1leh 8bleid 8bleih 6b3lein blei3s ble4m3o 4blich b4lind -8bling b2lio 5blit b4litz b1loh 8b1los 1blu 5blum 2blun blut3a blut5sc -\n{3bl"a} \n{bl"as5c} \n{5bl"o} \n{3bl"u} \n{bl"u8sc} 2b1m 2b1n 1bo -bo1ch bo5d6s boe5 8boff 8bonk bo1ra b1ort 2b1p2 b1q 1br brail6 brast8 -bre4a b5red 8bref 8b5riem b6riga bro1s b1rup b2ruz \n{8br"oh} -\n{br"os5c} 8bs b1sa b8sang b2s1ar b1sc bs3erl bs3erz b8sof b1s2p -bst1h b3stru \n{b5st"a} b6sun 2b1t b2t1h 1bu bu1ie bul6k b8ure bu6sin -6b1v 2b1w 1by1 by6te. 8b1z bzi1s \n{1b"a} \n{b5"a6s5} \n{1b"u} -\n{b6"u5bere} \n{b"uge6} \n{b"ugel5e} \n{b"ur6sc} 1ca cag6 ca5la ca6re -ca5y c1c 1ce celi4c celich5 ce1ro c8h 2ch. 1chae ch1ah ch3akt cha6mer -8chanz 5chara 3chari 5chato 6chb 1chef 6chei ch3eil ch3eis 6cherkl -6chf 4chh 5chiad 5chias 6chins 8chj chl6 5chlor 6ch2m 2chn6 ch8nie -5cho. 8chob choi8d 6chp ch3ren ch6res \n{ch3r"u} 2chs 2cht cht5ha -cht3hi 5chthon ch6tin 6chuh chu4la 6ch3unt chut6t 8chw 1ci ci5tr c2k -2ck. ck1ei 4ckh ck3l ck3n ck5o8f ck1r 2cks ck5stra ck6s5u c2l 1c8o -con6ne 8corb cos6t c3q 1c6r 8c1t 1cu 1cy \n{5c"a1} \n{c"o5} 1da. -8daas 2dabg 8dabr 6dabt 6dabw 1dac da2gr 6d5alk 8d5amt dan6ce. -dani5er dan8ker 2danl danla6 6dans 8danzi 6danzu d1ap da2r1a8 2d1arb -d3arc dar6men 4d3art 8darz 1dat 8datm 2d1auf 2d1aus 2d1b 2d1c 2d1d -d5de d3d2h \n{dd"amme8} 1de 2deal de5an de3cha de1e defe6 6deff 2d1ehr -5d4eic de5isc de8lar del6s5e del6spr de4mag de8mun de8nep dene6r -8denge. 8dengen de5o6d 2deol de5ram 8derdb der5ein de1ro der1r d8ers -der5um de4s3am de4s3an de4sau de6sil de4sin de8sor de4spr de2su 8deul -de5us. 2d1f df2l 2d1g 2d1h 1di dia5c di5ara dice5 di3chr di5ena di1gn -di1la dil8s di1na 8dind 6dinf 4d3inh 2d1ins di5o6d di3p4t di8sen dis1p -di5s8per di6s5to dis5tra di8tan di8tin d1j 6dje 2dju 2d1k 2d1l 2d1m -2d1n6 dni6 dnje6 1do 6d5obe do6berf 6d5ony do3ran 6dord 2d1org dor4t3h -do6ste 6doth dott8e 2d1p d5q dr4 1drah 8drak d5rand 6dre. 4drech -d6reck 4d3reg 8d3reic d5reife 8drem 8d1ren 2drer 8dres. 6d5rh 1dria -d1ric 8drind droi6 dro5x 1dru 8drut \n{dr"os5c} \n{1dr"u} \n{dr"u5b} -\n{dr"u8sc} 2ds d1sa d6san dsat6 d1sc 5d6scha. 5dschik dse8e d8serg -8dsl d1sp d4spak ds2po \n{d8sp"a} d1st \n{d1s"u} 2dt d1ta d1te d1ti -d1to dt1s6 d1tu \n{d5t"a} 1du du5als du1b6 du1e duf4t3r 4d3uh du5ie -8duml 8dumw 2d1und du8ni 6d5unt dur2c durch3 6durl 6dursa 8durt du1s -du8schr 2d1v 2d1w dwa8l 2d1z \n{1d"a} \n{6d"ah} \n{8d"and} \n{d"a6r} -\n{d"o8bl} \n{d5"ol} \n{d"or6fl} \n{d"o8sc} \n{d5"o4st} \n{d"os3te} -\n{1d"u} ea4ben e1ac e1ah e1akt e1al. e5alf e1alg e5a8lin e1alk e1all -e5alp e1alt e5alw e1am e1and ea6nim e1ar. e5arf e1ark e5arm e3art -e5at. e6ate e6a5t6l e8ats e5att e6au. e1aus e1b e6b5am ebens5e -eb4lie eb4ser eb4s3in e1che e8cherz e1chi ech3m 8ech3n ech1r ech8send -ech4su e1chu eck5an e5cl e1d ee5a ee3e ee5g e1ei ee5isc eei4s3t -ee6lend e1ell \n{ee5l"o} e1erd ee3r4e ee8reng eere6s5 \n{ee5r"a} -ee6tat e1ex e1f e6fau e8fe8b 3effek ef3rom ege6ra eglo6si 1egy e1ha -e6h5ach eh5ans e6hap eh5auf e1he e1hi ehl3a eh1le ehl5ein eh1mu ehn5ec -e1ho ehr1a eh1re ehre6n eh1ri eh1ru ehr5um e1hu eh1w e1hy \n{e1h"a} -\n{e1h"o} \n{e3h"ut} ei1a eia6s ei6bar eich3a eich5r ei4dar ei6d5ei -ei8derf ei3d4sc ei1e 8eifen 3eifri 1eign eil1d ei6mab ei8mag ein1a4 -ei8nat ei8nerh ei8ness ei6nete ein1g e8ini ein1k ei6n5od ei8nok ei4nor -\n{e3ins"a} ei1o e1irr ei5ru ei8sab ei5schn ei6s5ent ei8sol ei4t3al -eit3ar eit1h ei6thi ei8tho eit8samt ei6t5um e1j 1ekd e1ke e1ki e1k2l -e1kn ekni4 e1la e2l1al 6elan e6lanf e8lanl e6l5ans el3arb el3arm -e6l3art 5e6lasti e6lauge elbst5a e1le 6elef ele6h e6l5ehe e8leif -e6l5einh 1elek e8lel 3eleme e6lemen e6lente el5epi e4l3err e6l5ersc -elf2l elg2 e6l5ins ell8er 4e1lo e4l3ofe el8soh el8tent 5eltern e1lu -elut2 \n{e1l"a} \n{e1l"u} em8dei em8meis 4emo emo5s 1emp1f 1empt 1emto -e1mu emurk4 emurks5 \n{e1m"a} en5a6ben en5achs en5ack e1nad en5af -en5all en3alt en1am en3an. en3ant en3anz en1a6p en1ar en1a6s 6e1nat -en3auf en3aus en2ce enda6l end5erf end5erg en8dess 4ene. en5eck -e8neff e6n5ehr e6n5eim en3eis 6enem. 6enen e4nent 4ener. e8nerd -e6n3erf e4nerg 5energi e6n5erla en5ers e6nerst en5erw 6enes e6n5ess -e2nex en3glo 2eni enni6s5 ennos4 enns8 e1no e6nober eno8f en5opf -e4n3ord en8sers ens8kl en1sp ens6por en5t6ag enta5go en8terbu en6tid -3entla ent5ric 5entwic 5entwu 1entz enu5i e3ny en8zan \n{en1"of} -\n{e1n"os} \n{e1n"ug} eo1c e5o6fe e5okk e1on. e3onf e5onk e5onl e5onr -e5opf e5ops e5or. e1ord e1org eo5r6h eo1t e1pa e8pee e6p5e6g ep5ent -e1p2f e1pi 5epid e6pidem e1pl 5epos e6pos. ep4p3a e1pr \n{e1p"a} e1q -e1ra. er5aal 8eraba e5rabel er5a6ben e5rabi er3abs er3ach era5e -era5k6l er3all er3amt e3rand e3rane er3ans e5ranz. e1rap er3arc -e3rari er3a6si e1rat erat3s er3auf e3raum 3erbse er1c e1re 4e5re. -er3eck er5egg er5e2h 2erei e3rei. e8reine er5einr 6eren. e4r3enm -4erer. e6r5erm er5ero er5erst e4r3erz er3ess \n{5erf"ul} er8gan. -5ergebn er2g5h \n{5erg"anz} \n{5erh"ohu} 2e1ri eri5ak e6r5iat e4r3ind -e6r5i6n5i6 er5ins e6r5int er5itio er1kl \n{3erkl"a} \n{5erl"os.} -ermen6s er6nab 3ernst 6e1ro. e1rod er1o2f e1rog 6e3roi ero8ide e3rol -e1rom e1ron e3rop8 e2r1or e1ros e1rot er5ox ersch4 5erstat er6t5ein -er2t1h er5t6her 2e1ru eruf4s3 e4r3uhr er3ums e5rus 5erwerb e1ry er5zwa -er3zwu \n{er"a8m} \n{er5"as} \n{er"o8} \n{e3r"os.} \n{e6r1"u2b} e1sa -esa8b e8sap e6s5a6v e1sc esch4l ese1a es5ebe eserve5 e8sh es5ill -es3int es4kop e2sl eso8b e1sp espei6s5 es2po es2pu 5essenz e6stabs -e6staf e6st5ak est3ar e8stob e1str est5res es3ur e2sz \n{e1s"u} e1ta -et8ag etari5e eta8ta e1te eten6te et5hal e5thel e1ti 1etn e1to e1tr -et3rec e8tscha et8se et6tei et2th et2t1r e1tu etu1s et8zent et8zw -\n{e1t"a} \n{e1t"o} \n{e1t"u} eu1a2 eu1e eue8rei eu5fe euin5 euk2 -e1um. eu6nio e5unter eu1o6 eu5p 3europ eu1sp eu5str eu8zo e1v eval6s -eve5r6en ever4i e1w e2wig ex1or 1exp 1extr ey3er. e1z \n{e1"a2} -\n{e5"o8} \n{e1"u} e8\3es \c{e8\9es} fa6ch5i fade8 fa6del fa5el. -fal6lo falt8e fa1na fan4gr 6fanl 6fap far6ba far4bl far6r5a 2f1art -fa1sc fau8str fa3y 2f1b2 6f1c 2f1d 1fe 2f1eck fe6dr feh6lei f6eim -8feins f5eis fel5en 8feltern 8femp fe5rant 4ferd. ferri8 fe8stof -fe6str fe6stum fe8tag fet6ta fex1 2ff f1fa f6f5arm f5fe ffe5in ffe6la -ffe8ler ff1f f1fla ff3lei ff4lie ff8sa ff6s5ta 2f1g2 fgewen6 4f1h 1fi -fid4 fi3ds fieb4 fi1la fi8lei fil4m5a f8in. fi1na 8finf fi8scho fi6u -6f1j 2f1k2 f8lanz fl8e 4f3lein 8flib 4fling f2lix 6f3lon 5flop 1flor -\n{5f8l"ac} \n{3fl"ot} 2f1m 2f1n 1fo foh1 f2on fo6na 2f1op fo5ra -for8mei for8str for8th for6t5r fo5ru 6f5otte 2f1p8 f1q fr6 f5ram -1f8ran f8ra\3 \c{f8ra\9} f8re. frei1 5frei. f3reic f3rest f1rib -8f1ric 6frig 1fris fro8na \n{fr"as5t} 2fs f1sc f2s1er f5str -\n{fs3t"at} 2ft f1tak f1te ft5e6h ftere6 ft1h f1ti f5to f1tr ft5rad -ft1sc ft2so f1tu ftwi3d4 ft1z 1fu 6f5ums 6funf fun4ka fu8\3end -\c{fu8\9end} 6f1v 2f1w 2f1z \n{1f"a} \n{f"a1c} \n{8f"arm} \n{6f"aug} -\n{f"a8\3} \n{\c{f"a8\9}} \n{f"ode3} \n{8f"of} \n{3f"or} \n{1f"u} -\n{f"un4f3u} 1ga ga6bl 6gabw 8gabz g3a4der ga8ho ga5isc 4gak ga1la -6g5amt ga1na gan5erb gan6g5a ga5nj 6ganl 8gansc 6garb 2g1arc 2g1arm -ga5ro 6g3arti ga8sa ga8sc ga6stre 2g1atm 6g5auf gau5fr g5aus 2g1b g5c -6gd g1da 1ge ge1a2 ge6an ge8at. ge1e2 ge6es gef2 8geff ge1g2l ge1im -4g3eise geist5r gel8bra gelt8s \n{ge5l"o} ge8nin gen3k 6g5entf -\n{ge3n"a} ge1or ge1ra ge6rab ger8au \n{8gerh"o} ger8ins ge1ro 6g5erz. -\n{ge1r"a} \n{ge1r"u} ge1s ges2p ge5unt 4g3ex3 2g1f8 2g1g g1ha 6g1hei -5ghel. g5henn 6g1hi g1ho 1ghr \n{g1h"o} 1gi gi5la gi8me. gi1na -4g3ins gi3str g1j 2g1k 8gl. 1glad g5lag glan4z3 1glas 6glass 5glaub -g3lauf 1gle. g5leb 3gleic g3lein 5gleis 1glem 2gler 8g3leu gli8a -g2lie 3glied 1g2lik 1g2lim g6lio 1gloa 5glom 1glon 1glop g1los g4loss -g5luf 1g2ly \n{1gl"u} 2g1m gn8 6gn. 1gna 8gnach 2gnah g1nas g8neu -g2nie g3nis 1gno 8gnot 1go goe1 8gof 2gog 5gogr 6g5oh goni5e 6gonist -go1ra 8gord 2g1p2 g1q 1gr4 g5rahm gra8m gra4s3t 6g1rec gre6ge 4g3reic -g5reit 8grenn gri4e g5riem 5grif 2grig g5ring 6groh 2grot gro6\3 -\c{gro6\9} 4grut 2gs gs1ab g5sah gs1ak gs1an gs8and gs1ar gs1au g1sc -gs1ef g5seil gs5ein g2s1er gs1in g2s1o gso2r gs1pr g2s1u 2g1t g3te -g2t1h 1gu gu5as gu2e 2gue. 6gued 4g3uh 8gums 6g5unt gu1s gut3h gu2tu -4g1v 2g1w gy1n g1z \n{1g"a} \n{8g"a8m} \n{6g"arm} \n{1g"o} \n{1g"u} -\n{6g"ub} 1haa hab8r ha8del hade4n 8hae ha5el. haf6tr 2hal. ha1la -hal4b5a 6hale 8han. ha1na han6dr han6ge. 2hani h5anth 6hanz 6harb -h3arbe h3arme ha5ro ha2t1h h1atm hau6san ha8\3 \c{ha8\9} h1b2 h1c h1d -he2bl he3cho h3echt he5d6s 5heft h5e6he. hei8ds h1eif 2hein he3ism -he5ist. heit8s3 hek6ta hel8lau 8helt he6mer 1hemm 6h1emp hen5end -hen5klo hen6tri he2nu 8heo he8q her3ab he5rak her3an 4herap her3au -h3erbi he1ro he8ro8b he4r3um her6z5er he4spe he1st heta6 het5am he5th -heu3sc he1xa hey5e h1f2 h1g hgol8 h1h h1iat hie6r5i hi5kt hil1a2 -hil4fr hi5nak hin4ta hi2nu hi5ob hirn5e hir6ner hi1sp hi1th hi5tr -5hitz h1j h6jo h1k2 hlabb4 hla4ga hla6gr h5lai hl8am h1las h1la\3 -\c{h1la\9} hl1c h1led h3lein h5ler. h2lif h2lim h8linf hl5int h2lip -h2lit h4lor h3lose \n{h1l"as} hme5e h2nee h2nei hn3eig h2nel hne8n -hne4p3f hn8erz h6netz h2nip h2nit h1nol hn5sp h2nuc h2nud h2nul hoch1 -1hoh hoh8lei 2hoi ho4l3ar 1holz h2on ho1ra 6horg 5horn. ho3sl hos1p -ho4spi h1p hpi6 h1q 6hr h1rai h8rank h5raum hr1c hrcre8 h1red h3reg -h8rei. h4r3erb h8rert hrg2 h1ric hr5ins h2rom hr6t5erl hr2t1h hr6t5ra -hr8tri h6rum hr1z hs3ach h6s5amt h1sc h6s5ec h6s5erl hs8erle h4sob -h1sp h8spa\3 \c{h8spa\9} h8spel hs6po h4spun h1str h4s3tum hs3und -\n{h1s"u} h5ta. h5tab ht3ac ht1ak ht3ang h5tanz ht1ar ht1at h5taub -h1te h2t1ec ht3eff ht3ehe h4t3eif h8teim h4t3ein ht3eis h6temp h8tentf -hte8ren \n{h6terf"u} h8tergr h4t3erh h6t5ersc h8terst h8tese h8tess -h2t1eu h4t3ex ht1he ht5hu h1ti ht5rak hts3ah ht1sc ht6sex ht8sk ht8so -h1tu htz8 \n{h5t"um} hub5l hu6b5r huh1l h5uhr. huld5a6 hu8lent -\n{hu8l"a} h5up. h1v h5weib h3weis h1z \n{h"a8kl} \n{h"al8s} -\n{h"ama8tu8} \n{h"a8sche.} \n{h"at1s} \n{h"au4s3c} \n{2h"o.} -\n{2h"oe} \n{8h"oi} \n{h"o6s} \n{h"os5c} \n{h"uhne6} \n{h"ul4s3t} -\n{h"utte8re} i5adn i1af i5ak. i1al. i1al1a i1alb i1ald i5alei i1alf -i1alg i3alh i1alk i1all i1alp i1alr i1als i1alt i1alv i5alw i3alz -i1an. ia5na i3and ian8e ia8ne8b i1ang i3ank i5ann i1ant i1anz i6apo -i1ar. ia6rab i5arr i1as. i1asm i1ass i5ast. i1at. i5ats i1au i5azz -i6b5eig i6b5eis ib2le i4blis i6brig i6b5unt \n{i6b"ub} i1che ich5ei -i6cherb i1chi ich5ins ich1l ich3m ich1n i1cho icht5an icht3r i1chu -ich1w ick6s5te ic5l i1d id3arm 3ideal ide8na 3ideol \n{ide5r"o} i6diot -id5rec id1t ie1a ie6b5ar iebe4s3 ie2bl ieb1r ie8bra ie4bre \n{ie8b"a} -ie2dr ie1e8 ie6f5ad ief5f ie2f1l ie4fro ief1t i1ei ie4l3ec ie8lei -ie4lek i3ell i1en. i1end ien6e i3enf i5enn ien6ne. i1enp i1enr -i5ensa ien8stal i5env i1enz ie5o ier3a4b ie4rap i2ere ie4rec ie6r5ein -ie6r5eis ier8er i3ern. ie8rum ie8rund ie6s5che ie6tau ie8tert ie5the -ie6t5ri i1ett ie5un iex5 2if i1fa if5ang i6fau if1fr if5lac i5f6lie -i1fre ift5a if6t5r ig3art 2ige i8gess ig5he i5gla ig2ni i5go ig3rot -ig3s2p i1ha i8ham i8hans i1he i1hi ih1n ih1r i1hu i8hum ih1w 8i1i ii2s -ii2t i1j i1k i6kak i8kerz i6kes ik4ler i6k5unt 2il i5lac i1lag il3ans -i5las i1lau il6auf i1le ile8h i8lel il2fl il3ipp il6l5enn i1lo ilt8e -i1lu \n{i1l"a} i8mart imb2 i8mele i8mid imme6l5a i1mu \n{i1m"a} -\n{i5m"o} ina5he i1nat in1au inau8s 8ind. in4d3an 5index ind2r 3indus -i5nec i2n1ei i8nerw 3infek 1info 5ingeni ing5s6o 5inhab ini5er. 5inj -\n{in8k"at} in8nan i1no inoi8d in3o4ku in5sau in1sp 5inspe 5instit -5instru ins4ze 5intere 5interv in3the in5t2r i5ny \n{in"a2} \n{i1n"ar} -\n{in1"as} \n{in"o8} \n{in5"od} \n{i1n"os} 2io io1a8 io1c iode4 io2di -ioi8 i1ol. i1om. i1on. i5onb ion2s1 i1ont i5ops i5o8pt i1or. -i3oral io3rat i5orc i1os. i1ot. i1o8x 2ip i1pa i1pi i1p2l i1pr i1q -i1ra ir6bl i1re i1ri ir8me8d ir2m1o2 ir8nak i1ro ir5rho ir6schl -ir6sch5r i5rus i5ry \n{i5r"a} i1sa i8samt i6sar i2s1au i8scheh i8schei -isch5m isch3r \n{isch"a8} is8ele ise3ra i4s3erh is3err isi6de i8sind -is4kop ison5e is6por i8s5tum i5sty \n{i5s"o} i1ta it5ab. i2t1a2m -i8tax i1te i8tersc i1thi i1tho i5thr \n{it8h"a} i1ti i8ti8d iti6kl -itmen4 i1to i8tof it3ran it3rau i1tri itri5o it1sc it2se it5spa it8tru -i1tu it6z5erg it6z1w \n{i1t"a} \n{it"a6r5e} \n{it"at2} \n{it"ats5} -\n{i1t"u} i1u iu6r 2i1v i6vad iva8tin i8vei i6v5ene i8verh i2vob i8vur -i1w iwi2 i5xa i1xe i1z ize8n i8zir i6z5w \n{i"a8m} \n{i1"a6r} -\n{i5"at.} \n{i5"av} \n{i1"o8} \n{i"u8} i6\35ers \c{i6\95ers} ja5la -je2t3r 6jm 5jo jo5as jo1ra jou6l ju5cha jugen4 jugend5 jung5s6 ju1s -\n{3j"a} 1ka 8kachs 8kakz ka1la kal5d kam5t ka1na 2kanl 8kapf ka6pl -ka5r6a 6k3arbe ka1ro kar6p5f 4k3arti 8karz \n{ka1r"a} kasi5e ka6teb -kat8ta kauf6s kau3t2 2k1b 2k1c 4k1d kehr6s kehrs5a 8keic 2k1eig 6k5ein -6k5eis ke6lar ke8leis ke8lo 8kemp k5ente. k3entf 8k5ents 6kentz ke1ra -k5erlau 2k1f8 2k1g 2k1h ki5fl 8kik king6s5 6kinh ki5os ki5sp ki5th -\n{8ki8"o} 2k1k2 kl8 1kla 8klac k5lager kle4br k3leib 3kleid kle5isc -4k3leit k3lek 6k5ler. 5klet 2klic 8klig k2lim k2lin 5klip 5klop k3lor -\n{1kl"a} 2k1m kmani5e kn8 6kner k2ni \n{kn"a8} 1k2o ko1a2 ko6de. -ko1i koi8t ko6min ko1op ko1or ko6pht ko3ra kor6d5er ko5ru ko5t6sc k3ou -3kow 6k5ox 2k1p2 k1q 1kr8 4k3rad 2k1rec 4k3reic kre5ie 2krib 6krig -2krip 6kroba 2ks k1sa k6sab ksal8s k8samt k6san k1sc k2s1ex k5spat -k5spe k8spil ks6por k1spr kst8 k2s1uf 2k1t kta8l kt5a6re k8tein kte8re -k2t1h k8tinf kt3rec kt1s 1ku ku1ch kuck8 k3uhr ku5ie kum2s1 kunfts5 -kun2s kunst3 ku8rau ku4ro kurz1 ku1st 4kusti ku1ta ku8\3 \c{ku8\9} -6k1v 2k1w ky5n 2k1z \n{1k"a} \n{k"a4m} \n{4k3"ami} \n{k"ase5} \n{1k"o} -\n{k"o1c} \n{k"o1s} \n{1k"u} \n{k"u1c} \n{k"ur6sc} \n{k"u1s} 1la. -8labf 8labh lab2r 2l1abs lach3r la8dr 5ladu 8ladv 6laff laf5t la2gn -5laken 8lamb la6mer 5lampe. 2l1amt la1na 1land lan4d3a lan4d3r lan4gr -8lanme 6lann 8lanw \n{6lan"a} 8lappa lap8pl lap6pr l8ar. la5ra lar4af -la8rag la8ran la6r5a6s l3arbe la8rei 6larm. la8sa la1sc la8sta lat8i -6l5atm 4lauss 4lauto 1law 2lb l8bab l8bauf l8bede l4b3ins l5blo -lbst5an lbst3e 8lc l1che l8chert l1chi lch3m l5cho lch5w 6ld l4d3ei -ld1re \n{l6d"ub} le2bl le8bre lecht6s5 led2r 6leff le4gas 1lehr lei6br -le8inf 8leinn 5leistu 4lektr le6l5ers lemo2 8lemp l8en. 8lends -6lendun le8nend len8erw 6l5ents 4l3entw 4lentz 8lenzy 8leoz 6lepi -le6pip 8lepo 1ler l6er. 8lerbs 6l5erde le8reis le8rend le4r3er 4l3erg -l8ergr 6lerkl 6l5erzie \n{8ler"o} 8lesel lesi5e le3sko le3tha let1s -5leuc 4leuro leu4s3t le5xe 6lexp l1f 2l1g lgend8 l8gh lglie3 lglied6 -6l1h 1li li1ar li1as 2lick li8dr li1en lien6n li8ers li8ert 2lie\3 -\c{2lie\9} 3lig li8ga8b li1g6n li1l8a 8limb li1na 4l3indu lings5 -4l3inh 6linj link4s3 4linkt 2lint 8linv lion5s6t 4lipp 5lipt 4lisam -livi5e 6l1j 6l1k l8keim l8kj lk2l lko8f lkor8 lk2sa lk2se 6ll l1la -ll3a4be l8labt ll8anl ll1b ll1c ll1d6 l1le l4l3eim l6l5eise ller3a -l4leti l5lip l1lo ll3ort ll5ov ll6spr llte8 l1lu ll3urg \n{l1l"a} -\n{l5l"u} \n{l6l"ub} 2l1m l6m5o6d 6ln l1na l1no 8lobl lo6br 3loch. -l5o4fen 5loge. 5lohn 4l3ohr 1lok l2on 4l3o4per lo1ra 2l1ord 6lorg -4lort lo1ru 1los. lo8sei 3losig lo6ve lowi5 6l1p lp2f l8pho l8pn -lp4s3te l2pt l1q 8l1r 2ls l1sa l6sarm l1sc l8sec l6s5erg l4s3ers l8sh -l5s6la l1sp ls4por ls2pu l1str l8suni \n{l1s"u} 2l1t lt5amp l4t3ein -l5ten l6t5eng l6t5erp l4t3hei lt3her l2t1ho l6t5i6b lti1l \n{l8tr"o} -lt1sc lt6ser lt4s3o lt5ums lu8br lu2dr lu1en8 8lu8fe luft3a luf8tr -lu6g5r 2luh l1uhr lu5it 5luk 2l1umf 2l1umw 1lun 6l5u6nio 4l3unte lu5ol -4lurg 6lurs l3urt lu4sto lu3str lu6st5re lu8su lu6tal lu6t5e6g lu8terg -lu3the lu6t5or lu2t1r lu6\35 \c{lu6\95} l1v lve5r6u 2l1w 1ly lya6 -6lymp ly1no l8zess l8zo8f l3zwei lz5wu \n{3l"and} \n{l"a5on} -\n{l"a6sc} \n{l"at1s} \n{5l"auf} \n{2l"aug} \n{l"au6s5c} \n{l"a5v} -\n{l1"ol} \n{1l"os} \n{l"o1\36t} \n{\c{l"o1\96t}} \n{6l1"ube} 1ma -8mabg ma5chan mad2 ma5el 4magg mag8n ma1la ma8lau mal5d 8malde mali5e -malu8 ma8lut 2m1amp 3man mand2 man3ds 8mangr mani5o 8m5anst 6mappa -4m3arbe mar8kr ma1r4o mar8schm 3mas ma1sc \n{ma1t"o} 4m5auf ma5yo 2m1b -mb6r 2m1c 2m1d \n{md6s"a} 1me me1ch me5isc 5meld mel8sa 8memp me5nal -men4dr men8schl men8schw 8mentsp me1ra mer4gl me1ro 3mes me6s5ei me1th -me8\3 \c{me8\9} 2m1f6 2m1g 2m1h 1mi mi1a mi6ale mi1la 2m1imm mi1na -\n{mi5n"u} mi4s3an mit1h mi5t6ra 3mitt mitta8 mi6\35 \c{mi6\95} 6mj -2m1k8 2m1l 2m1m m6mad m6m5ak m8menth m8mentw mme6ra m2mn mm5sp mm5ums -mmut5s \n{m8m"an} m1n8 m5ni 1mo mo5ar mo4dr 8mof mo8gal mo4kla mol5d -m2on mon8do mo4n3od mont8a 6m5ony mopa6 mo1ra mor8d5a mo1sc mo1sp 5mot -moy5 2mp m1pa mpfa6 mpf3l mphe6 m1pi mpin6 m1pl mp2li m2plu mpo8ste -m1pr \n{mpr"a5} mp8th mput6 mpu5ts \n{m1p"o} 8m1q 2m1r 2ms ms5au m1sc -msch4l ms6po m3spri m1str 2m1t mt1ar m8tein m2t1h mt6se \n{mt8s"a} -mu5e 6m5uh mumi1 1mun mun6dr muse5e mu1ta 2m1v mvol2 mvoll3 2m1w 1my -2m1z \n{m"a6kl} \n{1m"an} \n{m"a1s} \n{m"a5tr} \n{m"au4s3c} \n{3m"a\3} -\n{\c{3m"a\9}} \n{m"ob2} \n{6m"ol} \n{1m"u} \n{5m"un} \n{3m"ut} 1na. -n5ab. 8nabn n1abs n1abz \n{na6b"a} na2c nach3e 3nacht 1nae na5el -n1afr 1nag 1n2ah na8ha na8ho 1nai 6nair na4kol n1akt nal1a 8naly 1nama -na4mer na1mn n1amp 8n1amt 5nanc nan6ce n1and n6and. 2n1ang 1nani -1nann n1ans 8nanw 5napf. 1n2ar. na2ra 2n1arc n8ard 1nari n8ark -6n1arm 5n6ars 2n1art n8arv 6natm nat6s5e 1naue 4nauf n3aug 5naui n5auk -na5um 6nausb 6nauto 1nav 2nax 3naz 1na\3 \c{1na\9} n1b2 nbau5s n1c -nche5e nch5m 2n1d nda8d n2d1ak nd5ans n2d1ei nde8lac ndel6sa n8derhi -nde4se nde8stal n2dj ndnis5 n6d5or6t nd3rec nd3rot nd8samt nd6sau -ndt1h n8dumd 1ne ne5as ne2bl 6n5ebn 2nec 5neei ne5en ne1g4l 2negy -4n1ein 8neis 4n3e4lem 8nemb 2n1emp nen1a 6n5energ nen3k 8nentb -4n3en3th 8nentl 8n5entn 8n5ents ne1ra ne5r8al ne8ras 8nerbi 6n5erde. -nere5i6d nerfor6 \n{6n5erh"o} \n{8nerl"o} 2n1err n8ers. 6n5ertra -2n1erz nesi3e net1h neu4ra neu5sc 8neu\3 \c{8neu\9} n1f nf5f nf2l -nflei8 nf5lin nft8st n8g5ac ng5d ng8en nge8ram ngg2 ng1h n6glic ng3rip -ng8ru ng2se4 ng2si n2g1um n1gy \n{n8g"al} n1h nhe6r5e 1ni ni1bl -\n{ni5ch"a} ni8dee n6ie ni1en nie6s5te niet5h ni8etn 4n3i6gel n6ik -ni1la 2n1imp ni5na 2n1ind 8ninf 6n5inh ni8nit 6n5inn 2n1ins 4n1int -n6is ni3str ni1th ni1tr n1j n6ji n8kad nk5ans n1ke n8kerla n1ki nk5inh -\n{n5kl"o} n1k2n n8k5not nk3rot \n{n8kr"u} nk5spo nk6t5r n8kuh -\n{n6k"ub} n5l6 nli4mi n1m nmen4s n1na n8nerg nni5o n1no nn4t3ak nnt1h -nnu1e n1ny \n{n1n"a} \n{n1n"o} \n{n1n"u} no5a no4b3la 4n3obs 2nobt -noche8 no6die no4dis no8ia no5isc 6n5o6leu no4mal noni6er 2n1onk n1ony -4n3o4per 6nopf 6nopti no3ra no4ram nor6da 4n1org 2n1ort n6os no1st -8nost. no8tan no8ter noty6pe 6n5ox n1p2 n1q n1r \n{nr"os3} 6ns n1sac -ns3ang n1sc n8self n8s5erf n8serg n6serk ns5erw n8sint n1s2pe n1spr -n6s5tat. n5s6te. n6stob n1str n1ta n4t3a4go nt5anh nt3ark nt3art -n1te nt3eis nte5n6ar nte8nei nter3a nte6rei nt1ha nt6har n3ther nt5hie -n3thus n1ti nti1c n8tinh nti1t ntlo6b ntmen8 n1to nt3o4ti n1tr ntra5f -ntra5ut nt8rea nt3rec nt8rep n4t3rin nt8rop n4t3rot \n{n4tr"u} nt1s -nts6an nt2sk n1tu nt1z \n{n1t"a} \n{n1t"o} \n{n8t"ol} \n{n1t"u} 1nu -nu1a nu5el nu5en 4n1uhr nu5ie 8numl 6n5ums 6n5umw 2n1und 6nuni 6n5unr -2n1unt 2nup 2nu6r n5uri nu3skr nu5ta n1v 8n1w 1nys n1za n6zab n2z1ar -n6zaus nzi4ga n8zof n6z5unt n1zw n6zwir \n{1n"ac} \n{5n"ae} \n{5n"ai} -\n{n8"al} \n{n"a6m} \n{n"a6re} \n{n5"arz} \n{5n"aus} \n{n1"ol} -\n{1n"ot} \n{n5"oz} \n{5n"u.} \n{6n1"u2b} \n{5n"u\3} \n{\c{5n"u\9}} -o5ab. oa2l o8ala o1a2m o1an ob1ac obe4ra o6berh 5o4bers o4beru -obe6ser 1obj o1bl o2bli ob5sk 3obst. ob8sta obst5re ob5sz o1che -oche8b o8chec o3chi och1l och3m ocho8f o3chro och3to o3chu och1w o1d -o2d1ag od2dr ode5i ode6n5e od1tr o5e6b o5e6der. oe8du o1ef o1e2l -o1e2p o1er. o5e8x o1fa of8fan 1offi of8fin of6f5la o5fla o1fr 8o1g -og2n o1ha o1he o6h5eis o1hi ohl1a oh1le oh4l3er 5ohm. oh2ni o1ho -oh1re oh1ru o1hu oh1w o1hy \n{o1h"a} o5ia o1id. o8idi oi8dr o5ids -o5isch. oiset6 o1ism o3ist. o5i6tu o1j o1k ok2l ok3lau \n{o8kl"a} -1okta o1la old5am old5r o1le ole5in ole1r ole3u ol6gl ol2kl olk4s1 -ol8lak ol8lauf. ol6lel ol8less o1lo ol1s ol6sk o1lu oly1e2 5olym -o2mab om6an o8mau ombe4 o8merz om5sp o1mu o8munt \n{o1m"a} \n{o1m"o} -o1na ona8m on1ax on8ent o6n5erb 8oni oni5er. on1k on6n5a6b o1no ono1c -o4nokt 1ons onts8 \n{o1n"a} oo8f 1oog oo2pe oo2sa o1pa 3o4pera o3pfli -opf3lo opf3r o1pi o1pl o2pli o5p6n op8pa op6pl o1pr o3p4ter 1opti -\n{o1p"a} \n{o5p"o} o1q o1ra. o3rad o8radd 1oram o6rang o5ras o8rauf -or5cha or4d3a4m or8dei or8deu 1ordn or4dos o1re o5re. ore2h o8r5ein -ore5isc or6enn or8fla or8fli 1orga 5orgel. or2gl o1ri 5o6rient or8nan -\n{or8n"a} o1ro or1r2h or6t5an or8tau or8tere o1rus o1ry \n{o1r"a} -\n{or1"u2} o1sa osa3i 6ose o8serk o1sk o6ske o6ski os2kl os2ko os2kr -osni5e o2s1o2d o3s4per o4stam o6stau o3stra ost3re osu6 o6s5ur o5s6ze -o1ta ot3auf o6taus o1te o6terw o1th othe5u o2th1r o1ti o1to oto1a -ot1re o1tri o1tro ot1sc o3tsu ot6t5erg ot2t3h ot2t5r \n{ot8t"o} o1tu -ou3e ouf1 ou5f6l o5u6gr ou5ie ou6rar ou1t6a o1v o1wa o1we o6wer. o1wi -owid6 o1wo o5wu o1xe oy5al. oy1e oy1i o5yo o1z oza2r 1o2zea ozo3is -\n{o"o8} o\35elt \c{o\95elt} o\31t \c{o\91t} 3paa pa6ce 5pad pag2 1pak -pa1la pa8na8t pani5el pa4nor pan1s2 1pap pap8s pa8rei par8kr paro8n -par5o6ti part8e 5partei 3partn pas6sep pa4tha 1pau 6paug pau3sc p1b -8p5c 4p1d 1pe 4peic pe5isc 2pek pen3k pen8to8 p8er pe1ra pere6 per5ea -per5eb pe4rem 2perr per8ran 3pers 4persi \n{pe3r"u} pe4sta pet2s -p2f1ec p4fei pf1f pf2l 5pflanz pf8leg pf3lei 2pft pf3ta p1g 1ph 2ph. -2p1haf 6phb 8phd 6p5heit ph5eme 6phg phi6e 8phk 6phn p5holl pht2 -ph3tha 4ph3the phu6 6phz pi1en pi5err pi1la pi1na 5pinse pioni8e 1pis -pi1s2k pi1th p1k pl8 5pla p2lau 4plei p3lein 2pler 6p5les 2plig p6lik -6p5ling p2liz plo8min 6p1m p1n 1p2o 8poh 5pol po8lan poly1 po3ny po1ra -2porn por4t3h \n{po5r"o} 5poti p1pa p6p5ei ppe6la pp5f p2p1h p1pi pp1l -ppp6 pp5ren pp1s \n{p5p"o} pr6 3preis 1pres 2p3rig 5prinz 1prob 1prod -5prog pro8pt pro6t5a prote5i 8pro\3 \c{8pro\9} \n{pr"a3l} \n{1pr"as} -\n{pr"ate4} \n{1pr"uf} p5schl 2pst 1p2sy p1t p8to8d pt1s 5p6ty 1pu -pu1b2 2puc pu2dr puf8fr 6p5uh pun8s pu8rei pu5s6h pu1ta p1v p3w 5py -py5l p1z \n{p"a6der} \n{p5"a6m} \n{p"a8nu} \n{8p"ar} \n{p"at5h} -\n{p"at1s} qu6 1qui 8rabk ra6bla 3rable ra2br r1abt 6rabz ra4dan ra2dr -5rafal ra4f3er ra5gla ra2g3n 6raha ral5am 5rald 4ralg ra8lins 2rall -ral5t 8ramei r3anal r6and ran8der ran4dr 8ranf 6ranga 5rangi ran8gli -r3angr rans5pa 8ranw r8anz. ra5or 6rapf ra5pl rap6s5er 2r1arb 1rarh -r1arm ra5ro 2r1art 6r1arz ra8tei ra6t5he 6ratl ra4t3ro r5atta raue4n -6raus. r5austa rau8tel raut5s ray1 r1b rb5lass r6bler rb4lie rbon6n -r8brecht \n{rb6s5t"a} r8ces r1che rch1l rch3m rch3re rch3tr rch1w 8rd -r1da r8dachs r8dap rda5ro rde5ins rdio5 r8dir rd3ost r1dr r8drau 1re. -re1ak 3reakt re3als re6am. re1as 4reben re6bl rech5a r8edi re3er -8reff 3refl 2reh 5reha r4ei. reich6s5 8reier 6reign re5imp 4r3eina -6r3einb 6reing 6r5einn 6reinr 4r3eins r3eint reli3e 8r5elt 6rempf -2remt ren5a6b ren8gl r3enni 1reno 5rente 4r3enth 8rentl 4r3entw 8rentz -ren4zw re1on requi5 1rer rer4bl 6rerbs 4r3erd \n{8rerh"o} 8rerkl -4r3erla \n{8rerl"o} 4r3erns \n{6r5ern"a} rer5o 6r5erreg r5ertr r5erwec -\n{r5er"o} re2sa re8schm 2ress re5u8ni 6rewo 2r1ex r1f r8ferd rf4lie -8r1g r8gah rge4bl rge5na rgest4 rg6ne r2gni2 r8gob r4g3ret rg8sel r1h8 -r2hy 5rhyt ri1ar ri5cha rid2g r2ie rieg4s5 ri8ei ri1el ri6ele ri1en -ri3er. ri5ers. ri6fan ri8fer ri8fr 1r2ig ri8kn ri5la \n{rim"a8} -ri1na r8inde rin4ga rin6gr 1rinn 6rinner rino1 r8insp 4rinst -\n{ri1n"a} ri5o6ch ri1o2d ri3o6st 2r1ir r2is ri3sko ri8spr \n{ri8st"u} -ri5sv r2it 6r5i6tal ri5tr ri6ve. 8r1j 6rk r1ke rkehrs5 r1ki r3klin -r1k2n rk3str rk4t3an rk6to r6kuh \n{rk"a4s3t} r1l r5li rline5a 6r1m -r6manl rma4p r4m3aph r8minf r8mob rm5sa 2rn r1na rna8be r5ne rn2ei -r6neif r6nex r6nh rn1k r1no r6n5oc rn1sp \n{r1n"a} \n{r1n"u} ro6bern -6robs ro1ch 3rock. ro5de ro1e 4rofe ro8hert 1rohr ro5id ro1in ro5isc -6rolym r2on 6roog ro6phan r3ort ro1s2p ro5s6w ro4tau ro1tr ro6ts 5rout -r1p rpe8re rp2f r2ps r2pt r1q 2rr r1ra r1re rrer6 rr6hos \n{r5rh"o} -r1ri r1ro rro8f rr8or rror5a r1ru r3ry \n{r1r"a} \n{r1r"o} \n{r1r"u} -2r1s r6sab r4sanf rse6e rse5na r2sh r6ska r6ski rs2kl r8sko r2sl rs2p -r6stauf r8sterw r8stran rswi3d4 r2sz 2r1t rt3art r8taut r5tei rt5eige -r8tepe r4t3erh r8terla r4t3hei r5t6hu r4t3int rt5reif rt1sc rt6ser -rt6s5o rt6s5u rt5und r8turt rube6 ru1en 1r4uf ruf4st ru1ie 2r1umg -2r1uml 2rums run8der run4d5r 6rundz 6runf 8runs 2r1unt 2r1ur r6us -ru6sta ru3str ru6tr 1ruts r1v rven1 rvi2c r1w r1x r1za rz5ac r6z5al -r8z1ar r8zerd r6z5erf rz8erh rz4t3h r8zum \n{r"a4ste} \n{r"au8sc} -\n{r1"of} \n{5r"ohr} \n{r"o5le} \n{3r"oll} \n{5r"omis} \n{r1"or} -\n{r"o2sc} \n{3r"ump} 1sa. 1saa s3a4ben sa2bl 2s1abs 6s1abt 6sabw -3sack. 6s3a4der 1saf sa1fa 4s1aff sa5fr 1sag 1sai sa1i2k1 4s1akt 1sal -sa1la 4s3alpi 6salter salz3a 1sam s5anb san2c 1sand s5angeh 6sanl -2s1ans 6s3antr 8s1anw s1ap s6aph 8sapo sap5p6 s8ar. 2s1arb 3sarg -s1arm sa5ro 2s1art 6s1arz 1sas 1sat sat8a 2s1atl sa8tom 3s8aue s5auff -sau5i s6aur 2s1aus 5s6ause 2s1b2 2sca s4ce 8sch. 3scha. 5schade -3schaf 3schal sch5ame 8schanc 8schb 1sche 6schef 8schex 2schf 2schg -2schh 1schi 2schk 5schlag 5schlu \n{6schm"a\3} \n{\c{6schm"a\9}} -6schna\3 \c{6schna\9} 1scho 6schord 6schp 3schri 8schric 8schrig -8schrou 6schs 2scht sch3ta sch3tr 1schu 8schunt 6schv 2schz \n{5sch"o} -\n{5sch"u} 2sco scre6 6scu 2s1d 1se se5an se1ap se6ben se5ec see5i6g -se3erl 8seff se6han se8hi \n{se8h"o} 6s5eid. 2s1eig s8eil 5sein. -sei5n6e 6s5einh 3s8eit 3sel. se4lar selb4 6s3e4lem se8lerl 2s1emp -sen3ac se5nec 6s5ents 4sentz s8er. se8reim ser5inn \n{8serm"a} -8s5erzi \n{6ser"of} se1um 8sexa 6sexp 2s1f2 sfal8ler 2s3g2 sge5b2 s1h -s8hew 5s6hip 5s4hop 1si 2siat si1b sicht6s 6s5i6dee siege6s5 si1en -si5err si1f2 si1g2n si6g5r si8kau sik1i si4kin si2kl \n{si8k"u} si1la -sil6br si1na 2s1inf sin5gh 2s1inh sinne6s5 2s1ins si5ru si5str 4s1j -s1k2 6sk. 2skau skel6c skelch5 s6kele 1s2ki. 3s4kin. s6kiz s8kj -6skn 2skow 3skrib 3skrip 2sku \n{8sk"u} s1l s8lal slei3t s4low 2s1m -s1n 6sna 6snot 1so so1ch 2s1odo so4dor 6s5o4fen solo3 s2on so5of 4sope -so1ra 2s1ord 4sorga sou5c so3un 4s3ox sp2 8spaa 5spal 1span 2spap -s2pec s4peis 1spek s6perg 4spers s6pes 2s1pf 8sphi \n{1s2ph"a} 1spi -spi4e 6s5pig 6spinse 2spis 2spla 2spol 5s6pom 6s5pos 6spoti 1spra -3s8prec 6spreis 5spring 6sprob 1spru s2pul 1s2pur 6spy \n{5sp"an} -\n{1sp"u} s1q 2s1r 2s1s2 sse8nu ssini6s ssoi6r 2st. 1sta 4stafe 2stag -sta3la 6stale 4stalg 8stalk 8stamt 6st5anf 4stans 6stanw 6starb sta4te -6staus 2stb 6stc 6std 1ste 4steil 3s2tel st3elb 8stemb 6steppi 8stese -8stesse 6stf 2stg 2sth st1ha st3hei s8t1hi st1ho st5hu 1sti sti4el -4stigm sti3na 6stind 4stinf sti8r 2stk 2stl 2stm 1sto 6stoll. 4st3ope -6stopf. 6stord 6stp 5stra. 4strai 3s4tral 6s5traum 3stra\3 -\c{3stra\9} 3strec 6s3tref 8streib 5streif 6streno 6stres 6strev -5s6tria 6strig 5strik 8strisi 3s4troa s8troma st5rose 4struf 3strum -\n{6str"ag} 2st1s6 2stt 1stu stu5a 4stuc 2stue 8stun. 2stv 2stw s2tyl -6stz \n{1st"a} \n{8st"ag} \n{1st"o} \n{1st"u} \n{8st"uch} \n{4st"ur.} -1su su2b1 3suc su1e su2fe su8mar 6sumfa 8sumk 2s1unt sup1p2 6s5u6ran -6surte 2s1v 2s1w 1sy 8syl. sy5la syn1 sy2na syne4 s1z s4zend 5s6zene. -8szu \n{1s"a} \n{6s5"and} \n{6s"augi} \n{6s"au\3} \n{\c{6s"au\9}} -\n{5s"om} \n{2s1"u2b} \n{1s"uc} \n{s"u8di} \n{1s"un} \n{5s"u\3} -\n{\c{5s"u\9}} taats3 4tab. taba6k ta8ban tab2l ta6bre 4tabs t3absc -8tabz 6t3acht ta6der 6tadr tad6s tad2t 1tafe4 1tag ta6ga6 ta8gei -tage4s tag6s5t tah8 tahl3 tai6ne. ta5ir. tak8ta tal3au 1tale ta8leng -tal5ert 6t5a6mer 6tamp tampe6 2t1amt tan5d6a tan8dr tands5a tani5e -6tanl 2tanr t3ans 8t5antr tanu6 t5anw 8tanwa tan8zw ta8rau 6tarbe -1tari 2tark 2t1arm ta1ro 2tart t3arti 6tarz ta1sc ta6sien ta8stem -ta8sto t5aufb 4taufn 8taus. 5tause 8tausf 6tausg t5ausl 2t1b2 2t1c -t6chu 2t1d te2am tea4s te8ben 5techn 4teff te4g3re te6hau 2tehe te4hel -2t1ehr te5id. teig5l 6teign tei8gr 1teil 4teinh t5einhe 4teis t5eisen -8teiw te8lam te4lar 4telek 8telem te6man te6n5ag ten8erw ten5k tens4p -ten8tro 4t3entw 8tentz te6pli 5teppi ter5a6b te3ral ter5au 8terbar -t5erbe. 6terben 8terbs 4t3erbt t5erde. ter5ebe ter5ein te8rers terf4 -\n{8terh"o} \n{6terkl"a} ter8nor ter6re. t8erscha t5e6sel te8stau -t3euro te1xa tex3e 8texp tex6ta 2t1f2 2t1g2 2th. th6a 5tha. 2thaa -6t1hab 6t5haf t5hah 8thak 3thal. 6thals 6t3hand 2t1hau 1the. 3t4hea -t1heb t5heil t3heit t3helf 1theo 5therap 5therf 6t5herz 1thes 1thet -5thi. 2t1hil t3him 8thir 3this t5hj 2th1l 2th1m th1n t5hob t5hof -4tholz 6thopti 1thr6 4ths t1hum 1thy \n{4t1h"a} \n{2t1h"o} \n{t1h"u} -ti1a2m ti1b tie6fer ti1en ti8gerz tig3l ti8kin ti5lat 1tilg t1ind -tin4k3l ti3spa ti5str 5tite ti5tr ti8vel ti8vr 2t1j 2t1k2 2t1l tl8a -2t1m8 2t1n 3tobe 8tobj to3cha 5tocht 8tock tode4 to8del to8du to1e -6t5o6fen to1in toi6r 5toll. to8mene t2ons 2t1ony to4per 5topf. 6topt -to1ra to1s to6ska tos2l 2toti to1tr t8ou 2t1p2 6t1q tr6 tra5cha -tra8far traf5t 1trag tra6gl tra6gr t3rahm 1trai t6rans tra3sc tra6st -3traue t4re. 2trec t3rech t8reck 6t1red t8ree 4t1reg 3treib 4treif -8t3reis 8trepo tre6t5r t3rev 4t3rez 1trib t6rick tri6er 2trig t8rink -tri6o5d trizi5 tro1a 3troc trocke6 troi8d tro8man. tro3ny 5tropf -6t5rosa t5ro\3 \c{t5ro\9} 5trub 5trup trut5 \n{1tr"ag} \n{6t1r"oh} -\n{5tr"ub} \n{tr"u3bu} \n{t1r"uc} \n{t1r"us} 2ts ts1ab t1sac tsa8d -ts1ak t6s5alt ts1an ts1ar ts3auf t3schr \n{t5sch"a} tse6e tsee5i -tsein6s ts3ent ts1er t8serf t4serk t8sh 5t6sik t4s3int ts5ort. -t5s6por t6sprei t1st t6s5tanz ts1th t6stit t4s3tor 1t2sua t2s1uf -t8sum. t2s1u8n t2s1ur 2t1t tt5eif tte6sa tt1ha tt8ret tt1sc tt8ser -tt5s6z 1tuc tuch5a 1tu1e 6tuh t5uhr tu1i tu6it 1tumh 6t5umr 1tums -8tumt 6tund 6tunf 2t1unt tu5ra tu6rau tu6re. tu4r3er 2t1v 2t1w 1ty1 -ty6a ty8la 8tym 6ty6o 2tz tz5al tz1an tz1ar t8zec tzeh6 tzehn5 t6z5ei. -t6zor t4z3um \n{t6z"au} \n{5t"ag} \n{6t"ah} \n{t5"alt} \n{t8"an} -\n{t"are8} \n{8t"a8st} \n{6t"au\3} \n{\c{6t"au\9}} \n{t5"offen} -\n{8t"o8k} \n{1t"on} \n{4t"ub} \n{t6"u5ber.} \n{5t"uch} \n{1t"ur.} -u3al. u5alb u5alf u3alh u5alk u3alp u3an. ua5na u3and u5ans u5ar. -ua6th u1au ua1y u2bab ubi5er. u6b5rit ubs2k \n{u5b"o} \n{u8b"ub} 2uc -u1che u6ch5ec u1chi uch1l uch3m uch5n uch1r uch5to ucht5re u1chu uch1w -uck1a uck5in u1d ud4a u1ei u6ela uene8 u6ep u1er uer1a ue8rerl uer5o -u8esc u2est u8ev u1fa u2f1ei u4f3ent u8ferh uf1fr uf1l uf1ra uf1re -\n{uf1r"a} \n{uf1r"u} uf1s2p uf1st uft1s u8gabt u8gad u6gap ugeb8 u8gn -ugo3s4 u1ha u1he u1hi uh1le u1ho uh1re u1hu uh1w \n{u1h"a} \n{u1h"o} -6ui ui5en u1ig u3ins uin8tes u5isch. u1j 6uk u1ke u1ki u1kl u8klu -u1k6n u5ky u1la uld8se u1le ul8lac ul6lau ul6le6l ul6lo ulni8 u1lo -ulo6i ult6a ult8e u1lu ul2vr \n{u1l"a} \n{u1l"o} 3umfan 5umlau umo8f -um8pho u1mu umu8s \n{u5m"o} u1n1a un2al un6at unau2 6und. 5undein -un4d3um 3undzw \n{und"u8} \n{un8d"ub} une2b un1ec une2h un3eis 3unfal -\n{1unf"a} 5ungea \n{3ungl"u} ung2s1 \n{un8g"a} 1u2nif un4it un8kro -unk5s u1no unpa2 uns2p unvol4 unvoll5 u5os. u1pa u1pi u1p2l u1pr -up4s3t up2t1a u1q u1ra ur5abs ura8d ur5ah u6rak ur3alt u6rana u6r5ans -u8rap ur5a6ri u8ratt u1re ur3eig ur8gri u1ri ur5ins 3urlau urmen6 -ur8nan u1ro 3ursac ur8sau ur8sei ur4sk 3urtei u1ru uru5i6 uru6r u1ry -ur2za \n{ur6z"a} \n{ur5"a6m} \n{u5r"o} \n{u1r"u} \n{ur"uck3} u1sa -usa4gi u2s1ar u2s1au u8schec usch5wi u2s1ei use8kel u8sl u4st3a4b -us3tau u3s4ter u2s1uf u8surn ut1ac u1tal uta8m u1tan ut1ar u1tas ut1au -u1te u8teic u4tent u8terf u6terin u4t3hei ut5ho ut1hu u1ti utine5 -uti6q u1to uto5c u1tr ut1sa ut1s6p ut6stro u1tu utz5w u1u u1v uve5n -\n{uve3r4"a} u1w u1xe u5ya uy5e6 u1yi u2z1eh u8zerh \n{u5"o} u\3e6n -\c{u\9e6n} u\3en5e \c{u\9en5e} 8vanb 6vang 6varb var8d va6t5a va8tei -va2t1r 2v1b 6v5c 6vd 1ve 6ve5g6 ver1 ver5b verb8l ve2re2 verg8 ve2ru8 -ve1s ve2s3p ve3xe 2v1f 2v1g 6v5h vi6el vie6w5 vi1g4 vi8leh vil6le. -8vint vi1ru vi1tr 2v1k 2v1l 2v1m 4v5n 8vo8f voi6le vol8lend vol8li -v2or1 vo2re vo8rin vo2ro 2v1p 8vra v6re 2v1s 2v1t 2v1v 4v3w 2v1z -waffe8 wa6g5n 1wah wah8n wa5la wal8din wal6ta wan4dr 5ware wa8ru -war4za 1was w5c w1d 5wech we6fl 1weg we8geng weg5h weg3l we2g1r -weh6r5er 5weise weit3r wel2t welt3r we6rat 8werc 5werdu wer4fl 5werk. -wer4ka wer8ku wer4ta wer8term we2sp we8stend we6steu we8str -\n{we8st"o} wet8ta wich6s5t 1wid wi2dr wiede4 wieder5 wik6 wim6ma -win4d3r 5wirt wisch5l 1wj 6wk 2w1l 8w1n wo1c woche6 wol6f wor6t5r 6ws2 -w1sk 6w5t 5wunde. wun6gr wu1sc wu2t1 6w5w wy5a \n{w"arme5} \n{w"a1sc} -1xag x1ak x3a4men 8xamt x1an 8x1b x1c 1xe. x3e4g 1xen xe1ro x1erz -1xes 8xf x1g 8x1h 1xi 8xid xi8so 4xiste x1k 6x1l x1m 8xn 1xo 8x5o6d -8x3p2 x1r x1s6 8x1t x6tak x8terf x2t1h 1xu xu1e x5ul 6x3w x1z 5ya. -y5an. y5ank y1b y1c y6cha y4chia y1d yen6n y5ern y1g y5h y5in y1j -y1k2 y1lak yl1al yla8m y5lax y1le y1lo y5lu y8mn ym1p2 y3mu y1na yno2d -yn1t y1on. y1o4p y5ou ypo1 y1pr y8ps y1r yri3e yr1r2 y1s ys5iat ys8ty -y1t y3w y1z \n{y"a8m} z5a6b zab5l 8za6d 1zah za5is 4z3ak 6z1am 5zange. -8zanl 2z1ara 6z5as z5auf 3zaun 2z1b 6z1c 6z1d 1ze ze4dik 4z3eff 8zein -zei4ta zei8ters ze6la ze8lec zel8th 4zemp 6z5engel zen8zin \n{8zerg"a} -zer8i ze1ro zers8 zerta8 zer8tab zer8tag 8zerz ze8ste zeu6gr 2z1ex -2z1f8 z1g 4z1h 1zi zi1en zi5es. 4z3imp zi1na 6z5inf 6z5inni zin6s5er -8zinsuf zist5r zi5th zi1tr 6z1j 2z1k 2z1l 2z1m 6z1n 1zo zo6gl 4z3oh -zo1on zor6na8 4z1p z5q 6z1r 2z1s8 2z1t z4t3end z4t3hei z8thi 1zu zu3al -zu1b4 zu1f2 6z5uhr zun2a 8zunem zunf8 8zungl zu1o zup8fi zu1s8 zu1z -2z1v zw8 z1wal 5zweck zwei3s z1wel z1wer z6werg 8z5wes 1zwi zwi1s -6z1wo 1zy 2z1z zz8a zzi1s \n{1z"a} \n{1z"o} \n{6z"ol.} \n{z"o1le} -\n{1z"u} \n{2z1"u2b} \n{"a1a6} \n{"ab1l} \n{"a1che} \n{"a3chi} -\n{"ach8sc} \n{"ach8sp} \n{"a5chu} \n{"ack5a} \n{"ad1a} \n{"ad5era} -\n{"a6d5ia} \n{"a1e} \n{"a5fa} \n{"af1l} \n{"aft6s} \n{"ag1h} -\n{"ag3le} \n{"a6g5nan} \n{"ag5str} \n{"a1he} \n{"a1hi} \n{"ah1le} -\n{"ah5ne} \n{1"ahnl} \n{"ah1re} \n{"ah5ri} \n{"ah1ru} \n{"a1hu} -\n{"ah1w} \n{6"ai} \n{"a1isc} \n{"a6ische} \n{"a5ism} \n{"a5j} -\n{"a1k} \n{"al1c} \n{"a1le} \n{"a8lei} \n{"al6schl} \n{"ami1e} -\n{"am8n} \n{"am8s} \n{"a5na} \n{5"anderu} \n{"ane5i8} \n{"ang3l} -\n{"ank5l} \n{"a1no} \n{"an6s5c} \n{"a1pa} \n{"ap6s5c} \n{3"aq} -\n{"ar1c} \n{"a1re} \n{"are8m} \n{5"argern} \n{"ar6gl} \n{"a1ri} -\n{3"armel} \n{"a1ro} \n{"art6s5} \n{"a1ru} \n{3"arztl} \n{"a5r"o} -\n{"a6s5chen} \n{"asen8s} \n{"as1th} \n{"ata8b} \n{"a1te} \n{"ateri4} -\n{"ater5it} \n{"a6thy} \n{"a1ti} \n{3"atk} \n{"a1to} \n{"at8schl} -\n{"ats1p} \n{"a5tu} \n{"aub1l} \n{"au1e} \n{1"aug} \n{"au8ga} -\n{"au5i} \n{"a1um.} \n{"a1us.} \n{1"au\3} \n{\c{1"au\9}} \n{"a1z} -\n{"o1b} \n{"o1che} \n{"o5chi} \n{"och8stei} \n{"och8str} \n{"ocht6} -\n{5"o6dem} \n{5"offn} \n{"o1he} \n{"oh1l8} \n{"oh1re} \n{"o1hu} -\n{"o1is} \n{"o1ke} \n{1"o2ko} \n{1"ol.} \n{"ol6k5l} \n{"ol8pl} -\n{"o1mu} \n{"o5na} \n{"onig6s3} \n{"o1no} \n{"o5o6t} \n{"opf3l} -\n{"op6s5c} \n{"o1re} \n{"or8gli} \n{"o1ri} \n{"or8tr} \n{"o1ru} -\n{5"osterr} \n{"o1te} \n{"o5th} \n{"o1ti} \n{"o1tu} \n{"o1v} \n{"o1w} -\n{"owe8} \n{"o2z} \n{"ub6e2} \n{3"u4ber1} \n{"ub1l} \n{"ub1r} -\n{5"u2bu} \n{"u1che} \n{"u1chi} \n{"u8ch3l} \n{"uch6s5c} \n{"u8ck} -\n{"uck1a} \n{"uck5ers} \n{"ud1a2} \n{"u6deu} \n{"udi8t} \n{"u2d1o4} -\n{"ud5s6} \n{"uge4l5a} \n{"ug1l} \n{"uh5a} \n{"u1he} \n{"u8heh} -\n{"u6h5erk} \n{"uh1le} \n{"uh1re} \n{"uh1ru} \n{"u1hu} \n{"uh1w} -\n{"u3k} \n{"u1le} \n{"ul4l5a} \n{"ul8lo} \n{"ul4ps} \n{"ul6s5c} -\n{"u1lu} \n{"un8da} \n{"un8fei} \n{"unk5l} \n{"un8za} \n{"un6zw} -\n{"u5pi} \n{"u1re} \n{"u8rei} \n{"ur8fl} \n{"ur8fr} \n{"ur8geng} -\n{"u1ri} \n{"u1ro} \n{"ur8sta} \n{"ur8ster} \n{"u1ru} \n{"use8n} -\n{"u8sta} \n{"u8stes} \n{"u6s5tete} \n{"u3ta} \n{"u1te} \n{"u1ti} -\n{"ut8tr} \n{"u1tu} \n{"ut8zei} \n{"u1v} \31a8 \c{\91a8} 5\3a. -\c{5\9a.} \38as \c{\98as} \31b8 \c{\91b8} \31c \c{\91c} \31d \c{\91d} -1\3e \c{1\9e} \35ec \c{\95ec} 8\3e8g \c{8\9e8g} 8\3e8h \c{8\9e8h} -2\31ei \c{2\91ei} 8\3em \c{8\9em} \31f8 \c{\91f8} \31g \c{\91g} \31h -\c{\91h} 1\3i \c{1\9i} \31k \c{\91k} \31l \c{\91l} \31m \c{\91m} -\3mana8 \c{\9mana8} \31n \c{\91n} \31o \c{\91o} \31p8 \c{\91p8} \35q -\c{\95q} \31r \c{\91r} \31s2 \c{\91s2} \3st8 \c{\9st8} \31ta \c{\91ta} -\31te \c{\91te} \3t3hei \c{\9t3hei} \31ti \c{\91ti} \35to \c{\95to} -\31tr \c{\91tr} 1\3u8 \c{1\9u8} 6\35um \c{6\95um} \31v \c{\91v} \31w -\c{\91w} \31z \c{\91z} -}% -\endgroup -\relax\endinput -% -% ----------------------------------------------------------------- -% -% =============== Additional Documentation =============== -% -% -% Older Versions of German Hyphenation Patterns: -% ---------------------------------------------- -% -% All older versions of `ghyphen.tex' distributed as -% -% ghyphen.tex/germhyph.tex as of 1986/11/01 -% ghyphen.min/ghyphen.max as of 1988/10/10 -% ghyphen3.tex as of 90/09/27 & 91/02/13 -% -% are out of date and it is recommended to replace them -% with the new version `ghyph31.tex'. -% -% If you are using `ghyphen.min' (a minor version of `ghyphen') -% because of limited trie memory space, try this version and if -% the space is exceeded get a newer TeX implementation with -% larger or configurable trie memory sizes. -% -% -% -% Trie Memory Requirements/Space for Hyphenation Patterns: -% -------------------------------------------------------- -% -% To load this set of german hyphenation patterns the parameters -% of TeX has to have at least these values: -% -% TeX 3.x: -% IniTeX: trie_size >= 9733 trie_op_size >= 207 -% VirTeX: trie_size >= 8375 trie_op_size >= 207 -% -% TeX 2.x: -% IniTeX: trie_size >= 8675 trie_op_size >= 198 -% VirTeX: trie_size >= 7560 trie_op_size >= 198 -% -% If you want to load more than one set of hyphenation patterns -% (in TeX 3.x), the parameters have to be set to a value larger -% than or equal to the sum of all required values for each set. -% -% -% Setting Trie Memory Parameters: -% ------------------------------- -% -% Some implementations allow the user to change the default value -% of a set of the internal TeX parameters including the trie memory -% size parameter specifying the used memory for the hyphenation -% patterns. -% -% emTeX (PC): -% You can set the used memory size of the trie using the -% `-mt' option on the command line or in the -% TEXOPTIONS environment variable. -% -% PasTeX (Amiga): -% The values for the parameters can be set using the keywords -% `triesize', `itriesize' and `trieopsize' in the configuration -% file. -% -% others (binaries only): -% See the documentation of the implementation if it is possible -% and how to change these values without recompilation. -% -% others (with sources, e.g. PublicTeX (PC), web2c (Unix et.al.)): -% If the trie memory is too small, you have to recompile TeX -% using larger values for `trie_size' and `trie_op_size'. -% Modify the change file pctex.ch/ctex.ch and recompile TeX. -% For details see the documentation included in the sources. -% -% -% -% Necessary Settings in TeX macro files: -% -------------------------------------- -% -% \lefthyphenmin, \righthyphenmin: -% You can set both parameters to 2. -% -% \lccode : -% To get correct hyphenation points within words containing -% umlauts or \ss, it's necessary to assign values > 0 to the -% appropriate \lccode positions. -% -% These changes are done when reading this file (\lccode for umlauts) -% or are included in the language switching mechanism of `german.sty' -% (\lccode change for \ss, \left-/\righthyphenmin settings). -% -% -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% -\endinput -%% -%% End of file `ghyph31.tex'. diff --git a/macros/ec-plain/hyacceur.tex b/macros/ec-plain/hyacceur.tex deleted file mode 100644 index bf82e6fa18..0000000000 --- a/macros/ec-plain/hyacceur.tex +++ /dev/null @@ -1,143 +0,0 @@ -% -%%%%%% adaptation pour le codage ed/dc: Yannis Haralambous -%%%%%% complete par D. Taupin pour tout ce qui passe de maj a min -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Villeneuve d'Ascq 10/7/91 Orsay 28/2/92 -% -\catcode`\^^c0=11\uccode`\^^c0=`\^^c0\lccode`\^^c0=`\^^e0 -\catcode`\^^c1=11\uccode`\^^c1=`\^^c1\lccode`\^^c1=`\^^e1 -\catcode`\^^c2=11\uccode`\^^c2=`\^^c2\lccode`\^^c2=`\^^e2 -\catcode`\^^c3=11\uccode`\^^c3=`\^^c3\lccode`\^^c3=`\^^e3 -\catcode`\^^c4=11\uccode`\^^c4=`\^^c4\lccode`\^^c4=`\^^e4 -\catcode`\^^c5=11\uccode`\^^c5=`\^^c5\lccode`\^^c5=`\^^e5 -\catcode`\^^c6=11\uccode`\^^c6=`\^^c6\lccode`\^^c6=`\^^e6 -\catcode`\^^c7=11\uccode`\^^c7=`\^^c7\lccode`\^^c7=`\^^e7 -\catcode`\^^c8=11\uccode`\^^c8=`\^^c8\lccode`\^^c8=`\^^e8 -\catcode`\^^c9=11\uccode`\^^c9=`\^^c9\lccode`\^^c9=`\^^e9 -\catcode`\^^ca=11\uccode`\^^ca=`\^^ca\lccode`\^^ca=`\^^ea -\catcode`\^^cb=11\uccode`\^^cb=`\^^cb\lccode`\^^cb=`\^^eb -\catcode`\^^cc=11\uccode`\^^cc=`\^^cc\lccode`\^^cc=`\^^ec -\catcode`\^^cd=11\uccode`\^^cd=`\^^cd\lccode`\^^cd=`\^^ed -\catcode`\^^ce=11\uccode`\^^ce=`\^^ce\lccode`\^^ce=`\^^ee -\catcode`\^^cf=11\uccode`\^^cf=`\^^cf\lccode`\^^cf=`\^^ef -% -\catcode`\^^d0=11\uccode`\^^d0=`\^^d0\lccode`\^^d0=`\^^f0 -\catcode`\^^d1=11\uccode`\^^d1=`\^^d1\lccode`\^^d1=`\^^f1 -\catcode`\^^d2=11\uccode`\^^d2=`\^^d2\lccode`\^^d2=`\^^f2 -\catcode`\^^d3=11\uccode`\^^d3=`\^^d3\lccode`\^^d3=`\^^f3 -\catcode`\^^d4=11\uccode`\^^d4=`\^^d4\lccode`\^^d4=`\^^f4 -\catcode`\^^d5=11\uccode`\^^d5=`\^^d5\lccode`\^^d5=`\^^f5 -\catcode`\^^d6=11\uccode`\^^d6=`\^^d6\lccode`\^^d6=`\^^f6 -\catcode`\^^d7=11\uccode`\^^d7=`\^^d7\lccode`\^^d7=`\^^f7 -\catcode`\^^d8=11\uccode`\^^d8=`\^^d8\lccode`\^^d8=`\^^f8 -\catcode`\^^d9=11\uccode`\^^d9=`\^^d9\lccode`\^^d9=`\^^f9 -\catcode`\^^da=11\uccode`\^^da=`\^^da\lccode`\^^da=`\^^fa -\catcode`\^^db=11\uccode`\^^db=`\^^db\lccode`\^^db=`\^^fb -\catcode`\^^dc=11\uccode`\^^dc=`\^^dc\lccode`\^^dc=`\^^fc -\catcode`\^^dd=11\uccode`\^^dd=`\^^dd\lccode`\^^dd=`\^^fd -\catcode`\^^de=11\uccode`\^^de=`\^^de\lccode`\^^de=`\^^fe -\catcode`\^^df=11\uccode`\^^df=`\^^df\lccode`\^^df=`\^^ff -% -\catcode`\^^e0=11\uccode`\^^e0=`\^^c0\lccode`\^^e0=`\^^e0 -\catcode`\^^e1=11\uccode`\^^e1=`\^^c1\lccode`\^^e1=`\^^e1 -\catcode`\^^e2=11\uccode`\^^e2=`\^^c2\lccode`\^^e2=`\^^e2 -\catcode`\^^e3=11\uccode`\^^e3=`\^^c3\lccode`\^^e3=`\^^e3 -\catcode`\^^e4=11\uccode`\^^e4=`\^^c4\lccode`\^^e4=`\^^e4 -\catcode`\^^e5=11\uccode`\^^e5=`\^^c5\lccode`\^^e5=`\^^e5 -\catcode`\^^e6=11\uccode`\^^e6=`\^^c6\lccode`\^^e6=`\^^e6 -\catcode`\^^e7=11\uccode`\^^e7=`\^^c7\lccode`\^^e7=`\^^e7 -\catcode`\^^e8=11\uccode`\^^e8=`\^^c8\lccode`\^^e8=`\^^e8 -\catcode`\^^e9=11\uccode`\^^e9=`\^^c9\lccode`\^^e9=`\^^e9 -\catcode`\^^ea=11\uccode`\^^ea=`\^^ca\lccode`\^^ea=`\^^ea -\catcode`\^^eb=11\uccode`\^^eb=`\^^cb\lccode`\^^eb=`\^^eb -\catcode`\^^ec=11\uccode`\^^ec=`\^^cc\lccode`\^^ec=`\^^ec -\catcode`\^^ed=11\uccode`\^^ed=`\^^cd\lccode`\^^ed=`\^^ed -\catcode`\^^ee=11\uccode`\^^ee=`\^^ce\lccode`\^^ee=`\^^ee -\catcode`\^^ef=11\uccode`\^^ef=`\^^cf\lccode`\^^ef=`\^^ef -% -\catcode`\^^f0=11\uccode`\^^f0=`\^^d0\lccode`\^^f0=`\^^f0 -\catcode`\^^f1=11\uccode`\^^f1=`\^^d1\lccode`\^^f1=`\^^f1 -\catcode`\^^f2=11\uccode`\^^f2=`\^^d2\lccode`\^^f2=`\^^f2 -\catcode`\^^f3=11\uccode`\^^f3=`\^^d3\lccode`\^^f3=`\^^f3 -\catcode`\^^f4=11\uccode`\^^f4=`\^^d4\lccode`\^^f4=`\^^f4 -\catcode`\^^f5=11\uccode`\^^f5=`\^^d5\lccode`\^^f5=`\^^f5 -\catcode`\^^f6=11\uccode`\^^f6=`\^^d6\lccode`\^^f6=`\^^f6 -\catcode`\^^f7=11\uccode`\^^f7=`\^^d7\lccode`\^^f7=`\^^f7 -\catcode`\^^f8=11\uccode`\^^f8=`\^^d8\lccode`\^^f8=`\^^f8 -\catcode`\^^f9=11\uccode`\^^f9=`\^^d9\lccode`\^^f9=`\^^f9 -\catcode`\^^fa=11\uccode`\^^fa=`\^^da\lccode`\^^fa=`\^^fa -\catcode`\^^fb=11\uccode`\^^fb=`\^^db\lccode`\^^fb=`\^^fb -\catcode`\^^fc=11\uccode`\^^fc=`\^^dc\lccode`\^^fc=`\^^fc -\catcode`\^^fd=11\uccode`\^^fd=`\^^dd\lccode`\^^fd=`\^^fd -\catcode`\^^fe=11\uccode`\^^fe=`\^^de\lccode`\^^fe=`\^^fe -\catcode`\^^ff=11\uccode`\^^ff=`\^^df\lccode`\^^ff=`\^^ff -% -% -\catcode`\^^80=11\uccode`\^^80=`\^^80\lccode`\^^80=`\^^a0 -\catcode`\^^81=11\uccode`\^^81=`\^^81\lccode`\^^81=`\^^a1 -\catcode`\^^82=11\uccode`\^^82=`\^^82\lccode`\^^82=`\^^a2 -\catcode`\^^83=11\uccode`\^^83=`\^^83\lccode`\^^83=`\^^a3 -\catcode`\^^84=11\uccode`\^^84=`\^^84\lccode`\^^84=`\^^a4 -\catcode`\^^85=11\uccode`\^^85=`\^^85\lccode`\^^85=`\^^a5 -\catcode`\^^86=11\uccode`\^^86=`\^^86\lccode`\^^86=`\^^a6 -\catcode`\^^87=11\uccode`\^^87=`\^^87\lccode`\^^87=`\^^a7 -\catcode`\^^88=11\uccode`\^^88=`\^^88\lccode`\^^88=`\^^a8 -\catcode`\^^89=11\uccode`\^^89=`\^^89\lccode`\^^89=`\^^a9 -\catcode`\^^8a=11\uccode`\^^8a=`\^^8a\lccode`\^^8a=`\^^aa -\catcode`\^^8b=11\uccode`\^^8b=`\^^8b\lccode`\^^8b=`\^^ab -\catcode`\^^8c=11\uccode`\^^8c=`\^^8c\lccode`\^^8c=`\^^ac -\catcode`\^^8d=11\uccode`\^^8d=`\^^8d\lccode`\^^8d=`\^^ad -\catcode`\^^8e=11\uccode`\^^8e=`\^^8e\lccode`\^^8e=`\^^ae -\catcode`\^^8f=11\uccode`\^^8f=`\^^8f\lccode`\^^8f=`\^^af -% -\catcode`\^^90=11\uccode`\^^90=`\^^90\lccode`\^^90=`\^^b0 -\catcode`\^^91=11\uccode`\^^91=`\^^91\lccode`\^^91=`\^^b1 -\catcode`\^^92=11\uccode`\^^92=`\^^92\lccode`\^^92=`\^^b2 -\catcode`\^^93=11\uccode`\^^93=`\^^93\lccode`\^^93=`\^^b3 -\catcode`\^^94=11\uccode`\^^94=`\^^94\lccode`\^^94=`\^^b4 -\catcode`\^^95=11\uccode`\^^95=`\^^95\lccode`\^^95=`\^^b5 -\catcode`\^^96=11\uccode`\^^96=`\^^96\lccode`\^^96=`\^^b6 -\catcode`\^^97=11\uccode`\^^97=`\^^97\lccode`\^^97=`\^^b7 -\catcode`\^^98=11\uccode`\^^98=`\^^98\lccode`\^^98=`\^^b8 -\catcode`\^^99=11\uccode`\^^99=`\^^99\lccode`\^^99=`\^^b9 -\catcode`\^^9a=11\uccode`\^^9a=`\^^9a\lccode`\^^9a=`\^^ba -\catcode`\^^9b=11\uccode`\^^9b=`\^^9b\lccode`\^^9b=`\^^bb -\catcode`\^^9c=11\uccode`\^^9c=`\^^9c\lccode`\^^9c=`\^^bc -\catcode`\^^9d=11\uccode`\^^9d=`\^^9d\lccode`\^^9d=`\^^69 % Idot -> i -\catcode`\^^9e=11\uccode`\^^9e=`\^^d0\lccode`\^^9e=`\^^9e -%\catcode`\^^9f=11\uccode`\^^9f=`\^^9f\lccode`\^^9f=`\^^bf -% -\catcode`\^^a0=11\uccode`\^^a0=`\^^80\lccode`\^^a0=`\^^a0 -\catcode`\^^a1=11\uccode`\^^a1=`\^^81\lccode`\^^a1=`\^^a1 -\catcode`\^^a2=11\uccode`\^^a2=`\^^82\lccode`\^^a2=`\^^a2 -\catcode`\^^a3=11\uccode`\^^a3=`\^^83\lccode`\^^a3=`\^^a3 -\catcode`\^^a4=11\uccode`\^^a4=`\^^84\lccode`\^^a4=`\^^a4 -\catcode`\^^a5=11\uccode`\^^a5=`\^^85\lccode`\^^a5=`\^^a5 -\catcode`\^^a6=11\uccode`\^^a6=`\^^86\lccode`\^^a6=`\^^a6 -\catcode`\^^a7=11\uccode`\^^a7=`\^^87\lccode`\^^a7=`\^^a7 -\catcode`\^^a8=11\uccode`\^^a8=`\^^88\lccode`\^^a8=`\^^a8 -\catcode`\^^a9=11\uccode`\^^a9=`\^^89\lccode`\^^a9=`\^^a9 -\catcode`\^^aa=11\uccode`\^^aa=`\^^8a\lccode`\^^aa=`\^^aa -\catcode`\^^ab=11\uccode`\^^ab=`\^^8b\lccode`\^^ab=`\^^ab -\catcode`\^^ac=11\uccode`\^^ac=`\^^8c\lccode`\^^ac=`\^^ac -\catcode`\^^ad=11\uccode`\^^ad=`\^^8d\lccode`\^^ad=`\^^ad -\catcode`\^^ae=11\uccode`\^^ae=`\^^8e\lccode`\^^ae=`\^^ae -\catcode`\^^af=11\uccode`\^^af=`\^^8f\lccode`\^^af=`\^^af -% -\catcode`\^^b0=11\uccode`\^^b0=`\^^90\lccode`\^^b0=`\^^b0 -\catcode`\^^b1=11\uccode`\^^b1=`\^^91\lccode`\^^b1=`\^^b1 -\catcode`\^^b2=11\uccode`\^^b2=`\^^92\lccode`\^^b2=`\^^b2 -\catcode`\^^b3=11\uccode`\^^b3=`\^^93\lccode`\^^b3=`\^^b3 -\catcode`\^^b4=11\uccode`\^^b4=`\^^94\lccode`\^^b4=`\^^b4 -\catcode`\^^b5=11\uccode`\^^b5=`\^^95\lccode`\^^b5=`\^^b5 -\catcode`\^^b6=11\uccode`\^^b6=`\^^96\lccode`\^^b6=`\^^b6 -\catcode`\^^b7=11\uccode`\^^b7=`\^^97\lccode`\^^b7=`\^^b7 -\catcode`\^^b8=11\uccode`\^^b8=`\^^98\lccode`\^^b8=`\^^b8 -\catcode`\^^b9=11\uccode`\^^b9=`\^^99\lccode`\^^b9=`\^^b9 -\catcode`\^^ba=11\uccode`\^^ba=`\^^9a\lccode`\^^ba=`\^^ba -\catcode`\^^bb=11\uccode`\^^bb=`\^^9b\lccode`\^^bb=`\^^bb -\catcode`\^^bc=11\uccode`\^^bc=`\^^9c\lccode`\^^bc=`\^^bc -%\catcode`\^^bd=11\uccode`\^^bd=`\^^9d\lccode`\^^bd=`\^^bd -%\catcode`\^^be=11\uccode`\^^be=`\^^9e\lccode`\^^be=`\^^be -%\catcode`\^^bf=11\uccode`\^^bf=`\^^9f\lccode`\^^bf=`\^^bf -% -\endinput diff --git a/macros/ec-plain/hyconfig.ptx b/macros/ec-plain/hyconfig.ptx deleted file mode 100644 index fab2b200e9..0000000000 --- a/macros/ec-plain/hyconfig.ptx +++ /dev/null @@ -1,98 +0,0 @@ -% hyconfig.tex -% Hyphenation configuration code -% Updates: -% 02/28/92 language number setting was wrong. -% 03/20/92 allow hyphenation exceptions file (in language.dat) loading. -% 06/23/92 call the appropriate hymltex* file when using MlTeX -% 07/03/92 add \accenthypencodes -% 08/24/92 introduce \l@ being the language number -% 08/26/92 suppress absolute font character references normally unneeded -% 03/03/93 add dialect feature via ``='' sign. -% 04/02/93 add \input compatible.tex when \csubinverse undefined. -% 08/19/93 apply \c mods from MJF -- July 14, 92 -% 08/20/93 insert space after \input X for NFSS2 (H. Soulard) -% 01/13/94 add \j def for non french languages (noted by R. Lemieux). -% 03/22/94 \LANGUAGESinFORMAT now contains all languages names (proposed -% by Michel Lavaud). -% \input hyphen replaced by \input ushyphen (sugg. of M.Lavaud). -% 05/05/94 \patterns@loaded replace \LANGUAGESinFORMAT as in Babel. -% 08/10/94 \input replaced by \@@input if already defined. -% 10/18/94 Load compatible.tex only outside MlTeX. -% 12/13/94 Allow nothing else than =name in language.dat -% 12/17/94 Let language counter progress when equal sign after first language. -% 12/22/94 Don't load compatible.tex whith 2e any way. -% 03/02/95 " " " " any other format not OT1, this -% was clearly pointed by Thierry Bouche. -% 03/22/95 \encodingdefault may be undefined (as pointed by Loic Prylli). -% 96/09/10 Allow exception file to be blank in language.dat. -% 96/10/29 Messages numbered. -% 96/12/31 TeX 2 no more supported. taking in acount new frhyph.tex, no more -% usage of compatible.tex. -% -\message{languages: patterns and exceptions,} -%% -%% checksum = "05842 98 440 4335" -%% -\ifx\@@input\undefined\let\@@input\input\fi% -\def\@temp{}% -%\let\charsubdef\undefined% for testing purposes only -\ifx\charsubdef\undefined\else\def\@temp{\@@input hymltex3.tex \endinput}\fi -\@temp -%%%%%%%%%%%%%% pure TeX usage -\language=0 -% ======== Load Patterns as described in language.dat ====== - -% (language.dat was introduced by Johannes Braams) - -{\newcount\l@nguage\newcount\initl@\newcount\workl@% - % Compatibility with TeX 2: \language count - \ifx\language\let\language\l@nguage\fi - -\initl@=\language\l@nguage=\initl@\workl@=\l@nguage -\xdef\patterns@loaded{}% will contain all languages names -\def\@newlanguage[#1]#2{\language=#1% - \workl@=#1\advance\workl@ by -\initl@ - \message{-38- The #2 language is used as language number \the\workl@}% - \expandafter\xdef\csname l@#2\endcsname{\the\workl@}% 08/24/92 - \xdef\patterns@loaded{\patterns@loaded\space #2} - \expandafter\xdef\csname#2\endcsname{\language=\the\workl@\relax}%2/28/92 -\ifx\undefined\defaultlanguage\gdef\defaultlanguage{\csname#2\endcsname}\fi}% -% test if #1 equal ``='' that means same language hyphenation but a dialect. -\edef\test{=}% -\def\@language#1#2 #3 #4/#5{\def\@tempa{=}\def\@tempb{#1}% - \ifx\@tempa\@tempb% - \ifnum\l@nguage > \initl@ \advance\l@nguage by -1\fi% - \@newlanguage[\the\l@nguage]{#2}% - \ifnum\l@nguage \test \initl@ \advance\l@nguage by -1\fi% - \else\edef\test{<}\@l@ngu@ge#1#2 #3 #4/{#5}% - \fi}% -\def\@l@ngu@ge#1 #2 #3/#4{\begingroup\@newlanguage[#4]{#1}%20/3/92 mods - \def\@tempa{#2} - \ifx\@tempa\empty\else\expandafter\@@input#2 \relax\fi%% loading of patterns - \edef\@tempa{#3}\edef\@tempb{\space\space} - \ifx\@tempa\space\else - \ifx\@tempb\@tempa\else\expandafter% - \@@input#3 \relax\fi%% loading of exceptions - \fi% - \ifx\@tempb\@tempa\else\expandafter\@@input#3 \relax\fi%% loading of exceptions - \endgroup} -\newif\if@more\@moretrue -\openin1 = language.dat -\ifeof1\message{-39- Error: file language.dat not found, trying to load % - US-english hyphenation file}\language=0\input ushyphen -\else\advance\l@nguage by -1 -\loop \endlinechar=-1 \read1 to \@lineD \endlinechar`\^^M - \ifx\@lineD\empty \else \advance\l@nguage by 1% - \edef\@lineD{\@lineD\space\space/{\the\l@nguage}}% - \expandafter\@language\@lineD - \fi - \ifeof1 \@morefalse \fi - \if@more\repeat -\fi\closein1 - -}\defaultlanguage% go to the default language (first defined in language.dat) -\endinput - - - - diff --git a/macros/ec-plain/ithyph.tex b/macros/ec-plain/ithyph.tex deleted file mode 100644 index 36c20829d0..0000000000 --- a/macros/ec-plain/ithyph.tex +++ /dev/null @@ -1,107 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%% file ithyph.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Prepared by Claudio Beccari e-mail beccari@polito.it -% -% Dipartimento di Elettronica -% Politecnico di Torino -% Corso Duca degli Abruzzi, 24 -% 10129 TORINO -% -% \versionnumber{3.4} \versiondate{8 february 1994} -% -% These hyphenation patterns for the Italian language comply with the -% Reccomendation UNI 6461 on hyphenation issued by the Italian Standards -% Institution (Ente Nazionale di Unificazione UNI). -% -% For documentation see: -% C. Beccari, "Computer aided hyphenation for Italian and Modern -% Latin", TUG vol. 13, n. 1, pp. 23-33 (1992) -% -% The following set of patterns is a slightly modified subset of the one -% described in the preceeding paper, which includes also patterns specific -% for the Latin language; the latter patterns have been eliminated and the -% remaining ones accordingly modified in order to reduce the number of ops -% (this file requires just 37 ops and no hyphenation exceptions). -% -% This set of patterns is compatible with the existing sets of macros and -% fonts for TeX and LaTeX that map national characters in a suitable way so -% as to have the hyphenation algorithm behave properly in the presence -% of accented characters. In facts the following patterns do not include -% any accented characters because: -% -% 1) The Regulation UNI 6015 on accents specifies that compulsory accents -% appear only on the ending vowel of accented words; this means that it is almost -% indifferent to have or to miss special facilities for national characters -% because the only difference consists in how TeX evaluates the end of the -% word; in practice if you have these special facilities you get -% "qua-li-t\`a", while if you miss them, you get "qua-lit\`a" (assuming -% that \righthyphenmin > 1). -% 2) Optional accents are so rare in Italian, that if you absolutely want -% to use them in those rare instances, and you miss the national character -% facilities, you should also provide explicit discretionary hyphens -% as in "s\'e\-gui\-to". -% -% There is no explicit hyphenation exception list because these patterns -% proved to hyphenate correctly a very large set of words suitably chosen in -% order to test them in the most heavy circumstances; these patterns were used -% in the preparation of a number of books and no errors were discovered. -% Should you find any word that gets hyphenated in a wrong way, please, AFTER -% CHECKING ON A RELIABLE MODERN DICTIONARY, report to the author, preferably -% by e-mail. -% -\lccode`\'=`\' % Apostrophe has its own lccode so that it is treated - % as a letter - % -\patterns{ -.an1ti3 .an1ti3m4n -.di2s3ci3ne -.e2x3 -.cir1cu2m3 -.wa2g3n -.ca6p5s -.o2p3to3 -.pa1ra3i .pa1ra3u -.pre3i .pro3i -.p4s % In case you set \lefthyphenmin=1 (brrrr !) -4l. 4n. 4r. 4t. 4s. % in case you set \righthyphenmin=1 (brrrr !) -.ri3a .ri3e .re3i .ri3o .ri3u -.su4b3lu .su4b3r -5p4si3c4 -3p4neu1 -a1a a2e a2i a2j a1o a2u a2y -a2y3o a3i2a a3i2e a3i2o a3i2u ae3u -e1a e1e e2i e2j e2o e2u e2y e3iu -i2a i2e i1i i2o i2u io3i -o1a o2e o2i o2j o1o o2u o2y -o3i2a o3i2e o3i2o o3i2u -u2a u2e u2i u2o u1u uo3u -% -1b2 2b3b 4b3d 2b3n 2b3s -1c2 2c3c 2c3m 4c3n 2c3q 2c3s 2c3t 2c3z 4ch3h -1d2 2d3d 2d3g 4d3m 4d3s 4d3v 4d3w -1f2 2f3f 2f3t -1g2 2g3g 4g3d 4g3f 4g3m 4g3s 4g3v -1h2 -1j2 -1k2 2k3k -1l2 2l3b 2l3c 2l3d 2l3f4 2l3g 2l3k 2l3l 4l3m 2l3n 2l3p - 2l3q 2l3r 2l3s 2l3t 2l3v 2l3z -1m2 2m3m 2m3b 2m3p 2m3l 2m3n 2m3r 4m3w -1n2 2n3c 2n3d 2n3f 2n3g 2n3k 2n3n 2n3q 2n3s 2n3t - 2n3v 2n3z 2n' 2n4g3n -1p2 2p3p 4p3s 2p3n 4p3t 2p3z -1q2 2q3q -1r2 2r3b 2r3c 2r3d 2r3f 2r3g 2r3k 2r3l 2r3m 2r3n 2r3p - 2r3q 2r3r 2r3s 2r3t 2r3v 2r3z -1s2 2s3s 2s2t3m 2s' -1t2 2t3t 4t3m 4t3n 4t3w 2t3z -1v2 2v3v -1w2 wa4r -1x2 -y2a y2e y2i y2o y2u -1z2 2z3z 2z3t -} % Pattern end - -\endinput - - diff --git a/macros/ec-plain/language.dat b/macros/ec-plain/language.dat deleted file mode 100644 index 5a1c24d0ee..0000000000 --- a/macros/ec-plain/language.dat +++ /dev/null @@ -1,24 +0,0 @@ -% This is language.dat as of March 13th, 1991 at (your site) -% -% This file tells which are the languages and the usable hyphenation files. -% First language will have language number 0 when used by hyconfig.tex -% at an INITeX time or used by french.sty Version 3 -% (once INITeX is done don't change the language order!) -% -%============================================================================% -%| Name | patterns file | exceptions file % comments |% -%============================================================================% - english enhyph.tex enhyphex.tex % default language is "english" - french f8hyph.tex frhyphex.tex % pas d'exceptions francaises ? - german ghyph31.tex % (german) - spanish eshyph.tex % (spanish) - italian ithyph.tex % (italian) -% dumylang dumyhyph.tex % for testing a new language without hyphen files - -% INITeX hyconfig.tex % master hyphenation code used at my site to - % congigurate each [*]plain format at INITeX time. - % \input hyphen is replaced here by \input hyconfig - % which does the job of loading files. - - % Donald Knuth's hyphen.tex file is left unchanged - % (in fact in 2 parts: patterns and exceptions). diff --git a/macros/ec-plain/make-musixtex-format.bat b/macros/ec-plain/make-musixtex-format.bat deleted file mode 100644 index fbcfae5aa0..0000000000 --- a/macros/ec-plain/make-musixtex-format.bat +++ /dev/null @@ -1,2 +0,0 @@ -initex &ec-plain musixtex.ins - diff --git a/macros/ec-plain/ofgreekl.mf b/macros/ec-plain/ofgreekl.mf deleted file mode 100644 index 640e25a1ee..0000000000 --- a/macros/ec-plain/ofgreekl.mf +++ /dev/null @@ -1,491 +0,0 @@ -% This lowercase Greek alphabet was prepared by D. E. Knuth in December, 1979, -% inspired by the Monotype faces used in {\sl The Art of Computer Programming}. -% (It has been designed for math formulas, not Greek texts.) -% The programs were revised for the new \MF\ conventions in 1985. - -% Character codes \0013--\0047 are generated. - -cmchar "Lowercase Greek alpha"; -beginchar(character_offset+oct"013",11u#,x_height#,0); -italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.5u#); -adjust_fit(0,0); pickup fine.nib; -pos0(hair,0); pos1(vair,-90); pos2(curve,-180); pos3(vair,-270); -z4=(w-3.25u,9/16h); z5=(w-2.75u,.5[vair,y4]); -numeric theta; theta=angle(z4-z5)-90; -pos4(stem,theta); pos5(stem,theta); -pos6(vair,90); pos7(hair,180); -rt x0r=hround(w-u); x1=x3=.5w-u; lft x2r=hround(1.5u-.5curve); -x6=w-u; x7+.5hair=hround(w+.5hair-epsilon); -top y0=vround .8[bar_height,h]; bot y1r=bot y6l=-oo; -y2=.5[y1,y3]; top y3r=h+oo; y7=1/4bar_height; -filldraw stroke z0e{down}...pulled_arc.e(1,2) & pulled_arc.e(2,3) - ...z4e---z5e...z6e{right}...{up}z7e; % diagonal, bowl, and hook -math_fit(-.3x_height#*slant+.5curve#-u#,1/3x_height#*slant+.5hair#+.5u#); -penlabels(0,1,2,3,4,5,6,7); endchar; - -cmchar "Lowercase Greek beta"; -beginchar(character_offset+oct"014",9.5u#,asc_height#,desc_depth#); -italcorr .5[x_height#,asc_height#]*slant-u#; -adjust_fit(0,0); pickup fine.nib; -pos0(hair,180); pos1(hair,180); pos2(vair,90); -pos3(stem,0); pos4(vair,-90); pos5(hair,-180); -pos6(vair,-270); pos7(curve,-360); pos8(vair,-450); pos9(hair,-540); -x0=x1=x9; lft x0l=hround(1.5u-.5hair); x2=x4=x6=x8=.5w+.25u; -rt x3r=hround(w-1.5u); rt x7r=hround(w-1.5u+.5curve); rt x5l=hround(x4-u); -bot y0=-d; y1=top y6r=x_height; top y2r=h+oo; y3=.5[y2,y4]; -y5=.5[y4,y6]; top y6r-bot y4r=vstem+eps; bot y8=-oo; y7=y9=.5[y6,y8]; -if y6ly3r: y1r:=y3r:=y2; fi -lft x4l=hround u; x4r-x4l=(hround .6[vair,stem])-fine; -x6+.5u=x7=w-2u; x8=.5w+.75u; -y6=-.1d; y8=-3/4d-oo; bot y7r=-d-oo; -ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r); -y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r]; -filldraw circ_stroke z0e{down}...z1e{right}...{up}z2e; % opening hook -filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right} - ...z6e---z5e....{up}z4e - ..tension 1 and atleast1.5..{right}z3e...{down}z2e; % main stroke -math_fit(-.2asc_height#*slant-.5u#,0); -penlabels(0,1,2,3,4,5,6,7,8); endchar; - -cmchar "Lowercase Greek eta"; -beginchar(character_offset+oct"021",9u#,x_height#,desc_depth#); -italcorr .8x_height#*slant+.5stem#-u#; -adjust_fit(0,0); pickup fine.nib; -x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo; -hook_in(0,a,1); % opening hook -filldraw circ_stroke z2e--z1e; % left stem -x4+.5stem=hround(w-1.5u+.5stem); ital_arch(2,3,4); % arch -pos5(stem,0); x5=x4; y5-.5stem=-d-o; -filldraw circ_stroke z5e--z4e; % right stem -math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant); -penlabels(0,a,1,2,3,4,5); endchar; - -cmchar "Lowercase Greek theta"; -beginchar(character_offset+oct"022",8.25u#,asc_height#,0); -italcorr .7asc_height#*slant+.5curve#-u#; -adjust_fit(0,0); pickup fine.nib; -pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360); -x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2; -top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo; -filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3) - & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl -pos2'(bar,90); pos4'(bar,90); z2'=z2l; z4'=z4l; -filldraw stroke z2'e--z4'e; % bar -math_fit(-.3asc_height#*slant-u#+.5curve#,ic#-.5u#); -penlabels(1,2,3,4); endchar; - -cmchar "Lowercase Greek iota"; -beginchar(character_offset+oct"023",5u#,x_height#,0); -italcorr 1/3x_height#*slant+.5hair#+.5u#; -adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib; -pos1(stem,0); lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; -x2=x1-.25u; x4=w; hook_out(2,3,4)(skewed); % closing hook -filldraw circ_stroke z1e{down}...{-u,-x_height}z2e; % stem -math_fit(0,ic#); penlabels(1,2,3,4); endchar; - -cmchar "Lowercase Greek kappa"; -beginchar(character_offset+oct"024",9u#,x_height#,0); -italcorr 1/3x_height#*slant+.5hair#+.5u#; -adjust_fit(0,0); pickup fine.nib; -pos1(stem,0); pos2(stem,0); pos3(vair,90); pos4(vair,90); pos5(flare,90); -x1=x2=x3; lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; y2-.5stem=-oo; -filldraw z1l---z2l..z2r---z1r..cycle; % stem -y3=bar_height; top y4r=h; x4+.5flare=hround(w-1.5u); z5r=z4r; -path p,q; p=z3l{right}..{right}z4l; q=z5r{right}..z5l{left}...cycle; -numeric t; t=ypart(p intersectiontimes q); -filldraw stroke z3e{right}..{right}z4e; % upper diagonal -filldraw subpath(0,t) of q--cycle; % bulb -pos7(stem,0); pos8(vair,90); pos9(hair,180); -x9+.5hair=hround(w+.5hair-epsilon); y9=1/3x_height; -lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo; -filldraw stroke z3e{right}...z7e{down} - ...z8e{right}...{up}z9e; % lower diagonal -math_fit(0,ic#); penlabels(1,2,3,4,5,7,8,9); endchar; - -cmchar "Lowercase Greek lambda"; -beginchar(character_offset+oct"025",10.5u#,asc_height#,0); -adjust_fit(0,0); pickup fine.nib; -pos1(vair,90); lft x1=hround .1u; top y1r=h; -x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps); -z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90; -pos2(stem,theta); pos3(stem,theta); pos4(stem,0); -filldraw circ_stroke z1e{right}...z2e---z3e - ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal -y5=.5[bar_height,x_height]; z5=whatever[z2,z3]; -x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90); -filldraw circ_stroke z6e--z5e; % short diagonal -penlabels(1,2,3,4,5,6); endchar; - -cmchar "Lowercase Greek mu"; -beginchar(character_offset+oct"026",9u#,x_height#,desc_depth#); -italcorr 1/3x_height#*slant+.5hair#+.5u#; -adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; -pos1(stem,-180); pos2(stem,-180); x1=x2=x3; lft x1r=hround(1.5u-.5stem); -y1+.5stem=h+oo; y2-.5stem=-d-o; -filldraw z1r---z2r..z2l---z1l..cycle; % left stem -pos3(stem,-180); pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5]; -pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); -x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook -y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h; -filldraw stroke super_arc.e(3,4)...{up}z5e; % left stem and arc -filldraw circ_stroke z6e--z7e; % right stem -math_fit(desc_depth#*slant+.5stem#-u#,ic#); -penlabels(1,2,3,4,5,6,7,8,9); endchar; - -cmchar "Lowercase Greek nu"; -beginchar(character_offset+oct"027",8.5u#,x_height#,0); -italcorr x_height#*slant+.5stem#-u#; -adjust_fit(0,0); pickup fine.nib; -pos3(vair,-90); pos4(stem,0); bot y3r=0; y4+.5stem=h+oo; -x3-.5stem=hround(1.5u-.5stem); x4+.5stem=hround(w-1.5u+.5stem); -filldraw circ_stroke z4e{down}...{-36u,-h}z3e; % diagonal -pickup tiny.nib; pos1(stem,0); pos2(stem,0); -top y1=h+min(oo,serif_drop); bot y2=0; x1=x2=x3; -z=((z4{down}...{-36u,-h}z3)intersectionpoint((x2r,0)--(x2r,h))); -filldraw z1l--z2l--z--z1r--cycle; % stem -sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif -math_fit(0,ic#-1/3x_height#*slant-.5u#); penlabels(1,2,3,4); endchar; - -cmchar "Lowercase Greek xi"; -beginchar(character_offset+oct"030",9u#,asc_height#,desc_depth#); -italcorr .75[x_height#,asc_height#]*slant-2u#; -adjust_fit(0,0); pickup fine.nib; -pos10(hair,-720); pos11(vair,-630); pos12(hair,-540); pos13(vair,-450); -lft x10l=hround 1/3w; x11=x13=.5[x10,x12]; rt x12l=hround(w-2.5u); -top y10=h; top y13l=bot y11l+vstem+eps=vround(y10-.25(h-x_height)); -y12=.5[y11,y13]; if y11r>y13r: y11r:=y13r:=y12; fi -pos0(curve,-360); pos1(vair,-270); pos2(hair,-180); pos3(vair,-90); -numeric theta; theta=90-angle(22u,x_height); slope:=-x_height/22u; -pos6(stem,theta); pos7(vair,-90); pos8(vair,-135); -lft x0l=hround u; x1=x3=x11; x2=x12; -y0=.5[y13,y1]; top y3l=vround .5h=bot y1l+vstem+eps; y2=.5[y1,y3]; -if y1r>y3r: y1r:=y3r:=y2; fi -lft x4l=hround u; x4r-x4l=hround .5[vair,stem]-fine; -x6=x7=w-2u; x8=.5w+.5u; y6=-.3d; bot y7r=-d-oo; y8=max(-3/4d-oo,y7l); -ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r); -y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r]; -filldraw circ_stroke z10e{down}...z11e{right}...{up}z12e; % opening hook -filldraw stroke z12e{up}...z13e{left}...z0e{down} - ...z1e{right}...{up}z2e; % upper arc -filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}...z6e - ---z5e...{up}z4e...{right}z3e...{down}z2e; % main stroke -math_fit(-.2asc_height#*slant-.5u#,0); -penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13); endchar; - -cmchar "Lowercase Greek pi"; -beginchar(character_offset+oct"031",10u#,x_height#,0); -italcorr x_height#*slant+.5stem#-u#; -adjust_fit(0,0); pi_stroke; % hook and bar -pos4(hair,0); pos6(hair,0); x4=3.5u; x6=w-4u; y4=y6=y2; -x5=3u; x7=w-2.5u; y5=y7=.5stem-oo; -pair v[]; v1=(z4-z5) xscaled 3.14159; v2=(z6-z7) xscaled 3.14159; -pos5(stem,angle v1-90); pos7(stem,angle v2-90); -filldraw circ_stroke z5e{v1}...{up}z4e; % left stem -filldraw circ_stroke z7e{v2}...{up}z6e; % right stem -math_fit(-.7x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant); -penlabels(1,2,3,4,5,6,7); endchar; - -cmchar "Lowercase Greek rho"; -beginchar(character_offset+oct"032",8.25u#,x_height#,desc_depth#); -italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; -adjust_fit(0,0); pickup fine.nib; -pos1(stem,180); pos2(stem,180); pos3(vair,90); -pos4(curve,0); pos5(vair,-90); pos6(hair,-180); -lft x2r=hround(1.5u-.5stem); x1=x2=x6; x3=x5=.5[x2,x4]; -rt x4r=hround(w-1.5u+.5curve); -y1-.5stem=-d-o; y2=y4=y6=.5[y3,y5]; top y3r=h+oo; bot y5r=-oo; -filldraw circ_stroke z1e..pulled_arc.e(2,3) & pulled_arc.e(3,4) - & pulled_arc.e(4,5) & pulled_arc.e(5,6); % stem and bowl -math_fit(desc_depth#*slant+.5stem#-u#,ic#); -penlabels(1,2,3,4,5,6); endchar; - -cmchar "Lowercase Greek sigma"; -beginchar(character_offset+oct"033",10.25u#,x_height#,0); -italcorr x_height#*slant+.5stem#-u#; -adjust_fit(0,0); pickup fine.nib; -pos1(vstem,90); pos2(stem,0); pos3(vair,-90); -pos4(stem,-180); pos5(vstem,-270); pos6(vstem,-270); -x1=x3=x5=.5[x2,x4]; rt x2r=hround(w-2.5u); -lft x4r=hround(1.5u-.5curve);x6=w-1.5u; -top y1r=h; y2=y4=.5[y1,y3]; bot y3r=-oo; y5=y6=y1; -filldraw circ_stroke z6e..pulled_arc.e(5,4) & pulled_arc.e(4,3) - & pulled_arc.e(3,2) & pulled_arc.e(2,1); % ear and bowl -math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant); -penlabels(1,2,3,4,5,6); endchar; - -cmchar "Lowercase Greek tau"; -beginchar(character_offset+oct"034",9u#,x_height#,0); -italcorr x_height#*slant+.5stem#-u#; -adjust_fit(0,0); pi_stroke; % hook and bar -pos4(hair,0); pos5(stem,0); -x4=x5; x5-.5stem=hround(.5w-.5u-.5stem); y4=y2; y5-.5stem=-oo; -filldraw circ_stroke z5e--z4e; % stem -math_fit(-.7x_height#*slant+.5hair#+.5u#,-.5u#); -penlabels(1,2,3,4,5); endchar; - -cmchar "Lowercase Greek upsilon"; -beginchar(character_offset+oct"035",9u#,x_height#,0); -italcorr x_height#*slant; -adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; -x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem); -hook_in(0,1,2)(skewed); % opening hook -pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); -x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; -filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4) - ..tension atleast 1.05..{up}z5e; % left stem and arc -v_bulb(5,6); % closing bulb -math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#); -penlabels(0,1,2,3,4,5,6); endchar; - -cmchar "Lowercase Greek phi"; -beginchar(character_offset+oct"036",11u#,asc_height#,desc_depth#); -italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; -adjust_fit(0,0); pickup fine.nib; -numeric light_curve; light_curve=hround(.5[stem,curve]-2stem_corr); -pos1(vair,90); pos2(light_curve,180); pos3(vair,270); pos4(light_curve,360); -x1=x3=.5w; lft x2r=hround(1.5u-.5light_curve); x4=w-x2; -top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo; -filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3) - & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl -pos5(hair,0); pos6(hair,0); x5=x6=.5w; top y5=h; bot y6=-d-oo; -filldraw stroke z5e--z6e; % stem -math_fit(-.3x_height#*slant+.5curve#-u#,ic#); -penlabels(1,2,3,4,5,6); endchar; - -cmchar "Lowercase Greek chi"; -beginchar(character_offset+oct"037",11u#,x_height#,desc_depth#); -italcorr x_height#*slant+.5hair#-1.5u#; -adjust_fit(0,0); pickup fine.nib; -pos1(hair,180); pos2(vair,80); pos5(vair,80); pos6(hair,180); -x1-.5hair=hround-.5hair; x6=w-x1; x2=w-x5=u; -y1=y2l-h/8; top y2r=h+oo; bot y5l=-d-oo; y6=y5r+h/8; -z0=.5[z2,z5]; z2'=z2l+(.5u,0); z5'=z5r-(.5u,0); -numeric theta; theta=angle(z5'-z2')+90; -pos3(stem,theta); pos4(stem,theta); -y3r=y2r-h/8; y4l=y5l+h/8; z3l=whatever[z2',z0]; z4r=whatever[z0,z5']; -filldraw stroke z1e{up}...z2e{right}...z3e{z4r-z3l} - ..z4e{z4r-z3l}...{right}z5e...{up}z6e; % major diagonal and hooks -x8=w-x7=2u; y7+.5hair=h; y8-.5hair=-d; -numeric theta; theta=angle(z7-z8)-90; -pos7(hair,theta); pos8(hair,theta); -filldraw z7l---z8l..z8r---z7r..cycle; % minor diagonal -math_fit((desc_depth#-x_height#)*slant+ic#,ic#); -penlabels(0,1,2,2',3,4,5',5,6,7,8); endchar; - -cmchar "Lowercase Greek psi"; -beginchar(character_offset+oct"040",11u#,asc_height#,desc_depth#); -italcorr x_height#*slant; -adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; -x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem); -hook_in(0,1,2)(skewed); % opening hook -pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); -x4=.5w+u; rt x5r=hround(w-.5u); -y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; -filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4) - ..tension atleast 1.05..{up}z5e; % left stem and arc -v_bulb(5,6); % closing bulb -pos7(hair,0); pos8(hair,0); x7=x8=.5w+.5u; top y7=h; bot y8=-d-oo; -filldraw stroke z7e--z8e; % stem -math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#); -penlabels(0,1,2,3,4,5,6,7,8); endchar; - -cmchar "Lowercase Greek omega"; -beginchar(character_offset+oct"041",11u#,x_height#,0); -italcorr x_height#*slant; -adjust_fit(0,0); pickup fine.nib; -pos2(hair,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height; -y1+.5hair=h; x1=x2+.75u; pos1(hair,angle(2(x1-x2),y1-y2)+90); -pos3(vstem+dw,-90); pos4(hair,0); pos5(vair,90); -pos6(hair,180); pos7(vstem+dw,270); pos8(hair,360); -bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair); -x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u); -x5+.5stem=hround(.5w+.5stem)+eps; -x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps; -if x4ltop y7r+.75cap_jut: xjut=.5cap_jut; - else: bot y2=top y7r+1.5xjut; fi - pos11(hair,0); pos12(hair,0); y11=y12; - pos13(hair,0); pos14(hair,0); y13=y14; - lft x11l=lft x13l=w-rt x12r=w-rt x14r=hround 2.5u; - top y11-bot y13=shaved_stem+2xjut; .5[y11,y13]=y7; - filldraw stroke z11e--z13e; filldraw stroke z12e--z14e; fi % middle serifs -math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,11,12,13,14); endchar; - -cmchar "Uppercase Greek Pi"; -beginchar(character_offset+oct"005",13u#+width_adj#,cap_height#,0); -italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#); -adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib; -h:=vround(h-stem_corr); -pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0); -lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1; -top y1=top y3=h; bot y2=bot y4=0; -filldraw stroke z1e--z2e; % left stem -filldraw stroke z3e--z4e; % right stem -penpos5(cap_bar,90); penpos6(cap_bar,90); -x5=x1; x6=x3; y5r=y6r=h; -fill stroke z5e--z6e; % bar -if serifs: numeric inner_jut; - if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut; - else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi - nodish_serif(1,2,a,1/3,cap_jut,b,1/3,eps); % upper left serif - dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif - nodish_serif(3,4,e,1/3,eps,f,1/3,cap_jut); % upper right serif - dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif -math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar; - -cmchar "Uppercase Greek Sigma"; -beginchar(character_offset+oct"006",13u#,cap_height#,0); -italcorr cap_height#*slant-beak_jut#-.5u#; -adjust_fit(0,0); -numeric bot_arm_thickness; -bot_arm_thickness=Vround .25[slab,cap_vstem]; -pickup tiny.nib; lft x1l=hround u; x1l=x2l=x4l; -top y1=h; bot y2=h-slab-eps; bot y4=0; x3l-x1l=4/11(w-2u); y3=.5h; -numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3); -penpos1(alpha1*(cap_stem-tiny),0); penpos2(alpha1*(cap_stem-tiny),0); -penpos3(alpha1*(cap_stem-tiny),0); -alpha2=diag_ratio(1,cap_hair-tiny,y3-y4,x3r-x4l); -penpos4(alpha2*(cap_hair-tiny),0); -z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r); -filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals -pickup crisp.nib; pos5(slab,90); pos6(hair,0); -top y5r=h; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps; -arm(5,6,a,beak_darkness,beak_jut); % upper arm and beak -pos7(bot_arm_thickness,-90); pos8(hair,0); -bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps; -arm(7,8,b,beak_darkness,beak_jut); % lower arm and beak -math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8); endchar; - -cmchar "Uppercase Greek Upsilon"; -beginchar(character_offset+oct"007",14u#,cap_height#,0); -italcorr .8cap_height#*slant-.5u#; -adjust_fit(0,0); -pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); -lft x1l=lft x2l=hround(.5w-.5cap_stem); y1=.5h; bot y2=0; -filldraw stroke z1e--z2e; % stem -penpos3(.6cap_stem,0); penpos4(.75cap_curve,90); penpos5(cap_hair,180); -z3l=lft z1l; x5r=hround u; y5=bot .8h; x4=.61803[x3l,x5l]; y4r=h+o; -penpos5'(cap_hair,180); x5'=x5; y5'=h; -fill z3r{up}...z4r{left}...{down}diag_end(5'r,5r,1,1,5l,5'l){up} - ...{right}z4l...{down}z3l--cycle; % left arc -penpos6(.6cap_stem,0); penpos7(.75cap_curve,-90); penpos8(cap_hair,-180); -z6r=rt z1r; x8=w-x5; y8=y5; x7=w-x4; y7=y4; -penpos8'(cap_hair,-180); x8'=x8; y8'=h; -fill z6r{up}...z7r{right}...{down}diag_end(8'r,8r,1,1,8l,8'l){up} - ...{left}z7l...{down}z6l--cycle; % right arc -if serifs: dish_serif(2,1,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); fi % serif -math_fit(-.8cap_height#*slant-.5u#,ic#-2.5u#); -penlabels(1,2,3,4,5,6,7,8); endchar; - -cmchar "Uppercase Greek Phi"; -beginchar(character_offset+oct"010",13u#,cap_height#,0); -italcorr .5cap_height#*slant-.5u#; -adjust_fit(0,0); -numeric shaved_stem,light_curve; -shaved_stem=cap_stem-hround 2stem_corr; -light_curve=cap_curve-hround stem_corr; -pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0); -lft x1l=lft x2l=hround(.5w-.5shaved_stem); top y1=h; bot y2=0; -filldraw stroke z1e--z2e; % stem -penpos3(vair,90); penpos5(vair,-90); -penpos4(light_curve,180); penpos6(light_curve,0); -x4r=hround u; x6r=w-x4r; x3=x5=.5w; -y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5]; -y5r=vround(.15h if serifs:+slab fi); -penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5) - & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl -if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif - dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif -math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar; - -cmchar "Uppercase Greek Psi"; -beginchar(character_offset+oct"011",14u#,cap_height#,0); -italcorr .8cap_height#*slant-.5u#; -adjust_fit(0,0); -numeric shaved_stem; -shaved_stem=cap_stem-hround 2stem_corr; -pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0); -lft x1l=lft x2l=hround(.5w-.5shaved_stem); top y1=h; bot y2=0; -filldraw stroke z1e--z2e; % stem -pos3(shaved_stem,-180); pos4(shaved_stem,-180); -pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi); -pos6(shaved_stem,0); pos7(shaved_stem,0); -lft x3r=hround u; x7=w-x3; lft x4r=hround(3u-.5shaved_stem); x6=w-x4; -pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r; -y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3'); -interim superness:=more_super; -filldraw z3'l{right}...z4r{down} & super_arc.r(4,5) - & super_arc.r(5,6) & z6r{up}...z7'l{right} - --z7r---z7l...z6l{down} & super_arc.l(6,5) - & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke -if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif - dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif -math_fit(-.8cap_height#*slant-.5u#,.4cap_height#*slant-1.25u#); -penlabels(1,2,3,4,5,6,7); endchar; - -cmchar "Uppercase Greek Omega"; -beginchar(character_offset+oct"012",13u#,cap_height#,0); -italcorr .75cap_height#*slant-.5u#; -adjust_fit(0,0); -pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180); -pos3(vair,180); pos4(cap_curve,0); pos5(vair,0); -x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2; -rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3; -filldraw stroke z3e{up}...{up}z2e - & pulled_super_arc.e(2,1)(.5superpull) - & pulled_super_arc.e(1,4)(.5superpull) - & z4e{down}...{down}z5e; % bowl -numeric arm_thickness; path p; p=z3{up}...{up}z2; -arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi); -pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180); -bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps; -(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x; -arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak -pos8(arm_thickness,-90); pos9(fudged.hair,0); -y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l; -arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak -math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar; diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index bc2be5f112..885a059c97 100644 --- a/macros/latex/contrib/easybook/easybook.dtx +++ b/macros/latex/contrib/easybook/easybook.dtx @@ -15,7 +15,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2024/01/30}{2024R} +\ProvidesExplClass{easybook}{2024/01/31}{2024S} {Easily typesetting Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -297,7 +297,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2024/01/30}{2024R} +\ProvidesExplPackage{easybase}{2024/01/31}{2024S} {Easily typesetting Chinese theses or books} \cs_generate_variant:Nn \dim_set:Nn { NV } @@ -384,7 +384,6 @@ \seq_map_function:NN \l_tmpb_seq \eb_match_load_package:n } -\msg_redirect_module:nnn { hooks } { warning } { info } \bool_set_true:N \l__eb_class_mode_book_bool \bool_set_false:N \l__eb_compile_draft_bool @@ -1416,6 +1415,7 @@ { #1 .meta:nn = { ctex/#1 } {##1}, #1/between .tl_set:c = l__eb_toc_#1_between_hook_tl, + #1/between .initial:n = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-10pt} }, #1/tocline .cs_set:cp = { eb@tocline@#1 } ##1##2, #1/tocline .initial:n = \listnumberline{##1}##2 } @@ -1487,6 +1487,7 @@ { \ctex_define:n { + #1 .meta:nn = { ctex/#1 } {##1}, #1/tocformat .tl_set:c = l__eb_toc_#1_format_tl, #1/tocformat+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1}, #1/tocformat~+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1}, @@ -1504,6 +1505,12 @@ {\eb_toc_entry_if_hang:n {#1}}{} {\tl_use:c { l__eb_toc_#1_rule_tl }} [\tl_use:c { l__eb_toc_#1_below_tl }] + \ctex_set:nn {#1} + { + tocindent = 0em, + tocrule = \tocrule{$\cdot$}, + tocafter = \hspace{1em} + } } \cs_new_protected:Npn \RegisterTocName #1 { @@ -1512,13 +1519,6 @@ } \seq_map_function:NN \c__ctex_headings_seq \RegisterTocName -\seq_remove_all:Nn \c__ctex_headings_seq { table } -\seq_remove_all:Nn \c__ctex_headings_seq { figure } -\seq_remove_all:Nn \c__ctex_headings_seq { lstlisting } -\cs_new_protected:Npn \eb@key@path@meta@define #1 - { \ctex_define:n { #1 .meta:nn = { ctex/#1 } {##1} } } -\seq_map_function:NN -\c__ctex_headings_seq \eb@key@path@meta@define \eb_seq_map_inline:nn { tocformat,tocformat+,tocformat~+, @@ -1627,17 +1627,7 @@ } }, subsection = - { - tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 3.8em } { 1.4em }, - tocrule = \tocrule{$\cdot$} - }, - float = - { - tocindent = 0em, - tocrule = \tocrule{$\cdot$}, - between = \bool_if:NT \l__eb_class_mode_book_bool { \vspace*{-10pt} } - }, - tocset/tocafter-every = \hspace{1em} + { tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 3.8em } { 1.4em } } } \ctex_at_end_package:nn { imakeidx } @@ -2330,7 +2320,7 @@ } % %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2024/01/30}{2024R} +\ProvidesExplFile{eb-tcolorbox.cfg}{2024/01/31}{2024S} {Customization of tcolorbox for easybook} \cs_set_protected:Npn \addtotcbstyle #1#2 diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf index 97d9370cd9..f7a0a541b1 100644 Binary files a/macros/latex/contrib/easybook/easybook.pdf and b/macros/latex/contrib/easybook/easybook.pdf differ diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex index b0291dfb82..6ac54ffeee 100644 --- a/macros/latex/contrib/easybook/easybook.tex +++ b/macros/latex/contrib/easybook/easybook.tex @@ -23,8 +23,8 @@ name = easybook, color-scheme = blue, title = EASYBOOK使用手册, - version = v2024R, - date = 2024/01/30, + version = v2024S, + date = 2024/01/31, authors = 瞿毅, info = 简便地排版中文学ä½è®ºæ–‡æˆ–书ç±, email = toquyi@163.com, @@ -832,7 +832,7 @@ \begin{commands} \command{RegisterTocName}[\marg{æ¡ç›®å}] - ç»™æ¡ç›®ç±»åž‹å称为 \meta{æ¡ç›®å} 的标题注册用于设置目录样å¼çš„选项,å³é€‰é¡¹å‰æœ‰ç¬¦å· \ding{73} 表示需è¦æ³¨å†ŒåŽä½¿ç”¨ã€‚å‰é¢æ到的æ¡ç›®ç±»åž‹å‡å·²æ³¨å†Œï¼Œéœ€è¦æ³¨æ„新类型的æ¡ç›®æ³¨å†ŒåŽé€‰é¡¹åˆå§‹å€¼\textbf{å‡ä¸ºç©º}。 + ç»™æ¡ç›®ç±»åž‹å称为 \meta{æ¡ç›®å} 的标题注册用于设置目录样å¼çš„选项,å³é€‰é¡¹å‰æœ‰ç¬¦å· \ding{73} 表示需è¦æ³¨å†ŒåŽä½¿ç”¨ã€‚å‰é¢æ到的æ¡ç›®ç±»åž‹å‡å·²æ³¨å†Œï¼Œæ–°ç±»åž‹çš„æ¡ç›®æ³¨å†ŒåŽé€‰é¡¹åˆå§‹å€¼ä¸Žå›¾è¡¨æ¡ç›®ç›¸åŒã€‚ \command{contentsuse}[\marg{æ¡ç›®å}\marg{扩展å}] 激活æ¡ç›®ç±»åž‹å称为 \meta{æ¡ç›®å} 的目录定制功能,它使用的目录文件åŽç¼€ä¸º \meta{扩展å}。需è¦åœ¨æ¿€æ´»æ¡ç›®åŽå†ä½¿ç”¨å‘½ä»¤ \cs{RegisterTocName} 注册选项。 \command{DeclareFloatList}[\marg{æ¡ç›®å}\marg{扩展å}] @@ -981,7 +981,7 @@ \end{commands} \subsection[上标和下标]{上标和下标\smodule{style}} -上标和下标的功能æ¥è‡ª \pkg*{spbmark} å®åŒ…,下é¢æœ‰ä¸‰ä¸ªå‘½ä»¤å¯ä»¥ç”¨äºŽè¾“出上标和下标。å¯ä»¥ä½¿ç”¨é”®å€¼åˆ—表的形å¼å¯¹ä¸Šä¸‹æ ‡æ ¼å¼è¿›è¡Œå±€éƒ¨æˆ–全局设置,下é¢å‘½ä»¤ä¸­ä¸¤ä¸ªå¯é€‰å‚数的键值列表是等效的。全局设置的详情è§\ref{subsubsec:super-sub-script}。 +上标和下标的功能æ¥è‡ª \pkg*{spbmark} å®åŒ…,下é¢æœ‰ä¸‰ä¸ªå‘½ä»¤å¯ä»¥ç”¨äºŽè¾“出上标和下标。å¯ä»¥ä½¿ç”¨é”®å€¼åˆ—表的形å¼å¯¹ä¸Šä¸‹æ ‡æ ¼å¼è¿›è¡Œå±€éƒ¨æˆ–全局设置,下é¢å‘½ä»¤ä¸­ä¸¤ä¸ªå¯é€‰å‚数的键值列表是等效的。全局设置的详情è§\ref{subsubsec:super-sub-script}ï¼Œæ›´å¤šå‘½ä»¤å’Œè¯¦ç»†ç”¨æ³•è§ \pkg*{spbmark} å®åŒ…说明文档。 \begin{commands} \command{super}[\sarg\oarg{键值列表1}\marg{内容}\oarg{键值列表2}] 输出上标的命令,å¯ç”¨äºŽæ–‡æœ¬å’Œæ•°å­¦æ¨¡å¼ï¼Œåœ¨æ•°å­¦æ¨¡å¼ä¸­å¯ä»£æ›¿ \code{\^{}} 符å·å’Œ \cs*{sp} 命令。 @@ -1350,7 +1350,7 @@ \shortversion{v = 1.638,date = 2022/03/04,changes = 增加目录æ¡ç›®æ ·å¼é€‰é¡¹æ³¨å†Œå‘½ä»¤ \cs{RegisterTocName}。} \shortversion{v = 1.644,date = 2022/03/10,changes = 增加浮动环境目录声明命令 \cs{DeclareFloatList} é…åˆ \pkg*{caption} å®åŒ…。} \shortversion{v = 1.682,date = 2022/05/01,changes = 将迷你页判断命令 \cs{notminipage} 改为被ä¿æŠ¤å‘½ä»¤å…¼å®¹ \pkg*{circledtext} å®åŒ…。} - \begin{version}[v = 2024R,date = 2024/01/30,simple] + \begin{version}[v = 2024S,date = 2024/01/31,simple] \item 核对ä¾èµ–å®åŒ…的更新改动,优化使用手册的内容细节。 \item ä¿®å¤å›¾è¡¨ç­‰æµ®åŠ¨çŽ¯å¢ƒé¢˜æ³¨ç›®å½•ä¸­æ¡ç›®æ ‡ç­¾ç¼–å·çš„计数器值显示错误问题。 \item ä¿®å¤é™„录命令 \cs{appendix} çš„å¯é€‰å‚数设置英文目录中æ¡ç›®å字和编å·å¤±æ•ˆçš„问题。 diff --git a/macros/latex/contrib/hvextern/Changes b/macros/latex/contrib/hvextern/Changes index 3f870a713e..2d7f41812e 100644 --- a/macros/latex/contrib/hvextern/Changes +++ b/macros/latex/contrib/hvextern/Changes @@ -1,5 +1,6 @@ hvextern.sty ---------------- +v 0.39 2024-01-30 - fixed bug with check for force option v 0.38 2023-12-08 - change internal macroname \Write@Ex to \hv@Write@EX v 0.37b 2023-11-22 - fix typo in documentation v 0.37a 2023-11-20 - fix bug in documentation diff --git a/macros/latex/contrib/hvextern/doc/hvextern.pdf b/macros/latex/contrib/hvextern/doc/hvextern.pdf index d78c943a84..793507b058 100644 Binary files a/macros/latex/contrib/hvextern/doc/hvextern.pdf and b/macros/latex/contrib/hvextern/doc/hvextern.pdf differ diff --git a/macros/latex/contrib/hvextern/doc/hvextern.tex b/macros/latex/contrib/hvextern/doc/hvextern.tex index 6dcdf79d54..7172969db8 100644 --- a/macros/latex/contrib/hvextern/doc/hvextern.tex +++ b/macros/latex/contrib/hvextern/doc/hvextern.tex @@ -1,4 +1,4 @@ -%% $Id: hvextern.tex 822 2023-11-22 12:16:48Z herbert $ +%% $Id: hvextern.tex 853 2024-01-30 20:34:00Z herbert $ \DocumentMetadata{}% for lualatex and pstricks \documentclass[english,paper=a4,twoside,usegeometry]{scrartcl} \usepackage{babel} @@ -16,8 +16,7 @@ \usepackage[automark]{scrlayer-scrpage} \pagestyle{scrheadings} \usepackage{hvlogos} -\usepackage%[checkCode] -{hvextern} +\usepackage[checkCode]{hvextern} \usepackage{hvindex} \usepackage{hvdoctools} \usepackage{listings} @@ -32,7 +31,6 @@ - \begin{document} \title{Writing, running and including the output of external documents from within a main\newline \LaTeX\ document~--v. \hvexternFileversion} @@ -43,8 +41,7 @@ Werner Lemberg; Rolf Niepraschk}} %\newpage -\setkeys{hv}{moveToExampleDir,ExampleDir=Exa, -showFilename,verbose} +\setkeys{hv}{moveToExampleDir,ExampleDir=Exa,showFilename,verbose,force=false} %\clearpage @@ -118,7 +115,7 @@ outside of the main document and then to insert the output we can do this from within this \LuaLaTeX\ document itself. The external document is compiled with \XeLaTeX\ and the output is insert as pdf image: \begin{externalDocument}[% - compiler=xelatex, inline, force=true, runs=2, grfOptions={height=8pt},% + compiler=xelatex, inline, runs=2, grfOptions={height=8pt},% crop, cropmargin=0, cleanup, docType=latex,vshift=-1pt]{voss} \documentclass{ctexart} \pagestyle{empty} @@ -138,7 +135,7 @@ shown by the environment \Lenv{externalDocument}. \begin{minipage}{.59\linewidth} \begin{lstlisting} \begin{externalDocument}[ - compiler=pdflatex,force=true,cleanup]{voss} + compiler=pdflatex,cleanup]{voss} \documentclass{standalone} %StartVisiblePreamble \usepackage{fontenc} @@ -151,7 +148,7 @@ shown by the environment \Lenv{externalDocument}. [VP [DP] [V’ - [V] + [V] [DP] ] ] @@ -162,7 +159,7 @@ shown by the environment \Lenv{externalDocument}. \end{minipage} \begin{minipage}{.39\linewidth} \begin{externalDocument}[ - compiler=pdflatex,force=true,cleanup={log,aux},showFilename=false]{voss} + compiler=pdflatex,cleanup={log,aux},showFilename=false]{voss} \documentclass{standalone} %StartVisiblePreamble \usepackage{fontenc} @@ -218,7 +215,6 @@ catagory, which is done internally by the package. The complete definition of th compiler=python3, code, ext=py, - force=true, docType=py, usefancyvrb, grfOptions={width=\linewidth}]{python} @@ -268,7 +264,6 @@ line in the above code shows how it can be done with Python. \begin{externalDocument}[ compiler=python3, progpath=/usr/local/bin/, - force=true, runs=1, code, ext=py, @@ -328,7 +323,7 @@ e.g. \texttt{shiftFN=5ex}. \begin{externalDocument}[grfOptions={width=0.95\linewidth}, compiler=xelatex,code,mpwidth=0.6\linewidth, - crop,cleanup,force=true,usefancyvrb=false,ext=tex,showFilename=false]{voss} + crop,cleanup,usefancyvrb=false,ext=tex,showFilename=false]{voss} \documentclass{article} %StartVisiblePreamble \usepackage{tikz} @@ -438,9 +433,7 @@ runsequence={lualatex,biber,xindex -l de -c AU,lualatex,lualatex} pagesep=2pt, frame, runsequence={lualatex,biber,xindex -l de -c AU,lualatex,lualatex}, - , verbose, - force=true, cleanup={log,aux,toc,bbl,blg}, code,docType=latex, lstOptions={columns=fixed}]{voss} @@ -479,7 +472,7 @@ the environment \Lenv{externalDocument} is: \begin{externalDocument}[ verbose, compiler=java,ext=java,code, - force=true,docType=java,includegraphic, + docType=java,includegraphic, usefancyvrb,grfOptions={width=0.9\linewidth}]{java} import java.awt.Color; import java.awt.Graphics; @@ -558,7 +551,7 @@ the follwing example. \begin{externalDocument}[grfOptions={angle=90,width=\linewidth}, compiler=xelatex,code,mpwidth=0.6\linewidth, - crop,cleanup,force]{voss} + crop,cleanup]{voss} \documentclass{article} %StartVisiblePreamble \usepackage{tikz} @@ -610,7 +603,6 @@ to \Lcs{VerbatimInput}. The following example uses mpwidth=0.6\linewidth, crop, cleanup, - force=true, docType=latex]{voss} \RequirePackage{pdfmanagement-testphase} \DeclareDocumentMetadata{} @@ -658,7 +650,6 @@ The color of the frame is set to the same values, hence not seen. The following mpwidth=0.6\linewidth, crop, cleanup, - force=true, usefancyvrb, docType=latex]{voss} \RequirePackage{pdfmanagement-testphase} @@ -745,7 +736,6 @@ The following example uses: % mpwidth=0.6\linewidth, % crop, cleanup, - force=true, frame, % usefancyvrb, % float, @@ -798,7 +788,6 @@ which is the default. Using a caption and a label are optional. % mpwidth=0.6\linewidth, crop, cleanup, - force=true, usefancyvrb, float, floatsetting=!ht, @@ -861,7 +850,6 @@ The follwoing example was created with % mpwidth=0.6\linewidth, crop, cropmargin=5, cleanup, - force=true, frame, % usefancyvrb, % float, @@ -922,7 +910,6 @@ or \Lkeyval{b}. showFilename=false, crop, cleanup, - force=true, aboveskip=0pt,belowskip=0pt, docType=latex]{voss} \documentclass{article} @@ -947,7 +934,6 @@ or \Lkeyval{b}. code, crop, cleanup, - force=true, aboveskip=0pt,belowskip=0pt, docType=latex]{voss} \documentclass{article} @@ -973,7 +959,6 @@ or \Lkeyval{b}. showFilename=false, crop, cleanup, - force=true, aboveskip=0pt,belowskip=0pt, docType=latex]{voss} \documentclass{article} @@ -999,7 +984,6 @@ or \Lkeyval{b}. crop, showFilename=false, cleanup, - force=true, mpwidth=0.5\linewidth, aboveskip=0pt,belowskip=0pt, docType=latex]{voss} @@ -1025,7 +1009,6 @@ or \Lkeyval{b}. showFilename=false, crop, cleanup, - force=true, mpwidth=0.5\linewidth, aboveskip=0pt,belowskip=0pt, docType=latex]{voss} @@ -1052,7 +1035,6 @@ or \Lkeyval{b}. showFilename=false, crop, cleanup, - force=true, mpwidth=0.5\linewidth, aboveskip=0pt,belowskip=0pt, docType=latex]{voss} @@ -1083,7 +1065,7 @@ next Chinese characters \label{inline-exa} \begin{externalDocument}[ compiler=xelatex, inline, runs=2, grfOptions={height=8pt}, crop, cropmargin=0, vshift=-1pt,usefancyvrb, - cleanup, force=true, docType=latex]{voss}% + cleanup, docType=latex]{voss}% \documentclass{ctexart} \pagestyle{empty} \begin{document} @@ -1100,7 +1082,7 @@ With \Lkeyset{inline} the optional argument \Lkeyword{code} is automatically set to false. The next Chinese characters \begin{externalDocument}[vshift=-1pt, compiler=xelatex, inline, runs=2, grfOptions={height=8pt}, - crop, cropmargin=0, cleanup, force=true, docType=latex]{voss} + crop, cropmargin=0, cleanup, docType=latex]{voss} \documentclass{ctexart} \pagestyle{empty} \begin{document} @@ -1140,7 +1122,7 @@ sorted digits of the number $A$: $495=954-459$. \begin{externalDocument}[ - compiler=perl, force=true, docType=pl, ext=pl, includegraphic=false, + compiler=perl, docType=pl, ext=pl, includegraphic=false, code, mpwidth=0.6\linewidth]{voss} #!/usr/bin/perl # @@ -1195,7 +1177,7 @@ outFile = io.open(shortFN..".txt","w+") -- open external file \begin{externalDocument}[ - compiler=lua, force=true, docType=lua, ext=lua, includegraphic=false, + compiler=lua, docType=lua, ext=lua, includegraphic=false, code, usefancyvrb=false,textOptions={basicstyle=\ttfamily\footnotesize}, shiftFN=6ex]{voss} #!/usr/bin/env lua @@ -1270,7 +1252,6 @@ The following examples uses pages=2, crop, cleanup, - force=true, xindex, xindexOptions={-l DE --config AU}, mpwidth=0.6\linewidth, @@ -1326,7 +1307,6 @@ runsequence={lualatex,biber,{xindex -l de -c AU},lualatex,lualatex} frame, runsequence={lualatex,biber,xindex -l de -c AU,lualatex,lualatex}, verbose, - force=true, cleanup={log,aux,toc,bbl,blg}, code,docType=latex, lstOptions={columns=fixed}]{voss} @@ -1366,7 +1346,7 @@ The default is using \Lcs{lstinputlisting} for the printed code sequences. pages={1,3}, frame,compiler=pdflatex, % crop, - force=true,runs=2,code,docType=latex, + runs=2,code,docType=latex, frame, lstOptions={columns=fixed}]{voss} %StartVisiblePreamble @@ -1426,7 +1406,7 @@ it makes no difference using the optional argument \Lkeyword{usefancyvrb} or not frame,compiler=pdflatex, showFilename, % crop, - force=true,runs=2,code,docType=latex, + runs=2,code,docType=latex, frame,framesep=0pt,usefancyvrb]{voss} %StartVisiblePreamble \documentclass[chapterprefix=on,parskip=half-,DIV=12,fontsize=12pt]{scrbook} @@ -1520,7 +1500,7 @@ other examples, you can set \Lkeyword{showoutput} to false. showoutput=false, frame,compiler=pdflatex, crop, - force=true,runs=2,code,docType=latex, + runs=2,code,docType=latex, frame,usefancyvrb]{voss} %StartVisiblePreamble \documentclass[chapterprefix=on,parskip=half-,DIV=12,fontsize=12pt]{scrbook} @@ -1596,7 +1576,6 @@ Whith this definition and the setting \Lkeyset{docType=ltx} the last example loo frame, compiler=pdflatex, showFilename, - force=true, runs=2,code,docType=ltx, usefancyvrb]{voss} \documentclass[chapterprefix=on,parskip=half-,DIV=12,fontsize=12pt]{scrreprt} @@ -1660,7 +1639,6 @@ It is already internally defined. compiler=mpost, showFilename, % crop, - force=true, cleanup, code, docType=mp, @@ -1696,7 +1674,6 @@ It is already internally defined. compiler=tex, showFilename, % crop, - force=true, code, docType=tex, ext=tex,]{voss} @@ -1762,7 +1739,6 @@ not needed. The \texttt{pdf} is directly created. compiler=lualatex, showFilename, crop, - force=true, code, docType=latex, ext=tex,]{voss} @@ -1804,7 +1780,6 @@ not needed. The \texttt{pdf} is directly created. compiler=context, showFilename, runs=2, - force=true, code, docType=context, ext=tex,]{voss} diff --git a/macros/latex/contrib/hvextern/latex/hvextern.sty b/macros/latex/contrib/hvextern/latex/hvextern.sty index cfdd56053d..bfe8f75e8f 100644 --- a/macros/latex/contrib/hvextern/latex/hvextern.sty +++ b/macros/latex/contrib/hvextern/latex/hvextern.sty @@ -1,7 +1,7 @@ -%% $Id: hvextern.sty 833 2023-12-08 19:31:08Z herbert $ +%% $Id: hvextern.sty 853 2024-01-30 20:34:00Z herbert $ %% This is file `hvextern.sty', %% -%% Copyright (C) 2016-23 +%% Copyright (C) 2016-24 %% Herbert Voss %% %% It may be distributed and/or modified under the @@ -12,8 +12,8 @@ %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. -\def\hvexternFileversion{0.38} -\ProvidesFile{hvextern}[2023/12/08 v\hvexternFileversion: package for running external documents (HV)] +\def\hvexternFileversion{0.39} +\ProvidesFile{hvextern}[2024/01/30 v\hvexternFileversion: package for running external documents (HV)] \newif\ifhv@extern@checkCode \hv@extern@checkCodefalse @@ -72,6 +72,8 @@ \newlength\hv@extern@mpwidth \setlength\hv@extern@mpwidth{\z@} +\newif\ifhv@extern@save@force@state + \define@key{hv}{progpath}{\def\hv@extern@progpath{#1}} \define@key{hv}{runsequence}[]{\def\hv@extern@runsequence{#1}} \define@key{hv}{runs}[1]{\setcounter{hv@extern@runs}{#1}} @@ -106,7 +108,7 @@ \define@key{hv}{shiftFN}[0pt]{\setlength\hv@extern@shiftFN{#1}} \define@key{hv}{vshift}[0pt]{\setlength\hv@extern@vshift{#1}}% \define@boolkey{hv}[hv@extern@]{code}[true]{} -\define@boolkey{hv}[hv@extern@]{force}[true]{} +\define@boolkey{hv}[hv@extern@]{force}[true]{\@nameuse{hv@extern@save@force@state#1}} \define@boolkey{hv}[hv@extern@]{crop}[true]{} \define@boolkey{hv}[hv@extern@]{tcbox}[true]{} \define@boolkey{hv}[hv@extern@]{biber}[true]{} @@ -119,7 +121,7 @@ \define@key{hv}{framesep}[\the\fboxsep]{\setlength\hv@extern@framesep{#1}} \define@boolkey{hv}[hv@extern@]{float}[true]{} \define@key{hv}{floatsetting}[]{\def\hv@extern@floatsetting{#1}} -\define@key{hv}{cleanup}[{aux,log}]{\def\hv@extern@cleanup{#1}}% +\define@key{hv}{cleanup}[{aux,log,psaux}]{\def\hv@extern@cleanup{#1}}% \define@boolkey{hv}[hv@extern@]{moveToExampleDir}[true]{} \define@key{hv}{align}[\centering]{\def\hv@extern@align{#1}} \define@key{hv}{ExampleDir}[Examples]{% @@ -151,64 +153,64 @@ \def\ResetKeys{% \setkeys{hv}{% - showFilename=false,% Filenamen im Rand angeben - outerFN=false,% use fullwidth in twocolumn mode (starred floats) - shiftFN=\z@,% raise printed filename - vshift=\z@,% raise object (pdf) with \raisebox{}{} - ext=tex,% file extension - code=false,% show Code - crop=false,% erzeugte PDF "croppen" - compiler=pdflatex,% zu verwendener Compiler - shellesc=false,% use shell-escape - redirect=false,% write output into a file *.txt - tcbox=true,% use tcolorbox - grfOptions={},% Optionen der einzubindenden Grafik - lstOptions={},% Optionen für das Listing - textOptions={},% Options for text output + align=\centering,% Ausgabe zentrieren + aboveskip=\medskipamount,% space above everything + belowpreambleskip=2pt, %\smallskipamount,% space below preamble + belowbodyskip=2pt, %\smallskipamount,% space below body + belowskip=\medskipamount,% space below everything BGpreamble=black!12,% Backgroundcolor for preamble BGbody=black!8,% Backgroundcolor for body BOpreamble=black!12,% Bodercolor for preamble BObody=black!8,% Bodercolor for body - showoutput=true,% with false only code is shown - includegraphic=true,% Grafik einbinden oder User überlassen - inline=false,% Grafik nicht in derselben Zeile - runs=1,% Anzahl Compiler-Durchläufe - runsAfter=0, % Anzahl Durchläufe nach makeindex - runsequence={},% Im Moment nicht aktiv biber=false,% Biber laufen lassen? - xindex=false,% xindex laufen lassen? - xindexOptions={},% options for xindex + caption=,% keine Caption + cleanup={},% Hilfsdateien nicht löschen + code=false,% show Code + compiler=pdflatex,% zu verwendener Compiler + crop=false,% erzeugte PDF "croppen" + cropmargin=2,% 2pb margin + docType=latex,% LaTeX example Code + eps=false,% create an eps output? + ExampleDir=Examples,% Unterverzeichnis für Beispiele + ext=tex,% file extension + float=false,% nicht als Gleitumgebung + floatsetting=!htb,% placement force=false,% Compiler, auch wenn PDF existiert? frame=false,% keinen Rahmen um Abbildung framesep=\the\fboxsep,% - float=false,% nicht als Gleitumgebung - floatsetting=!htb,% placement - caption=,% keine Caption + grfOptions={},% Optionen der einzubindenden Grafik + includegraphic=true,% Grafik einbinden oder User überlassen + inline=false,% Grafik nicht in derselben Zeile label=,% kein Label - pages=1,% welche Seiten auszugeben sind - pagesep=1em,% horizontal sep between pages - docType=latex,% LaTeX example Code - cleanup={},% Hilfsdateien nicht löschen + lstOptions={},% Optionen für das Listing moveToExampleDir=false,% Verschieben nach ExamplesDir - ExampleDir=Examples,% Unterverzeichnis für Beispiele - align=\centering,% Ausgabe zentrieren mpwidth=0pt,% no minipage mpsep=1em,% sep between two minipages mpvalign=t,% if side by side output the vertical alignment - usefancyvrb=false,% use VerbatimInput instead of listings + outerFN=false,% use fullwidth in twocolumn mode (starred floats) + pages=1,% welche Seiten auszugeben sind + pagesep=1em,% horizontal sep between pages progpath={}, - cropmargin=2,% 2pb margin - eps=false,% create an eps output? - aboveskip=\medskipamount,% space above everything - belowpreambleskip=2pt, %\smallskipamount,% space below preamble - belowbodyskip=2pt, %\smallskipamount,% space below body - belowskip=\medskipamount,% space below everything + redirect=false,% write output into a file *.txt + runs=1,% Anzahl Compiler-Durchläufe + runsAfter=0, % Anzahl Durchläufe nach makeindex + runsequence={},% Im Moment nicht aktiv + shellesc=false,% use shell-escape + shiftFN=\z@,% raise printed filename + showFilename=false,% Filenamen im Rand angeben + showoutput=true,% with false only code is shown + tcbox=true,% use tcolorbox + textOptions={},% Options for text output + usefancyvrb=false,% use VerbatimInput instead of listings + verbose=false,% no extra output in the logfile + vshift=\z@,% raise object (pdf) with \raisebox{}{} + xindex=false,% xindex laufen lassen? + xindexOptions={},% options for xindex }% } \ResetKeys - \ifhv@extern@checkCode \ifluatex \hv@ex@typeout{Loading hvextern.lua}% @@ -464,8 +466,9 @@ \let\endfilecontents\endcomment \fi \filecontents[force,noheader]{\hvExternFilename\hv@extern@ext}% - } - {\endfilecontents + }% end \begin{externaldocument} env + {% start \end{externaldocument} env + \endfilecontents \ifhv@extern@shellescape\hv@ex@typeout{... done}\fi \global\stepcounter{hv@example@counter}% \endgroup @@ -489,7 +492,7 @@ \global\hv@extern@forcefalse \else \hv@ex@typeout{current file is newer: force run }% - \global\hv@extern@forcetrue + \hv@extern@forcetrue \fi \ifhv@extern@verbose\else\ShellEscape{\hv@rm \hvExternFilename\hv@extern@ext.diff}\fi \fi @@ -564,7 +567,7 @@ \ifhv@extern@eps \ShellEscape{pdftops -eps -f 1 -l 1 \hvExternFilename.pdf}% \fi - \else + \else % if force ... \hv@ex@typeout{force=false: NOT running \hvExternFilename\hv@extern@ext ...}% \fi% end force \hfuzz=\maxdimen @@ -713,6 +716,11 @@ \expandafter\run@hv@extern@cleanup\expandafter{\hv@extern@cleanup}% \fi% cleanup \vspace{\hv@extern@belowskip}% + \ifhv@extern@save@force@state + \global\hv@extern@forcetrue + \else + \global\hv@extern@forcefalse + \fi% restore value } \newcommand\runExtCmd[3][]{% #1:options; #2:comamnd; #3:filename @@ -894,6 +902,7 @@ \expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternFilename.pdf}{}{% \expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternFilename.png}{}{% \expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternFilename.txt}{}{% + \gdef\hv@extern@save@force@state{} \global\hv@extern@forcetrue}}}% set force, if no pdf or png exists \begingroup \hv@ex@typeout{writing file \hvExternFilename\hv@extern@ext ...}% diff --git a/macros/latex/contrib/hvextern/script/hvextern-checkfile.lua b/macros/latex/contrib/hvextern/script/hvextern-checkfile.lua old mode 100644 new mode 100755 diff --git a/macros/latex/contrib/leftindex/README.md b/macros/latex/contrib/leftindex/README.md index 7832b57454..8e2ae62c88 100644 --- a/macros/latex/contrib/leftindex/README.md +++ b/macros/latex/contrib/leftindex/README.md @@ -7,10 +7,11 @@ providing much better spacing in general. ---------------------------------------------------------------- leftindex -- left indices with better spacing -Version: 0.1beta +Version: 0.2beta Maintained by Sebastian Ørsted E-mail: sorsted@gmail.com Released under the LaTeX Project Public License v1.3c or later + See http://www.latex-project.org/lppl.txt ---------------------------------------------------------------- diff --git a/macros/latex/contrib/leftindex/leftindex.pdf b/macros/latex/contrib/leftindex/leftindex.pdf index 01950aa9a3..abeefe6113 100644 Binary files a/macros/latex/contrib/leftindex/leftindex.pdf and b/macros/latex/contrib/leftindex/leftindex.pdf differ diff --git a/macros/latex/contrib/leftindex/leftindex.sty b/macros/latex/contrib/leftindex/leftindex.sty index fdd7a6a822..406c7a973e 100644 --- a/macros/latex/contrib/leftindex/leftindex.sty +++ b/macros/latex/contrib/leftindex/leftindex.sty @@ -1,9 +1,9 @@ \RequirePackage{xparse,mathtools} -\ProvidesExplPackage{leftindex}{2020/08/25}{0.1beta}{} +\ProvidesExplPackage{leftindex}{2024/01/31}{0.2beta}{} %---------------------------------------------------------------- % leftindex -- left indices with better spacing -% Version: 0.1beta +% Version: 0.2beta % Maintained by Sebastian Ørsted % E-mail: sorsted@gmail.com % Released under the LaTeX Project Public License v1.3c or later @@ -35,7 +35,7 @@ \manualleftindex { #2 } { #1 } { #3 } { #4 } } { - \manualleftindex { #5 } { #1 } { #3 } { #4 } + \manualleftindex { #1 } { #1 } { #3 } { #4 } } } { @@ -44,6 +44,27 @@ #5 } +\DeclareDocumentCommand\LeftIndex { o o E{^_}{{}{}} } +{ + % #1 = slanting phantom + % #2 = height phantom + % #3 = left superscript + % #4 = left subscript + \IfValueTF {#1} + { + \IfValueTF{#2} + { + \manualleftindex { #2 } { #1 } { #3 } { #4 } + } + { + \manualleftindex { #1 } { #1 } { #3 } { #4 } + } + } + { + \manualleftindex { } { } { #3 } { #4 } + } +} + \ExplSyntaxOn \cs_new_protected:Npn\leftindex_kern_horizontal:n#1 @@ -131,13 +152,13 @@ \box_wd:N \l__leftindex_subscript_temp_box } } + \mathop{} \leftindex_kern_horizontal:n { \dim_max:nn { \l__leftindex_width_of_superscript_dim } { \l__leftindex_width_of_subscript_dim } } - \mathop{} \mathopen{ \vphantom { #2 } } \tl_if_blank:nF { #4 } { diff --git a/macros/latex/contrib/leftindex/leftindex.tex b/macros/latex/contrib/leftindex/leftindex.tex index 45f21c4c20..dd7161dec8 100644 --- a/macros/latex/contrib/leftindex/leftindex.tex +++ b/macros/latex/contrib/leftindex/leftindex.tex @@ -5,7 +5,7 @@ \usepackage{babel} \usepackage{kpfonts,microtype} -\usepackage{leftindex,listings,showexpl,xspace} +\usepackage{leftindex,listings,showexpl} \usepackage[hidelinks]{hyperref} @@ -35,9 +35,9 @@ explpreset={numbers=none,}, } -\newcommand\pkgleftindex{\texttt{leftindex}\xspace} +\newcommand\pkgleftindex{\texttt{leftindex}} -\title{\pkgleftindex\ -- left indices with better spacing (v0.1$\beta$)} +\title{\pkgleftindex\ -- left indices with better spacing (v0.2$\beta$)} \date{\today} \author{Sebastian \O rsted (\href{mailto:sorsted@gmail.com}{sorsted@gmail.com})} @@ -51,8 +51,8 @@ \maketitle \noindent -The package \pkgleftindex provides commands for typesetting left indices. -Unlike any other similar package I know of, \pkgleftindex also indents the left superscript, providing much better spacing in general: +The package \pkgleftindex\ provides commands for typesetting left indices. +Unlike any other similar package I know of, \pkgleftindex\ also indents the left superscript, producing much better spacing in general: \[ \leftindex^a_b{f} \qquad\text{(compare to $\leftindex[]^a_b{f}$)} @@ -62,14 +62,14 @@ As \TeX\ provides no metrics for the indentation of left superscripts, the only way to accomplish this is to measure the negative indentation of the right subscript and then use that value. This works well for most symbols, with a few exceptions, which can be dealt with by supplying a few extra arguments. -The package is a generalization of egreg's excellent code on +The package is a generalization of egreg's excellent code found at \begin{center} \url{https://tex.stackexchange.com/questions/557655/low-level-command-for-controlling-left-superscript-spacing/} \end{center} \chapter*{The commands} -The fundamental, user-level command of~\pkgleftindex is called~\lstinline!\leftindex! and has +The main user-level command of~\pkgleftindex\ is called~\lstinline!\leftindex! and has the syntax \begin{lstlisting} \leftindex^{@@}_{@@}{@@} @@ -87,7 +87,7 @@ $ \leftindex{A} $, f(x)\, dx \] \end{LTXexample} -For the indentaiton of the left superscript, the package always +For the indentaiton of the left superscript, the package by default uses the negative indentation of the right subscript. This yields good results most of the time, as seen above. However, there are cases where this goes wrong, the most notable example being the Greek letter~$ \Gamma $ in many fonts (not in Computer Modern, though). Less serious examples arise with letters like $P$ and $L$: @@ -115,27 +115,42 @@ $\leftindex[]^a_b {\Gamma}$, $\leftindex[I]^a_b {L}$, $\leftindex[I]^a_b {P}$ \end{LTXexample} -The will never be used for calculating the height of the indices. -For this, you can supply a : +By default, the is also used for calculating the height of the indices. +If this is not the behaviour you want, you can supply an additional : \begin{LTXexample} $\leftindex[][\Bigg|]^a_b{x}$ \end{LTXexample} I doubt anyone will ever really need this much in practice, but the option is provided for completeness. -I provide a more primitive, underlying command with four mandatory arguments: +Sometimes, having to include the symbol as a mandatory argument can be a burden. For these cases, I also provide the command~\lstinline!\LeftIndex! with the syntax: +\begin{lstlisting} +\LeftIndex[@@][@@] + ^{@@}_{@@} +\end{lstlisting} +Here, all arguments are optional. +With this, we can do stuff like: +\begin{LTXexample} +$\LeftIndex^a_b \Gamma $, +$\LeftIndex[]^a_b L $, +$\LeftIndex[I]^a_b$, +$\LeftIndex[I]^a_b$ +\end{LTXexample} + + +I also provide the more primitive, underlying command with four mandatory arguments: \begin{lstlisting} \manualleftindex{@@}{@@} {@@}{@@} \end{lstlisting} This one is mainly intended for use in commands and by other packages. Note that the arguments and have -switched places compared to the command~\lstinline!\leftindex!. +switched places compared to the commands \lstinline!\leftindex! and~\lstinline!\LeftIndex!. This is because is regarded as a ``more important'' argument than from an implementation point of view, but the user is probably less likely to change it. Therefore, -the user-level command~\lstinline!\leftindex! has +the user-level commands \lstinline!\leftindex! and~\lstinline!\LeftIndex! have before . -Note also that \lstinline!\manualleftindex! does not take a ; +Note also that \lstinline!\manualleftindex! (like \lstinline!\LeftIndex!) does not take a ; you will have to write this yourself afterwards: \begin{LTXexample} $\manualleftindex{P}{I}{a}{b}$ diff --git a/macros/latex/contrib/litetable/doc/favicon.png b/macros/latex/contrib/litetable/doc/favicon.png new file mode 100644 index 0000000000..4e105b2ce0 Binary files /dev/null and b/macros/latex/contrib/litetable/doc/favicon.png differ diff --git a/macros/latex/contrib/litetable/doc/litetable-demo.pdf b/macros/latex/contrib/litetable/doc/litetable-demo.pdf index f9ed4fafbb..3ee841c94d 100644 Binary files a/macros/latex/contrib/litetable/doc/litetable-demo.pdf and b/macros/latex/contrib/litetable/doc/litetable-demo.pdf differ diff --git a/macros/latex/contrib/litetable/doc/litetable-demo.tex b/macros/latex/contrib/litetable/doc/litetable-demo.tex index c40f8e3415..33d6f53b41 100644 --- a/macros/latex/contrib/litetable/doc/litetable-demo.tex +++ b/macros/latex/contrib/litetable/doc/litetable-demo.tex @@ -1,32 +1,68 @@ \documentclass[libertinus]{litetable} \begin{document} -\begin{tikzpicture}[scale=0.05] - \makeframe{Timetable -- Semester 5}% make title & background + +\timelist{ +8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20,20:10; +8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05,20:55} +\sticker{favicon} + +\begin{tikzpicture} + \makeframe{Axia\!\texttt{'}\!s Timetable -- Semester 5}% make title & background % Mon. - \course{H1}{1}{1}{2}{Badminton}{Badminton Court}{Yongsheng Yu}{Week 1 -- 18} - \course{H7}{1}{3}{5}{Lens Design Expt}{Building 6·South 402}{Hao Ying}{Week 5 -- 15} - % Tue. - \course{H9}{2}{3}{5}{Marx's Principles}{Building 6·320}{Yang Wang}{Week 1 -- 18} - \course{H8}{2}{6}{8}{Photoelectric Det}{Building 6·320}{Xuefeng Huang}{Week 1 -- 18} - % Wed. - \course{H7}{3}{3}{4}{Laster Tech}{Building 6·301}{Haidan Mao}{Week 1 -- 18} - \course{H9}{3}{6}{7}{Empt 3 | Situ 5}{Bldg 6·301 | Situ 6·208}{Mjh | Qxr}{Week 5 -- 14} - \course{H5}{3}{8}{9}{Computational Phys}{Building 6·215}{Wenjia Rao}{Week 1 -- 18} - \course{H1}{3}{10}{11}{Essay Writing}{Building 6·416}{Yueqin Shi}{Week 1 -- 18} - % Thu. - \course{H6}{4}{1}{2}{Sensing System}{Building 6·110}{Benxiao Cai}{Week 1 -- 18} - \course{H5}{4}{3}{5}{AQM}{Building 6·225}{Yuan Li \& Mengnan Chen}{Week 1 -- 18} - \course{H3}{4}{6}{8}{Modern Phys Expt 2}{Building 6·South}{Xiangxiang Chen}{Week 5 -- 16} - \course{H8}{4}{10}{12}{OE Info Expt 1}{Building 6·South 302}{Yu Zhou}{Week 5 -- 15} - % Fri. - \course{H7}{5}{1}{2}{Lens Design}{Building 6·422}{Hao Ying}{Week 1 -- 18} - \course{H5}{5}{3}{5}{Optoelectronics}{Building 6·202}{Ruixue Li \& Yuan Li}{Week 1 -- 18} - \course{H8}{5}{6}{7}{Innovative Practice 4}{Building 7·216B}{Qinglong Huang}{Week 5 -- 16} - \course{H5}{5}{8}{9}{Group Meeting}{Building 6·Middle}{Yuan Li}{Week 1 -- 18} - \more{\textbf{·School Starts}: 11/09/2023 \textbf{·Winter Vacation}: 26/01/2024 \textbf{·Hangzhou Asian Games}: 23/09/2023 -- 08/10/2023} + \course{H1}{1}{2}{Badminton}{Badminton Court}{Yongsheng Yu}{Week 1 -- 18} + \course{H7}{3}{5}{Lens Design Expt}{Building 6·South 402}{Hao Ying}{Week 5 -- 15} + \newday % Tue. + \course{H9}{3}{5}{Marx's Principles}{Building 6·320}{Yang Wang}{Week 1 -- 18} + \course{H8}{6}{8}{Photoelectric Det}{Building 6·320}{Xuefeng Huang}{Week 1 -- 18} + \newday % Wed. + \course{H7}{3}{4}{Laster Tech}{Building 6·301}{Haidan Mao}{Week 1 -- 18} + \course{H9}{6}{7}{Empt 3 | Situ 5}{Bldg 6·301 | Situ 6·208}{Mjh | Qxr}{Week 5 -- 14} + \course{H5}{8}{9}{Computational Phys}{Building 6·215}{Wenjia Rao}{Week 1 -- 18} + \course{H1}{10}{11}{Essay Writing}{Building 6·416}{Yueqin Shi}{Week 1 -- 18} + \newday % Thu. + \course{H6}{1}{2}{Sensing System}{Building 6·110}{Benxiao Cai}{Week 1 -- 18} + \course{H5}{3}{5}{AQM}{Building 6·225}{Yuan Li \& Mengnan Chen}{Week 1 -- 18} + \course{H3}{6}{8}{Modern Phys Expt 2}{Building 6·South}{Xiangxiang Chen}{Week 5 -- 16} + \course{H8}{10}{12}{OE Info Expt 1}{Building 6·South 302}{Yu Zhou}{Week 5 -- 15} + \newday % Fri. + \course{H7}{1}{2}{Lens Design}{Building 6·422}{Hao Ying}{Week 1 -- 18} + \course{H5}{3}{5}{Optoelectronics}{Building 6·202}{Ruixue Li \& Yuan Li}{Week 1 -- 18} + \course{H8}{6}{7}{Innovative Practice 4}{Building 7·216B}{Qinglong Huang}{Week 5 -- 16} + \course{H5}{8}{9}{Group Meeting}{Building 6·Middle}{Yuan Li}{Week 1 -- 18} + \more{·School Starts: 11 / 09 / 2023 ·Winter Vacation: 26 / 01 / 2024 ·Hangzhou Asian Games: 23 / 09 / 2023 -- 08 / 10 / 2023} \end{tikzpicture} -\begin{tikzpicture}[scale=0.05] - \makeframe{Timetable -- Semester 6}% make title & background + + + + + + + +\begin{tikzpicture} + \makeframe{Axia\!\texttt{'}\!s Timetable -- Semester 6} + + % Mon. + \course{H5}{7}{8}{Introduction to Cond.}{Building 6·225}{Mn Chen}{Week 1 -- 16} + + \newday % Tue. + \course{H1}{8}{9}{Group Theory}{Building 6·211}{Li Ge}{Week 1 -- 16} + \course{H5}{10}{11}{Mesoscopic Physics}{Building 6·211}{Yuan Li \& Mn Chen}{Week 1 -- 16} + + \newday % Wed. + \course{H6}{1}{2}{Engineering Drawing}{Building 7·3012}{Hc Wang}{Week 1 -- 16} + \course{H9}{8}{9}{Situation \& Policy 6}{Building 6·302}{Xr Qi}{Double Week 10 -- 16} + \course{H9}{10}{11}{Operational Simu.}{Building 4·411 -- 413}{Li Zhang}{Week 1 -- 8} + + \newday % Thu. + \course{H4}{1}{2}{Intercultural Comm.}{Building 3·422}{Cl Zuo}{Week 1 -- 16} + \course{H2}{3}{4}{Radio Direction}{Athletic Field}{Ys Yu}{Week 1 -- 16} + \course{H5}{6}{8}{Solid State Physics}{Building 6·408}{Kw Sun}{Week 1 -- 16} + + \newday % Fri. + \course{H8}{1}{2}{OE. Display}{Building 7·3012}{Wt Su}{Week 1 -- 16} + \course{H3}{6}{8}{Group Meeting}{Building 6·Middle}{Yuan Li}{Week 1 -- 16} + + \more{·School Start: 04 / 03 / 2024 ·Summer Vacation: 05 / 07 / 2024} \end{tikzpicture} \end{document} \ No newline at end of file diff --git a/macros/latex/contrib/litetable/doc/litetable-doc-cn.pdf b/macros/latex/contrib/litetable/doc/litetable-doc-cn.pdf new file mode 100644 index 0000000000..67810c50cd Binary files /dev/null and b/macros/latex/contrib/litetable/doc/litetable-doc-cn.pdf differ diff --git a/macros/latex/contrib/litetable/doc/litetable-doc-cn.tex b/macros/latex/contrib/litetable/doc/litetable-doc-cn.tex new file mode 100644 index 0000000000..498167f8c3 --- /dev/null +++ b/macros/latex/contrib/litetable/doc/litetable-doc-cn.tex @@ -0,0 +1,210 @@ +%% ****************************************************** +%% * This work may be distributed and/or modified under * +%% * the conditions of the LaTeX Project Public License * +%% * http://www.latex-project.org/lppl.txt * +%% * either version 1.3c of this license or any later * +%% * version. * +%% ****************************************************** +\PassOptionsToPackage{quiet}{xeCJK} +\PassOptionsToPackage{quiet}{fontspec} +\PassOptionsToPackage{no-math}{fontspec} +\documentclass[11pt]{article} +\usepackage{geometry} +\usepackage{indentfirst,setspace} +\usepackage[toc]{multitoc} +\setlength{\parindent}{2em} +\setstretch{1.25} +\usepackage{pdfpages} +\usepackage[level]{datetime} +\usepackage{unicode-math,xeCJK} +\usepackage{authblk} +\setmainfont{Libertinus Serif} +\setsansfont{Libertinus Sans} +\setCJKmainfont{SimSong}[BoldFont=Chiron Sung HK, ItalicFont=Kaiti SC] +\makeatletter +\usepackage{listings,dirtree} +\lstdefinestyle{TeX}{ + language = [LaTeX]TeX, + texcsstyle = *\color{H7}, + numbers = none, + basicstyle = {\small\color{H6}\tt}, + mathescape = false, + breaklines = true, + columns = fixed, + keywordstyle = \color{H3}, + commentstyle = \color{darkgray}, + tabsize = 2, + keywords = {mail,flyleaf,sticker,logo,notebook,chapter,newnote,newnotesss,newnotessss,emptynote,newhdunote, + makeframe,course,more} +} +\usepackage{hyperref,xcolor,verbatim} + +\definecolor{pkgcolor}{Hsb}{103,.8,.5} +\definecolor{moducolor}{Hsb}{290,.8,.5} +\definecolor{cmdcolor}{Hsb}{188,.8,.5} +\definecolor{filecolor}{Hsb}{207,.6,.7} +\definecolor{H1}{Hsb}{349,.8,.8}% 海棠紅 (Hangzhou MTR L 1 ) +\definecolor{H2}{Hsb}{23, .8,.8}% 丹桂橙 (Hangzhou Metro 2 ) +\definecolor{H3}{Hsb}{48, .8,.8}% 柠檬黄 (Hangzhou Metro 3 ) +\definecolor{H4}{Hsb}{103,.8,.8}% 香樟绿 (Hangzhou Metro 4 ) +\definecolor{H5}{Hsb}{188,.8,.8}% é’è—色 (Hangzhou MTR L 5 ) +\definecolor{H6}{Hsb}{207,.8,.8}% æµ·æ´‹è“ (Hangzhou Metro 6 ) +\definecolor{H7}{Hsb}{290,.8,.8}% 浪漫紫 (Hangzhou Metro 7 ) +\hypersetup{colorlinks,urlcolor=H1,linkcolor=H2,filecolor=filecolor,pdfstartview=FitH,pdfview=FitH,pdfcreator=XeTeX output} + +\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.1em}} +\def\pkg#1{\texorpdfstring{\textcolor{pkgcolor}{\textsf{#1}}}{“#1â€}} +\def\mode#1{\texorpdfstring{\textcolor{moducolor}{\textsf{#1}}}{“#1â€}} +\def\cmd#1{\texorpdfstring{\textcolor{cmdcolor}{\textsf{#1}}}{“#1â€}} +\def\datechange#1#2{% + \noindent{\makebox[\textwidth][r]{\color{H7}\rule{1.15\textwidth}{.4pt}}} + \noindent\makebox[0pt][r]{\makebox[-3em][r]{\small\textbf{\textcolor{H7}{#1}}}\;\;}{\sffamily Update: \ignorespaces#2}} +\makeatother + +\title{The \pkg{LiteTable} Template} +\author[1]{Xia Mingyu, \href{https://www.hdu.edu.cn}{Hangzhou Dianzi University}} +\yyyymmdddate +\date{\today} +\affil[1]{\href{mailto:xiamyphys@gmail.com}{\texttt{xiamyphys@gmail.com}}} +\date{\today\quad Version 2.2a\thanks{% + \url{https://github.com/xiamyphys/litetable}}} +\begin{document} +\maketitle + +\vspace{-2em} +\begin{abstract} +\pkg{LiteTable} 模æ¿æ供了一个多彩的课程表设计,本文档为\pkg{LiteTable} 模æ¿çš„说明文档. + +\end{abstract} + +\tableofcontents\clearpage + +\section{Introduction} + +\subsection{本模æ¿çš„目的} +本模æ¿æ供了一个多彩的课程表设计. + +如果你在使用本模æ¿æ—¶é‡åˆ°é—®é¢˜ï¼Œæˆ–者有更好的建议,或者你想å‚与本模æ¿æˆ–本人其他模æ¿çš„å¼€å‘,欢迎通过邮件 \href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com} è”络我. + +åŒæ ·ï¼Œä½ ä¹Ÿå¯ä»¥åŠ å…¥æˆ‘çš„\textsf\LaTeX{} 技術交æµç¾¤ \href{https://qm.qq.com/q/OnHzbNvVAG}{QQ Group: 760570712} 与我交æµï¼Œæ¥èŽ·å–模æ¿çš„内测版本. + +\subsection{所需å®é›†} +本模æ¿åŸºäºŽ \pkg{standalone} 文档类开å‘. å…¶éœ€è¦ \pkg{tikz} å®é›†åŽ»ç»˜åˆ¶å›¾å½¢ï¼Œ\pkg{kvoptions} å’Œ \pkg{etoolbox} å®é›†ç”¨äºŽæ供全局选项,\pkg{expl3} å®åŸºç”¨äºŽæ”¯æŒæ•°ç»„,\pkg{ctex}å®é›†ç”¨äºŽæ”¯æŒä¸­æ–‡è¯­è¨€ï¼Œ\pkg{fontawesome5} å®é›†æ供一系列精美的图标. + +我强烈建议您使用终端机去执行以下命令,以将所有å®é›†æ›´æ–°åˆ°æœ€æ–°ç‰ˆæœ¬ +\begin{verbatim} + tlmgr update --self + tlmgr update --all +\end{verbatim} + +如果您所在的地区存在网路å°é”,你å¯ä»¥é€‰æ‹©åˆé€‚çš„é•œåƒç½‘站或其他方法\footnote{请éµå¾ªå½“地的网路æ¡ä¾‹.}. 欲详细了解,请å‰å¾€ \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my TEX distribution?} + +\subsection{载入 \pkg{LiteTable} 和其模å¼} +将文件 \verb|litetable.cls| ä¿å­˜è‡³ä½ çš„项目根目录,然åŽåˆ›ç«‹ä¸€ä¸ª \verb|.tex| 文件,åªéœ€åœ¨ç¬¬ä¸€è¡Œè¾“入命令 \verb|\documentclass{litetable}| å³å¯. + +本模æ¿æ供了三个模å¼ï¼š\mode{date},\mode{style} å’Œ \mode{font}. åªéœ€å°†ä½ æƒ³è¦ä½¿ç”¨çš„模å¼é€‰é¡¹åˆ†åˆ«æ·»åŠ åœ¨ä½ çš„ \verb|.tex| 文件中命令 \verb|\documentclass[options]{litetable}| 的方括å·ä¸­å³å¯. + +\newpage +\section{\pkg{LiteTable} 的模å¼} +\begin{verbatim} + \documentclass[options]{litetable} +\end{verbatim} +\subsection{\mode{date} 模å¼} +此模å¼æœ‰ä¸¤ä¸ªé€‰é¡¹ï¼Œ\mode{en} å’Œ \mode{cn},å¯åˆ†åˆ«ä½¿å·¥ä½œæ—¥ä»¥è‹±æ–‡æˆ–大陆简体显示,默认为英文. + +\subsection{\mode{style} 模å¼} +此模å¼æœ‰ä¸¤ä¸ªé€‰é¡¹ï¼Œ\mode{round} å’Œ \mode{sharp},å¯åˆ†åˆ«ä½¿è¯¾ç¨‹å—圆角或直角显示,默认为直角. + +\subsection{\mode{font} 模å¼} +此模å¼æœ‰ä¸¤ä¸ªé€‰é¡¹ï¼Œ\mode{times} å’Œ \mode{libertinus},å¯åˆ†åˆ«ä½¿å­—体为 ``Times New Roman'' 或 ``Libertinus'',默认为 ``Times New Roman''.\footnote{在使用 ``Libertinus'' 选项å‰è¯·ç¡®ä¿ç”µè„‘中已安装该字体.} + +\section{\pkg{LiteTable} 的命令} + +\subsection{\cmd{makeframe} 命令} +\begin{verbatim} + \makeframe{Timetable -- Semester 5} +\end{verbatim} + +此命令å¯å»ºç«‹ä¸€ä¸ªæ ‡é¢˜ä¸º ``Timetable -- Semester 5'' 的空白课程表. + +\subsection{The \cmd{timelist} command} +\begin{verbatim} + \timelist{ + 8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20,20:10; + 8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05,20:55 + } +\end{verbatim} + +此命令å¯å°†æ—¶é—´æ·»åŠ è‡³è¯¾ç¨‹è¡¨çš„左侧,内容的第一行是æ¯èŠ‚课程开始时间,第二行是æ¯èŠ‚课程的结æŸæ—¶é—´ï¼Œæ—¶é—´ä¹‹é—´ç”¨é€—å·ï¼ˆ\verb|,|)分隔,第一行与第二行之间用分å·ï¼ˆ\verb|;|)分隔. + +本课程表目å‰åªæ”¯æŒæ¯å¤©12节课. 在åŽç»­æ›´æ–°ä¸­ï¼Œå°†æ”¯æŒè‡ªå®šä¹‰æ¯å¤©çš„è¯¾ç¨‹èŠ‚æ•°ï¼Œæ•¬è¯·æœŸå¾…ï¼ + +\subsection{\cmd{course} 命令} +\begin{verbatim} + \course{H5}{3}{5}{AQM}{Building 6·225}{Yuan Li \& Mengnan Chen}{Week 1 -- 18} +\end{verbatim} + +此命令共有7个å˜é‡. +\begin{itemize} + \item 第一个为你想选择的课程å—颜色,从 ``H1'' 到 ``H9'' å¯é€‰. + \item 第二个和第三个为课程的起始节数和结æŸèŠ‚æ•°. + \item 第四个为课程的å称. + \item 第五个为课程的地å€. + \item 第六个为教师的åå­—. + \item 第七个为课程的起始周和结æŸå‘¨. +\end{itemize} + +\subsection{\cmd{newday} 命令} +此命令å¯åˆ‡æ¢å½“å‰æ—¥åˆ°ç¬¬äºŒå¤©ï¼Œæ­¤æ—¶è¯¾ç¨‹å—会å³ç§»ä¸€æ ¼. + +\subsection{\cmd{more} 命令} +\begin{verbatim} + \more{·School Start: 04 / 03 / 2024 ·Summer Vacation: 05 / 07 / 2024} +\end{verbatim} +此命令å¯åœ¨è¯¾ç¨‹è¡¨æœ«å°¾æ·»åŠ å¤‡æ³¨ä¿¡æ¯. + +\subsection{\cmd{sticker} 命令} +\begin{verbatim} + \sticker{favicon} +\end{verbatim} +在使用此命令åŽé¡µé¢çš„å³ä¸‹æ–¹ä¼šæ·»åŠ ä¸€å¼ è´´çº¸. + +\newpage +\section{版本历å²} + +课程表的设计æºäºŽæ­ç”µåŠ©æ‰‹ï¼ˆ\href{https://www.hdu.edu.cn}{æ­å·žç”µå­ç§‘技大学}\footnote{https://en.wikipedia.org/wiki/Hangzhou\_Dianzi\_University})学生课表页é¢\footnote{仅本校师生å¯è®¿é—®.} 页é¢æŽ’版å分精美,于是本人使用\LaTeX{} å¤åˆ»å‡ºäº†è¯¾ç¨‹è¡¨æ ·å¼ï¼Œå¹¶åˆ¶ä½œæˆæ¨¡æ¿åˆ†äº«ç»™å¤§å®¶. + +\textsf{\bfseries Version 1.0} 于01/09/2023完æˆå¼€å‘,并å‘布在\href{https://www.latexstudio.net/index/details/index/mid/3625.html}{LaTeX 工作室} (æ­å·žè§å±±)å’Œ\href{http://xhslink.com/od7Ycw}{å°çº¢ä¹¦}上,赢得了许多人的喜爱. + +\textsf{\bfseries Version 2.0a}于01/11/2023完æˆå¼€å‘,并å‘布在\href{https://www.latexstudio.net/index/details/index/mid/3636.html}{LaTeX 工作室} (æ­å·žè§å±±)å’Œ\href{http://xhslink.com/od7Ycw}{å°çº¢ä¹¦}上. 此版本使用 \verb|.cls| 文件,使 \verb|main.tex| 文件更简æ´. åŒæ—¶ï¼Œæ­¤ç‰ˆæœ¬æ·»åŠ äº†å…¨å±€é€‰é¡¹ï¼Œå¯è®¾ç½® ``课程å—" 显示为圆角或直角. 此版本也支æŒä¸€ä¸ª \verb|.tex| 文件中生æˆå¤šå¼ è¯¾è¡¨. + +\textsf{\bfseries Version 2.1a} 于05/11/2023完æˆå¼€å‘. æ”¯æŒ libertinus 字体. + +\textsf{\bfseries Version 2.2a} 于31/01/2024完æˆå¼€å‘. 此版本修å¤äº†åˆ†è¾¨çŽ‡è¶…出的bug,更改纸张类型为美国信纸并支æŒè‡ªå®šä¹‰è¯¾ç¨‹èµ·å§‹å’Œç»“æŸæ—¶é—´. + +\datechange{01/09/2023}{Version 2.0a} +\begin{itemize} + \item 支æŒè¯¾ç¨‹å—显示为圆角或直角. + \item 支æŒä¸€ä¸ª \verb|.tex| 文件中生æˆå¤šå¼ è¯¾è¡¨. +\end{itemize} + +\datechange{05/11/2023}{Version 2.1a} +\begin{itemize} + \item æ”¯æŒ libertinus 字体. +\end{itemize} + +\datechange{31/01/2024}{Version 2.2a} +\begin{itemize} + \item ä¿®å¤äº†åˆ†è¾¨çŽ‡è¶…出的bug. + \item 更改纸张类型为美国信纸. + \item 支æŒè‡ªå®šä¹‰è¯¾ç¨‹èµ·å§‹å’Œç»“æŸæ—¶é—´. + \item 支æŒåœ¨é¡µé¢å³ä¸‹è§’添加一个你喜欢的å°è´´çº¸. +\end{itemize} + +\newpage\setstretch{1} +\appendix +\section{代ç ç¤ºä¾‹} +\lstinputlisting[style=TeX]{litetable-demo.tex} + +\includepdf[pages=last-1,nup=1x2,angle=90]{litetable-demo.pdf} +\end{document} \ No newline at end of file diff --git a/macros/latex/contrib/litetable/doc/litetable-doc-en.pdf b/macros/latex/contrib/litetable/doc/litetable-doc-en.pdf new file mode 100644 index 0000000000..1a201097da Binary files /dev/null and b/macros/latex/contrib/litetable/doc/litetable-doc-en.pdf differ diff --git a/macros/latex/contrib/litetable/doc/litetable-doc-en.tex b/macros/latex/contrib/litetable/doc/litetable-doc-en.tex new file mode 100644 index 0000000000..e799e32b6f --- /dev/null +++ b/macros/latex/contrib/litetable/doc/litetable-doc-en.tex @@ -0,0 +1,210 @@ +%% ****************************************************** +%% * This work may be distributed and/or modified under * +%% * the conditions of the LaTeX Project Public License * +%% * http://www.latex-project.org/lppl.txt * +%% * either version 1.3c of this license or any later * +%% * version. * +%% ****************************************************** +\PassOptionsToPackage{quiet}{xeCJK} +\PassOptionsToPackage{quiet}{fontspec} +\PassOptionsToPackage{no-math}{fontspec} +\documentclass[11pt]{article} +\usepackage{geometry} +\usepackage{pdfpages} +\usepackage[level]{datetime} +\usepackage{unicode-math,xeCJK} +\usepackage{authblk} +\setmainfont{Libertinus Serif} +\setsansfont{Libertinus Sans} +\setmonofont{NotoSansMono}[ + Scale=MatchLowercase, + Extension=.ttf, + UprightFont=*-Light, + BoldFont=*-Medium +] +\makeatletter +\usepackage{listings,dirtree} +\lstdefinestyle{TeX}{ + language = [LaTeX]TeX, + texcsstyle = *\color{H7}, + numbers = none, + basicstyle = {\small\color{H6}\tt}, + mathescape = false, + breaklines = true, + columns = fixed, + keywordstyle = \color{H3}, + commentstyle = \color{darkgray}, + tabsize = 2, + keywords = {mail,flyleaf,sticker,logo,notebook,chapter,newnote,newnotesss,newnotessss,emptynote,newhdunote, + makeframe,course,more} +} +\usepackage{hyperref,xcolor,verbatim} + +\definecolor{pkgcolor}{Hsb}{103,.8,.5} +\definecolor{moducolor}{Hsb}{290,.8,.5} +\definecolor{cmdcolor}{Hsb}{188,.8,.5} +\definecolor{filecolor}{Hsb}{207,.6,.7} +\definecolor{H1}{Hsb}{349,.8,.8}% 海棠紅 (Hangzhou MTR L 1 ) +\definecolor{H2}{Hsb}{23, .8,.8}% 丹桂橙 (Hangzhou Metro 2 ) +\definecolor{H3}{Hsb}{48, .8,.8}% 柠檬黄 (Hangzhou Metro 3 ) +\definecolor{H4}{Hsb}{103,.8,.8}% 香樟绿 (Hangzhou Metro 4 ) +\definecolor{H5}{Hsb}{188,.8,.8}% é’è—色 (Hangzhou MTR L 5 ) +\definecolor{H6}{Hsb}{207,.8,.8}% æµ·æ´‹è“ (Hangzhou Metro 6 ) +\definecolor{H7}{Hsb}{290,.8,.8}% 浪漫紫 (Hangzhou Metro 7 ) +\hypersetup{colorlinks,urlcolor=H1,linkcolor=H2,filecolor=filecolor,pdfstartview=FitH,pdfview=FitH,pdfcreator=XeTeX output} + +\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.1em}} +\def\pkg#1{\texorpdfstring{\textcolor{pkgcolor}{\textsf{#1}}}{“#1â€}} +\def\mode#1{\texorpdfstring{\textcolor{moducolor}{\textsf{#1}}}{“#1â€}} +\def\cmd#1{\texorpdfstring{\textcolor{cmdcolor}{\textsf{#1}}}{“#1â€}} +\def\datechange#1#2{% + \noindent{\makebox[\textwidth][r]{\color{H7}\rule{1.15\textwidth}{.4pt}}} + \noindent\makebox[0pt][r]{\makebox[-3em][r]{\small\textbf{\textcolor{H7}{#1}}}\;\;}{\sffamily Update: \ignorespaces#2}} +\makeatother + +\title{The \pkg{LiteTable} Template} +\author[1]{Xia Mingyu, \href{https://www.hdu.edu.cn}{Hangzhou Dianzi University}} +\yyyymmdddate +\date{\today} +\affil[1]{\href{mailto:xiamyphys@gmail.com}{\texttt{xiamyphys@gmail.com}}} +\date{\today\quad Version 2.2a\thanks{% + \url{https://github.com/xiamyphys/litetable}}} +\begin{document} +\maketitle + +\begin{abstract} +This is the document for \pkg{LiteTable} template, which provides a beautiful design of class schedule with colorful course blocks. + +\end{abstract} + +\tableofcontents + +\section{Introduction} + +\subsection{The purpose of this template} +This template provides a beautiful design of class schedule with colorful course blocks. + +If you meet bugs when using this template, or you have better suggestions or ideas, or you want to participate in the development of the template or other templates by me, welcome to contact via email \href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com}. + +Also, you can join my \textsf\LaTeX{} Template Discussion \href{https://qm.qq.com/q/OnHzbNvVAG}{QQ Group: 760570712} to communicate with me and get the insider preview edition of the template. + +\subsection{Packages required} +This template is based on the template \pkg{standalone}. And it requires \pkg{tikz} package to plot some graphics, \pkg{kvoptions} and \pkg{etoolbox} packages to provide global options, \pkg{expl3} package to support \cmd{timelist} array, \pkg{ctex} package to supports the \textbf{Chinese, Simplified} language and \pkg{fontawesome5} package to provides a set of beautiful icons. + +I strongly suggest that you should use cmd to implement the commands to update all the packages to the latest version or switch to portable version instead. +\begin{verbatim} + tlmgr update --self + tlmgr update --all +\end{verbatim} + +If you are in some areas with awful Internet environment, you can choose proper mirror source or use other means\footnote{Please comply with local network regulations.}. To learn more, please refer to \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my TEX distribution?} + +\subsection{Loading \pkg{LiteTable} and its modes} +Save the file \verb|litetable.cls| to your project's root directory, and then create a \verb|.tex| file, just input the command \verb|\documentclass{litetable}| on the first line. + +The template provides three modes, \mode{date}, \mode{style} and \mode{font}. Just add the options of the modes you want separately in the square bracket of the command \verb|\documentclass[options]{litetable}| in your \verb|.tex| file. + +\newpage +\section{Modes of \pkg{LiteTable}} +\begin{verbatim} + \documentclass[options]{litetable} +\end{verbatim} +\subsection{The \mode{date} mode} +This mode has two options, \mode{en} and \mode{cn}, which can make the weekdays display in English or 大陆简体, and the dafault option is English. + +\subsection{The \mode{style} mode} +This mode has two options, \mode{round} and \mode{sharp}, which can make the course block's corners be round or sharp, and the default option is sharp. + +\subsection{The \mode{font} mode} +This mode has two options, \mode{times} and \mode{libertinus}, which can make the font to be ``Times New Roman'' or ``Libertinus'', and the default option is ``Times New Roman''.\footnote{Please ensure that your computer has been already installed the font ``Libertinus'' when using this option.} + +\section{Commands of \pkg{LiteTable}} + +\subsection{The \cmd{makeframe} command} +\begin{verbatim} + \makeframe{Timetable -- Semester 5} +\end{verbatim} + +This command can create an empty class schedule with the title ``Timetable -- Semester 5''. + +\subsection{The \cmd{timelist} command} +\begin{verbatim} + \timelist{ + 8:05,8:55,10:00,10:50,11:40,13:30,14:20,15:15,16:05,18:30,19:20,20:10; + 8:50,9:40,10:45,11:35,12:25,14:15,15:05,16:00,16:50,19:15,20:05,20:55 + } +\end{verbatim} + +This command can add time to the left side of the timetable, and the first line of the content is the start time of the class while the second line of the content is the end time of the class, each time separates with comma (\verb|,|), the first line and the second line separates with semicolon (\verb|;|). + +The timetable currently only supports 12 classes per day. In the future updates, customization of the number of courses per day will be supported. + +\subsection{The \cmd{course} command} +\begin{verbatim} + \course{H5}{3}{5}{AQM}{Building 6·225}{Yuan Li \& Mengnan Chen}{Week 1 -- 18} +\end{verbatim} + +There are 7 variables in this command. +\begin{itemize} + \item The 1st one is the color of the class that you want, from ``H1'' to ``H5''. + \item The 2nd and 3rd ones is the starting number and ending number of the class. + \item The 4th one is the name of the class. + \item The 5th one is the address of the class. + \item The 6th one is the name of the teacher(s). + \item The last one is the start week and end week of the class. +\end{itemize} + +\subsection{The \cmd{newday} command} +This command can switch the current weekday to the next day, then the course will move right one grid. + +\subsection{The \cmd{more} command} +\begin{verbatim} + \more{·School Start: 04 / 03 / 2024 ·Summer Vacation: 05 / 07 / 2024} +\end{verbatim} +This command can add remark at the end of the class schedule. + +\subsection{The \cmd{sticker} command} +\begin{verbatim} + \sticker{favicon} +\end{verbatim} +There will be a sticker on the southeast of the page after you add,otherwise it won't. + +\newpage +\section{Version History} + +The design of this course schedule originated from the student course schedule web page\footnote{Only those studying at or graduated from Hangzhou Dianzi University can have the permission of access.} of the \href{https://www.hduhelp.cn/}{HDUHelp} in \href{https://www.hdu.edu.cn}{Hangzhou Dianzi University}\footnote{https://en.wikipedia.org/wiki/Hangzhou\_Dianzi\_University}. The layout is very beautiful and then I used \LaTeX{} to imitate that style and made a class schedule template to share with everyone. + +\textsf{\bfseries Version 1.0} was finished on 1 September, 2023 and released on \href{https://www.latexstudio.net/index/details/index/mid/3625.html}{LaTeX Studio} (Xiaoshan, Hangzhou) and \href{http://xhslink.com/od7Ycw}{Xiaohongshu}, where won the favor of many people. + +\textsf{\bfseries Version 2.0a} was finished developing on 1 November, 2023 and released on \href{https://www.latexstudio.net/index/details/index/mid/3636.html}{LaTeX Studio} (Xiaoshan, Hangzhou) and \href{http://xhslink.com/od7Ycw}{Xiaohongshu}. This version used \verb|.cls| files to make the \verb|main.tex| file more concise. Also, this version have added a global option to choose whether the corners of the ``course Block" to be round or sharp. And this version support adds multiply class schedules in one \verb|.tex| file. + +\textsf{\bfseries Version 2.1a} was finished developing on 5 November, 2023. Supports the libertinus font. + +\textsf{\bfseries Version 2.2a} was finished developing on 31 January, 2024. This Version fixed the bug of resolution exceeded, changed paper type to US letter and support custom course start time and end time. + +\datechange{01/09/2023}{Version 2.0a} +\begin{itemize} + \item Supports the course block's corners be round or sharp. + \item Supports multiply class schedules in one \verb|.tex| file. +\end{itemize} + +\datechange{05/11/2023}{Version 2.1a} +\begin{itemize} + \item Supports the libertinus font. +\end{itemize} + +\datechange{31/01/2024}{Version 2.2a} +\begin{itemize} + \item Fixed the bug of resolution exceeded. + \item Changed paper type to US letter. + \item Support custom course start time and end time. + \item Support add sticker as you like at the southeast of the page. +\end{itemize} + +\newpage +\appendix +\section{Document Example} +\lstinputlisting[style=TeX]{litetable-demo.tex} + +\includepdf[pages=last-1,nup=1x2,angle=90]{litetable-demo.pdf} +\end{document} \ No newline at end of file diff --git a/macros/latex/contrib/litetable/doc/litetable-doc.pdf b/macros/latex/contrib/litetable/doc/litetable-doc.pdf deleted file mode 100644 index 92cfe2a9ca..0000000000 Binary files a/macros/latex/contrib/litetable/doc/litetable-doc.pdf and /dev/null differ diff --git a/macros/latex/contrib/litetable/doc/litetable-doc.tex b/macros/latex/contrib/litetable/doc/litetable-doc.tex deleted file mode 100644 index ffe0a79b26..0000000000 --- a/macros/latex/contrib/litetable/doc/litetable-doc.tex +++ /dev/null @@ -1,169 +0,0 @@ -%% ****************************************************** -%% * This work may be distributed and/or modified under * -%% * the conditions of the LaTeX Project Public License * -%% * http://www.latex-project.org/lppl.txt * -%% * either version 1.3c of this license or any later * -%% * version. * -%% ****************************************************** -\documentclass[11pt]{article} -\usepackage{geometry} -\usepackage{pdfpages} -\usepackage[level]{datetime} -\usepackage{unicode-math} -\usepackage{authblk} -\setmainfont{Libertinus Serif} -\setsansfont{Libertinus Sans} -\setmonofont{NotoSansMono}[ - Scale=MatchLowercase, - Extension=.ttf, - UprightFont=*-Light, - BoldFont=*-Medium -] -\makeatletter -\usepackage{listings,dirtree} -\lstdefinestyle{TeX}{ - language = [LaTeX]TeX, - texcsstyle = *\color{H7}, - numbers = none, - basicstyle = {\small\color{H6}\tt}, - mathescape = false, - breaklines = true, - columns = fixed, - keywordstyle = \color{H3}, - commentstyle = \color{darkgray}, - tabsize = 2, - keywords = {mail,flyleaf,sticker,logo,notebook,chapter,newnote,newnotesss,newnotessss,emptynote,newhdunote, - makeframe,course,more} -} -\usepackage{hyperref,xcolor,verbatim} -\definecolor{pkgcolor}{Hsb}{103,.8,.5} -\definecolor{moducolor}{Hsb}{290,.8,.5} -\definecolor{cmdcolor}{Hsb}{188,.8,.5} -\definecolor{filecolor}{Hsb}{207,.6,.7} -\definecolor{H1}{Hsb}{349,.8,.8}% 海棠紅 (Hangzhou MTR L 1 ) -\definecolor{H2}{Hsb}{23, .8,.8}% 丹桂橙 (Hangzhou Metro 2 ) -\definecolor{H3}{Hsb}{48, .8,.8}% 柠檬黄 (Hangzhou Metro 3 ) -\definecolor{H4}{Hsb}{103,.8,.8}% 香樟绿 (Hangzhou Metro 4 ) -\definecolor{H5}{Hsb}{188,.8,.8}% é’è—色 (Hangzhou MTR L 5 ) -\definecolor{H6}{Hsb}{207,.8,.8}% æµ·æ´‹è“ (Hangzhou Metro 6 ) -\definecolor{H7}{Hsb}{290,.8,.8}% 浪漫紫 (Hangzhou Metro 7 ) -\hypersetup{colorlinks,urlcolor=H1,linkcolor=H2,filecolor=filecolor,pdfstartview=FitH,pdfview=FitH,pdfcreator=XeTeX output} - -\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.1em}} -\def\@pkg#1{\texorpdfstring{\href{https://www.ctan.org/pkg/#1}% -{\textcolor{pkgcolor}{\textsf{#1}}}}{“#1â€}} -\def\s@pkg#1{\texorpdfstring{\textcolor{pkgcolor}{\textsf{#1}}}{“#1â€}} -\DeclareRobustCommand\pkg{\@ifstar\s@pkg\@pkg} -\def\mode#1{\texorpdfstring{\textcolor{moducolor}{\textsf{#1}}}{“#1â€}} -\def\cmd#1{\texorpdfstring{\textcolor{cmdcolor}{\textsf{#1}}}{“#1â€}} -\def\datechange#1#2{% - \noindent{\makebox[\textwidth][r]{\color{H7}\rule{1.15\textwidth}{.4pt}}} - \noindent\makebox[0pt][r]{\makebox[-3em][r]{\small\textbf{\textcolor{H7}{#1}}}\;\;}{\sffamily Update: \ignorespaces#2}} -\makeatother - -\title{The \pkg{LiteTable} Template} -\author[1]{Xia Mingyu, \href{https://www.hdu.edu.cn}{Hangzhou Dianzi University}} -\ddmmyyyydate -\date{\today} -\affil[1]{\href{mailto:xiamyphys@gmail.com}{\texttt{xiamyphys@gmail.com}}} -\date{\today\quad Version 2.0a\thanks{% - \url{https://github.com/xiamyphys/litetable}}} -\begin{document} -\maketitle - -\begin{abstract} -This is the document for \pkg{LiteTable} template, which provides a beautiful design of class schedule with colorful course blocks. - -\end{abstract} - -\tableofcontents - -\section{Introduction} - -\subsection{The purpose of this template} -This template provides a beautiful design of class schedule with colorful course blocks. - -If you meet bugs when using this template, or you have better suggestions or ideas, or you want to participate in the development of the template or other templates by me, welcome to contact via email \href{mailto:xiamyphys@gmail.com}{xiamyphys@gmail.com}. - -Also, you can join my \textsf\LaTeX{} Template Discussion \href{https://qm.qq.com/q/OnHzbNvVAG}{QQ Group: 760570712} to communicate with me and get the insider preview edition of the template. - -\subsection{Packages required} -This template is based on the template \pkg{standalone}. And it requires \pkg{tikz} package to plot some graphics, \pkg{kvoptions} and \pkg{etoolbox} packages to provide global opinions, \pkg{ctex} package to supports the \textbf{Chinese, Simplified} language and \pkg{fontawesome5} package to provides a set of beautiful icons. - -I strongly suggest that you should use cmd to implement the commands to update all the packages to the latest version or switch to portable version instead. -\begin{verbatim} - tlmgr update --self - tlmgr update --all -\end{verbatim} - -If you are in some areas with awful Internet environment, you can choose proper mirror source or use other means\footnote{Please comply with local network regulations.}. To learn more, please refer to \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my TEX distribution?} - -\subsection{Loading \pkg{LiteTable} and its modes} -Save the file \verb|litetable.cls| to your project's root directory, and then create a \verb|.tex| file, just input the command \verb|\documentclass{litetable}| on the first line. - -The template provides two modes, \mode{style} and \mode{date}. Just add the options of the modes you want separately in the square bracket of the command \verb|\documentclass[options]{litetable}| in your \verb|.tex| file. - -\section{Modes of \pkg{LiteTable}} -\begin{verbatim} - \documentclass[options]{litetable} -\end{verbatim} -\subsection{The \mode{round} \& \mode{sharp} modes} -This mode can make the course block's corners be round or sharp, and the default opinion is sharp. -\subsection{The \mode{times} \& \mode{libertinus} mode} -This mode can make the font to be ``Times New Roman'' or ``Libertinus'', and the default opinion is ``Libertinus''.\footnote{Please ensure that your computer has been already installed the font ``Libertinus'' when using this opinion.} - -\section{Environment and commands of \pkg{LiteTable}} - -\subsection{The \cmd{makeframe} command} -\begin{verbatim} - \makeframe{Timetable -- Semester 5} -\end{verbatim} - -This command can create an empty class schedule with the title ``Timetable -- Semester 5''. -\subsection{The \cmd{course} command} - -\begin{verbatim} - \course{H5}{4}{3}{5}{AQM}{Building 6·225}{Yuan Li \& Mengnan Chen}{Week 1 -- 18} -\end{verbatim} - -There are 8 variables in this command. -\begin{itemize} - \item The 1st one is the color of the class that you want, from ``H1'' to ``H5''. - \item The 2nd one is the workday of the class. - \item The 3rd and 4th ones is the starting number and ending number of the class. - \item The 5th one is the name of the class. - \item The 6th one is the address of the class. - \item The 7th one is the name of the teacher(s). - \item The last one is the start week and end week of the class. -\end{itemize} -\subsection{The \cmd{more} command} -This command can add remark at the end of the class schedule. -\newpage -\section{Version History} - -I am a college student studying at \href{https://www.hdu.edu.cn}{Hangzhou Dianzi University}\footnote{https://en.wikipedia.org/wiki/Hangzhou\_Dianzi\_University} in China. An official club named \href{https://www.hduhelp.cn/}{HDUHelp} in my school has created a web page \href{https://cinnamon.hduhelp.com/navigation/schedule}{schedule}\footnote{Only those studying at or graduated from Hangzhou Dianzi University can have the permission of access.}. Every students and teachers can view their own class schedule on it. The layout is very beautiful and then I used LaTeX to imitate that style and made a class schedule template to share with everyone. - -\textsf{\bfseries Version 1.0} was finished on 1 September, 2023 and released on \href{https://www.latexstudio.net/index/details/index/mid/3625.html}{LaTeX Studio} (Xiaoshan, Hangzhou) and \href{http://xhslink.com/od7Ycw}{Xiaohongshu}, where won the favor of many people. - -\textsf{\bfseries Version 2.0a} was finished developing on 1 November, 2023 and released on \href{https://www.latexstudio.net/index/details/index/mid/3636.html}{LaTeX Studio} (Xiaoshan, Hangzhou) and \href{http://xhslink.com/od7Ycw}{Xiaohongshu}. This version used \verb|.cls| files to make the \verb|main.tex| file more concise. Also, this version have added a global option to choose whether the corners of the ``course Block" to be round or sharp. And this version support adds multiply class schedules in one \verb|.tex| file. - -\textsf{\bfseries Version 2.1a} was finished developing on 5 November, 2023. Supports the libertinus font. - -\datechange{01/09/2023}{Version 2.0a} -\begin{itemize} - \item Supports the course block's corners be round or sharp. - \item Supports multiply class schedules in one \verb|.tex| file. -\end{itemize} - -\datechange{05/11/2023}{Version 2.1a} -\begin{itemize} - \item Supports the libertinus font. -\end{itemize} - -\newpage -\appendix -\section{Document Example} -\lstinputlisting[style=TeX]{litetable-demo.tex} - -\includepdf[pages=last-1,nup=1x2,angle=90]{litetable-demo.pdf} -\end{document} \ No newline at end of file diff --git a/macros/latex/contrib/litetable/tex/litetable.cls b/macros/latex/contrib/litetable/tex/litetable.cls index 50c979fdd0..647d078520 100644 --- a/macros/latex/contrib/litetable/tex/litetable.cls +++ b/macros/latex/contrib/litetable/tex/litetable.cls @@ -6,14 +6,17 @@ %% * either version 1.3c of this license or any later * * * ** * ***** * * %% * version. * * * ** * * * * * %% ****************************************************** ***** ** * * *** * * * -%% start of file `notebeamer.cls'. * +%% start of file `litetable.cls'. * %% Copyright 2023 LiteLaTeX (xiamyphys@gmail.com) * %% available at https://github.com/xiamyphys/LiteTable * %% !Mode:: "TeX:UTF-8" * %% ************************************************************************************************************ \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{litetable}[2023/11/05 v2.1a LiteTable document class] -\LoadClass[tikz,margin=10pt]{standalone} +\PassOptionsToPackage{quiet}{xeCJK} +\PassOptionsToPackage{quiet}{fontspec} +\PassOptionsToPackage{no-math}{fontspec} +\ProvidesClass{litetable}[2024/01/31/ v2.2a LiteTable document class] + % ---------- 全局选项 ---------- % \RequirePackage{kvoptions} \RequirePackage{etoolbox} @@ -30,28 +33,18 @@ \DeclareStringOption[times]{font} \DeclareVoidOption{times}{\ekv{date=times}} -\DeclareVoidOption{libertinus}{\ekv{date=libertinus}} +\DeclareVoidOption{libertinuTs}{\ekv{date=libertinus}} -\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{book}} +\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{standalone}} \ProcessKeyvalOptions*\relax - -% ---------- 中文字体 ---------- % -\RequirePackage{ctex} +\LoadClass[tikz,margin=6pt]{standalone} % ---- 文本中的数字 & å­—æ¯è®¾ç½® ---- % -\PassOptionsToPackage{no-math}{fontspec} -\PassOptionsToPackage{quiet}{fontspec} +\RequirePackage{ctex} \ifdefstring{\LITE@font}{libertinus}{ \setmainfont{Libertinus Serif} \setsansfont{Libertinus Sans} -\setmonofont{NotoSansMono}[ - Scale=MatchLowercase, - Extension=.ttf, - UprightFont=*-Light, - BoldFont=*-Medium -] }{\relax} -\RequirePackage{iftex} \ifdefstring{\LITE@font}{times}{ \ifXeTeX \RequirePackage[no-math]{fontspec} @@ -79,7 +72,7 @@ % ---------- è‰²å½©ç»„åˆ ---------- % \definecolor{darkgray}{HTML}{727477}% 时间颜色 \definecolor{darkergray}{HTML}{F1F3F5}% æ·±è‰²å— -\definecolor{lightergray}{HTML}{F8F9FA}% æµ…è‰²å— +\definecolor{lightergray}{HTML}{FCFDFE}% æµ…è‰²å— \definecolor{blackgray}{HTML}{1A1D21}% åºå·é¢œè‰² \definecolor{H1}{HTML}{74A7A2}% 深绿 \definecolor{H1*}{HTML}{E9EEED} @@ -109,107 +102,114 @@ \definecolor{H9*}{HTML}{F2E0D0} \definecolor{H9**}{HTML}{C96F1C} \pagecolor{lightergray} -\newcommand{\xscale}{2.2733} -\newcommand{\yscale}{0.4291} - -\usetikzlibrary{calc} -\ifdefstring{\LITE@style}{round}{ -\newcommand{\course}[8]{ - \fill [#1,rounded corners=5pt] ($({(-23+32*(#2))*\xscale},{-\yscale*(21+93*#3)-0.2})$) rectangle ($({(9+32*(#2))*\xscale},{-\yscale*(114+93*#4)+0.2})$); - \fill [#1*,rounded corners=5pt] ($({(-23+32*(#2))*\xscale+0.1},{-\yscale*(42+93*#3)})$) -- ($({(-23+32*(#2))*\xscale+0.1},{-\yscale*(114+93*#4)+0.3})$) -- ($({(9+32*(#2))*\xscale-0.1},{-\yscale*(114+93*#4)+0.3})$) -- ($({(9+32*(#2))*\xscale-0.1},{-\yscale*(42+93*#3)})$); - \node [#1**,anchor=south] at ($({((-23+32*(#2))*\xscale+(9+32*(#2))*\xscale)/2},{(-\yscale*(21+93*#3)-\yscale*(114+93*#4))/2})$) {\heiti\bfseries #5}; - \node [#1**,anchor=north] at ($({((-23+32*(#2))*\xscale+(9+32*(#2))*\xscale)/2},{(-\yscale*(21+93*#3)-\yscale*(114+93*#4))/2-21*\yscale})$) {\heiti\bfseries\footnotesize #6}; - \node [#1**,anchor=north] at ($({((-23+32*(#2))*\xscale+(9+32*(#2))*\xscale)/2},{(-\yscale*(21+93*#3)-\yscale*(114+93*#4))/2-42*\yscale})$) {\heiti\footnotesize #7}; - \node [#1**,anchor=south east] at ($({(9+32*(#2))*\xscale-0.1},{-\yscale*(114+93*#4)+0.3})$) {\heiti\footnotesize #8}; - } - }{\relax} -\ifdefstring{\LITE@style}{sharp}{ -\newcommand{\course}[8]{ - \fill [#1] ($({(-23+32*(#2))*\xscale},{-\yscale*(21+93*#3)-0.2})$) rectangle ($({(9+32*(#2))*\xscale},{-\yscale*(114+93*#4)+0.2})$); - \fill [#1*] ($({(-23+32*(#2))*\xscale+0.1},{-\yscale*(42+93*#3)})$) rectangle ($({(9+32*(#2))*\xscale-0.1},{-\yscale*(114+93*#4)+0.3})$); - \node [#1**,anchor=south] at ($({((-23+32*(#2))*\xscale+(9+32*(#2))*\xscale)/2},{(-\yscale*(21+93*#3)-\yscale*(114+93*#4))/2})$) {\heiti\bfseries #5}; - \node [#1**,anchor=north] at ($({((-23+32*(#2))*\xscale+(9+32*(#2))*\xscale)/2},{(-\yscale*(21+93*#3)-\yscale*(114+93*#4))/2-21*\yscale})$) {\heiti\bfseries\footnotesize #6}; - \node [#1**,anchor=north] at ($({((-23+32*(#2))*\xscale+(9+32*(#2))*\xscale)/2},{(-\yscale*(21+93*#3)-\yscale*(114+93*#4))/2-42*\yscale})$) {\heiti\footnotesize #7}; - \node [#1**,anchor=south east] at ($({(9+32*(#2))*\xscale-0.1},{-\yscale*(114+93*#4)+0.3})$) {\heiti\footnotesize #8}; - } - }{\relax} - -\newcounter{number} -\RequirePackage{fontawesome5} \definecolor{丹色}{HTML}{E45E32} \definecolor{ç´…ç·‹}{HTML}{E83929} \definecolor{紺碧}{HTML}{007BBB} \definecolor{é’碧}{HTML}{478384} \definecolor{金色}{HTML}{E6B422} + +\def\pagewidth{8.5 in} +\def\pageheight{-11 in} +\usetikzlibrary{calc} +\ifdefstring{\LITE@style}{round}{\def\corners{round corners=6pt}}{\relax} +\ifdefstring{\LITE@style}{sharp}{\def\corners{}}{\relax} + +\ExplSyntaxOn % 二维数组 +\seq_new:N \l_node_row_seq +\seq_new:N \l_node_tmp_seq +\cs_set:Npn \timelist #1 { + \gdef\@timelist{#1} % 用于判断\@timelist是å¦å­˜åœ¨ + \seq_set_split:Nnn \l_node_row_seq {;} {#1} + \int_step_inline:nn{\seq_count:N \l_node_row_seq} + { + \seq_if_exist:cF {l_node_row_##1_seq} + { + \seq_new:c {l_node_row_##1_seq} + } + \exp_args:Ncx\seq_set_from_clist:Nn {l_node_row_##1_seq} {\seq_item:Nn \l_node_row_seq{##1}} + } +} + +\cs_set:Npn \PrintTime [#1][#2] { + \tl_if_empty:nTF { #1 } + { + \tl_if_empty:nTF { #2 } + { + \seq_use:Nn \l_node_row_seq {,} + } + { + \int_step_inline:nn{\seq_count:N \l_node_row_seq} + { + \seq_put_right:Nn \l_node_tmp_seq {\seq_item:cn {l_node_row_##1_seq}{#2}} + } + \seq_use:Nn \l_node_tmp_seq {,} + } + } + { + \tl_if_empty:nTF {#2} + { + \seq_use:cn {l_node_row_#1_seq}{,} + } + { + \seq_item:cn {l_node_row_#1_seq}{#2} + } + } +} +\ExplSyntaxOff +\RequirePackage{fontawesome5} +\newcounter{number} +\def\sticker{\gdef\@sticker} \newcommand{\makeframe}[1]{ - \ifdefstring{\LITE@style}{round}{ - \fill [fill=darkergray,rounded corners=8pt] (0,0) rectangle ($({169*\xscale},{-\yscale*72})$);% 顶部深ç°è‰²å— + \draw [gray!75] (0,0) rectangle (8.5 in,-11 in); + \fill [fill=darkergray,\corners] (0,0) rectangle (\pagewidth,1.5*\pageheight/27.5);% 顶部深ç°è‰²å— + \node at (.5*\pagewidth,.75*\pageheight/27.5) {\huge\bfseries\sffamily #1}; \foreach \a in {2,4,...,12} - \fill [fill=darkergray,yshift=\yscale*72 cm-\yscale*93*\a cm,rounded corners=8pt] (0,0) rectangle ($({169*\xscale},{-\yscale*93})$);% 中间深ç°è‰²å—(循环) - \fill [fill=darkergray,yshift=-\yscale*114 cm-\yscale*93*12 cm,rounded corners=8pt] (0,0) rectangle ($({169*\xscale},{-\yscale*36})$);% 底部深ç°è‰²å— - }{\relax} - \ifdefstring{\LITE@style}{sharp}{ - \fill [fill=darkergray] (0,0) rectangle ($({169*\xscale},{-\yscale*72})$);% 顶部深ç°è‰²å— - \foreach \a in {2,4,...,12} - \fill [fill=darkergray,yshift=\yscale*72 cm-\yscale*93*\a cm] (0,0) rectangle ($({169*\xscale},{-\yscale*93})$);% 中间深ç°è‰²å—(循环) - \fill [fill=darkergray,yshift=-\yscale*114 cm-\yscale*93*12 cm] (0,0) rectangle ($({169*\xscale},{-\yscale*36})$);% 底部深ç°è‰²å— - }{\relax} + \fill [fill=darkergray,yshift=2.5*\pageheight/27.5+2*(\a-2)*\pageheight/27.5,\corners] (0,0) rectangle (\pagewidth,2*\pageheight/27.5);% 中间深ç°è‰²å—(循环) + \fill [fill=darkergray,yshift=2.5*\pageheight/27.5+2*12*\pageheight/27.5,\corners] (0,0) rectangle (\pagewidth,\pageheight/27.5);% 底部深ç°è‰²å— \foreach \a in {0,1,2,...,12} - \draw [densely dashed,gray!75,yshift=-\yscale*114 cm-\yscale*93*\a cm] ($({9*\xscale},0)$)--($({169*\xscale},0)$);% 分割虚线 - \node at ($({169*\xscale/2},{-\yscale*72/2})$) {\huge\bfseries\sffamily #1}; + \draw [densely dashed,gray!75,yshift=2.5*\pageheight/27.5+2*\a*\pageheight/27.5,] (0,0)--(\pagewidth,0);% 分割虚线 % 时间标注 \setcounter{number}{0} \foreach \a in {1,2,...,12} - \node [yshift=-93*\yscale*(\a-1)*0.05 cm] at ($({9*\xscale/2},{-\yscale*135})$) {\bfseries\color{blackgray}\texttt{\textit{\refstepcounter{number}\thenumber}}}; - \node at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{8:05}}; - \node at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{8:50}}; - - \node [yshift=-93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{8:55}}; - \node [yshift=-93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{9:40}}; - - \node [yshift=-2*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{10:00}}; - \node [yshift=-2*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{10:45}}; - - \node [yshift=-3*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{10:50}}; - \node [yshift=-3*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{11:35}}; - - \node [yshift=-4*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{11:40}}; - \node [yshift=-4*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{12:25}}; - - \node [yshift=-5*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{13:30}}; - \node [yshift=-5*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{14:15}}; - - \node [yshift=-6*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{14:20}}; - \node [yshift=-6*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{15:05}}; - - \node [yshift=-7*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{15:15}}; - \node [yshift=-7*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{16:00}}; - - \node [yshift=-8*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{16:05}}; - \node [yshift=-8*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{16:50}}; - - \node [yshift=-9*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{18:30}}; - \node [yshift=-9*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{19:15}}; - - \node [yshift=-10*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{19:20}}; - \node [yshift=-10*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{20:05}}; - - \node [yshift=-11*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*171})$) {\footnotesize\color{darkgray}\texttt{20:10}}; - \node [yshift=-11*93*\yscale*0.05 cm] at ($({9*\xscale/2},{-\yscale*195})$) {\footnotesize\color{darkgray}\texttt{20:55}}; + \node [yshift=2.5*\pageheight/27.5+2*(\a-.8)*\pageheight/27.5] at (\pagewidth/32,0) {\bfseries\color{blackgray}\texttt{\refstepcounter{number}\thenumber}}; + \ifcsname @timelist\endcsname % è‹¥ `\@timelist == empty', 跳过该函数 + \foreach \x in {1,2,...,12} + { + \node[yshift=2.5*\pageheight/27.5+2*(\x-.475)*\pageheight/27.5] at (\pagewidth/32,0) {\color{darkgray}\texttt{\PrintTime[1][\x]}}; + \node[yshift=2.5*\pageheight/27.5+2*(\x-.2)*\pageheight/27.5] at (\pagewidth/32,0) {\color{darkgray}\texttt{\PrintTime[2][\x]}}; + }\fi % 星期标注 \ifdefstring{\LITE@date}{en}{ - \node [xshift=\xscale*25*0.05 cm] at ($(0,{-\yscale*93})$) {\color{丹色}\faIcon{moon}\;\bfseries\heiti{Monday}}; - \node [xshift=\xscale*57*0.05 cm] at ($(0,{-\yscale*93})$) {\color{ç´…ç·‹}\faIcon{fire}\;\bfseries\heiti{Tuesday}}; - \node [xshift=\xscale*89*0.05 cm] at ($(0,{-\yscale*93})$) {\color{紺碧}\faIcon{water}\;\bfseries\heiti{Wednesday}}; - \node [xshift=\xscale*121*0.05 cm] at ($(0,{-\yscale*93})$) {\color{é’碧}\faIcon{tree}\;\bfseries\heiti{Thursday}}; - \node [xshift=\xscale*153*0.05 cm] at ($(0,{-\yscale*93})$) {\color{金色}\faIcon{sun}\;\bfseries\heiti{Friday}}; + \node [xshift=2.5*\pagewidth/16] at (0,2*\pageheight/27.5) {\color{丹色}\faIcon{moon}\;\bfseries\heiti{Monday}}; + \node [xshift=5.5*\pagewidth/16] at (0,2*\pageheight/27.5) {\color{ç´…ç·‹}\faIcon{fire}\;\bfseries\heiti{Tuesday}}; + \node [xshift=8.5*\pagewidth/16] at (0,2*\pageheight/27.5) {\color{紺碧}\faIcon{water}\;\bfseries\heiti{Wednesday}}; + \node [xshift=11.5*\pagewidth/16] at (0,2*\pageheight/27.5) {\color{é’碧}\faIcon{tree}\;\bfseries\heiti{Thursday}}; + \node [xshift=14.5*\pagewidth/16] at (0,2*\pageheight/27.5) {\color{金色}\faIcon{sun}\;\bfseries\heiti{Friday}}; }{\relax} \ifdefstring{\LITE@date}{cn}{ - \node [xshift=\xscale*25*0.05 cm] at ($(0,{-\yscale*93})$) {\color{丹色}\faIcon{moon}\;\bfseries\heiti{星期一}}; - \node [xshift=\xscale*57*0.05 cm] at ($(0,{-\yscale*93})$) {\color{ç´…ç·‹}\faIcon{fire}\;\bfseries\heiti{星期二}}; - \node [xshift=\xscale*89*0.05 cm] at ($(0,{-\yscale*93})$) {\color{紺碧}\faIcon{water}\;\bfseries\heiti{星期三}}; - \node [xshift=\xscale*121*0.05 cm] at ($(0,{-\yscale*93})$) {\color{é’碧}\faIcon{tree}\;\bfseries\heiti{星期四}}; - \node [xshift=\xscale*153*0.05 cm] at ($(0,{-\yscale*93})$) {\color{金色}\faIcon{sun}\;\bfseries\heiti{星期五}}; + \node [xshift=2.5*\pagewidth/16] at (0,2*\pageheight/27.5) {\color{丹色}\faIcon{moon}\;\bfseries\heiti{星期一}}; + \node [xshift=5.5*\pagewidth/16] at (0,2*\pageheight/27.5) {\color{ç´…ç·‹}\faIcon{fire}\;\bfseries\heiti{星期二}}; + \node [xshift=8.5*\pagewidth/16] at (0,2*\pageheight/27.5) {\color{紺碧}\faIcon{water}\;\bfseries\heiti{星期三}}; + \node [xshift=11.5*\pagewidth/16] at (0,2*\pageheight/27.5) {\color{é’碧}\faIcon{tree}\;\bfseries\heiti{星期四}}; + \node [xshift=14.5*\pagewidth/16] at (0,2*\pageheight/27.5) {\color{金色}\faIcon{sun}\;\bfseries\heiti{星期五}}; }{\relax} + \ifcsname @sticker\endcsname + \node [opacity=.3,anchor=south east,yshift=1.5*\pageheight/27.5+2*12*\pageheight/27.5,inner sep=0pt,scale=3] at (\pagewidth,\pageheight/27.5) {\includegraphics[width=\dimeval{\pagewidth/16}]{\@sticker}};\fi } -\newcommand{\more}[1]{\node [yshift=-\yscale*0.05*114 cm-\yscale*0.05*93*12 cm,anchor=east] at ($({169*\xscale},{-\yscale*18})$) {\small\color{darkgray}#1};} \ No newline at end of file + +\newcounter{weekday} +\def\newday{\addtocounter{weekday}{1}} +\AtEndEnvironment{tikzpicture}{\setcounter{weekday}{0}} +\newcommand{\course}[7] +{ + \fill [#1,\corners,yshift=2*(#2-1)*\pageheight/27.5,xshift=3*\theweekday*\pagewidth/16] (\pagewidth/16,2.5*\pageheight/27.5) rectangle ($({4*\pagewidth/16},{(4.5+2*(#3-#2))*\pageheight/27.5})$); % frame + \fill [#1*,\corners,yshift=(2*(#2-1)+.5)*\pageheight/27.5,xshift=3*\theweekday*\pagewidth/16] (\pagewidth/16,2.5*\pageheight/27.5) rectangle ($({4*\pagewidth/16},{(4+2*(#3-#2))*\pageheight/27.5})$); % content + \node [#1**,yshift=(#2+#3-1.25)*\pageheight/27.5,xshift=3*\theweekday*\pagewidth/16] at (2.5*\pagewidth/16,2.5*\pageheight/27.5) {\heiti\large\bfseries #4}; % course + \node [#1**,anchor=south,yshift=(#2+#3-.2)*\pageheight/27.5,xshift=3*\theweekday*\pagewidth/16] at (2.5*\pagewidth/16,2.5*\pageheight/27.5) {\heiti\bfseries\small #5}; % location + \node [#1**,anchor=north,yshift=(#2+#3-.2)*\pageheight/27.5,xshift=3*\theweekday*\pagewidth/16] at (2.5*\pagewidth/16,2.5*\pageheight/27.5) {\heiti\bfseries\small #6}; % teacher + \node [#1**,anchor=south east,yshift=2*#3*\pageheight/27.5,xshift=3*\theweekday*\pagewidth/16] at (4*\pagewidth/16,2.5*\pageheight/27.5) {\heiti\footnotesize #7}; % weeks +} + +\def\more#1{ + \node [xshift=-1em,yshift=2.5*\pageheight/27.5+2*12*\pageheight/27.5,anchor=east] at (\pagewidth,.5*\pageheight/27.5){\small\bfseries\color{darkgray}#1}; +} \ No newline at end of file diff --git a/macros/latex/contrib/refstyle/README b/macros/latex/contrib/refstyle/README index e33a537d59..93d23dc15e 100644 --- a/macros/latex/contrib/refstyle/README +++ b/macros/latex/contrib/refstyle/README @@ -1,70 +1,70 @@ - The refstyle package - For extended references - -File: README -Author: Danie Els - -DESCRIPTION -=========== - -The package provides a user interface to define sets of reference -and label commands for each referable object such as an equation or -a table, etc. - -Copyright: 2002--2010 Danie Els -Licence: LPPL - -FILES IN DISTRIBUTION -===================== - - BASE DISTRIBUTION: - - README This file. - refstyle.ins Package installation file. - refstyle.dtx Package source file. - refconfig.dtx Package configuration source file. - - refstyle.sty - refstyle.cfg Package style and config files. Was produced by - executing "latex refstyle.ins". - - DOCUMENTATION: - - refstyle.pdf User manual for refstyle package. It was - produced by executing: - - latex refstyle.ins - - pdflatex refstyle.dtx - pdflatex refstyle.dtx - makeindex -s gglo.ist -o refstyle.gls refstyle.glo - makeindex -s gind.ist -o refstyle.ind refstyle.idx - pdflatex refstyle.dtx - pdflatex refstyle.dtx - - refconfig.pdf Configuration manual for refstyle package. Produced - form refconfig.dtx in the same manner as above. - - -BASIC INSTALLATION -==================== - - The minimum requirement to use the package is the to have - refstyle.sty and refstyle.cfg in a directory where TeX can find it. - - For a basic installation on a TDS compliant system, move the following - files to the following directories: - - /tex/latex/refstyle/ - refstyle.sty - refstyle.cfg - - /source/latex/refstyle/ - refstyle.ins - refstyle.dtx - refconfig.dtx - - /doc/latex/refstyle/ - README - refstyle.pdf - refconfig.pdf + The refstyle package + For extended references + +File: README +Author: Danie Els + +DESCRIPTION +=========== + +The package provides a user interface to define sets of reference +and label commands for each referable object such as an equation or +a table, etc. + +Copyright: 2002--2024 Danie Els +Licence: LPPL + +FILES IN DISTRIBUTION +===================== + + BASE DISTRIBUTION: + + README This file. + refstyle.ins Package installation file. + refstyle.dtx Package source file. + refconfig.dtx Package configuration source file. + + refstyle.sty + refstyle.cfg Package style and config files. Was produced by + executing "latex refstyle.ins". + + DOCUMENTATION: + + refstyle.pdf User manual for refstyle package. It was + produced by executing: + + latex refstyle.ins + + pdflatex refstyle.dtx + pdflatex refstyle.dtx + makeindex -s gglo.ist -o refstyle.gls refstyle.glo + makeindex -s gind.ist -o refstyle.ind refstyle.idx + pdflatex refstyle.dtx + pdflatex refstyle.dtx + + refconfig.pdf Configuration manual for refstyle package. Produced + form refconfig.dtx in the same manner as above. + + +BASIC INSTALLATION +==================== + + The minimum requirement to use the package is the to have + refstyle.sty and refstyle.cfg in a directory where TeX can find it. + + For a basic installation on a TDS compliant system, move the following + files to the following directories: + + /tex/latex/refstyle/ + refstyle.sty + refstyle.cfg + + /source/latex/refstyle/ + refstyle.ins + refstyle.dtx + refconfig.dtx + + /doc/latex/refstyle/ + README + refstyle.pdf + refconfig.pdf diff --git a/macros/latex/contrib/refstyle/refconfig.dtx b/macros/latex/contrib/refstyle/refconfig.dtx index a603d8e135..22a675b8ac 100644 --- a/macros/latex/contrib/refstyle/refconfig.dtx +++ b/macros/latex/contrib/refstyle/refconfig.dtx @@ -1,1212 +1,1209 @@ -% \iffalse -% -% refconfig.dtx -% Copyright (C) 2002--2010 Danie Els -% -% ------------------------------------------------------------------- -% The refstyle package -% for the formatting of references -% ------------------------------------------------------------------- -% This work may be distributed and/or modified under the conditions -% of the LaTeX Project Public License, either version 1.3c of this -% license or (at your option) any later version. The latest version -% of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work is "maintained" (as per LPPL maintenance status) -% by Danie Els (dnjels@sun.ac.za). -% -% This package consists of the files: refstyle.dtx -% refconfig.dtx -% refstyle.ins -% and the derived files: refstyle.sty -% refstyle.cfg -% ------------------------------------------------------------------- -% -% -%<*driver> -\documentclass[a4paper]{ltxdoc} - \EnableCrossrefs - \CodelineIndex - \RecordChanges -\usepackage{color} -\usepackage{framed} - \setlength{\FrameSep}{1\fboxsep} - \definecolor{shadecolor}{gray}{0.9} - \newenvironment{RSframed}{\shaded}{\endshaded} -\usepackage{xspace} -\usepackage{varioref} -\usepackage{refstyle} - -%-- macrocode env changes ------------------------------ - -\setlength{\MacroIndent}{1.5em} - -%-- Indented environments ------------------------------ - -\newlength{\tdima} -\newsavebox{\tboxa} -\newlength{\mytab} -\setlength{\mytab}{2\parindent} - -\newenvironment{IndentPara}[1][1] - {\list{}{\setlength{\leftmargin}{#1\mytab}% - \setlength{\labelwidth}{0pt}% - \setlength{\labelsep}{0pt}% - \setlength{\itemindent}{\parindent}% - \setlength{\listparindent}{\parindent}% - }\item[]}% - {\endlist} -\newenvironment{Ipara}[1][\small]% - {\begin{IndentPara}\noindent#1\ignorespaces}% - {\end{IndentPara}} -\newenvironment{Itabb}[1][\small]% - {\begin{IndentPara}#1\ignorespaces\begin{tabbing}\ignorespaces}% - {\end{tabbing}\end{IndentPara}} - -%-- Additional documenting commands -------------------- - -\makeatletter -\def\meta@font@select{\normalfont\slshape} -\makeatother - -\newcommand*{\file}[1]{\texttt{#1}} -\newcommand*{\pkg}[1]{\textsf{#1}} -\newcommand*{\env}[1]{\texttt{#1}} -\newcommand*{\opt}[1]{\texttt{\slshape#1}} -\newcommand*{\RS}{\pkg{refstyle}\xspace} - -\newcommand*{\ArTab}{\>\quad$\rightarrow$\quad} - -%------------------------------------------------------- - -\setlength\hfuzz{15pt} -\hbadness=7000 -\begin{document} - \DocInput{refconfig.dtx} -\end{document} - -% -% \fi -% -% \CheckSum{1098} -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% \changes{v0.0}{2002/04/01}{Initial version} -% \changes{v0.2}{2003/07/30}{Updated version} -% \changes{v0.3}{2006/09/07}{Documentation update} -% \changes{v0.4}{2010/10/21}{Add \cmd{\RSlsttwotxt} for lists} -% \changes{v0.5}{2010/11/02}{Bug fixes} -% -% \DoNotIndex{ -% \",\@chapapp,\@ifpackageloaded,\AtBeginDocument, -% \begingroup,\def,\edef,\else,\endgroup, -% \fi,\ifx, \let, \newcommand,\newref, -% \providecommand,\ProvidesFile,\ref,\relax, -% \renewcommand,\RS@ifundefined,\RS@tmpa,\RS@tmpb, -% \S,\space,\ss,\string,\textup,\unrestored@protected@xdef} -% -%^^A-- Titling -------------------------------------------- -% \GetFileInfo{refstyle.cfg} -% \title{\vskip -2em -% Configuration file for \RS\ package\thanks{ -% This file has version number -% \fileversion, last revised -% \filedate.}} -% \author{Danie Els\\[1ex] -% \small Department of Mechanical and Mechatroncs Engineering\\ -% \small University of Stellenbosch, South Africa.\\ -% \normalsize e-mail: \texttt{dnjels@sun.ac.za}} -% \date{\filedate} -% \maketitle -% -% \tableofcontents -% \clearpage -% -% -% \section{The \RS\ configuration file} -% -% \subsubsection*{Reference templates} -% The default configuration file, \file{refstyle.cfg}, makes the -% following reference declarations: -% \begin{Ipara} -% |\newref{part}{...}| \quad$\rightarrow$ Parts\\ -% |\newref{chap}{...}| \quad$\rightarrow$ Chapters and Appendices\\ -% |\newref{sec}{...} | \quad$\rightarrow$ Sections\\ -% |\newref{eq}{...} | \quad$\rightarrow$ Equations\\ -% |\newref{fig}{...} | \quad$\rightarrow$ Figures\\ -% |\newref{tab}{...} | \quad$\rightarrow$ Tables\\ -% |\newref{fn}{...} | \quad$\rightarrow$ Footnotes -% \end{Ipara} -% If there is a need for more reference types, this standard -% list can be expanded. -% -% \subsubsection*{Language definitions} -% The \RS\ package also provides the following language definitions -% options for references, when loaded together with \pkg{babel}: -% \begin{itemize} -% \item afrikaans -% \item danish -% \item english, USenglish, american, canadian, UKenglish, british -% \item french -% \item german, ngerman, austrian, naustrian -% \item italian -% \item norwegian, nynorsk, norsk, bokmal\footnote{Norwegian Bokm{\aa}l -% is not defined in \pkg{babel} yet.} -% \item portuges, portuguese, brazilian, brazil -% \item swedish -% \end{itemize} -% -% \noindent See \secref[vref]{Thm} for an example of how to link your -% own definitions to an exsiting language setup. -% \StopEventually{\PrintChanges} -% \clearpage -% \section{Implementation} -% \begin{macrocode} -%<*cfg> -% \end{macrocode} -% \subsection{Identification} -% \begin{RSframed} -% \begin{macrocode} -\ProvidesFile{refstyle.cfg}[2010/11/02\space - 0.5\space - Configuration file for refstyle (DNJ Els)] -% \end{macrocode} -% \end{RSframed} -% -% \subsection{Language Definitions for \RS\ Package} -% -% \subsubsection{English} -% -% \begin{macro}{\RSenglish,\RSukenglish} -% Support provided by the author. -% \begin{RSframed} -% \begin{macrocode} -%%-- ENGLISH ------------------------------------ -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSukenglish{% - \def\RSrngtxt{\space to~}%........... Range: figures 5 to 6 - \def\RSlsttwotxt{\space and~}%....... List two: figures 5 and 6 - \def\RSlsttxt{, and~}%............... List more: figures 5, 6, and 7 - \def\RSparttxt{Part~}%............... Part lowercase singular - \def\RSpartstxt{Parts~}%............. lowercase plural - \def\RSParttxt{Part~}%............... uppercase singular (sentence start) - \def\RSPartstxt{Parts~}%............. uppercase plural (sentence start) - \def\RSappendixname{appendix~}%...... Appendix lowercase singular - \def\RSappendicesname{appendices~}%.. lowercase plural - \def\RSAppendixname{Appendix~}%...... uppercase singular (sentence start) - \def\RSAppendicesname{Appendices~}%.. uppercase plural (sentence start) - \def\RSchaptername{chapter~}%........ Chapter lowercase singular - \def\RSchaptersname{chapters~}%...... lowercase plural - \def\RSChaptername{Chapter~}%........ uppercase singular (sentence start) - \def\RSChaptersname{Chapters~}%...... uppercase plural (sentence start) - \def\RSsectxt{section~}%............. Section lowercase singular - \def\RSsecstxt{sections~}%........... lowercase plural - \def\RSSectxt{Section~}%............. uppercase singular (sentence start) - \def\RSSecstxt{Sections~}%........... uppercase plural (sentence start) - \def\RSeqtxt{equation~}%............. Equation lowercase singular - \def\RSeqstxt{equations~}%........... lowercase plural - \def\RSEqtxt{Equation~}%............. uppercase singular (sentence start) - \def\RSEqstxt{Equations~}%........... uppercase plural (sentence start) - \def\RSfigtxt{figure~}%.............. Figure lowercase singular - \def\RSfigstxt{figures~}%............ lowercase plural - \def\RSFigtxt{Figure~}%.............. uppercase singular (sentence start) - \def\RSFigstxt{Figures~}%............ uppercase plural (sentence start) - \def\RStabtxt{table~}%............... Table lowercase singular - \def\RStabstxt{tables~}%............. lowercase plural - \def\RSTabtxt{Table~}%............... uppercase singular (sentence start) - \def\RSTabstxt{Tables~}%............. uppercase plural (sentence start) - \def\RSfootntxt{footnote~}%.......... Footnote lowercase singular - \def\RSfootnstxt{footnotes~}%........ lowercase plural - \def\RSFootntxt{Footnote~}%.......... uppercase singular (sentence start) - \def\RSFootnstxt{Footnotes~}%........ uppercase plural (sentence start) -} -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSenglish{% - \def\RSrngtxt{\space to~}% - \def\RSlsttwotxt{\space and~}% - \def\RSlsttxt{\space and~}% - \def\RSparttxt{Part~}% - \def\RSpartstxt{Parts~}% - \def\RSParttxt{Part~}% - \def\RSPartstxt{Parts~}% - \def\RSappendixname{appendix~}% - \def\RSappendicesname{appendices~}% - \def\RSAppendixname{Appendix~}% - \def\RSAppendicesname{Appendices~}% - \def\RSchaptername{chapter~}% - \def\RSchaptersname{chapters~}% - \def\RSChaptername{Chapter~}% - \def\RSChaptersname{Chapters~}% - \def\RSsectxt{section~}% - \def\RSsecstxt{sections~}% - \def\RSSectxt{Section~}% - \def\RSSecstxt{Sections~}% - \def\RSeqtxt{equation~}% - \def\RSeqstxt{equations~}% - \def\RSEqtxt{Equation~}% - \def\RSEqstxt{Equations~}% - \def\RSfigtxt{figure~}% - \def\RSfigstxt{figures~}% - \def\RSFigtxt{Figure~}% - \def\RSFigstxt{Figures~}% - \def\RStabtxt{table~}% - \def\RStabstxt{tables~}% - \def\RSTabtxt{Table~}% - \def\RSTabstxt{Tables~}% - \def\RSfootntxt{footnote~}% - \def\RSfootnstxt{footnotes~}% - \def\RSFootntxt{Footnote~}% - \def\RSFootnstxt{Footnotes~}% -} -% \end{macrocode} -% \end{RSframed} -% \end{macro} -% -% \noindent Make English the default. -% \begin{RSframed} -% \begin{macrocode} -\RSenglish% Default -% \end{macrocode} -% \end{RSframed} -% -% \noindent Options -% \begin{RSframed} -% \begin{macrocode} -\DeclareLangOpt{english}{\RSenglish} -\DeclareLangOpt{USenglish}{\RSenglish} -\DeclareLangOpt{american}{\RSenglish} -\DeclareLangOpt{canadian}{\RSenglish} -\DeclareLangOpt{UKenglish}{\RSukenglish} -\DeclareLangOpt{british}{\RSukenglish} -% \end{macrocode} -% \end{RSframed} -% -% -% \subsubsection{Afrikaans} -% -% \begin{macro}{\RSafrikaans} -% Support provided by the author. -% \begin{RSframed} -% \begin{macrocode} -%%-- AFRIKAANS ---------------------------------- -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSafrikaans{% - \def\RSrngtxt{\space tot~}% - \def\RSlsttwotxt{\space en~}% - \def\RSlsttxt{\space en~}% - \def\RSparttxt{Deel~}% - \def\RSpartstxt{Dele~}% - \def\RSParttxt{Deel~}% - \def\RSPartstxt{Dele~}% - \def\RSappendixname{bylae~}% - \def\RSappendicesname{bylaes~}% - \def\RSAppendixname{Bylae~}% - \def\RSAppendicesname{Bylaes~}% - \def\RSchaptername{hoofstuk~}% - \def\RSchaptersname{hoofstukke~}% - \def\RSChaptername{Hoofstuk~}% - \def\RSChaptersname{Hoofstukke~}% - \def\RSsectxt{afdeling~}% - \def\RSsecstxt{afdelings~}% - \def\RSSectxt{Afdeling~}% - \def\RSSecstxt{Afdelings~}% - \def\RSeqtxt{vergelyking~}% - \def\RSeqstxt{vergelykings~}% - \def\RSEqtxt{Vergelyking~}% - \def\RSEqstxt{Vergelyking~}% - \def\RSfigtxt{figuur~}% - \def\RSfigstxt{figure~}% - \def\RSFigtxt{Figuur~}% - \def\RSFigstxt{Figure~}% - \def\RStabtxt{tabel~}% - \def\RStabstxt{tabelle~}% - \def\RSTabtxt{Tabel~}% - \def\RSTabstxt{Tabelle~}% - \def\RSfootntxt{footnota~}% - \def\RSfootnstxt{footnotas~}% - \def\RSFootntxt{Footnota~}% - \def\RSFootnstxt{Footnotas~}% -} -% \end{macrocode} -% \end{RSframed} -% \end{macro} -% -% \noindent Options -% \begin{RSframed} -% \begin{macrocode} -\DeclareLangOpt{afrikaans}{\RSafrikaans} -% \end{macrocode} -% \end{RSframed} -% -% -% \subsubsection{Danish} -% -% \begin{macro}{\RSdanish} -% \changes{v0.2}{2003/07/30}{Add Danish language support} -% Thomas Widmann: \texttt{<\,thomas.widmann AT harpercollins DOT co DOT uk>} -% provided the definitions for Danish. -% \begin{RSframed} -% \begin{macrocode} -%%-- DANISH ------------------------------------- -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSdanish{% - \def\RSrngtxt{\space til~}% - \def\RSlsttwotxt{\space og~}% - \def\RSlsttxt{\space og~}% - \def\RSparttxt{del~}% - \def\RSpartstxt{del~}% - \def\RSParttxt{Del~}% - \def\RSPartstxt{Del~}% - \def\RSappendixname{bilag~}% % 'appendiks' is also possible, - \def\RSappendicesname{bilag~}% % but 'bilag' is used in Babel - \def\RSAppendixname{Bilag~}% - \def\RSAppendicesname{Bilag~}% - \def\RSchaptername{kapitel~}% - \def\RSchaptersname{kapitel~}% - \def\RSChaptername{Kapitel~}% - \def\RSChaptersname{Kapitel~}% - \def\RSsectxt{afsnit~}% - \def\RSsecstxt{afsnit~}% - \def\RSSectxt{Afsnit~}% - \def\RSSecstxt{Afsnit~}% - \def\RSeqtxt{ligning~}% - \def\RSeqstxt{ligning~}% - \def\RSEqtxt{Ligning~}% - \def\RSEqstxt{Ligning~}% - \def\RSfigtxt{figur~}% - \def\RSfigstxt{figur~}% - \def\RSFigtxt{Figur~}% - \def\RSFigstxt{Figur~}% - \def\RStabtxt{tabel~}% - \def\RStabstxt{tablel~}% - \def\RSTabtxt{Tabel~}% - \def\RSTabstxt{Tabel~}% - \def\RSfootntxt{fodnote~}% - \def\RSfootnstxt{fodnote~}% - \def\RSFootntxt{Fodnote~}% - \def\RSFootnstxt{Fodnote~}% -} -% \end{macrocode} -% \end{RSframed} -% \end{macro} -% -% \noindent Options -% \begin{RSframed} -% \begin{macrocode} -\DeclareLangOpt{danish}{\RSdanish} -% \end{macrocode} -% \end{RSframed} -% -% -% \subsubsection{French} -% -% \begin{macro}{\RSfrench} -% \changes{v0.4}{2010/10/21}{Add French language support} -% Jean-Pierre Chr\'etien \texttt{<\,jeanpierre.chretien AT free DOT fr>} -% provided the definitions for French. -% \begin{RSframed} -% \begin{macrocode} -%%-- FRENCH ------------------------------------- -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSfrench{% - \def\RSrngtxt{\space \`{a}~}% - \def\RSlsttwotxt{\space et~}% - \def\RSlsttxt{\space et~}% - \def\RSparttxt{partie~}% - \def\RSpartstxt{parties~}% - \def\RSParttxt{La partie~}% - \def\RSPartstxt{Les parties~}% - \def\RSappendixname{appendice~}% - \def\RSappendicesname{appendices~}% - \def\RSAppendixname{L'appendice~}% - \def\RSAppendicesname{Les appendices~}% - \def\RSchaptername{chapitre~}% - \def\RSchaptersname{chapitres~}% - \def\RSChaptername{Le chapitre~}% - \def\RSChaptersname{Les chapitres~}% - \def\RSsectxt{section~}% - \def\RSsecstxt{sections~}% - \def\RSSectxt{La section~}% - \def\RSSecstxt{Les sections~}% - \def\RSeqtxt{\'{e}quation~}% - \def\RSeqstxt{\'{e}quations~}% - \def\RSEqtxt{L'\'{e}quation~}% - \def\RSEqstxt{Les \'{e}quations~}% - \def\RSfigtxt{figure~}% - \def\RSfigstxt{figures~}% - \def\RSFigtxt{La figure~}% - \def\RSFigstxt{Les figures~}% - \def\RStabtxt{tableau~}% - \def\RStabstxt{tableaux~}% - \def\RSTabtxt{Le tableau~}% - \def\RSTabstxt{Les tableaux~}% - \def\RSfootntxt{note~}% - \def\RSfootnstxt{notes~}% - \def\RSFootntxt{La note~}% - \def\RSFootnstxt{Les notes~}% -} -% \end{macrocode} -% \end{RSframed} -% \end{macro} -% -% \noindent Options -% \begin{RSframed} -% \begin{macrocode} -\DeclareLangOpt{french}{\RSfrench} -% \end{macrocode} -% \end{RSframed} -% -% -% -% \subsubsection{German} -% -% \begin{macro}{\RSgerman} -% \changes{v0.2}{2003/07/30}{Add German language support} -% Harald Harders: \texttt{<\,h.harders AT tu-bs DOT de>} -% provided the definitions for German. -% \begin{RSframed} -% \begin{macrocode} -%%-- GERMAN ------------------------------------- -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSgerman{% - \def\RSrngtxt{\space bis~}% - \def\RSlsttwotxt{\space und~}% - \def\RSlsttxt{\space und~}% - \def\RSparttxt{Teil~}% - \def\RSpartstxt{Teile~}% - \def\RSParttxt{Teil~}% - \def\RSPartstxt{Teile~}% - \def\RSappendixname{Anhang~}% - \def\RSappendicesname{Anh\"{a}nge~}% - \def\RSAppendixname{Anhang~}% - \def\RSAppendicesname{Anh\"{a}nge~}% - \def\RSchaptername{Kapitel~}% - \def\RSchaptersname{Kapitel~}% - \def\RSChaptername{Kapitel~}% - \def\RSChaptersname{Kapitel~}% - \def\RSsectxt{Abschnitt~}% - \def\RSsecstxt{Abschnitt~}% - \def\RSSectxt{Abschnitt~}% - \def\RSSecstxt{Abschnitt~}% - \def\RSeqtxt{Gleichung~}% - \def\RSeqstxt{Gleichungen~}% - \def\RSEqtxt{Gleichung~}% - \def\RSEqstxt{Gleichungen~}% - \def\RSfigtxt{Abbildung~}% - \def\RSfigstxt{Abbildung~}% - \def\RSFigtxt{Abbildung~}% - \def\RSFigstxt{Abbildung~}% - \def\RStabtxt{Tabelle~}% - \def\RStabstxt{Tabellen~}% - \def\RSTabtxt{Tabelle~}% - \def\RSTabstxt{Tabellen~}% - \def\RSfootntxt{Fu\ss note~}% - \def\RSfootnstxt{Fu\ss noten~}% - \def\RSFootntxt{Fu\ss note~}% - \def\RSFootnstxt{Fu\ss noten~}% -} -% \end{macrocode} -% \end{RSframed} -% \end{macro} -% -% \noindent Options -% \begin{RSframed} -% \begin{macrocode} -\DeclareLangOpt{german}{\RSgerman} -\DeclareLangOpt{ngerman}{\RSgerman} -\DeclareLangOpt{austrian}{\RSgerman} -\DeclareLangOpt{naustrian}{\RSgerman} -% \end{macrocode} -% \end{RSframed} -% -% -% \subsubsection{Italian} -% -% \begin{macro}{\RSitalian} -% \changes{v0.4}{2010/10/21}{Add Italian language support} -% Nicola Lunghi: \texttt{<\,nick83ola AT gmail DOT com>} -% provided the definitions for Italian. -% \begin{RSframed} -% \begin{macrocode} -%%-- ITALIAN ------------------------------------ -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSitalian{% - \def\RSrngtxt{--}% - \def\RSlsttwotxt{\space e~}% - \def\RSlsttxt{\space e~}% - \def\RSparttxt{Parte~}% - \def\RSpartstxt{Parti~}% - \def\RSParttxt{Parte~}% - \def\RSPartstxt{Parti~}% - \def\RSappendixname{l'appendice~}% - \def\RSappendicesname{le appendici~}% - \def\RSAppendixname{l'Appendice~}% - \def\RSAppendicesname{le Appendici~}% - \def\RSchaptername{il capitolo~}% - \def\RSchaptersname{i capitoli~}% - \def\RSChaptername{il Capitolo~}% - \def\RSChaptersname{i Capitoli~}% - \def\RSsectxt{la sezione~}% - \def\RSsecstxt{le sezioni~}% - \def\RSSectxt{la Sezione~}% - \def\RSSecstxt{la Sezioni~}% - \def\RSeqtxt{l'equazione~}% - \def\RSeqstxt{le equazioni~}% - \def\RSEqtxt{l'Equazione~}% - \def\RSEqstxt{le Equazioni~}% - \def\RSfigtxt{la figura~}% - \def\RSfigstxt{le figure~}% - \def\RSFigtxt{la Figura~}% - \def\RSFigstxt{le Figure~}% - \def\RStabtxt{la tabella~}% - \def\RStabstxt{le tabelle~}% - \def\RSTabtxt{la Tabella~}% - \def\RSTabstxt{le Tabelle~}% - \def\RSfootntxt{la nota~}% - \def\RSfootnstxt{le note~}% - \def\RSFootntxt{la Nota~}% - \def\RSFootnstxt{le Note~}% -} -% \end{macrocode} -% \end{RSframed} -% \end{macro} -% -% \noindent Options -% \begin{RSframed} -% \begin{macrocode} -\DeclareLangOpt{italian}{\RSitalian} -% \end{macrocode} -% \end{RSframed} -% -% -% -% \subsubsection{Norwegian} -% -% \begin{macro}{\RSnorwegian} -% \changes{v0.3}{2006/09/07}{Add Norwegian language support} -% Karl Ove Hufthammer: \texttt{<\,karloh AT mi DOT uib DOT no>} -% provided the definitions for Norwegian. -% -% Norway has two official languages Norwegian Nynorsk and -% Norwegian Bokm{\aa}l (commonly 'nynorsk' and 'norsk' in LaTeX), -% but the \pkg{refstyle} definitions are identically in both variants. -% \begin{RSframed} -% \begin{macrocode} -%%-- NORWEGIAN ------------------------------------- -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSnorwegian{% - \def\RSrngtxt{\space til~}% - \def\RSlsttwotxt{\space og~}% - \def\RSlsttxt{\space og~}% - \def\RSparttxt{del~}% - \def\RSpartstxt{del~}% - \def\RSParttxt{Del~}% - \def\RSPartstxt{Del~}% - \def\RSappendixname{tillegg~}% - \def\RSappendicesname{tillegg~}% - \def\RSAppendixname{Tillegg~}% - \def\RSAppendicesname{Tillegg~}% - \def\RSchaptername{kapittel~}% - \def\RSchaptersname{kapittel~}% - \def\RSChaptername{Kapittel~}% - \def\RSChaptersname{Kapittel~}% - \def\RSsectxt{avsnitt~}% - \def\RSsecstxt{avsnitt~}% - \def\RSSectxt{Avsnitt~}% - \def\RSSecstxt{Avsnitt~}% - \def\RSeqtxt{formel~}% - \def\RSeqstxt{formel~}% - \def\RSEqtxt{Formel~}% - \def\RSEqstxt{Formel~}% - \def\RSfigtxt{figur~}% - \def\RSfigstxt{figur~}% - \def\RSFigtxt{Figur~}% - \def\RSFigstxt{Figur~}% - \def\RStabtxt{tabell~}% - \def\RStabstxt{tabell~}% - \def\RSTabtxt{Tabell~}% - \def\RSTabstxt{Tabell~}% - \def\RSfootntxt{fotnote~}% - \def\RSfootnstxt{fotnote~}% - \def\RSFootntxt{Fotnote~}% - \def\RSFootnstxt{Fotnote~}% -} -% \end{macrocode} -% \end{RSframed} -% \end{macro} -% -% \noindent Options -% \begin{RSframed} -% \begin{macrocode} -\DeclareLangOpt{norwegian}{\RSnorwegian} -\DeclareLangOpt{nynorsk}{\RSnorwegian} -\DeclareLangOpt{bokmal}{\RSnorwegian}% Not in babel yet -\DeclareLangOpt{norsk}{\RSnorwegian} -% \end{macrocode} -% \end{RSframed} -% -% -% \subsubsection{Portuguese/Brazilian} -% -% \begin{macro}{\RSportuguese,\RSbrazilian} -% \changes{v0.4}{2010/10/21}{Add Portuguese language support} -% Bernhard Enders and Flavio Costa \texttt{<\,flaviocosta AT yahoo DOT com DOT br>} -% provided the definitions for Portuguese. -% \begin{RSframed} -% \begin{macrocode} -%%-- PORTUGUESE ----------------------------------- -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSportuguese{% - \def\RSrngtxt{\space a~}% - \def\RSlsttwotxt{\space e~}% - \def\RSlsttxt{\space e~}% - \def\RSparttxt{Parte~}% - \def\RSpartstxt{Partes~}% - \def\RSParttxt{Parte~}% - \def\RSPartstxt{Partes~}% - \def\RSappendixname{ap\^{e}ndice~}% - \def\RSappendicesname{ap\^{e}ndices~}% - \def\RSAppendixname{Ap\^{e}ndice~}% - \def\RSAppendicesname{Ap\^{e}ndices~}% - \def\RSchaptername{cap\'{i}tulo~}% - \def\RSchaptersname{cap\'{i}tulos~}% - \def\RSChaptername{Cap\'{i}tulo~}% - \def\RSChaptersname{Cap\'{i}tulos~}% - \def\RSsectxt{se\c{c}\~{a}o~}% - \def\RSsecstxt{se\c{c}\~{o}es~}% - \def\RSSectxt{Se\c{c}\~{a}o~}% - \def\RSSecstxt{Se\c{c}\~{o}es~}% - \def\RSeqtxt{equa\c{c}\~{a}o~}% - \def\RSeqstxt{equa\c{c}\~{o}es~}% - \def\RSEqtxt{Equa\c{c}\~{a}o~}% - \def\RSEqstxt{Equa\c{c}\~{o}es~}% - \def\RSfigtxt{figura~}% - \def\RSfigstxt{figuras~}% - \def\RSFigtxt{Figura~}% - \def\RSFigstxt{Figuras~}% - \def\RStabtxt{tabela~}% - \def\RStabstxt{tabelas~}% - \def\RSTabtxt{Tabela~}% - \def\RSTabstxt{Tabelas~}% - \def\RSfootntxt{nota de rodap\'{e}~}% - \def\RSfootnstxt{notas de rodap\'{e}~}% - \def\RSFootntxt{Nota de rodap\'{e}~}% - \def\RSFootnstxt{Notas de rodap\'{e}~}% -} -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSbrazilian{% - \def\RSrngtxt{\space a~}% - \def\RSlsttwotxt{\space e~}% - \def\RSlsttxt{\space e~}% - \def\RSparttxt{Parte~}% - \def\RSpartstxt{Partes~}% - \def\RSParttxt{Parte~}% - \def\RSPartstxt{Partes~}% - \def\RSappendixname{ap\^{e}ndice~}% - \def\RSappendicesname{ap\^{e}ndices~}% - \def\RSAppendixname{Ap\^{e}ndice~}% - \def\RSAppendicesname{Ap\^{e}ndices~}% - \def\RSchaptername{cap\'{i}tulo~}% - \def\RSchaptersname{cap\'{i}tulos~}% - \def\RSChaptername{Cap\'{i}tulo~}% - \def\RSChaptersname{Cap\'{i}tulos~}% - \def\RSsectxt{sec\c{c}\~{a}o~}%<--------------- - \def\RSsecstxt{sec\c{c}\~{o}es~}%<------------- - \def\RSSectxt{Sec\c{c}\~{a}o~}%<--------------- - \def\RSSecstxt{Sec\c{c}\~{o}es~}%<------------- - \def\RSeqtxt{equa\c{c}\~{a}o~}% - \def\RSeqstxt{equa\c{c}\~{o}es~}% - \def\RSEqtxt{Equa\c{c}\~{a}o~}% - \def\RSEqstxt{Equa\c{c}\~{o}es~}% - \def\RSfigtxt{figura~}% - \def\RSfigstxt{figuras~}% - \def\RSFigtxt{Figura~}% - \def\RSFigstxt{Figuras~}% - \def\RStabtxt{tabela~}% - \def\RStabstxt{tabelas~}% - \def\RSTabtxt{Tabela~}% - \def\RSTabstxt{Tabelas~}% - \def\RSfootntxt{nota de rodap\'{e}~}% - \def\RSfootnstxt{notas de rodap\'{e}~}% - \def\RSFootntxt{Nota de rodap\'{e}~}% - \def\RSFootnstxt{Notas de rodap\'{e}~}% -} -% \end{macrocode} -% \end{RSframed} -% \end{macro} -% -% \noindent Options -% \begin{RSframed} -% \begin{macrocode} -\DeclareLangOpt{portuges}{\RSportuguese} -\DeclareLangOpt{portuguese}{\RSportuguese} -\DeclareLangOpt{brazilian}{\RSbrazilian} -\DeclareLangOpt{brazil}{\RSbrazilian} -% \end{macrocode} -% \end{RSframed} -% -% -% -% \subsubsection{Swedish} -% -% \begin{macro}{\RSswedish} -% \changes{v0.2}{2003/07/30}{Add Swedish language support} -% Bj\"{o}rn Thors \texttt{<\,bjorn.thors AT alfvenlab DOT kth DOT se>} -% provided the definitions for Swedish. -% \begin{RSframed} -% \begin{macrocode} -%%-- SWEDISH ------------------------------------ -% \end{macrocode} -% \begin{macrocode} -\newcommand\RSswedish{% - \def\RSrngtxt{\space till~}% - \def\RSlsttwotxt{\space och~}% - \def\RSlsttxt{\space och~}% - \def\RSparttxt{del~}% - \def\RSpartstxt{del~}% - \def\RSParttxt{Del~}% - \def\RSPartstxt{Del~}% - \def\RSappendixname{appendix~}% - \def\RSappendicesname{appendix~}% - \def\RSAppendixname{Appendix~}% - \def\RSAppendicesname{Appendix~}% - \def\RSchaptername{kapitel~}% - \def\RSchaptersname{kapitel~}% - \def\RSChaptername{Kapitel~}% - \def\RSChaptersname{Kapitel~}% - \def\RSsectxt{sektion~}% - \def\RSsecstxt{sektion~}% - \def\RSSectxt{Sektion~}% - \def\RSSecstxt{Sektion~}% - \def\RSeqtxt{ekvation~}% - \def\RSeqstxt{ekvation~}% - \def\RSEqtxt{Ekvation~}% - \def\RSEqstxt{Ekvation~}% - \def\RSfigtxt{figur~}% - \def\RSfigstxt{figur~}% - \def\RSFigtxt{Figur~}% - \def\RSFigstxt{Figur~}% - \def\RStabtxt{tabell~}% - \def\RStabstxt{tabell~}% - \def\RSTabtxt{Tabell~}% - \def\RSTabstxt{Tabell~}% - \def\RSfootntxt{fotnot~}% - \def\RSfootnstxt{fotnot~}% - \def\RSFootntxt{Fotnot~}% - \def\RSFootnstxt{Fotnot~}% -} -% \end{macrocode} -% \end{RSframed} -% \end{macro} -% \noindent Options -% \begin{RSframed} -% \begin{macrocode} -\DeclareLangOpt{swedish}{\RSswedish} -% \end{macrocode} -% \end{RSframed} -% -% -% -% -% \subsection{Templates for the \RS Package} -% -% The user can also define his or her own templates and put it -% in a separate configuration file to ensure uniformity -% of reference formats in your documents. -% -% \subsubsection{Parts} -% -% References to parts are usually straight forward, except that the -% document division ``Part'' must be distinguished from the normal -% usage of the word ``part'' in a sentence. A personal preference -% is to use small caps. -% -% \begin{RSframed} -% \begin{macrocode} -%%-- TEMPLATE FOR PARTS ------------------------- -% \end{macrocode} -% \begin{macrocode} - \newref{part}{% - name = \RSparttxt, - names = \RSpartstxt, - Name = \RSPparttxt, - Names = \RSPartstxt, - rngtxt = \RSrngtxt, - lsttxt = \RSlsttxt} -% \end{macrocode} -% \end{RSframed} -% -% -% -% \subsubsection{Chapters and Appendices} -% -% A major problem with a reference to a chapter is that at the time -% when the reference label, |\label|\marg{chap-label}, is created, -% it is unknown whether it would eventually ends up in the main -% matter or the appendix part of a book or report. -% -% A simple solution is to use the prefix to the \meta{chapter} -% counter, |\p@chapter|, to write the definition of |\@chapapp| to -% the auxiliary file (|.aux|) together with information of the -% label. The command |\@chapapp| expands to either |\chaptername| or -% |\appendixname| depending on whether the reference label is -% defined in the main matter or after the |\appendix| was called. -% (Note that |\@chapapp| is not defined in the AMS book class.) -% -% \begin{Ipara} -% |\renewcommand*{\p@chapter}{\string\chname{\@chapapp}}|\\ -% |\newcommand*{\chname}[1]{}%<-make it harmless |\\ -% |\newcommand*{\chapref}[1]{{\renewcommand*{\chname}[1]{##1~}\ref{#1}}}| -% \end{Ipara} -% -% \noindent The reference to a chapter, |\chapref|\marg{chap-label}, -% will then be prefixed with |\chaptername| or |\appendixname| and -% it does not matter where it was defined or where it was called. -% -% To utilize the full functionality of the \RS package for -% references to chapters and appendices, a complex form of -% \cmd{\newref} needs to be implemented. -% The following is a template for a book or report classes. -% -% -% \begin{RSframed} -% \begin{macrocode} -%%-- TEMPLATE FOR CHAPTERS & APPENDIXES --------- -% \end{macrocode} -% Prevent crashes for non-book type classes. -% \begin{macrocode} -\providecommand*{\p@chapter}{} -% \end{macrocode} -% Add \cmd{\@chapapp} to \cmd{\p@chapter} for writeout to auxiliary file. -% If an AMS book class is loaded, then \cmd{\chaptername} must -% be used. -% \begin{macrocode} -\AtBeginDocument{% - \RS@ifundefined{chapter}{}{% - \RS@ifundefined{@chapapp}% - {\renewcommand*{\p@chapter}{\string\chpname{\chaptername}}}%AMS - {\renewcommand*{\p@chapter}{\string\chpname{\@chapapp}}}% Normal - }% - } -% \end{macrocode} -% Define \cmd{\chpname} to gobble its contents outside the -% reference commands. -% \begin{macrocode} -\newcommand*{\chpname}[1]{} -% \end{macrocode} -% Define the \cmd{\RSchpname} to typeset all the different -% perturbations of chapter and appendix names. -% Use the conditionals to switch between the -% different options. -% -% \begin{macrocode} -\newcommand*{\RS@chpname}[1]{% - \ifRSnameon - \edef\RS@tmpa{#1}% - \edef\RS@tmpb{\appendixname}% - \ifx\RS@tmpa\RS@tmpb\relax% - \ifRSplural - \ifRScapname \RSAppendicesname \else \RSappendicesname \fi - \else - \ifRScapname \RSAppendixname \else \RSappendixname \fi - \fi - \else - \ifRSplural - \ifRScapname \RSChaptersname \else \RSchaptersname \fi - \else - \ifRScapname \RSChaptername \else \RSchaptername \fi - \fi - \fi - \fi} -% \end{macrocode} -% Define the \cmd{\newref} for chapters. -% \begin{macrocode} - \newref{chap}{% - refcmd = {{\let\chpname=\RS@chpname\ref{#1}}}, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -% \end{macrocode} -% \end{RSframed} -% -% -% \subsubsection{Sections and paragraphs}\seclabel{secTempl} -% -% A template for references to sections is given below. References -% to paragraphs are similar and is left as an exercise to the users. -% -% \begin{RSframed} -% \begin{macrocode} -%%-- TEMPLATE FOR SECTIONS ---------------------- -% \end{macrocode} -% \begin{macrocode} - \newref{sec}{% - name = \RSsectxt, - names = \RSsecstxt, - Name = \RSSectxt, - Names = \RSSecstxt, - refcmd = {\S\ref{#1}}, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -% \end{macrocode} -% \end{RSframed} -% -% \subsubsection{Equations}\seclabel{EqTempl} -% -% The equation number in references to equations are traditionally -% written in an upright text, irrespective of the surrounding text. -% -% \begin{RSframed} -% \begin{macrocode} -%%-- TEMPLATE FOR EQUATIONS --------------------- -% \end{macrocode} -% The standard equation ref format if \pkg{amsmath.sty} is not loaded. -% \begin{macrocode} -\newcommand*{\RSeqrefform}[1]{\textup{(\ref{#1})}} -% \end{macrocode} -% If \pkg{amsmath.sty} is loaded, store \cmd{\eqref} -% and then undefine it before the template is created. -% \begin{macrocode} -\@ifpackageloaded{amsmath}% - {\let\AMSeqref\eqref - \let\eqref\relax}% - {} -% \end{macrocode} -% \begin{macrocode} -\newref{eq}{% - name = \RSeqtxt, - names = \RSeqstxt, - Name = \RSEqtxt, - Names = \RSEqstxt, - refcmd = \RSeqrefform{#1}, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -% \end{macrocode} -% Make way for \pkg{amsmath.sty} definitions -% \begin{macrocode} -\let\RSeqref\eqref -\let\eqref\relax -% \end{macrocode} -% Some footwork to bring the AMS definition of -% \cmd{\eqref} back if \pkg{amsmath.sty} is loaded -% afterwards. -% \begin{macrocode} -\AtBeginDocument{% - \@ifpackageloaded{amsmath}% - {\RS@ifundefined{AMSeqref}{\let\AMSeqref\eqref}{}% - \let\RSeqrefform\AMSeqref}% - {}% - \let\eqref=\RSeqref - } -% \end{macrocode} -% \end{RSframed} -% -% -% \subsubsection{Figures and Tables}\seclabel{tabtemp} -% References to figures and tables are usually -% straight forward. -% \begin{RSframed} -% \begin{macrocode} -%%-- TEMPLATE FOR FIGURES ----------------------- -% \end{macrocode} -% \begin{macrocode} - \newref{fig}{% - name = \RSfigtxt, - names = \RSfigstxt, - Name = \RSFigtxt, - Names = \RSFigstxt, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -% \end{macrocode} -% \end{RSframed} -% -% \begin{RSframed} -% \begin{macrocode} -%%-- TEMPLATE FOR TABLES ------------------------ -% \end{macrocode} -% \begin{macrocode} - \newref{tab}{% - name = \RStabtxt, - names = \RStabstxt, - Name = \RSTabtxt, - Names = \RSTabstxt, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -% \end{macrocode} -% \end{RSframed} -% -% \pagebreak[2] -% \subsubsection{Footnotes}\seclabel{fnTempl} -% -% A reference to a footnote differs from other references in that -% it is only defined inside the footnote definition itself: -% \begin{Ipara} -% |\footnote{This is a footnote with ... \label{fn:xx}}| -% \end{Ipara} -% It can then be referred to with |\ref{fn:xx}|. -% -% A useful application of the \RS package is for references to -% footnotes, were you need a duplicate footnote mark that refers to -% a previously defined footnote.\footnote{^^A -% This is a footnote with \cmd{\fnlabel}\texttt{\{xx\}} ...\fnlabel{xx}} -% You can use the stared form of the reference -% command to format the reference as a footnote mark, while the -% reference commands without a star behave as normal. -% \begin{Itabb} -% \hspace*{2cm}\=\kill -% |\fnref*{xx}| \ArTab \fnref*{xx}\\ -% |\fnref{xx}| \ArTab \fnref{xx}\\ -% \end{Itabb} -% -% \begin{RSframed} -% \begin{macrocode} -%%-- TEMPLATE FOR FOOTNOTES --------------------- -% \end{macrocode} -% Define the \cmd{\RSfnmark} to reproduce the footnote mark. -% Use the |\ifRSstar| conditional to switch between a superscripted -% and a normal reference. -% \begin{macrocode} - \newcommand{\RSfnmark}[1]{% - \begingroup - \unrestored@protected@xdef\@thefnmark{\ref{#1}}% - \endgroup - \@footnotemark} -% \end{macrocode} -% \begin{macrocode} - \newref{fn}{% - name = \RSfootntxt, - names = \RSfootnstxt, - Name = \RSFootntxt, - Names = \RSFootnstxt, - refcmd = {\ifRSstar\RSfnmark{#1}\else(\ref{#1})\fi}, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -% \end{macrocode} -% \end{RSframed} -% -% \subsubsection{Enumerated lists} -% -% A reference to an item in an enumerated list can be obtained -% by placing the labelling command after the \cmd{\item} command -% inside the list. The second level numbering of the \cmd{\ref} -% label in the standard \LaTeX{} is: 2a, 2b, etc. -% -% If you want to change the reference labels to 2(a), 2(b), -% etc., without effecting the display in the \env{enumerate} -% environment, you can make the following redefinition: -% \begin{Ipara} -% |\makeatletter|\\ -% |\renewcommand{\p@enumii}{\expandafter\p@@enumii}|\\ -% |\newcommand{\p@@enumii}[1]{\theenumi(#1)}|\\ -% |\makeatother| -% \end{Ipara} -% The contents of the \cmd{\@currentlable} is then -% \begin{Ipara} -% |{\expandafter\p@@enumii\theenumii}| ~$\rightarrow$~ -% |{\theenumi(\theenumii)}| -% \end{Ipara} -% -% Writing a template for enumerated lists is left to the user. -% -% -% \subsubsection{Theorems, lemmas, etc.}\seclabel{Thm} -% -% There exists many perturbations to the theorem environment such -% as, Theorem, Lemma, Exercise, etc., and it is left to the user as -% an exercise to construct his or her own templates. -% -% As an example to add reference for theorems to an exiting setup: -% -% \begin{Ipara} -% |\usepackage{refstyle} |\\ -% |\newref{thm}{ |\\ -% | name = {theorem~}, |\\ -% | names = {theorems~},|\\ -% | Name = {Theorem~}, |\\ -% | Names = {Theorems~},|\\ -% | rngtxt = \RSrngtxt,|\\ -% | lsttwotxt = \RSlsttxt,|\\ -% | lsttxt = \RSlsttxt}| -% \end{Ipara} -% -% If you want to add it to a specific language setup with \pkg{babel} then -% you can do the following, for example for a dual language document with -% English and Norwegian: -% \begin{Ipara} -% |\documentclass[english, norwegian]{article}% NB: Languages as global opts! |\\ -% |\usepackage{babel} %Use global languages |\\ -% |\usepackage{varioref} %Use global languages |\\ -% |\usepackage{refstyle} %Use global languages |\\ -% |\RSaddto{\RSnorwegian}{% |\\ -% | \def\RSthmtxt{teorem~}% |\\ -% | \def\RSthmstxt{teorem~}% |\\ -% | \def\RSThmtxt{Teorem~}% |\\ -% | \def\RSThmstxt{Teorem~}} |\\ -% |\RSaddto{\RSenglish}{% |\\ -% | \def\RSthmtxt{theorem~}% |\\ -% | \def\RSthmstxt{theorems~}% |\\ -% | \def\RSThmtxt{Theorem~}% |\\ -% | \def\RSThmstxt{Theorems~}} |\\ -% |\newref{thm}{ |\\ -% | name = \RSthmtxt, |\\ -% | names = \RSthmstxt, |\\ -% | Name = \RSThmtxt, |\\ -% | Names = \RSThmstxt, |\\ -% | rngtxt = \RSrngtxt, |\\ -% | lsttwotxt = \RSlsttxt, |\\ -% | lsttxt = \RSlsttwotxt} | -% \end{Ipara} -% -% \noindent All \pkg{babel} language changes will then activate -% the proper code setup. In this example the \pkg{refstyle} -% mechanism is used where the code is appended to the |\RSenglish| -% and |\RSnorwegian| container functions. These functions are added -% by the package -% to the \pkg{babel} containers |\extrasenglish| and |\extrasnorwegian|, -% that is called every time a language change occurs. -% Please see the contents of \pkg{refstyle.cfg} for the names of the -% \pkg{refstyle} containers associated with the different languages. -% -% Note that the extended definitions -% can also be added directly to the \pkg{babel} containers without using -% \pkg{refstyle}'s mechanism. -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \Finale -\endinput +% \iffalse +% +% refconfig.dtx +% Copyright (C) 2002--2024 Danie Els +% +% ------------------------------------------------------------------- +% The refstyle package +% for the formatting of references +% ------------------------------------------------------------------- +% This work may be distributed and/or modified under the conditions +% of the LaTeX Project Public License, either version 1.3c of this +% license or (at your option) any later version. The latest version +% of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008/12/01 or later. +% +% This work has the LPPL maintenance status 'maintained'. +% +% This Current Maintainer of this work is Danie Els (dnjels@gmail.com) +% +% This package consists of the files: refstyle.dtx +% refconfig.dtx +% refstyle.ins +% and the derived files: refstyle.sty +% refstyle.cfg +% ------------------------------------------------------------------- +% +%<*driver> +\documentclass[a4paper]{ltxdoc} + \EnableCrossrefs + \CodelineIndex + \RecordChanges +\usepackage{color} +\usepackage{framed} + \setlength{\FrameSep}{1\fboxsep} + \definecolor{shadecolor}{gray}{0.9} + \newenvironment{RSframed}{\shaded}{\endshaded} +\usepackage{xspace} +\usepackage{varioref} +\usepackage{refstyle} + +%-- macrocode env changes ------------------------------ + +\setlength{\MacroIndent}{1.5em} + +%-- Indented environments ------------------------------ + +\newlength{\tdima} +\newsavebox{\tboxa} +\newlength{\mytab} +\setlength{\mytab}{2\parindent} + +\newenvironment{IndentPara}[1][1] + {\list{}{\setlength{\leftmargin}{#1\mytab}% + \setlength{\labelwidth}{0pt}% + \setlength{\labelsep}{0pt}% + \setlength{\itemindent}{\parindent}% + \setlength{\listparindent}{\parindent}% + }\item[]}% + {\endlist} +\newenvironment{Ipara}[1][\small]% + {\begin{IndentPara}\noindent#1\ignorespaces}% + {\end{IndentPara}} +\newenvironment{Itabb}[1][\small]% + {\begin{IndentPara}#1\ignorespaces\begin{tabbing}\ignorespaces}% + {\end{tabbing}\end{IndentPara}} + +%-- Additional documenting commands -------------------- + +\makeatletter +\def\meta@font@select{\normalfont\slshape} +\makeatother + +\newcommand*{\file}[1]{\texttt{#1}} +\newcommand*{\pkg}[1]{\textsf{#1}} +\newcommand*{\env}[1]{\texttt{#1}} +\newcommand*{\opt}[1]{\texttt{\slshape#1}} +\newcommand*{\RS}{\pkg{refstyle}\xspace} + +\newcommand*{\ArTab}{\>\quad$\rightarrow$\quad} + +%------------------------------------------------------- + +\setlength\hfuzz{15pt} +\hbadness=7000 +\begin{document} + \DocInput{refconfig.dtx} +\end{document} + +% +% \fi +% +% \CheckSum{1092} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \changes{v0.0}{2002/04/01}{Initial version} +% \changes{v0.2}{2003/07/30}{Updated version} +% \changes{v0.3}{2006/09/07}{Documentation update} +% \changes{v0.4}{2010/10/21}{Add \cmd{\RSlsttwotxt} for lists} +% \changes{v0.5}{2010/11/02}{Bug fixes} +% \changes{v0.6}{2024/01/31}{robustification of AMS' \cmd{\eqref}} +% +% \DoNotIndex{ +% \",\@chapapp,\@ifpackageloaded,\AtBeginDocument, +% \begingroup,\def,\edef,\else,\endgroup, +% \fi,\ifx, \let, \newcommand,\newref, +% \providecommand,\ProvidesFile,\ref,\relax, +% \renewcommand,\RS@ifundefined,\RS@tmpa,\RS@tmpb, +% \S,\space,\ss,\string,\textup,\unrestored@protected@xdef} +% +%^^A-- Titling -------------------------------------------- +% \GetFileInfo{refstyle.cfg} +% \title{\vskip -2em +% Configuration file for \RS\ package\thanks{ +% This file has version number +% \fileversion, last revised +% \filedate.}} +% \author{Danie Els\\[1ex] +% \normalsize e-mail: \texttt{dnjels@gmail}} +% \date{\filedate} +% \maketitle +% +% \tableofcontents +% \clearpage +% +% +% \section{The \RS\ configuration file} +% +% \subsubsection*{Reference templates} +% The default configuration file, \file{refstyle.cfg}, makes the +% following reference declarations: +% \begin{Ipara} +% |\newref{part}{...}| \quad$\rightarrow$ Parts\\ +% |\newref{chap}{...}| \quad$\rightarrow$ Chapters and Appendices\\ +% |\newref{sec}{...} | \quad$\rightarrow$ Sections\\ +% |\newref{eq}{...} | \quad$\rightarrow$ Equations\\ +% |\newref{fig}{...} | \quad$\rightarrow$ Figures\\ +% |\newref{tab}{...} | \quad$\rightarrow$ Tables\\ +% |\newref{fn}{...} | \quad$\rightarrow$ Footnotes +% \end{Ipara} +% If there is a need for more reference types, this standard +% list can be expanded. +% +% \subsubsection*{Language definitions} +% The \RS\ package also provides the following language definitions +% options for references, when loaded together with \pkg{babel}: +% \begin{itemize} +% \item afrikaans +% \item danish +% \item english, USenglish, american, canadian, UKenglish, british +% \item french +% \item german, ngerman, austrian, naustrian +% \item italian +% \item norwegian, nynorsk, norsk, bokmal\footnote{Norwegian Bokm{\aa}l +% is not defined in \pkg{babel} yet.} +% \item portuges, portuguese, brazilian, brazil +% \item swedish +% \end{itemize} +% +% \noindent See \secref[vref]{Thm} for an example of how to link your +% own definitions to an exsiting language setup. +% \StopEventually{\PrintChanges} +% \clearpage +% \section{Implementation} +% \begin{macrocode} +%<*cfg> +% \end{macrocode} +% \subsection{Identification} +% \begin{RSframed} +% \begin{macrocode} +\ProvidesFile{refstyle.cfg}[2024/01/31\space + v0.6\space + Configuration file for refstyle (DNJ Els)] +% \end{macrocode} +% \end{RSframed} +% +% \subsection{Language Definitions for \RS\ Package} +% +% \subsubsection{English} +% +% \begin{macro}{\RSenglish,\RSukenglish} +% Support provided by the author. +% \begin{RSframed} +% \begin{macrocode} +%%-- ENGLISH ------------------------------------ +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSukenglish{% + \def\RSrngtxt{\space to~}%........... Range: figures 5 to 6 + \def\RSlsttwotxt{\space and~}%....... List two: figures 5 and 6 + \def\RSlsttxt{, and~}%............... List more: figures 5, 6, and 7 + \def\RSparttxt{Part~}%............... Part lowercase singular + \def\RSpartstxt{Parts~}%............. lowercase plural + \def\RSParttxt{Part~}%............... uppercase singular (sentence start) + \def\RSPartstxt{Parts~}%............. uppercase plural (sentence start) + \def\RSappendixname{appendix~}%...... Appendix lowercase singular + \def\RSappendicesname{appendices~}%.. lowercase plural + \def\RSAppendixname{Appendix~}%...... uppercase singular (sentence start) + \def\RSAppendicesname{Appendices~}%.. uppercase plural (sentence start) + \def\RSchaptername{chapter~}%........ Chapter lowercase singular + \def\RSchaptersname{chapters~}%...... lowercase plural + \def\RSChaptername{Chapter~}%........ uppercase singular (sentence start) + \def\RSChaptersname{Chapters~}%...... uppercase plural (sentence start) + \def\RSsectxt{section~}%............. Section lowercase singular + \def\RSsecstxt{sections~}%........... lowercase plural + \def\RSSectxt{Section~}%............. uppercase singular (sentence start) + \def\RSSecstxt{Sections~}%........... uppercase plural (sentence start) + \def\RSeqtxt{equation~}%............. Equation lowercase singular + \def\RSeqstxt{equations~}%........... lowercase plural + \def\RSEqtxt{Equation~}%............. uppercase singular (sentence start) + \def\RSEqstxt{Equations~}%........... uppercase plural (sentence start) + \def\RSfigtxt{figure~}%.............. Figure lowercase singular + \def\RSfigstxt{figures~}%............ lowercase plural + \def\RSFigtxt{Figure~}%.............. uppercase singular (sentence start) + \def\RSFigstxt{Figures~}%............ uppercase plural (sentence start) + \def\RStabtxt{table~}%............... Table lowercase singular + \def\RStabstxt{tables~}%............. lowercase plural + \def\RSTabtxt{Table~}%............... uppercase singular (sentence start) + \def\RSTabstxt{Tables~}%............. uppercase plural (sentence start) + \def\RSfootntxt{footnote~}%.......... Footnote lowercase singular + \def\RSfootnstxt{footnotes~}%........ lowercase plural + \def\RSFootntxt{Footnote~}%.......... uppercase singular (sentence start) + \def\RSFootnstxt{Footnotes~}%........ uppercase plural (sentence start) +} +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSenglish{% + \def\RSrngtxt{\space to~}% + \def\RSlsttwotxt{\space and~}% + \def\RSlsttxt{\space and~}% + \def\RSparttxt{Part~}% + \def\RSpartstxt{Parts~}% + \def\RSParttxt{Part~}% + \def\RSPartstxt{Parts~}% + \def\RSappendixname{appendix~}% + \def\RSappendicesname{appendices~}% + \def\RSAppendixname{Appendix~}% + \def\RSAppendicesname{Appendices~}% + \def\RSchaptername{chapter~}% + \def\RSchaptersname{chapters~}% + \def\RSChaptername{Chapter~}% + \def\RSChaptersname{Chapters~}% + \def\RSsectxt{section~}% + \def\RSsecstxt{sections~}% + \def\RSSectxt{Section~}% + \def\RSSecstxt{Sections~}% + \def\RSeqtxt{equation~}% + \def\RSeqstxt{equations~}% + \def\RSEqtxt{Equation~}% + \def\RSEqstxt{Equations~}% + \def\RSfigtxt{figure~}% + \def\RSfigstxt{figures~}% + \def\RSFigtxt{Figure~}% + \def\RSFigstxt{Figures~}% + \def\RStabtxt{table~}% + \def\RStabstxt{tables~}% + \def\RSTabtxt{Table~}% + \def\RSTabstxt{Tables~}% + \def\RSfootntxt{footnote~}% + \def\RSfootnstxt{footnotes~}% + \def\RSFootntxt{Footnote~}% + \def\RSFootnstxt{Footnotes~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Make English the default. +% \begin{RSframed} +% \begin{macrocode} +\RSenglish% Default +% \end{macrocode} +% \end{RSframed} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{english}{\RSenglish} +\DeclareLangOpt{USenglish}{\RSenglish} +\DeclareLangOpt{american}{\RSenglish} +\DeclareLangOpt{canadian}{\RSenglish} +\DeclareLangOpt{UKenglish}{\RSukenglish} +\DeclareLangOpt{british}{\RSukenglish} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Afrikaans} +% +% \begin{macro}{\RSafrikaans} +% Support provided by the author. +% \begin{RSframed} +% \begin{macrocode} +%%-- AFRIKAANS ---------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSafrikaans{% + \def\RSrngtxt{\space tot~}% + \def\RSlsttwotxt{\space en~}% + \def\RSlsttxt{\space en~}% + \def\RSparttxt{Deel~}% + \def\RSpartstxt{Dele~}% + \def\RSParttxt{Deel~}% + \def\RSPartstxt{Dele~}% + \def\RSappendixname{bylae~}% + \def\RSappendicesname{bylaes~}% + \def\RSAppendixname{Bylae~}% + \def\RSAppendicesname{Bylaes~}% + \def\RSchaptername{hoofstuk~}% + \def\RSchaptersname{hoofstukke~}% + \def\RSChaptername{Hoofstuk~}% + \def\RSChaptersname{Hoofstukke~}% + \def\RSsectxt{afdeling~}% + \def\RSsecstxt{afdelings~}% + \def\RSSectxt{Afdeling~}% + \def\RSSecstxt{Afdelings~}% + \def\RSeqtxt{vergelyking~}% + \def\RSeqstxt{vergelykings~}% + \def\RSEqtxt{Vergelyking~}% + \def\RSEqstxt{Vergelyking~}% + \def\RSfigtxt{figuur~}% + \def\RSfigstxt{figure~}% + \def\RSFigtxt{Figuur~}% + \def\RSFigstxt{Figure~}% + \def\RStabtxt{tabel~}% + \def\RStabstxt{tabelle~}% + \def\RSTabtxt{Tabel~}% + \def\RSTabstxt{Tabelle~}% + \def\RSfootntxt{footnota~}% + \def\RSfootnstxt{footnotas~}% + \def\RSFootntxt{Footnota~}% + \def\RSFootnstxt{Footnotas~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{afrikaans}{\RSafrikaans} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Danish} +% +% \begin{macro}{\RSdanish} +% \changes{v0.2}{2003/07/30}{Add Danish language support} +% Thomas Widmann: \texttt{<\,thomas.widmann AT harpercollins DOT co DOT uk>} +% provided the definitions for Danish. +% \begin{RSframed} +% \begin{macrocode} +%%-- DANISH ------------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSdanish{% + \def\RSrngtxt{\space til~}% + \def\RSlsttwotxt{\space og~}% + \def\RSlsttxt{\space og~}% + \def\RSparttxt{del~}% + \def\RSpartstxt{del~}% + \def\RSParttxt{Del~}% + \def\RSPartstxt{Del~}% + \def\RSappendixname{bilag~}% % 'appendiks' is also possible, + \def\RSappendicesname{bilag~}% % but 'bilag' is used in Babel + \def\RSAppendixname{Bilag~}% + \def\RSAppendicesname{Bilag~}% + \def\RSchaptername{kapitel~}% + \def\RSchaptersname{kapitel~}% + \def\RSChaptername{Kapitel~}% + \def\RSChaptersname{Kapitel~}% + \def\RSsectxt{afsnit~}% + \def\RSsecstxt{afsnit~}% + \def\RSSectxt{Afsnit~}% + \def\RSSecstxt{Afsnit~}% + \def\RSeqtxt{ligning~}% + \def\RSeqstxt{ligning~}% + \def\RSEqtxt{Ligning~}% + \def\RSEqstxt{Ligning~}% + \def\RSfigtxt{figur~}% + \def\RSfigstxt{figur~}% + \def\RSFigtxt{Figur~}% + \def\RSFigstxt{Figur~}% + \def\RStabtxt{tabel~}% + \def\RStabstxt{tablel~}% + \def\RSTabtxt{Tabel~}% + \def\RSTabstxt{Tabel~}% + \def\RSfootntxt{fodnote~}% + \def\RSfootnstxt{fodnote~}% + \def\RSFootntxt{Fodnote~}% + \def\RSFootnstxt{Fodnote~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{danish}{\RSdanish} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{French} +% +% \begin{macro}{\RSfrench} +% \changes{v0.4}{2010/10/21}{Add French language support} +% Jean-Pierre Chr\'etien \texttt{<\,jeanpierre.chretien AT free DOT fr>} +% provided the definitions for French. +% \begin{RSframed} +% \begin{macrocode} +%%-- FRENCH ------------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSfrench{% + \def\RSrngtxt{\space \`{a}~}% + \def\RSlsttwotxt{\space et~}% + \def\RSlsttxt{\space et~}% + \def\RSparttxt{partie~}% + \def\RSpartstxt{parties~}% + \def\RSParttxt{La partie~}% + \def\RSPartstxt{Les parties~}% + \def\RSappendixname{appendice~}% + \def\RSappendicesname{appendices~}% + \def\RSAppendixname{L'appendice~}% + \def\RSAppendicesname{Les appendices~}% + \def\RSchaptername{chapitre~}% + \def\RSchaptersname{chapitres~}% + \def\RSChaptername{Le chapitre~}% + \def\RSChaptersname{Les chapitres~}% + \def\RSsectxt{section~}% + \def\RSsecstxt{sections~}% + \def\RSSectxt{La section~}% + \def\RSSecstxt{Les sections~}% + \def\RSeqtxt{\'{e}quation~}% + \def\RSeqstxt{\'{e}quations~}% + \def\RSEqtxt{L'\'{e}quation~}% + \def\RSEqstxt{Les \'{e}quations~}% + \def\RSfigtxt{figure~}% + \def\RSfigstxt{figures~}% + \def\RSFigtxt{La figure~}% + \def\RSFigstxt{Les figures~}% + \def\RStabtxt{tableau~}% + \def\RStabstxt{tableaux~}% + \def\RSTabtxt{Le tableau~}% + \def\RSTabstxt{Les tableaux~}% + \def\RSfootntxt{note~}% + \def\RSfootnstxt{notes~}% + \def\RSFootntxt{La note~}% + \def\RSFootnstxt{Les notes~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{french}{\RSfrench} +% \end{macrocode} +% \end{RSframed} +% +% +% +% \subsubsection{German} +% +% \begin{macro}{\RSgerman} +% \changes{v0.2}{2003/07/30}{Add German language support} +% Harald Harders: \texttt{<\,h.harders AT tu-bs DOT de>} +% provided the definitions for German. +% \begin{RSframed} +% \begin{macrocode} +%%-- GERMAN ------------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSgerman{% + \def\RSrngtxt{\space bis~}% + \def\RSlsttwotxt{\space und~}% + \def\RSlsttxt{\space und~}% + \def\RSparttxt{Teil~}% + \def\RSpartstxt{Teile~}% + \def\RSParttxt{Teil~}% + \def\RSPartstxt{Teile~}% + \def\RSappendixname{Anhang~}% + \def\RSappendicesname{Anh\"{a}nge~}% + \def\RSAppendixname{Anhang~}% + \def\RSAppendicesname{Anh\"{a}nge~}% + \def\RSchaptername{Kapitel~}% + \def\RSchaptersname{Kapitel~}% + \def\RSChaptername{Kapitel~}% + \def\RSChaptersname{Kapitel~}% + \def\RSsectxt{Abschnitt~}% + \def\RSsecstxt{Abschnitt~}% + \def\RSSectxt{Abschnitt~}% + \def\RSSecstxt{Abschnitt~}% + \def\RSeqtxt{Gleichung~}% + \def\RSeqstxt{Gleichungen~}% + \def\RSEqtxt{Gleichung~}% + \def\RSEqstxt{Gleichungen~}% + \def\RSfigtxt{Abbildung~}% + \def\RSfigstxt{Abbildung~}% + \def\RSFigtxt{Abbildung~}% + \def\RSFigstxt{Abbildung~}% + \def\RStabtxt{Tabelle~}% + \def\RStabstxt{Tabellen~}% + \def\RSTabtxt{Tabelle~}% + \def\RSTabstxt{Tabellen~}% + \def\RSfootntxt{Fu\ss note~}% + \def\RSfootnstxt{Fu\ss noten~}% + \def\RSFootntxt{Fu\ss note~}% + \def\RSFootnstxt{Fu\ss noten~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{german}{\RSgerman} +\DeclareLangOpt{ngerman}{\RSgerman} +\DeclareLangOpt{austrian}{\RSgerman} +\DeclareLangOpt{naustrian}{\RSgerman} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Italian} +% +% \begin{macro}{\RSitalian} +% \changes{v0.4}{2010/10/21}{Add Italian language support} +% Nicola Lunghi: \texttt{<\,nick83ola AT gmail DOT com>} +% provided the definitions for Italian. +% \begin{RSframed} +% \begin{macrocode} +%%-- ITALIAN ------------------------------------ +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSitalian{% + \def\RSrngtxt{--}% + \def\RSlsttwotxt{\space e~}% + \def\RSlsttxt{\space e~}% + \def\RSparttxt{Parte~}% + \def\RSpartstxt{Parti~}% + \def\RSParttxt{Parte~}% + \def\RSPartstxt{Parti~}% + \def\RSappendixname{l'appendice~}% + \def\RSappendicesname{le appendici~}% + \def\RSAppendixname{l'Appendice~}% + \def\RSAppendicesname{le Appendici~}% + \def\RSchaptername{il capitolo~}% + \def\RSchaptersname{i capitoli~}% + \def\RSChaptername{il Capitolo~}% + \def\RSChaptersname{i Capitoli~}% + \def\RSsectxt{la sezione~}% + \def\RSsecstxt{le sezioni~}% + \def\RSSectxt{la Sezione~}% + \def\RSSecstxt{la Sezioni~}% + \def\RSeqtxt{l'equazione~}% + \def\RSeqstxt{le equazioni~}% + \def\RSEqtxt{l'Equazione~}% + \def\RSEqstxt{le Equazioni~}% + \def\RSfigtxt{la figura~}% + \def\RSfigstxt{le figure~}% + \def\RSFigtxt{la Figura~}% + \def\RSFigstxt{le Figure~}% + \def\RStabtxt{la tabella~}% + \def\RStabstxt{le tabelle~}% + \def\RSTabtxt{la Tabella~}% + \def\RSTabstxt{le Tabelle~}% + \def\RSfootntxt{la nota~}% + \def\RSfootnstxt{le note~}% + \def\RSFootntxt{la Nota~}% + \def\RSFootnstxt{le Note~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{italian}{\RSitalian} +% \end{macrocode} +% \end{RSframed} +% +% +% +% \subsubsection{Norwegian} +% +% \begin{macro}{\RSnorwegian} +% \changes{v0.3}{2006/09/07}{Add Norwegian language support} +% Karl Ove Hufthammer: \texttt{<\,karloh AT mi DOT uib DOT no>} +% provided the definitions for Norwegian. +% +% Norway has two official languages Norwegian Nynorsk and +% Norwegian Bokm{\aa}l (commonly 'nynorsk' and 'norsk' in LaTeX), +% but the \pkg{refstyle} definitions are identically in both variants. +% \begin{RSframed} +% \begin{macrocode} +%%-- NORWEGIAN ------------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSnorwegian{% + \def\RSrngtxt{\space til~}% + \def\RSlsttwotxt{\space og~}% + \def\RSlsttxt{\space og~}% + \def\RSparttxt{del~}% + \def\RSpartstxt{del~}% + \def\RSParttxt{Del~}% + \def\RSPartstxt{Del~}% + \def\RSappendixname{tillegg~}% + \def\RSappendicesname{tillegg~}% + \def\RSAppendixname{Tillegg~}% + \def\RSAppendicesname{Tillegg~}% + \def\RSchaptername{kapittel~}% + \def\RSchaptersname{kapittel~}% + \def\RSChaptername{Kapittel~}% + \def\RSChaptersname{Kapittel~}% + \def\RSsectxt{avsnitt~}% + \def\RSsecstxt{avsnitt~}% + \def\RSSectxt{Avsnitt~}% + \def\RSSecstxt{Avsnitt~}% + \def\RSeqtxt{formel~}% + \def\RSeqstxt{formel~}% + \def\RSEqtxt{Formel~}% + \def\RSEqstxt{Formel~}% + \def\RSfigtxt{figur~}% + \def\RSfigstxt{figur~}% + \def\RSFigtxt{Figur~}% + \def\RSFigstxt{Figur~}% + \def\RStabtxt{tabell~}% + \def\RStabstxt{tabell~}% + \def\RSTabtxt{Tabell~}% + \def\RSTabstxt{Tabell~}% + \def\RSfootntxt{fotnote~}% + \def\RSfootnstxt{fotnote~}% + \def\RSFootntxt{Fotnote~}% + \def\RSFootnstxt{Fotnote~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{norwegian}{\RSnorwegian} +\DeclareLangOpt{nynorsk}{\RSnorwegian} +\DeclareLangOpt{bokmal}{\RSnorwegian}% Not in babel yet +\DeclareLangOpt{norsk}{\RSnorwegian} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Portuguese/Brazilian} +% +% \begin{macro}{\RSportuguese,\RSbrazilian} +% \changes{v0.4}{2010/10/21}{Add Portuguese language support} +% Bernhard Enders and Flavio Costa \texttt{<\,flaviocosta AT yahoo DOT com DOT br>} +% provided the definitions for Portuguese. +% \begin{RSframed} +% \begin{macrocode} +%%-- PORTUGUESE ----------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSportuguese{% + \def\RSrngtxt{\space a~}% + \def\RSlsttwotxt{\space e~}% + \def\RSlsttxt{\space e~}% + \def\RSparttxt{Parte~}% + \def\RSpartstxt{Partes~}% + \def\RSParttxt{Parte~}% + \def\RSPartstxt{Partes~}% + \def\RSappendixname{ap\^{e}ndice~}% + \def\RSappendicesname{ap\^{e}ndices~}% + \def\RSAppendixname{Ap\^{e}ndice~}% + \def\RSAppendicesname{Ap\^{e}ndices~}% + \def\RSchaptername{cap\'{i}tulo~}% + \def\RSchaptersname{cap\'{i}tulos~}% + \def\RSChaptername{Cap\'{i}tulo~}% + \def\RSChaptersname{Cap\'{i}tulos~}% + \def\RSsectxt{se\c{c}\~{a}o~}% + \def\RSsecstxt{se\c{c}\~{o}es~}% + \def\RSSectxt{Se\c{c}\~{a}o~}% + \def\RSSecstxt{Se\c{c}\~{o}es~}% + \def\RSeqtxt{equa\c{c}\~{a}o~}% + \def\RSeqstxt{equa\c{c}\~{o}es~}% + \def\RSEqtxt{Equa\c{c}\~{a}o~}% + \def\RSEqstxt{Equa\c{c}\~{o}es~}% + \def\RSfigtxt{figura~}% + \def\RSfigstxt{figuras~}% + \def\RSFigtxt{Figura~}% + \def\RSFigstxt{Figuras~}% + \def\RStabtxt{tabela~}% + \def\RStabstxt{tabelas~}% + \def\RSTabtxt{Tabela~}% + \def\RSTabstxt{Tabelas~}% + \def\RSfootntxt{nota de rodap\'{e}~}% + \def\RSfootnstxt{notas de rodap\'{e}~}% + \def\RSFootntxt{Nota de rodap\'{e}~}% + \def\RSFootnstxt{Notas de rodap\'{e}~}% +} +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSbrazilian{% + \def\RSrngtxt{\space a~}% + \def\RSlsttwotxt{\space e~}% + \def\RSlsttxt{\space e~}% + \def\RSparttxt{Parte~}% + \def\RSpartstxt{Partes~}% + \def\RSParttxt{Parte~}% + \def\RSPartstxt{Partes~}% + \def\RSappendixname{ap\^{e}ndice~}% + \def\RSappendicesname{ap\^{e}ndices~}% + \def\RSAppendixname{Ap\^{e}ndice~}% + \def\RSAppendicesname{Ap\^{e}ndices~}% + \def\RSchaptername{cap\'{i}tulo~}% + \def\RSchaptersname{cap\'{i}tulos~}% + \def\RSChaptername{Cap\'{i}tulo~}% + \def\RSChaptersname{Cap\'{i}tulos~}% + \def\RSsectxt{sec\c{c}\~{a}o~}%<--------------- + \def\RSsecstxt{sec\c{c}\~{o}es~}%<------------- + \def\RSSectxt{Sec\c{c}\~{a}o~}%<--------------- + \def\RSSecstxt{Sec\c{c}\~{o}es~}%<------------- + \def\RSeqtxt{equa\c{c}\~{a}o~}% + \def\RSeqstxt{equa\c{c}\~{o}es~}% + \def\RSEqtxt{Equa\c{c}\~{a}o~}% + \def\RSEqstxt{Equa\c{c}\~{o}es~}% + \def\RSfigtxt{figura~}% + \def\RSfigstxt{figuras~}% + \def\RSFigtxt{Figura~}% + \def\RSFigstxt{Figuras~}% + \def\RStabtxt{tabela~}% + \def\RStabstxt{tabelas~}% + \def\RSTabtxt{Tabela~}% + \def\RSTabstxt{Tabelas~}% + \def\RSfootntxt{nota de rodap\'{e}~}% + \def\RSfootnstxt{notas de rodap\'{e}~}% + \def\RSFootntxt{Nota de rodap\'{e}~}% + \def\RSFootnstxt{Notas de rodap\'{e}~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{portuges}{\RSportuguese} +\DeclareLangOpt{portuguese}{\RSportuguese} +\DeclareLangOpt{brazilian}{\RSbrazilian} +\DeclareLangOpt{brazil}{\RSbrazilian} +% \end{macrocode} +% \end{RSframed} +% +% +% +% \subsubsection{Swedish} +% +% \begin{macro}{\RSswedish} +% \changes{v0.2}{2003/07/30}{Add Swedish language support} +% Bj\"{o}rn Thors \texttt{<\,bjorn.thors AT alfvenlab DOT kth DOT se>} +% provided the definitions for Swedish. +% \begin{RSframed} +% \begin{macrocode} +%%-- SWEDISH ------------------------------------ +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSswedish{% + \def\RSrngtxt{\space till~}% + \def\RSlsttwotxt{\space och~}% + \def\RSlsttxt{\space och~}% + \def\RSparttxt{del~}% + \def\RSpartstxt{del~}% + \def\RSParttxt{Del~}% + \def\RSPartstxt{Del~}% + \def\RSappendixname{appendix~}% + \def\RSappendicesname{appendix~}% + \def\RSAppendixname{Appendix~}% + \def\RSAppendicesname{Appendix~}% + \def\RSchaptername{kapitel~}% + \def\RSchaptersname{kapitel~}% + \def\RSChaptername{Kapitel~}% + \def\RSChaptersname{Kapitel~}% + \def\RSsectxt{sektion~}% + \def\RSsecstxt{sektion~}% + \def\RSSectxt{Sektion~}% + \def\RSSecstxt{Sektion~}% + \def\RSeqtxt{ekvation~}% + \def\RSeqstxt{ekvation~}% + \def\RSEqtxt{Ekvation~}% + \def\RSEqstxt{Ekvation~}% + \def\RSfigtxt{figur~}% + \def\RSfigstxt{figur~}% + \def\RSFigtxt{Figur~}% + \def\RSFigstxt{Figur~}% + \def\RStabtxt{tabell~}% + \def\RStabstxt{tabell~}% + \def\RSTabtxt{Tabell~}% + \def\RSTabstxt{Tabell~}% + \def\RSfootntxt{fotnot~}% + \def\RSfootnstxt{fotnot~}% + \def\RSFootntxt{Fotnot~}% + \def\RSFootnstxt{Fotnot~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{swedish}{\RSswedish} +% \end{macrocode} +% \end{RSframed} +% +% +% +% +% \subsection{Templates for the \RS Package} +% +% The user can also define his or her own templates and put it +% in a separate configuration file to ensure uniformity +% of reference formats in your documents. +% +% \subsubsection{Parts} +% +% References to parts are usually straight forward, except that the +% document division ``Part'' must be distinguished from the normal +% usage of the word ``part'' in a sentence. A personal preference +% is to use small caps. +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR PARTS ------------------------- +% \end{macrocode} +% \begin{macrocode} + \newref{part}{% + name = \RSparttxt, + names = \RSpartstxt, + Name = \RSPparttxt, + Names = \RSPartstxt, + rngtxt = \RSrngtxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% +% +% \subsubsection{Chapters and Appendices} +% +% A major problem with a reference to a chapter is that at the time +% when the reference label, |\label|\marg{chap-label}, is created, +% it is unknown whether it would eventually ends up in the main +% matter or the appendix part of a book or report. +% +% A simple solution is to use the prefix to the \meta{chapter} +% counter, |\p@chapter|, to write the definition of |\@chapapp| to +% the auxiliary file (|.aux|) together with information of the +% label. The command |\@chapapp| expands to either |\chaptername| or +% |\appendixname| depending on whether the reference label is +% defined in the main matter or after the |\appendix| was called. +% (Note that |\@chapapp| is not defined in the AMS book class.) +% +% \begin{Ipara} +% |\renewcommand*{\p@chapter}{\string\chname{\@chapapp}}|\\ +% |\newcommand*{\chname}[1]{}%<-make it harmless |\\ +% |\newcommand*{\chapref}[1]{{\renewcommand*{\chname}[1]{##1~}\ref{#1}}}| +% \end{Ipara} +% +% \noindent The reference to a chapter, |\chapref|\marg{chap-label}, +% will then be prefixed with |\chaptername| or |\appendixname| and +% it does not matter where it was defined or where it was called. +% +% To utilize the full functionality of the \RS package for +% references to chapters and appendices, a complex form of +% \cmd{\newref} needs to be implemented. +% The following is a template for a book or report classes. +% +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR CHAPTERS & APPENDIXES --------- +% \end{macrocode} +% Prevent crashes for non-book type classes. +% \begin{macrocode} +\providecommand*{\p@chapter}{} +% \end{macrocode} +% Add \cmd{\@chapapp} to \cmd{\p@chapter} for writeout to auxiliary file. +% If an AMS book class is loaded, then \cmd{\chaptername} must +% be used. +% \begin{macrocode} +\AtBeginDocument{% + \RS@ifundefined{chapter}{}{% + \RS@ifundefined{@chapapp}% + {\renewcommand*{\p@chapter}{\string\chpname{\chaptername}}}%AMS + {\renewcommand*{\p@chapter}{\string\chpname{\@chapapp}}}% Normal + }% + } +% \end{macrocode} +% Define \cmd{\chpname} to gobble its contents outside the +% reference commands. +% \begin{macrocode} +\newcommand*{\chpname}[1]{} +% \end{macrocode} +% Define the \cmd{\RSchpname} to typeset all the different +% perturbations of chapter and appendix names. +% Use the conditionals to switch between the +% different options. +% +% \begin{macrocode} +\newcommand*{\RS@chpname}[1]{% + \ifRSnameon + \edef\RS@tmpa{#1}% + \edef\RS@tmpb{\appendixname}% + \ifx\RS@tmpa\RS@tmpb\relax% + \ifRSplural + \ifRScapname \RSAppendicesname \else \RSappendicesname \fi + \else + \ifRScapname \RSAppendixname \else \RSappendixname \fi + \fi + \else + \ifRSplural + \ifRScapname \RSChaptersname \else \RSchaptersname \fi + \else + \ifRScapname \RSChaptername \else \RSchaptername \fi + \fi + \fi + \fi} +% \end{macrocode} +% Define the \cmd{\newref} for chapters. +% \begin{macrocode} + \newref{chap}{% + refcmd = {{\let\chpname=\RS@chpname\ref{#1}}}, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Sections and paragraphs}\seclabel{secTempl} +% +% A template for references to sections is given below. References +% to paragraphs are similar and is left as an exercise to the users. +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR SECTIONS ---------------------- +% \end{macrocode} +% \begin{macrocode} + \newref{sec}{% + name = \RSsectxt, + names = \RSsecstxt, + Name = \RSSectxt, + Names = \RSSecstxt, + refcmd = {\S\ref{#1}}, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% \subsubsection{Equations}\seclabel{EqTempl} +% +% The equation number in references to equations are traditionally +% written in an upright text, irrespective of the surrounding text. +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR EQUATIONS --------------------- +% \end{macrocode} +% The standard equation ref format if \pkg{amsmath.sty} is not loaded. +% \begin{macrocode} +\newcommand*{\RSeqrefform}[1]{\textup{(\ref{#1})}} +% \end{macrocode} +% If \pkg{amsmath.sty} is loaded, store \cmd{\eqref} +% and then undefine it before the template is created. +% \begin{macrocode} +\AddToHook{package/amsmath/after}% + {\NewCommandCopy\AMSeqref\eqref + \RS@removedef{eqref}}% +% \end{macrocode} +% \begin{macrocode} +\newref{eq}{% + name = \RSeqtxt, + names = \RSeqstxt, + Name = \RSEqtxt, + Names = \RSEqstxt, + refcmd = \RSeqrefform{#1}, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% Make way for \pkg{amsmath.sty} definitions +% \begin{macrocode} +\let\RSeqref\eqref +\let\eqref\relax +% \end{macrocode} +% Some footwork to bring the AMS definition of +% \cmd{\eqref} back if \pkg{amsmath.sty} is loaded +% afterwards. +% \begin{macrocode} +\AtBeginDocument{% + \@ifpackageloaded{amsmath}% + {\DeclareCommandCopy\RSeqrefform\AMSeqref}% + {}% + \let\eqref=\RSeqref + } +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Figures and Tables}\seclabel{tabtemp} +% References to figures and tables are usually +% straight forward. +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR FIGURES ----------------------- +% \end{macrocode} +% \begin{macrocode} + \newref{fig}{% + name = \RSfigtxt, + names = \RSfigstxt, + Name = \RSFigtxt, + Names = \RSFigstxt, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR TABLES ------------------------ +% \end{macrocode} +% \begin{macrocode} + \newref{tab}{% + name = \RStabtxt, + names = \RStabstxt, + Name = \RSTabtxt, + Names = \RSTabstxt, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% \pagebreak[2] +% \subsubsection{Footnotes}\seclabel{fnTempl} +% +% A reference to a footnote differs from other references in that +% it is only defined inside the footnote definition itself: +% \begin{Ipara} +% |\footnote{This is a footnote with ... \label{fn:xx}}| +% \end{Ipara} +% It can then be referred to with |\ref{fn:xx}|. +% +% A useful application of the \RS package is for references to +% footnotes, were you need a duplicate footnote mark that refers to +% a previously defined footnote.\footnote{^^A +% This is a footnote with \cmd{\fnlabel}\texttt{\{xx\}} ...\fnlabel{xx}} +% You can use the stared form of the reference +% command to format the reference as a footnote mark, while the +% reference commands without a star behave as normal. +% \begin{Itabb} +% \hspace*{2cm}\=\kill +% |\fnref*{xx}| \ArTab \fnref*{xx}\\ +% |\fnref{xx}| \ArTab \fnref{xx}\\ +% \end{Itabb} +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR FOOTNOTES --------------------- +% \end{macrocode} +% Define the \cmd{\RSfnmark} to reproduce the footnote mark. +% Use the |\ifRSstar| conditional to switch between a superscripted +% and a normal reference. +% \begin{macrocode} + \newcommand{\RSfnmark}[1]{% + \begingroup + \unrestored@protected@xdef\@thefnmark{\ref{#1}}% + \endgroup + \@footnotemark} +% \end{macrocode} +% \begin{macrocode} + \newref{fn}{% + name = \RSfootntxt, + names = \RSfootnstxt, + Name = \RSFootntxt, + Names = \RSFootnstxt, + refcmd = {\ifRSstar\RSfnmark{#1}\else(\ref{#1})\fi}, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% \subsubsection{Enumerated lists} +% +% A reference to an item in an enumerated list can be obtained +% by placing the labelling command after the \cmd{\item} command +% inside the list. The second level numbering of the \cmd{\ref} +% label in the standard \LaTeX{} is: 2a, 2b, etc. +% +% If you want to change the reference labels to 2(a), 2(b), +% etc., without effecting the display in the \env{enumerate} +% environment, you can make the following redefinition: +% \begin{Ipara} +% |\makeatletter|\\ +% |\renewcommand{\p@enumii}{\expandafter\p@@enumii}|\\ +% |\newcommand{\p@@enumii}[1]{\theenumi(#1)}|\\ +% |\makeatother| +% \end{Ipara} +% The contents of the \cmd{\@currentlable} is then +% \begin{Ipara} +% |{\expandafter\p@@enumii\theenumii}| ~$\rightarrow$~ +% |{\theenumi(\theenumii)}| +% \end{Ipara} +% +% Writing a template for enumerated lists is left to the user. +% +% +% \subsubsection{Theorems, lemmas, etc.}\seclabel{Thm} +% +% There exists many perturbations to the theorem environment such +% as, Theorem, Lemma, Exercise, etc., and it is left to the user as +% an exercise to construct his or her own templates. +% +% As an example to add reference for theorems to an exiting setup: +% +% \begin{Ipara} +% |\usepackage{refstyle} |\\ +% |\newref{thm}{ |\\ +% | name = {theorem~}, |\\ +% | names = {theorems~},|\\ +% | Name = {Theorem~}, |\\ +% | Names = {Theorems~},|\\ +% | rngtxt = \RSrngtxt,|\\ +% | lsttwotxt = \RSlsttxt,|\\ +% | lsttxt = \RSlsttxt}| +% \end{Ipara} +% +% If you want to add it to a specific language setup with \pkg{babel} then +% you can do the following, for example for a dual language document with +% English and Norwegian: +% \begin{Ipara} +% |\documentclass[english, norwegian]{article}% NB: Languages as global opts! |\\ +% |\usepackage{babel} %Use global languages |\\ +% |\usepackage{varioref} %Use global languages |\\ +% |\usepackage{refstyle} %Use global languages |\\ +% |\RSaddto{\RSnorwegian}{% |\\ +% | \def\RSthmtxt{teorem~}% |\\ +% | \def\RSthmstxt{teorem~}% |\\ +% | \def\RSThmtxt{Teorem~}% |\\ +% | \def\RSThmstxt{Teorem~}} |\\ +% |\RSaddto{\RSenglish}{% |\\ +% | \def\RSthmtxt{theorem~}% |\\ +% | \def\RSthmstxt{theorems~}% |\\ +% | \def\RSThmtxt{Theorem~}% |\\ +% | \def\RSThmstxt{Theorems~}} |\\ +% |\newref{thm}{ |\\ +% | name = \RSthmtxt, |\\ +% | names = \RSthmstxt, |\\ +% | Name = \RSThmtxt, |\\ +% | Names = \RSThmstxt, |\\ +% | rngtxt = \RSrngtxt, |\\ +% | lsttwotxt = \RSlsttxt, |\\ +% | lsttxt = \RSlsttwotxt} | +% \end{Ipara} +% +% \noindent All \pkg{babel} language changes will then activate +% the proper code setup. In this example the \pkg{refstyle} +% mechanism is used where the code is appended to the |\RSenglish| +% and |\RSnorwegian| container functions. These functions are added +% by the package +% to the \pkg{babel} containers |\extrasenglish| and |\extrasnorwegian|, +% that is called every time a language change occurs. +% Please see the contents of \pkg{refstyle.cfg} for the names of the +% \pkg{refstyle} containers associated with the different languages. +% +% Note that the extended definitions +% can also be added directly to the \pkg{babel} containers without using +% \pkg{refstyle}'s mechanism. +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \Finale +\endinput diff --git a/macros/latex/contrib/refstyle/refconfig.pdf b/macros/latex/contrib/refstyle/refconfig.pdf index f4dcb8d15a..c16ae09cca 100644 Binary files a/macros/latex/contrib/refstyle/refconfig.pdf and b/macros/latex/contrib/refstyle/refconfig.pdf differ diff --git a/macros/latex/contrib/refstyle/refstyle.cfg b/macros/latex/contrib/refstyle/refstyle.cfg deleted file mode 100644 index 2ca7d62dd2..0000000000 --- a/macros/latex/contrib/refstyle/refstyle.cfg +++ /dev/null @@ -1,571 +0,0 @@ -%% -%% This is file `refstyle.cfg', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% refconfig.dtx (with options: `cfg') -%% -%% ------------------------------------------------------------------- -%% The refstyle package -%% for the formatting of references -%% ------------------------------------------------------------------- -%% This file may be customized to suit specific user requirements. -%% -%% Original by Danie Els -%% ------------------------------------------------------------------- -%% -\ProvidesFile{refstyle.cfg}[2010/11/02\space - 0.5\space - Configuration file for refstyle (DNJ Els)] -%%-- ENGLISH ------------------------------------ -\newcommand\RSukenglish{% - \def\RSrngtxt{\space to~}%........... Range: figures 5 to 6 - \def\RSlsttwotxt{\space and~}%....... List two: figures 5 and 6 - \def\RSlsttxt{, and~}%............... List more: figures 5, 6, and 7 - \def\RSparttxt{Part~}%............... Part lowercase singular - \def\RSpartstxt{Parts~}%............. lowercase plural - \def\RSParttxt{Part~}%............... uppercase singular (sentence start) - \def\RSPartstxt{Parts~}%............. uppercase plural (sentence start) - \def\RSappendixname{appendix~}%...... Appendix lowercase singular - \def\RSappendicesname{appendices~}%.. lowercase plural - \def\RSAppendixname{Appendix~}%...... uppercase singular (sentence start) - \def\RSAppendicesname{Appendices~}%.. uppercase plural (sentence start) - \def\RSchaptername{chapter~}%........ Chapter lowercase singular - \def\RSchaptersname{chapters~}%...... lowercase plural - \def\RSChaptername{Chapter~}%........ uppercase singular (sentence start) - \def\RSChaptersname{Chapters~}%...... uppercase plural (sentence start) - \def\RSsectxt{section~}%............. Section lowercase singular - \def\RSsecstxt{sections~}%........... lowercase plural - \def\RSSectxt{Section~}%............. uppercase singular (sentence start) - \def\RSSecstxt{Sections~}%........... uppercase plural (sentence start) - \def\RSeqtxt{equation~}%............. Equation lowercase singular - \def\RSeqstxt{equations~}%........... lowercase plural - \def\RSEqtxt{Equation~}%............. uppercase singular (sentence start) - \def\RSEqstxt{Equations~}%........... uppercase plural (sentence start) - \def\RSfigtxt{figure~}%.............. Figure lowercase singular - \def\RSfigstxt{figures~}%............ lowercase plural - \def\RSFigtxt{Figure~}%.............. uppercase singular (sentence start) - \def\RSFigstxt{Figures~}%............ uppercase plural (sentence start) - \def\RStabtxt{table~}%............... Table lowercase singular - \def\RStabstxt{tables~}%............. lowercase plural - \def\RSTabtxt{Table~}%............... uppercase singular (sentence start) - \def\RSTabstxt{Tables~}%............. uppercase plural (sentence start) - \def\RSfootntxt{footnote~}%.......... Footnote lowercase singular - \def\RSfootnstxt{footnotes~}%........ lowercase plural - \def\RSFootntxt{Footnote~}%.......... uppercase singular (sentence start) - \def\RSFootnstxt{Footnotes~}%........ uppercase plural (sentence start) -} -\newcommand\RSenglish{% - \def\RSrngtxt{\space to~}% - \def\RSlsttwotxt{\space and~}% - \def\RSlsttxt{\space and~}% - \def\RSparttxt{Part~}% - \def\RSpartstxt{Parts~}% - \def\RSParttxt{Part~}% - \def\RSPartstxt{Parts~}% - \def\RSappendixname{appendix~}% - \def\RSappendicesname{appendices~}% - \def\RSAppendixname{Appendix~}% - \def\RSAppendicesname{Appendices~}% - \def\RSchaptername{chapter~}% - \def\RSchaptersname{chapters~}% - \def\RSChaptername{Chapter~}% - \def\RSChaptersname{Chapters~}% - \def\RSsectxt{section~}% - \def\RSsecstxt{sections~}% - \def\RSSectxt{Section~}% - \def\RSSecstxt{Sections~}% - \def\RSeqtxt{equation~}% - \def\RSeqstxt{equations~}% - \def\RSEqtxt{Equation~}% - \def\RSEqstxt{Equations~}% - \def\RSfigtxt{figure~}% - \def\RSfigstxt{figures~}% - \def\RSFigtxt{Figure~}% - \def\RSFigstxt{Figures~}% - \def\RStabtxt{table~}% - \def\RStabstxt{tables~}% - \def\RSTabtxt{Table~}% - \def\RSTabstxt{Tables~}% - \def\RSfootntxt{footnote~}% - \def\RSfootnstxt{footnotes~}% - \def\RSFootntxt{Footnote~}% - \def\RSFootnstxt{Footnotes~}% -} -\RSenglish% Default -\DeclareLangOpt{english}{\RSenglish} -\DeclareLangOpt{USenglish}{\RSenglish} -\DeclareLangOpt{american}{\RSenglish} -\DeclareLangOpt{canadian}{\RSenglish} -\DeclareLangOpt{UKenglish}{\RSukenglish} -\DeclareLangOpt{british}{\RSukenglish} -%%-- AFRIKAANS ---------------------------------- -\newcommand\RSafrikaans{% - \def\RSrngtxt{\space tot~}% - \def\RSlsttwotxt{\space en~}% - \def\RSlsttxt{\space en~}% - \def\RSparttxt{Deel~}% - \def\RSpartstxt{Dele~}% - \def\RSParttxt{Deel~}% - \def\RSPartstxt{Dele~}% - \def\RSappendixname{bylae~}% - \def\RSappendicesname{bylaes~}% - \def\RSAppendixname{Bylae~}% - \def\RSAppendicesname{Bylaes~}% - \def\RSchaptername{hoofstuk~}% - \def\RSchaptersname{hoofstukke~}% - \def\RSChaptername{Hoofstuk~}% - \def\RSChaptersname{Hoofstukke~}% - \def\RSsectxt{afdeling~}% - \def\RSsecstxt{afdelings~}% - \def\RSSectxt{Afdeling~}% - \def\RSSecstxt{Afdelings~}% - \def\RSeqtxt{vergelyking~}% - \def\RSeqstxt{vergelykings~}% - \def\RSEqtxt{Vergelyking~}% - \def\RSEqstxt{Vergelyking~}% - \def\RSfigtxt{figuur~}% - \def\RSfigstxt{figure~}% - \def\RSFigtxt{Figuur~}% - \def\RSFigstxt{Figure~}% - \def\RStabtxt{tabel~}% - \def\RStabstxt{tabelle~}% - \def\RSTabtxt{Tabel~}% - \def\RSTabstxt{Tabelle~}% - \def\RSfootntxt{footnota~}% - \def\RSfootnstxt{footnotas~}% - \def\RSFootntxt{Footnota~}% - \def\RSFootnstxt{Footnotas~}% -} -\DeclareLangOpt{afrikaans}{\RSafrikaans} -%%-- DANISH ------------------------------------- -\newcommand\RSdanish{% - \def\RSrngtxt{\space til~}% - \def\RSlsttwotxt{\space og~}% - \def\RSlsttxt{\space og~}% - \def\RSparttxt{del~}% - \def\RSpartstxt{del~}% - \def\RSParttxt{Del~}% - \def\RSPartstxt{Del~}% - \def\RSappendixname{bilag~}% % 'appendiks' is also possible, - \def\RSappendicesname{bilag~}% % but 'bilag' is used in Babel - \def\RSAppendixname{Bilag~}% - \def\RSAppendicesname{Bilag~}% - \def\RSchaptername{kapitel~}% - \def\RSchaptersname{kapitel~}% - \def\RSChaptername{Kapitel~}% - \def\RSChaptersname{Kapitel~}% - \def\RSsectxt{afsnit~}% - \def\RSsecstxt{afsnit~}% - \def\RSSectxt{Afsnit~}% - \def\RSSecstxt{Afsnit~}% - \def\RSeqtxt{ligning~}% - \def\RSeqstxt{ligning~}% - \def\RSEqtxt{Ligning~}% - \def\RSEqstxt{Ligning~}% - \def\RSfigtxt{figur~}% - \def\RSfigstxt{figur~}% - \def\RSFigtxt{Figur~}% - \def\RSFigstxt{Figur~}% - \def\RStabtxt{tabel~}% - \def\RStabstxt{tablel~}% - \def\RSTabtxt{Tabel~}% - \def\RSTabstxt{Tabel~}% - \def\RSfootntxt{fodnote~}% - \def\RSfootnstxt{fodnote~}% - \def\RSFootntxt{Fodnote~}% - \def\RSFootnstxt{Fodnote~}% -} -\DeclareLangOpt{danish}{\RSdanish} -%%-- FRENCH ------------------------------------- -\newcommand\RSfrench{% - \def\RSrngtxt{\space \`{a}~}% - \def\RSlsttwotxt{\space et~}% - \def\RSlsttxt{\space et~}% - \def\RSparttxt{partie~}% - \def\RSpartstxt{parties~}% - \def\RSParttxt{La partie~}% - \def\RSPartstxt{Les parties~}% - \def\RSappendixname{appendice~}% - \def\RSappendicesname{appendices~}% - \def\RSAppendixname{L'appendice~}% - \def\RSAppendicesname{Les appendices~}% - \def\RSchaptername{chapitre~}% - \def\RSchaptersname{chapitres~}% - \def\RSChaptername{Le chapitre~}% - \def\RSChaptersname{Les chapitres~}% - \def\RSsectxt{section~}% - \def\RSsecstxt{sections~}% - \def\RSSectxt{La section~}% - \def\RSSecstxt{Les sections~}% - \def\RSeqtxt{\'{e}quation~}% - \def\RSeqstxt{\'{e}quations~}% - \def\RSEqtxt{L'\'{e}quation~}% - \def\RSEqstxt{Les \'{e}quations~}% - \def\RSfigtxt{figure~}% - \def\RSfigstxt{figures~}% - \def\RSFigtxt{La figure~}% - \def\RSFigstxt{Les figures~}% - \def\RStabtxt{tableau~}% - \def\RStabstxt{tableaux~}% - \def\RSTabtxt{Le tableau~}% - \def\RSTabstxt{Les tableaux~}% - \def\RSfootntxt{note~}% - \def\RSfootnstxt{notes~}% - \def\RSFootntxt{La note~}% - \def\RSFootnstxt{Les notes~}% -} -\DeclareLangOpt{french}{\RSfrench} -%%-- GERMAN ------------------------------------- -\newcommand\RSgerman{% - \def\RSrngtxt{\space bis~}% - \def\RSlsttwotxt{\space und~}% - \def\RSlsttxt{\space und~}% - \def\RSparttxt{Teil~}% - \def\RSpartstxt{Teile~}% - \def\RSParttxt{Teil~}% - \def\RSPartstxt{Teile~}% - \def\RSappendixname{Anhang~}% - \def\RSappendicesname{Anh\"{a}nge~}% - \def\RSAppendixname{Anhang~}% - \def\RSAppendicesname{Anh\"{a}nge~}% - \def\RSchaptername{Kapitel~}% - \def\RSchaptersname{Kapitel~}% - \def\RSChaptername{Kapitel~}% - \def\RSChaptersname{Kapitel~}% - \def\RSsectxt{Abschnitt~}% - \def\RSsecstxt{Abschnitt~}% - \def\RSSectxt{Abschnitt~}% - \def\RSSecstxt{Abschnitt~}% - \def\RSeqtxt{Gleichung~}% - \def\RSeqstxt{Gleichungen~}% - \def\RSEqtxt{Gleichung~}% - \def\RSEqstxt{Gleichungen~}% - \def\RSfigtxt{Abbildung~}% - \def\RSfigstxt{Abbildung~}% - \def\RSFigtxt{Abbildung~}% - \def\RSFigstxt{Abbildung~}% - \def\RStabtxt{Tabelle~}% - \def\RStabstxt{Tabellen~}% - \def\RSTabtxt{Tabelle~}% - \def\RSTabstxt{Tabellen~}% - \def\RSfootntxt{Fu\ss note~}% - \def\RSfootnstxt{Fu\ss noten~}% - \def\RSFootntxt{Fu\ss note~}% - \def\RSFootnstxt{Fu\ss noten~}% -} -\DeclareLangOpt{german}{\RSgerman} -\DeclareLangOpt{ngerman}{\RSgerman} -\DeclareLangOpt{austrian}{\RSgerman} -\DeclareLangOpt{naustrian}{\RSgerman} -%%-- ITALIAN ------------------------------------ -\newcommand\RSitalian{% - \def\RSrngtxt{--}% - \def\RSlsttwotxt{\space e~}% - \def\RSlsttxt{\space e~}% - \def\RSparttxt{Parte~}% - \def\RSpartstxt{Parti~}% - \def\RSParttxt{Parte~}% - \def\RSPartstxt{Parti~}% - \def\RSappendixname{l'appendice~}% - \def\RSappendicesname{le appendici~}% - \def\RSAppendixname{l'Appendice~}% - \def\RSAppendicesname{le Appendici~}% - \def\RSchaptername{il capitolo~}% - \def\RSchaptersname{i capitoli~}% - \def\RSChaptername{il Capitolo~}% - \def\RSChaptersname{i Capitoli~}% - \def\RSsectxt{la sezione~}% - \def\RSsecstxt{le sezioni~}% - \def\RSSectxt{la Sezione~}% - \def\RSSecstxt{la Sezioni~}% - \def\RSeqtxt{l'equazione~}% - \def\RSeqstxt{le equazioni~}% - \def\RSEqtxt{l'Equazione~}% - \def\RSEqstxt{le Equazioni~}% - \def\RSfigtxt{la figura~}% - \def\RSfigstxt{le figure~}% - \def\RSFigtxt{la Figura~}% - \def\RSFigstxt{le Figure~}% - \def\RStabtxt{la tabella~}% - \def\RStabstxt{le tabelle~}% - \def\RSTabtxt{la Tabella~}% - \def\RSTabstxt{le Tabelle~}% - \def\RSfootntxt{la nota~}% - \def\RSfootnstxt{le note~}% - \def\RSFootntxt{la Nota~}% - \def\RSFootnstxt{le Note~}% -} -\DeclareLangOpt{italian}{\RSitalian} -%%-- NORWEGIAN ------------------------------------- -\newcommand\RSnorwegian{% - \def\RSrngtxt{\space til~}% - \def\RSlsttwotxt{\space og~}% - \def\RSlsttxt{\space og~}% - \def\RSparttxt{del~}% - \def\RSpartstxt{del~}% - \def\RSParttxt{Del~}% - \def\RSPartstxt{Del~}% - \def\RSappendixname{tillegg~}% - \def\RSappendicesname{tillegg~}% - \def\RSAppendixname{Tillegg~}% - \def\RSAppendicesname{Tillegg~}% - \def\RSchaptername{kapittel~}% - \def\RSchaptersname{kapittel~}% - \def\RSChaptername{Kapittel~}% - \def\RSChaptersname{Kapittel~}% - \def\RSsectxt{avsnitt~}% - \def\RSsecstxt{avsnitt~}% - \def\RSSectxt{Avsnitt~}% - \def\RSSecstxt{Avsnitt~}% - \def\RSeqtxt{formel~}% - \def\RSeqstxt{formel~}% - \def\RSEqtxt{Formel~}% - \def\RSEqstxt{Formel~}% - \def\RSfigtxt{figur~}% - \def\RSfigstxt{figur~}% - \def\RSFigtxt{Figur~}% - \def\RSFigstxt{Figur~}% - \def\RStabtxt{tabell~}% - \def\RStabstxt{tabell~}% - \def\RSTabtxt{Tabell~}% - \def\RSTabstxt{Tabell~}% - \def\RSfootntxt{fotnote~}% - \def\RSfootnstxt{fotnote~}% - \def\RSFootntxt{Fotnote~}% - \def\RSFootnstxt{Fotnote~}% -} -\DeclareLangOpt{norwegian}{\RSnorwegian} -\DeclareLangOpt{nynorsk}{\RSnorwegian} -\DeclareLangOpt{bokmal}{\RSnorwegian}% Not in babel yet -\DeclareLangOpt{norsk}{\RSnorwegian} -%%-- PORTUGUESE ----------------------------------- -\newcommand\RSportuguese{% - \def\RSrngtxt{\space a~}% - \def\RSlsttwotxt{\space e~}% - \def\RSlsttxt{\space e~}% - \def\RSparttxt{Parte~}% - \def\RSpartstxt{Partes~}% - \def\RSParttxt{Parte~}% - \def\RSPartstxt{Partes~}% - \def\RSappendixname{ap\^{e}ndice~}% - \def\RSappendicesname{ap\^{e}ndices~}% - \def\RSAppendixname{Ap\^{e}ndice~}% - \def\RSAppendicesname{Ap\^{e}ndices~}% - \def\RSchaptername{cap\'{i}tulo~}% - \def\RSchaptersname{cap\'{i}tulos~}% - \def\RSChaptername{Cap\'{i}tulo~}% - \def\RSChaptersname{Cap\'{i}tulos~}% - \def\RSsectxt{se\c{c}\~{a}o~}% - \def\RSsecstxt{se\c{c}\~{o}es~}% - \def\RSSectxt{Se\c{c}\~{a}o~}% - \def\RSSecstxt{Se\c{c}\~{o}es~}% - \def\RSeqtxt{equa\c{c}\~{a}o~}% - \def\RSeqstxt{equa\c{c}\~{o}es~}% - \def\RSEqtxt{Equa\c{c}\~{a}o~}% - \def\RSEqstxt{Equa\c{c}\~{o}es~}% - \def\RSfigtxt{figura~}% - \def\RSfigstxt{figuras~}% - \def\RSFigtxt{Figura~}% - \def\RSFigstxt{Figuras~}% - \def\RStabtxt{tabela~}% - \def\RStabstxt{tabelas~}% - \def\RSTabtxt{Tabela~}% - \def\RSTabstxt{Tabelas~}% - \def\RSfootntxt{nota de rodap\'{e}~}% - \def\RSfootnstxt{notas de rodap\'{e}~}% - \def\RSFootntxt{Nota de rodap\'{e}~}% - \def\RSFootnstxt{Notas de rodap\'{e}~}% -} -\newcommand\RSbrazilian{% - \def\RSrngtxt{\space a~}% - \def\RSlsttwotxt{\space e~}% - \def\RSlsttxt{\space e~}% - \def\RSparttxt{Parte~}% - \def\RSpartstxt{Partes~}% - \def\RSParttxt{Parte~}% - \def\RSPartstxt{Partes~}% - \def\RSappendixname{ap\^{e}ndice~}% - \def\RSappendicesname{ap\^{e}ndices~}% - \def\RSAppendixname{Ap\^{e}ndice~}% - \def\RSAppendicesname{Ap\^{e}ndices~}% - \def\RSchaptername{cap\'{i}tulo~}% - \def\RSchaptersname{cap\'{i}tulos~}% - \def\RSChaptername{Cap\'{i}tulo~}% - \def\RSChaptersname{Cap\'{i}tulos~}% - \def\RSsectxt{sec\c{c}\~{a}o~}%<--------------- - \def\RSsecstxt{sec\c{c}\~{o}es~}%<------------- - \def\RSSectxt{Sec\c{c}\~{a}o~}%<--------------- - \def\RSSecstxt{Sec\c{c}\~{o}es~}%<------------- - \def\RSeqtxt{equa\c{c}\~{a}o~}% - \def\RSeqstxt{equa\c{c}\~{o}es~}% - \def\RSEqtxt{Equa\c{c}\~{a}o~}% - \def\RSEqstxt{Equa\c{c}\~{o}es~}% - \def\RSfigtxt{figura~}% - \def\RSfigstxt{figuras~}% - \def\RSFigtxt{Figura~}% - \def\RSFigstxt{Figuras~}% - \def\RStabtxt{tabela~}% - \def\RStabstxt{tabelas~}% - \def\RSTabtxt{Tabela~}% - \def\RSTabstxt{Tabelas~}% - \def\RSfootntxt{nota de rodap\'{e}~}% - \def\RSfootnstxt{notas de rodap\'{e}~}% - \def\RSFootntxt{Nota de rodap\'{e}~}% - \def\RSFootnstxt{Notas de rodap\'{e}~}% -} -\DeclareLangOpt{portuges}{\RSportuguese} -\DeclareLangOpt{portuguese}{\RSportuguese} -\DeclareLangOpt{brazilian}{\RSbrazilian} -\DeclareLangOpt{brazil}{\RSbrazilian} -%%-- SWEDISH ------------------------------------ -\newcommand\RSswedish{% - \def\RSrngtxt{\space till~}% - \def\RSlsttwotxt{\space och~}% - \def\RSlsttxt{\space och~}% - \def\RSparttxt{del~}% - \def\RSpartstxt{del~}% - \def\RSParttxt{Del~}% - \def\RSPartstxt{Del~}% - \def\RSappendixname{appendix~}% - \def\RSappendicesname{appendix~}% - \def\RSAppendixname{Appendix~}% - \def\RSAppendicesname{Appendix~}% - \def\RSchaptername{kapitel~}% - \def\RSchaptersname{kapitel~}% - \def\RSChaptername{Kapitel~}% - \def\RSChaptersname{Kapitel~}% - \def\RSsectxt{sektion~}% - \def\RSsecstxt{sektion~}% - \def\RSSectxt{Sektion~}% - \def\RSSecstxt{Sektion~}% - \def\RSeqtxt{ekvation~}% - \def\RSeqstxt{ekvation~}% - \def\RSEqtxt{Ekvation~}% - \def\RSEqstxt{Ekvation~}% - \def\RSfigtxt{figur~}% - \def\RSfigstxt{figur~}% - \def\RSFigtxt{Figur~}% - \def\RSFigstxt{Figur~}% - \def\RStabtxt{tabell~}% - \def\RStabstxt{tabell~}% - \def\RSTabtxt{Tabell~}% - \def\RSTabstxt{Tabell~}% - \def\RSfootntxt{fotnot~}% - \def\RSfootnstxt{fotnot~}% - \def\RSFootntxt{Fotnot~}% - \def\RSFootnstxt{Fotnot~}% -} -\DeclareLangOpt{swedish}{\RSswedish} -%%-- TEMPLATE FOR PARTS ------------------------- - \newref{part}{% - name = \RSparttxt, - names = \RSpartstxt, - Name = \RSPparttxt, - Names = \RSPartstxt, - rngtxt = \RSrngtxt, - lsttxt = \RSlsttxt} -%%-- TEMPLATE FOR CHAPTERS & APPENDIXES --------- -\providecommand*{\p@chapter}{} -\AtBeginDocument{% - \RS@ifundefined{chapter}{}{% - \RS@ifundefined{@chapapp}% - {\renewcommand*{\p@chapter}{\string\chpname{\chaptername}}}%AMS - {\renewcommand*{\p@chapter}{\string\chpname{\@chapapp}}}% Normal - }% - } -\newcommand*{\chpname}[1]{} -\newcommand*{\RS@chpname}[1]{% - \ifRSnameon - \edef\RS@tmpa{#1}% - \edef\RS@tmpb{\appendixname}% - \ifx\RS@tmpa\RS@tmpb\relax% - \ifRSplural - \ifRScapname \RSAppendicesname \else \RSappendicesname \fi - \else - \ifRScapname \RSAppendixname \else \RSappendixname \fi - \fi - \else - \ifRSplural - \ifRScapname \RSChaptersname \else \RSchaptersname \fi - \else - \ifRScapname \RSChaptername \else \RSchaptername \fi - \fi - \fi - \fi} - \newref{chap}{% - refcmd = {{\let\chpname=\RS@chpname\ref{#1}}}, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -%%-- TEMPLATE FOR SECTIONS ---------------------- - \newref{sec}{% - name = \RSsectxt, - names = \RSsecstxt, - Name = \RSSectxt, - Names = \RSSecstxt, - refcmd = {\S\ref{#1}}, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -%%-- TEMPLATE FOR EQUATIONS --------------------- -\newcommand*{\RSeqrefform}[1]{\textup{(\ref{#1})}} -\@ifpackageloaded{amsmath}% - {\let\AMSeqref\eqref - \let\eqref\relax}% - {} -\newref{eq}{% - name = \RSeqtxt, - names = \RSeqstxt, - Name = \RSEqtxt, - Names = \RSEqstxt, - refcmd = \RSeqrefform{#1}, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -\let\RSeqref\eqref -\let\eqref\relax -\AtBeginDocument{% - \@ifpackageloaded{amsmath}% - {\RS@ifundefined{AMSeqref}{\let\AMSeqref\eqref}{}% - \let\RSeqrefform\AMSeqref}% - {}% - \let\eqref=\RSeqref - } -%%-- TEMPLATE FOR FIGURES ----------------------- - \newref{fig}{% - name = \RSfigtxt, - names = \RSfigstxt, - Name = \RSFigtxt, - Names = \RSFigstxt, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -%%-- TEMPLATE FOR TABLES ------------------------ - \newref{tab}{% - name = \RStabtxt, - names = \RStabstxt, - Name = \RSTabtxt, - Names = \RSTabstxt, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -%%-- TEMPLATE FOR FOOTNOTES --------------------- - \newcommand{\RSfnmark}[1]{% - \begingroup - \unrestored@protected@xdef\@thefnmark{\ref{#1}}% - \endgroup - \@footnotemark} - \newref{fn}{% - name = \RSfootntxt, - names = \RSfootnstxt, - Name = \RSFootntxt, - Names = \RSFootnstxt, - refcmd = {\ifRSstar\RSfnmark{#1}\else(\ref{#1})\fi}, - rngtxt = \RSrngtxt, - lsttwotxt = \RSlsttwotxt, - lsttxt = \RSlsttxt} -\endinput -%% -%% End of file `refstyle.cfg'. diff --git a/macros/latex/contrib/refstyle/refstyle.dtx b/macros/latex/contrib/refstyle/refstyle.dtx index c2c3acab8e..1b5b6509d6 100644 --- a/macros/latex/contrib/refstyle/refstyle.dtx +++ b/macros/latex/contrib/refstyle/refstyle.dtx @@ -1,1796 +1,1795 @@ -% \iffalse -% -% refstyle.dtx -% Copyright (C) 2002--2010 Danie Els -% -% ------------------------------------------------------------------- -% The refstyle package -% for the formatting of references -% ------------------------------------------------------------------- -% This work may be distributed and/or modified under the conditions -% of the LaTeX Project Public License, either version 1.3c of this -% license or (at your option) any later version. The latest version -% of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work is "maintained" (as per LPPL maintenance status) -% by Danie Els (dnjels@sun.ac.za). -% -% This package consists of the files: refstyle.dtx -% refconfig.dtx -% refstyle.ins -% and the derived files: refstyle.sty -% refstyle.cfg -% ------------------------------------------------------------------- -% -%<*pkg> -\newcommand*{\RefstyleFileDate}{2010/11/02} -\newcommand*{\RefstyleFileVersion}{v0.5} -% -% -% -%<*driver> -\documentclass[a4paper]{ltxdoc} -\let\RefstyleFileDate\relax -\let\RefstyleFileVersion\relax -\usepackage{amsmath} -\usepackage{amsfonts} - \DeclareMathSymbol{\square} {\mathord}{AMSa}{"03} - \DeclareMathSymbol{\blacksquare}{\mathord}{AMSa}{"04} -\usepackage{calc} -\usepackage{rotating} -\usepackage[rounded]{syntax} -\usepackage{varioref} -\usepackage{refstyle} -\usepackage{color} - \definecolor{hrefcol}{rgb}{0.00,0.00,1.00} -\usepackage[pdfpagelabels]{hyperref} -\hypersetup{breaklinks=true, - linktocpage, - pdfstartview=FitH, - colorlinks = true, - linkcolor = hrefcol, - urlcolor = hrefcol, - menucolor = hrefcol, - filecolor = hrefcol, - citecolor = hrefcol, - linkbordercolor = {0.8 0.8 0.8}, - urlbordercolor = {0.8 0.8 0.8}, - menubordercolor = {0.8 0.8 0.8}, - filebordercolor = {0.8 0.8 0.8}, - runbordercolor = {0.8 0.8 0.8}, - citebordercolor = {0.8 0.8 0.8}, - pdftitle={refstyle}, - pdfauthor={Danie Els}} - -%---- macrocode env changes ------------------------------- - -\setlength{\MacroIndent}{1.5em} - -%---- Scratches ------------------------------------------- - -\newlength{\tdima} -\newsavebox{\tboxa} - -%---- Spacing --------------------------------------------- - -\newlength{\myskip} -\setlength{\myskip}{\topsep} - \addtolength{\myskip}{\parskip} - \addtolength{\myskip}{\partopsep} -\newcommand*{\blankline}{\par\addvspace{\myskip}} -\newlength{\mytab} -\setlength{\mytab}{2\parindent} -\newcommand{\tab}{\hspace*{\mytab}} - -%---- Indented environments ------------------------------- - -\newenvironment{IndentPara}[1][1] - {\list{}{\setlength{\leftmargin}{#1\mytab}% - \setlength{\labelwidth}{0pt}% - \setlength{\labelsep}{0pt}% - \setlength{\itemindent}{\parindent}% - \setlength{\listparindent}{\parindent}% - }\item[]}% - {\endlist} -\newenvironment{IndentParaX}[1][1] - {\list{}{\setlength{\leftmargin}{#1\mytab}% - \setlength{\topsep}{0pt}% - \setlength{\partopsep}{0pt}% - \setlength{\labelwidth}{0pt}% - \setlength{\labelsep}{0pt}% - \setlength{\itemindent}{\parindent}% - \setlength{\listparindent}{\parindent}% - }\item[]}% - {\endlist} -\newcommand\bNP{\begin{IndentParaX}} -\newcommand\eNP{\end{IndentParaX}} -\newenvironment{Ipara}[1][\small]% - {\begin{IndentPara}\noindent#1\ignorespaces}% - {\end{IndentPara}} -\newenvironment{Itabb}[1][\small]% - {\begin{IndentPara}#1\ignorespaces\begin{tabbing}\ignorespaces}% - {\end{tabbing}\end{IndentPara}} - -%---- Ruled & colored minipage ---------------------------- - -\definecolor{shadecolor}{gray}{0.9} - -\newenvironment{fminipage}[1][\linewidth] - {\setlength{\tdima}{#1-2\fboxsep-2\fboxrule}% - \begin{lrbox}{\tboxa}\begin{minipage}{\tdima}}% - {\end{minipage}\end{lrbox}\noindent\fbox{\usebox{\tboxa}}} -\newenvironment{cminipage}[1][\linewidth] - {\setlength{\tdima}{#1-2\fboxsep-2\fboxrule}% - \begin{lrbox}{\tboxa}\begin{minipage}{\tdima}}% - {\end{minipage}\end{lrbox}% - \noindent\colorbox{shadecolor}{\usebox{\tboxa}}} - -%---- Additional documenting commands --------------------- - -\def\lcbrack{\symbol{`\{}} -\def\rcbrack{\symbol{`\}}} -\makeatletter -\def\meta@font@select{\normalfont\slshape} -\makeatother -\DeclareRobustCommand{\cmeta}[1]{%<- \ - \texttt{\bslash}\meta{#1}} -\DeclareRobustCommand{\cmarg}[1]{%<- {\} - \texttt{\lcbrack}\cmeta{#1}\texttt{\rcbrack}} -\DeclareRobustCommand{\coarg}[1]{%<- [\] - \texttt{[}\cmeta{#1}\texttt{]}} -\DeclareRobustCommand{\argcmd}[2]{%<- \yyy - \cmeta{#1}\texttt{#2}} -\newcommand{\rmeta}[3][]{% - \texttt{\lcbrack#1}\meta{#2}\texttt{#3\rcbrack}} -\newcommand{\refmeta}[3][]{\cmd{\brref}\rmeta[#1]{#2}{#3}} - -\newcommand*{\file}[1]{\texttt{#1}} -\newcommand*{\pkg}[1]{\textsf{#1}} -\newcommand*{\env}[1]{\texttt{#1}} -\newcommand*{\opt}[1]{\texorpdfstring{\normalfont\texttt{\slshape#1}}{#1}} -\newcommand*{\RS}{\pkg{refstyle}} -\newcommand*{\RScfg}{\file{refstyle.cfg}} -\newcommand*{\rtp}{type} -\newcommand*{\Rtp}{Type} -\newcommand*{\okeylst}{\oarg{key\_lst}} -\newcommand*{\mkeylst}{\marg{key\_lst}} - -%---- Special eq tag command ------------------------------ - -\def\spestag#1{\stepcounter{equation}% - \gdef\tagextra##1{% - \makebox[0pt][l]{\small\quad% - \cmd{\eqlabel}\texttt{\lcbrack##1\rcbrack}}% - \gdef\tagextra####1{}}% - \tag{\theequation\tagextra{#1}}\eqlabel{#1}} - -%---- other stuff ----------------------------------------- - -\newcommand*{\ArTab}{\>\quad$\rightarrow$\quad} - -%---------------------------------------------------------- - -\EnableCrossrefs -\CodelineIndex -\RecordChanges -\setlength\hfuzz{15pt} -\hbadness=7000 -\begin{document} - \DocInput{refstyle.dtx} -\end{document} - -% -% \fi -% -% \CheckSum{552} -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% \changes{v0.0}{2002/12/01}{Initial version} -% \changes{v0.1}{2003/04/01}{First stable version} -% \changes{v0.2}{2003/07/30}{First updated version} -% \changes{v0.3}{2006/09/09}{Documentation update} -% \changes{v0.4}{2010/10/21}{Documentation update} -% \changes{v0.4}{2010/10/21}{Add \texttt{nokeyprefix} option} -% \changes{v0.5}{2010/11/02}{Documentation update} -% -% \DoNotIndex{ -% \@backslashchar, \@carcube, \@ehc, \@empty, \@firstoftwo, -% \@ifnextchar, \@ifpackageloaded, \@ifstar, \@ifundefined, \@nil, -% \@qend, \@qrelax, \@secondoftwo, \@tempa, \@undefined, -% \AtEndOfPackage, \begingroup, \csname, \CurrentOption, -% \DeclareOption, \def, \edef, \else, \endcsname, \endgroup, -% \expandafter, \fi, \gdef, \iffalse, \ifx, \InputIfFileExists, -% \let, \long, \lowercase, \MakeLowercase, \mbox, \MessageBreak, -% \NeedsTeXFormat, \newcommand, \newif, \noexpand, \PackageError, \PackageInfo, -% \PassOptionsToPackage, \RS@pkgname, \ProcessOptions, \protect, -% \providecommand, \ProvidesPackage, \relax, \renewcommand, -% \RequirePackage, \reserved@a, \reserved@b, \RS@tmpa, -% \RS@tmpb, \S, \RS@setkeys, \space, \string, \textsc, \textup, -% \unrestored@protected@xdef, \unskip, \uppercase, -% \zap@space} -% -%^^A==== Titling ========================================== -% \GetFileInfo{refstyle.sty} -% \title{\vspace*{-1cm} -% The \RS\ package\thanks{This file has version number -% \fileversion, last revised -% \filedate.}} -% \author{Danie Els\\[1ex] -% \small Department of Mechanical and Mechatronics Engineering\\ -% \small University of Stellenbosch, South Africa.\\ -% \normalsize e-mail: \texttt{\href{mailto:dnjels@sun.ac.za}% -% {dnjels@sun.ac.za}}} -% \date{\filedate} -% \maketitle -% \begin{center} -% \textbf{Overview of the \RS\ package} -% \end{center} -% \noindent -% When writing complex documents, often a large number of commands -% for different type of references are defined, for example: -% \begin{Ipara} -% |\newcommand*{\eqref}[1]{eqn~(\ref{#1})}|\\ -% |\newcommand*{\Eqref}[1]{Equation~(\ref{#1})}| -% \end{Ipara} -% The \RS\ package was developed to automate this process. The -% package provides a user interface to define sets of reference -% and label commands for each referable object such as an equation -% or a table, etc. When you declare, for example, a set of -% reference commands to an equation: -% \begin{Ipara} -% \cmd{\newref}|{eq}|\mkeylst\ -% \end{Ipara} -% \noindent -% a series of commands of the format \cmd{\eq...} and \cmd{\Eq...} -% are produced. The configuration options are set with a list of -% key-values. Prefixes, inserts and other options for all the -% different perturbations such as capitalized first letters, -% singular and plural from, etc.\ can be defined. The -% configuration can be changed temporarily with an optional list -% of key-values when the commands are used. A direct interface to -% the \pkg{varioref} package is also provided. -% This enables compact reference formats: -% \begin{Itabb} -% \hspace{14em}\=\kill -% |\eqref{e1} ...| \ArTab\eqref{e1} ...\\ -% |\Eqref[vref]{e1} ...| \ArTab\Eqref[vref]{e1} ...\\ -% |\eqref[s]{e1} and ...| \ArTab\eqref[s]{e1} and ...\\ -% |\eqref[name=eq.~]{e1} ...| \ArTab\eqref[name=eq.~]{e1} ... -% \end{Itabb} -% A range or a list of references can also be referred to in a -% consistent way. -% \begin{Itabb} -% \hspace{14em}\=\kill -% |\eqref{e1,e2,e3} ...| \ArTab\eqref{e1,e2,e3} ...\\ -% |\eqrangeref[vref]{e1}{e3} ...| \ArTab\eqrangeref[vref]{e1}{e3} ... -% \end{Itabb} -% -% Templates for the different reference types and different -% languages can be loaded with a configuring file. -% -% The package is aimed at large projects, enabling a consistent -% way of producing references throughout a project. Enough -% flexibility is provided to make local changes to a single -% reference. For large projects such as a series of books or a -% multi volume thesis, written as freestanding documents, a -% facility is provided to interface to the \pkg{xr} package for -% external document references. -% -% \medskip -% -% \begin{center} -% \begin{fminipage}[.6\textwidth] -% See also \pkg{refconfig.pdf} for setup and examples. -% \end{fminipage} -% \end{center} - -% \clearpage -% -% \tableofcontents -% \clearpage -% -% -% \section{Loading the \RS\ Package} -% -% \subsection{Document preamble} -% -% The \RS\ package is loaded in the preamble of the document: -% \begin{enumerate} -% \item[(a)] With a config file with \pkg{babel} language support -% \begin{Ipara} -% |\usepackage{varioref}[2001/09/04]%|~ -% ${\leftarrow}$ To use the \opt{vref} option\\ -% |\usepackage{refstyle}| -% \end{Ipara} -% When the package is loaded, it first searchers for a local user defined -% configuration file \file{refstyle.def}. If it is not available it -% looks for the global default config file \RScfg\ provided with this package. -% These configuration files are loaded before the package options are precess. -% It can therefore contain option commands using globally defined language -% options and can interface to \pkg{babel} for language changes. The macro -% \begin{Ipara} -% |\DeclareLangOpt{|\meta{language}|}{|\meta{definitions}|}| -% \end{Ipara} -% is provided to declare the package option \meta{language} and add -% \meta{definitions} to the |\extras|\meta{language} token for \pkg{babel}. -% It can only be used inside \RScfg\ or \file{refstyle.def}. -% -% \item[(b)] -% Or with an existing configuration with language support and addition -% of your own extensions -% \begin{Ipara} -% |\documentclass[norwegian]{article}|\\ -% |\usepackage{babel} |\\ -% |\usepackage{refstyle} |\\ -% |\RSaddto{\RSnorwegian}{% |\\ -% | \def\RSthmtxt{teorem~}% |\\ -% | \def\RSthmstxt{teorem~}% |\\ -% | \def\RSThmtxt{Teorem~}% |\\ -% | \def\RSThmstxt{Teorem~}} |\\ -% |\newref{thm}{ |\\ -% | name = \RSthmtxt, |\\ -% | names = \RSthmstxt, |\\ -% | Name = \RSThmtxt, |\\ -% | Names = \RSThmstxt, |\\ -% | rngtxt = \RSrngtxt, |\\ -% | lsttxt = \RSlsttxt, |\\ -% | lsttwotxt = \RSlsttwotxt} | -% \end{Ipara} -% -% \item[(c)] -% Or without any configuration file, but by declaring your own -% reference commands in the preamble. -% \begin{Itabb} -% \cmd{\usepackage}|[noconfig]{refstyle}|\\ -% \qquad\cmd{\newref}\marg{reftype$_{\,1}$}\mkeylst \\ -% \qquad\cmd{\newref}\marg{reftype$_{\,2}$}\mkeylst\\ -% \tab$\vdots$ -% \end{Itabb} -% -% \item[(d)] -% Or with your own configuration file (without babel language support) for a specific project: -% \begin{Itabb} -% |\usepackage[noconfig]{refstyle}|\\ -% |\input{thisproject.ref}| -% \end{Itabb} -% -% \end{enumerate} -% -% \subsection{Package options} -% -% \begin{description} -% \item[\opt{noconfig}] Neither of the user supplied \file{refstyle.def} config -% file or \file{refstyle.cfg} the config file supplied with this package -% are loaded. The user must declare his or her own definitions and templates. -% Note that these definitions are not passed on to \pkg{babel}'s language -% changing mechanisms. -% -% \item[\opt{nokeyprefix}] Custom labeling commands \argcmd{\rtp}{label} are generated -% by \pkg{refstyle} for every \meta{type} definition. It defaults to -% \begin{Itabb} -% \hspace{5em}\=hspace{5em}\=\kill -% \argcmd{\rtp}{label}|{abc}| -% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc} -% \end{Itabb} -% With the \opt{nokeyprefix} option, the prefix is turned of and the -% labeling commands defaults to -% \begin{Itabb} -% \hspace{5em}\=hspace{5em}\=\kill -% \argcmd{\rtp}{label}|{abc}| -% \>\>~ $\rightarrow$ \cmd{\label}|{abc}| -% \end{Itabb} -% This is useful for old documents with existing labeling commands or -% where the user prefer not to use the \argcmd{\rtp}{label} commands. -% -% -% \end{description} -% -% -% -% -% \subsection{Companion packages} -% -% The \RS\ packages is intended for large projects. It is therefore -% important that it works together with, or has direct interfaces -% to the following packages: -% \begin{description} -% \item[\pkg{varioref}:\footnotemark] -% \footnotetext{\pkg{varioref} v1.3c, 2001/09/04 or later, -% because the starred versions of the commands -% are used.} -% Produce sophisticated page and page range references. -% -% \item[\pkg{hyperref}:\footnotemark] -% \footnotetext{\pkg{hyperref} v6.72r, 2002/05/27 or later, -% where a bug for interference with -% \pkg{varioref} was fixed.} -% To establish hyper links between the references and the -% labels. -% -% \item[\pkg{xr, xr-hyper}:] -% To establish references to external documents. -% -% \item[\pkg{showkeys}:] -% To show all the labels and references. This is very useful -% to find labels in large documents. -% \end{description} -% -% \clearpage -% \section{User Interface} -% -% The \RS\ package has one configuring command, \DescribeMacro{\newref} -% \cmd{\newref}, that internally creates a series of label and -% reference commands: -% \blankline -% -% \begin{cminipage}[\linewidth] -% \newcommand*{\crsi}{\smash{\rule[0pt]{.4pt}{1.25em}\rule[.5ex]{1.5em}{.4pt}}}^^A -% \newcommand*{\crsl}{\smash{\rule[.5ex]{.4pt}{1.5em}\rule[.5ex]{1.5em}{.4pt}}}^^A -% \begin{Itabb} -% \hspace*{2em}\=\hspace{2em}\=\hspace{10em}\=\kill -% \cmd{\newref}\marg{\rtp}\mkeylst\tab\mbox{}\\[.75ex] -% \>\crsi \>\argcmd{{\rtp}}{key} \> Reference argument prefix \\[.75ex] -% \>\crsl \>\argcmd{{\rtp}}{label} \> Custom label \\[.75ex] -% \>\crsl \>\argcmd{{\rtp}}{ref} \> In text reference \\[.75ex] -% \>\crsl \>\argcmd{{\Rtp}}{ref} \> Start of sentence reference \\[.75ex] -% \>\crsl \>\argcmd{{\rtp}}{rangeref} \> In text range reference \\[.75ex] -% \>\crsl \>\argcmd{{\Rtp}}{rangeref} \> Start of sentence range reference\quad\mbox{}\\[.75ex] -% \>\crsl \>\argcmd{{\rtp}}{pageref} \> Page reference -% \end{Itabb} -% \end{cminipage} -% \blankline -% -% \noindent -% All the \cmeta{\rtp}... commands, excluding \argcmd{{\rtp}}{key} -% and \argcmd{{\rtp}}{label} are robust. -% All the options for the referencing commands are set with a -% key-value list. \Tabref[vref=far]{refopt} gives a full list of all the -% key-values and defaults. -% -% The \RS\ package do not redefine any internal \LaTeX\ commands and -% depends only on the \cmd{\label}, \cmd{\ref}, \cmd{\pageref} and -% the \pkg{varioref} commands. -% The internally defined commands do not overwrite any -% existing command with the same name, and an error results if a command -% already exists. The exception is commands declared with a previous -% \cmd{\newref} call, can be redefined by calling \cmd{\newref} again -% with a new set of parameter. -% If the \pkg{amsmath} package is loaded, and you define -% \cmd{\newref}|{eq}| for references to equations, you need to -% undefine \cmd{\eqref} before issuing \cmd{\newref} by -% \begin{Ipara} -% \cmd{\let}\cmd{\eqref}|=|\cmd{\relax} -% \end{Ipara} -% -% -% \section{Command Descriptions} -% -% The structure of the label and reference commands is given by the -% syntax diagrams that follows. Examples are included for references -% to equations, defined according to the template in -% \RScfg\ with the -% \cmd{\newref}|{eq}|\mkeylst. See also \secref{keyvals} for -% explanations of the key-values. -% -% \subsection{The reference key} -% -% \begin{cminipage}[\linewidth] -% \begin{syntdiag} -% \tok{\argcmd{\rtp}{key}} -% \end{syntdiag} -% \end{cminipage} -% \blankline -% \noindent -% The \argcmd{\rtp}{key} command returns the prefix added to the -% argument of the label and the reference commands, for example: -% -% \begin{Itabb} -% \hspace{10em}\=hspace{5em}\=\kill -% \cmd{\newref}\marg{\rtp}|{}| -% \>\>\argcmd{\rtp}{key} $\rightarrow$ \meta{type\,:\,}\\ -% \cmd{\newref}\marg{\rtp}|{key=xxx-}| -% \>\>\argcmd{\rtp}{key} $\rightarrow$ |xxx-| -% \end{Itabb} -% -% \noindent -% The \argcmd{\rtp}{key} command is not a general command, but was -% provided only as a link to the standard \LaTeX{} \cmd{\ref} and -% \cmd{\pageref} commands: -% -% \begin{Itabb} -% \hspace{10em}\=hspace{5em}\=\kill -% \cmd{\label}|{|\argcmd{\rtp}{key}| abc}| -% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc}\\ -% \cmd{\ref}|{|\argcmd{\rtp}{key}| abc}| -% \>\>~ $\rightarrow$ \cmd{\ref}\rmeta{type\,:\,}{abc} -% \end{Itabb} -% Note if the the \opt{nokeyprefix} option is active then the \argcmd{\rtp}{key} -% is empty. -% -% \blankline -% \noindent -% \textbf{\slshape Examples:} equations -% with \cmd{\newref}|{eq}|\mkeylst: -% -% \begin{Itabb} -% \hspace*{18em}\=\kill -% |\eqkey| \> \eqkey \\ -% |in eq.~\ref{\eqkey e1} ...| \>in eq.~\ref{\eqkey e1} ... \\ -% |on page \pageref{\eqkey e1} ...|\>on page \pageref{\eqkey e1} ... \\ -% |\vpageref*{\eqkey e1} ... | \>\vpageref*{\eqkey e1} ... -% \end{Itabb} -% -% \subsection{Reference label} -% -% \begin{cminipage}[\linewidth] -% \begin{syntdiag} -% \tok{\argcmd{\rtp}{label}"{""}"} -% \end{syntdiag} -% \end{cminipage} -% \blankline -% -% \noindent -% The command \argcmd{\rtp}{label} prefix the reference -% string in the \cmd{\label} with the string \meta{type\,:\,}, or its -% redefinition with the \opt{key} option. -% -% \begin{Itabb} -% \hspace{10em}\=hspace{5em}\=\kill -% \argcmd{\rtp}{label}|{abc}| -% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc} -% \end{Itabb} -% \blankline -% -% \noindent -% \textbf{\slshape Examples:} -% -% \begingroup -% \begin{Ipara} -% Let $z = x+\mathrm{i} y$ and $\alpha = \beta + \mathrm{i} -% \gamma$, with $\mathrm{i}^2 = -1$, then -% \begin{align} -% &\mathrm{e}^z = \mathrm{e}^x \left(\cos y + \mathrm{i} \sin y \right) -% \spestag{e1}\\ -% &z^\alpha = \mathrm{e}^{\alpha \ln z} -% \spestag{e2}\\ -% \intertext{\Eqref{e1,e2} lead to the following interesting results:} -% &\mathrm{e}^{\mathrm{i} \pi} + 1 = 0 \spestag{e3}\\ -% &\mathrm{i}^\mathrm{i} = \mathrm{e}^{-\pi/2}\spestag{e4} -% \end{align} -% \end{Ipara} -% \endgroup -% -% -% \subsection{Reference commands} -% -% \begin{cminipage}[1.05\textwidth] -% \begin{syntdiag} -% \tok{\argcmd{\rtp}{ref}} -% \begin{stack}\\ \tok{$\ast$} \end{stack} -% \begin{stack}\\ \tok{\okeylst} \end{stack} -% "{" -% \begin{rep} \tok{} \\ ~,~ \end{rep} -% "}" -% \end{syntdiag} -% \end{cminipage} -% \smallskip -% -% \begin{cminipage}[1.05\textwidth] -% \begin{syntdiag} -% \tok{\argcmd{\Rtp}{ref}} -% \begin{stack}\\ \tok{$\ast$} \end{stack} -% \begin{stack}\\ \tok{\okeylst} \end{stack} -% \tok{"{"} -% \begin{rep} \tok{} \\ ~,~ \end{rep} -% \tok{"}"} -% \end{syntdiag} -% \end{cminipage} -% \blankline -% \noindent -% The |*| optional form of the \argcmd{\rtp}{ref} and -% \argcmd{\Rtp}{ref} commands eliminates the -% name prefix. The |[s]| optional key-value argument is for the -% plural form of the name prefix. -% \blankline -% -% \noindent -% \textbf{\slshape Examples:} -% \begin{Itabb} -% \hspace*{21em}\=\kill -% |in \eqref{e1} ...| \>in \eqref{e1} ... \\ -% |in \eqref[s]{e1}--\eqref*{e4} ...|\>in \eqref[s]{e1}--\eqref*{e4} ...\\ -% |in \eqref[name=eq.~]{e2} ...| \>in \eqref[name=eq.~]{e2} ... -% \end{Itabb} -% \pagebreak[1] -% \noindent -% A list of references can be used: -% \begin{Itabb} -% \hspace*{21em}\=\kill -% |in \eqref{e1,e2} ...| \>in \eqref{e1,e2} ... \\ -% |in \eqref{e1,e2,e3} ...| \>in \eqref{e1,e2,e3} ... \\ -% |in \eqref[lsttxt={, and~}]{e1,e2,e3} ...| \>in \eqref[lsttxt={, and~}]{e1,e2,e3} ... -% \end{Itabb} -% \pagebreak[2] -% The reference to the page can be included with the \opt{vref} or \opt{vref=far} -% options that activates the \pkg{varioref} reference. -% \begin{Itabb} -% \hspace*{18em}\=\kill -% |in \eqref[vref]{e1} ...| \>in \eqref[vref]{e1} ...\\ -% |in \eqref[vref=far]{e1} ...| \>in \eqref[vref=far]{e1} ... -% \end{Itabb} -% The \argcmd{\Rtp}{ref} command is identical to the -% \argcmd{\rtp}{ref} command except that it uses the \opt{Name} and -% \opt{Names} key-value options. -% \begin{Itabb} -% \hspace*{18em}\=\kill -% |\Eqref{e1} is ...| \>\Eqref{e1} is ... \\ -% |\Eqref{e1,e2} are ...| \>\Eqref{e1,e2} are ... \\ -% |\Eqref[lsttxt={\ or~}]{e1,e2,e3}| \>\Eqref[lsttxt={\ or~}]{e1,e2,e3} -% \end{Itabb} -% \noindent -% References to external documents can be added with the \opt{xr} -% option. Please read the documentation of the \pkg{xr} package. -% -% \begin{Itabb} -% \hspace{10em}\=hspace{5em}\=\kill -% \cmd{\eqref}|[|\opt{xr}|=A-]{xyz}| \> \>$\rightarrow$~ -% |equation~\ref{A-eq:xyz}| -% \end{Itabb} -% -% -% \subsection{Range reference commands} -% -% \begin{cminipage}[\linewidth] -% \begin{syntdiag} -% \tok{\argcmd{\rtp}{rangeref}} -% \begin{stack}\\ \tok{$\ast$} \end{stack} -% \begin{stack}\\ \tok{\okeylst} \end{stack} -% \tok{"{"$_1$"}{"$_2$"}"} -% \end{syntdiag} -% \end{cminipage} -% \smallskip -% -% \begin{cminipage}[\linewidth] -% \begin{syntdiag} -% \tok{\argcmd{\Rtp}{rangeref}} -% \begin{stack}\\ \tok{$\ast$} \end{stack} -% \begin{stack}\\ \tok{\okeylst} \end{stack} -% \tok{"{"$_1$"}{"$_2$"}"} -% \end{syntdiag} -% \end{cminipage} -% \blankline -% -% \noindent -% The \argcmd{\rtp}{rangeref} and \argcmd{\Rtp}{rangeref} commands -% return a range of references and take two arguments. The |*| -% optional form again eliminates the name prefix. -% \blankline -% -% \noindent -% \textbf{\slshape Examples:} -% \begin{Itabb} -% \hspace*{19em}\=\kill -% |in \eqrangeref{e1}{e4} ...| \>in \eqrangeref{e1}{e4} ... \\ -% |... and \eqrangeref*{e1}{e4} ...| \>... and \eqrangeref*{e1}{e4} ... \\ -% |\Eqrangeref{e1}{e4} are ...| \>\Eqrangeref{e1}{e4} are ... \\ -% |\Eqrangeref[vref,rngtxt=--]{e1}{e4}| \>\Eqrangeref[rngtxt=--,vref]{e1}{e4} -% \end{Itabb} -% -% -% \subsection{Page reference command}\seclabel{PRefCmds} -% -% \begin{cminipage} -% \begin{syntdiag} -% \tok{\argcmd{\rtp}{pageref}} -% \begin{stack}\\ \tok{\okeylst} \end{stack} -% \tok{"{""}"} -% \end{syntdiag} -% \end{cminipage} -% \blankline -% \noindent -% The \argcmd{\rtp}{pageref} commands returns the page number of a -% reference. -% \blankline -% -% \noindent -% \textbf{\slshape Examples:} -% \begin{Itabb} -% \hspace*{18em}\=\kill -% |it is on page \eqpageref{e1} ...| \>it is on page \eqpageref{e1} ...\\ -% |it is \eqpageref[vref]{e1} ...| \>it is \eqpageref[vref]{e1} ... -% \end{Itabb} -% -% -%^^A================================================================= -% \begin{table} -% \newcommand*{\Q}{\ensuremath{\blacksquare}}^^A -% \newcommand*{\X}{\ensuremath{\square}}^^A -% \setlength{\fboxsep}{1em}^^A -% \centering -% \caption[The available options and key-value parameters]^^A -% {The available options and key-value parameters for -% the label and reference commands of the \RS\ package.} -% \tablabel{refopt} -% \blankline -% \begin{cminipage}[.9\textwidth] -% \renewcommand{\thempfootnote}{\fnsymbol{mpfootnote}} -% \renewcommand{\footnoterule}{} -% \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}llccccccc@{}} -% & & \multicolumn{7}{c}{Commands\footnote{^^A -% The commands are obtained by calling the configuring command -% \cmd{\newref} and setting the default key-values. The -% active key-values can be changed temporarily inside the -% commands.}} \\ -% \cline{3-9} -% Parameter & Default & -% \begin{turn}{90}\argcmd{{\rtp}}{key}~ \end{turn}& -% \begin{turn}{90}\argcmd{{\rtp}}{label}~ \end{turn}& -% \begin{turn}{90}\argcmd{{\rtp}}{ref}~ \end{turn}& -% \begin{turn}{90}\argcmd{{\Rtp}}{ref}~ \end{turn}& -% \begin{turn}{90}\argcmd{{\rtp}}{rangeref}~ \end{turn}& -% \begin{turn}{90}\argcmd{{\Rtp}}{rangeref}~ \end{turn}& -% \begin{turn}{90}\argcmd{{\rtp}}{pageref}~ \end{turn}\\ -% \hline -% \noalign{\smallskip} -% ~$\ast$ & &\X &\X &\Q &\Q &\Q &\Q &\X\\ -% \okeylst & &\X &\X &\Q &\Q &\Q &\Q &\Q\\[1ex] -% \opt{key} &|={|\meta{\rtp:}|},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\ -% \opt{s} & |={true}|\footnote{^^A -% Options defaults to \opt{true} but is initialized -% as \opt{false}. The \argcmd{{\rtp}}{ref}\texttt{[s]}\marg{lbl} -% command results in the plural: \opt{names}. -% The same principle is also valid for the \opt{vref} -% option.\fnlabel{b}}|,| -% &\X &\X &\Q &\Q &\X &\X &\X\\ -% \opt{vref} &|={true}|\fnref*{b}|,| -% &\X &\X &\Q &\Q &\Q &\Q &\Q\\ -% \opt{xr} &|={},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\[1ex] -% \opt{name} &|={},| &\X &\X &\Q &\X &\X &\X &\X\\ -% \opt{names}\footnote{^^A -% Option depends on the selection of the \texttt{s=true/false} -% optional key-value for singular or plural.\fnlabel{c}} -% &|={},| &\X &\X &\Q &\X &\Q &\X &\X\\ -% \opt{Name} &|={},| &\X &\X &\X &\Q &\X &\X &\X\\ -% \opt{Names}\fnref*{c} -% &|={},| &\X &\X &\X &\Q &\X &\Q &\X\\ -% \opt{lsttwotxt} &|={\space and~},| &\X &\X &\Q &\Q &\X &\X &\X\\ -% \opt{lsttxt} &|={\space and~},| &\X &\X &\Q &\Q &\X &\X &\X\\ -% \opt{rngtxt} &|={\space to~},| &\X &\X &\X &\X &\Q &\Q &\X\\[1ex] -% \opt{refcmd} &|=\ref{#1},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\ -% -% \hline -% \noalign{\smallskip} -% -% \footnotesize \Q\ -- \makebox[0pt][l]{\footnotesize Available}\\ -% \footnotesize \X\ -- \makebox[0pt][l]{Not available} -% \end{tabular*} -% \end{cminipage} -% \end{table} -%^^A================================================================= -% -% -% -% \clearpage -% \section{\pkg{Keyval} Optional Arguments}\seclabel{keyvals} -% -% Al the options for the referencing commands are set with a key-value -% list. \Tabref[vref]{refopt} gives a full list of all the key-values and -% defaults. The options can also be changed locally with the -% \okeylst\ optional arguments. -% -% -% \subsection{Identifier: \opt{key}} -% -% The \opt{key} key-value is the prefix to the reference label -% of the \cmd{\ref} and \cmd{\pageref} commands. -% The default is \opt{key=}\meta{type\,:\,}. -% With the default \RScfg: -% -% \begin{Itabb} -% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill -% \cmd{\newref}|{tab}{...}|\\[1ex] -% \>|\tablabel{abc}| -% \>~ $\rightarrow$ |\label{tab:abc}|\\ -% \>|\tabref{abc}| -% \>~ $\rightarrow$ |table~\ref{tab:abc}|\\[1ex] -% \cmd{\newref}|{tab}{key=xxx-,...}|\\[1ex] -% \>|\tablabel{abc}| -% \>~ $\rightarrow$ |\label{xxx-abc}|\\ -% \>|\tabref{abc}| -% \>~ $\rightarrow$ |table~\ref{xxx-abc}| -% \end{Itabb} -% For existing documents containing labels such as |\label{tab:xx}|, -% you can use the \opt{nokeyprefix} option which defines \opt{key}|={}|. The -% normal \cmd{\label} command can then be used and the reference -% commands defaults to -% \begin{Itabb} -% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill -% \>\cmd{\label}|{tab:xx}| \\ -% \>|\tabref{tab:xx}| \>~ $\rightarrow$ |table~\ref{tab:xx}| -% \end{Itabb} -% -% -% \subsection{Plural form: \opt{s}} -% -% The \opt{s} conditional option (\texttt{true/false}) switches the -% singular/plural form of the reference on and off. The default is -% \opt{s}\texttt{=true}, but it is initialized to \texttt{false}. -% \begin{Itabb} -% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill -% |\tabref{abc}| -% \>\>~ $\rightarrow$ |table~\ref{tab:abc}|\\ -% |\tabref[s]{abc}| -% \>\>~ $\rightarrow$ |tables~\ref{tab:abc}| -% \end{Itabb} -% -% -% \subsection{Extended reference: \opt{vref}} -% -% The \opt{vref} conditional option (\texttt{true/far/false}) switches the -% \pkg{varioref} page referencing on and off. The default is -% \opt{vref}\texttt{=true}, but it is initialized to \texttt{false}. -% -% \begin{Itabb} -% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill -% |\tabref{abc}| -% \>\>~ $\rightarrow$ |table~\ref{tab:abc}|\\ -% |\tabref[vref]{abc}| -% \>\>~ $\rightarrow$ |table~\ref{tab:abc}| -% |\vpageref[\unskip]{tab:abc}|\\ -% |\tabref[vref=far]{abc}|^^A -% \>\>~ $\rightarrow$ |table~\ref{tab:abc}| -% |\reftextfaraway{tab:abc}| -% \end{Itabb} -% -% -% \subsection{External interfaces: \opt{xr}} -% -% The \opt{xr} option is for references to external documents. -% It inserts a prefix in the reference label, compatible with the -% \pkg{xr} package. The default is \opt{xr}|={}|. -% -% External document can be defined in the preamble with the -% \pkg{xr} or \pkg{xr-hyper} packages: -% \begin{Ipara} -% \cmd{\usepackage}|{xr}|\\ -% \cmd{\externaldocument}\oarg{xr\_key}\marg{filename} -% \end{Ipara} -% -% \noindent -% If, for example, an external document defined with -% \meta{xr\_key}\texttt{=\{A-\}}, uses an identical setup (e.g.\ the same -% \RScfg), then it can be referenced with -% -% \begin{Itabb} -% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill -% |\tabref[xr=A-]{abc}| -% \>\>~ $\rightarrow$ |table~\ref{A-tab:abc}| -% \end{Itabb} -% \noindent or otherwise -% \begin{Itabb} -% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill -% |\tabref[xr=A-,key=]{abc}| -% \>\>~ $\rightarrow$ |table~\ref{A-abc}| -% \end{Itabb} -% -% -% \subsection{Language parameters: \opt{name}, \opt{names}, -% \opt{Name}, \opt{Names}, \opt{rngtxt}, \opt{lsttwotxt}, \opt{lsttxt}} -% \seclabel{langopts} -% -% This key-values contain the text prefixes and insertions. -% Every house style or user has his or her own preference for naming the reference types, -% therefore are there no defaults provided. -% -% \begin{Itabb} -% \hspace*{1.5cm}\=\hspace{7cm}\=\kill -% \opt{name} \> ---~Inside sentence reference prefix (singular) -% \> default=|{}|\\ -% \opt{names}\> ---~Inside sentence reference prefix (plural) -% \> default=|{}|\\ -% \opt{Name} \> ---~First word reference prefix (singular) -% \> default=|{}|\\ -% \opt{Names}\> ---~First word reference prefix (plural) -% \> default=|{}|\\ -% \opt{rngtxt}\> ---~Range of references -% \> default=|{\ to~}|\\ -% \opt{lsttwotxt}\> ---~List of references (two) -% \> default=|{\ and~}|\\ -% \opt{lsttxt}\> ---~List of references (more than two) -% \> default=|{\ and~}| -% \end{Itabb} -% \noindent -% Good typographic style manuals recommend the minimum use of -% capital letters and punctuation that breaks the flow of a sentence -% or paragraph. For abbreviations, Bringhurst\cite{Bring1996} -% recommends the Oxford house style: Use a period only when the word -% stops prematurely. The period is omitted if the abbreviation -% begins with the first letter and end with the last. As an example -% for equations, use eq.~(1) or eqn~(1). -% A good guideline is not to abbreviate any reference type names. -% If a sentence starts with a -% reference then the type name must always be written in full. -% A typical example for references to a table is: -% \begin{Ipara} -% \opt{name}| ={table~}, |\opt{names}| ={tables~},|\\ -% \opt{Name}| ={Table~}, |\opt{Names}| ={Tables~},|\\ -% \opt{rngtxt}|={\ to~}, |\opt{lsttxt}|={, and~}, |\opt{lsttwotxt}|={\ and~},| -% \end{Ipara} -% Note the hardspace after the text. It is needed to keep the text -% and the reference together on the same line. -% -% The \RS\ configuration file can be setup to interface with \pkg{babel} -% for different languages or for automatic language changes inside a -% document. The language specific key-values can be added to the -% \pkg{babel} hook |\extras|\meta{language}. The command -% \DescribeMacro{\DeclareLangOpt}\cmd{\DeclareLangOpt}\footnote{^^A -% Only for use in \RScfg\ the default config file} -% is provided to supply a \meta{language} option to the package -% and to add the option contents to |\extras|\meta{language}. The -% default config file contains the following lines for equations: -% \begin{Ipara} -% |\newcommand\RSenglish{% |\\ -% | \def\RSeqtxt{equation~}% |\\ -% | \def\RSeqstxt{equations~}%|\\ -% | \def\RSEqtxt{Equation~}% |\\ -% | \def\RSEqstxt{Equations~}%|\\ -% | : |\\ -% | } |\\ -% |\DeclareLangOpt{english}{\RSenglish}| -% \end{Ipara} -% \DescribeMacro{\RSaddto}or manually with the \cmd{\RSaddto} command -% \begin{Ipara} -% |\RSaddto{\extrasenglish}{\RSenglish}| -% \end{Ipara} -% The key-value options for language specific options -% are then set as: -% \begin{Ipara} -% |\newref{eq}{% |\\ -% | name = \RSeqtxt, |\\ -% | names = \RSeqstxt,|\\ -% | Name = \RSEqtxt, |\\ -% | Names = \RSEqstxt,|\\ -% | : |\\ -% | } | -% \end{Ipara} -% -% \noindent\LaTeX{}/\pkg{babel} provides some language specific -% names that can be utilized. -% -% \begin{Ipara} -% |\chaptername \appendixname|\\ -% |\figurename \tablename|\\ -% |\partname \pagename| -% \end{Ipara} -% -% To setup a multilingual document with \pkg{babel}, -% \emph{always} make the language options global so that other -% language compliant packages can detect it. -% A typical setup for an Afrikaans/English document would be: -% {\makeatletter\def\meta@font@select{\normalfont\ttfamily\slshape} -% \begin{Ipara} -% |\documentclass[UKenglish,afrikaans,|\meta{options}|]{|\meta{LaTeX\_class}|}|\\ -% |\usepackage[T1]{fontenc}%..|\texttt{\slshape hyphenation of words with accents}\\ -% |\usepackage{babel}%........|\texttt{\slshape language def's}\\ -% |\usepackage{varioref}%.....|\texttt{\slshape for \opt{vref} option}\\ -% |\usepackage{refstyle}| -% \end{Ipara}} -% -% -% \subsection{Reference formatting command: \opt{refcmd}} -% -% The \opt{refcmd} key-value holds the contents of the internal -% command that formats the reference. The |#1| parameter -% passed to the command is the full reference label. -% For example: -% \begin{Itabb} -% \hspace{10em}\=hspace{5em}\=\kill -% \opt{refcmd}|=(\ref{#1})| \> $\rightarrow$~ -% |(\ref{|\meta{label}|})| -% \end{Itabb} -% -% External commands can be employed. For example, to make references -% to equations identical to the \AmS\ \cmd{\eqref} command: -% \begin{Itabb} -% \opt{refcmd}|={\textup{\tagform@{\ref{#1}}}}%|~~It needs \file{amsmath.sty} -% \end{Itabb} -% -% The \opt{refcmd} can be used in conjuntion with the |\ifRSstar|, -% |\ifRSnameon|, |\ifRSplural| and |\ifRScapname| internal -% conditional variables to format the reference. As an example for a -% reference to a footnote, where a duplicate footnote mark is needed, -% can the \opt{refcmd} be configured so that the starred form of the -% reference command produce a superscripted duplicate mark: -% \begin{Itabb} -% |\newcommand{\RSfnmark}[1]{%|\\ -% | \begingroup |\\ -% | \unrestored@protected@xdef\@thefnmark{#1}%|\\ -% | \endgroup |\\ -% | \@footnotemark} |\\[1ex] -% \opt{refcmd}|={\ifRSstar\RSfnmark{\ref{#1}}\else(\ref{#1})\fi}| -% \end{Itabb} -% \noindent The second footnote mark, \fnref*[name]{b}, in -% \tabref[vref]{refopt}, was obtained in this way with the reference -% |\fnref*{b}|. See \RScfg\ for another -% example for references to chapters and appendices. -% -% The \pkg{nameref} package can easily be incorporated if you need elaborate -% references which include the section or chapter name: -% \begin{Ipara} -% |\Secref[vref, refcmd={\S\ref{#1}, `\nameref{#1}'}]{PRefCmds}| -% \end{Ipara} -% gives -% \begin{Ipara} -% \Secref[vref, refcmd={\S\ref{#1}, `\nameref{#1}'}]{PRefCmds} -% \end{Ipara} -% -% \section{Default configuration files} -% -% The \pkg{refstyle} package first searches for the \file{refstyle.def} -% configuration file, and if it not found, then it uses the default -% configuration file \RScfg\ that is supplied with the package. -% -% The default configuration file, \RScfg, makes a -% number of default reference declarations and provides language -% definitions for the language parameters. See the file -% \file{refconfig.pdf} for the documentation. -% \medskip -% -% \begin{center} -% \begin{fminipage}[.55\textwidth] -% \slshape Any user is welcome to customize the -% local copy of the \RScfg\ file or copy -% the relevant contents to your own \file{refstyle.def} -% configuration file. -% \end{fminipage} -% \end{center} -% -% \begin{thebibliography}{99} -% \bibitem{Bring1996} -% {Bringhurst, R.} (1996), \emph{The elements of typographic style}, -% Hartley \& Marks Publishers, Point Roberts, WA, USA and Vancouver, -% BC, Canada, second edn. -% \end{thebibliography} -% -% \StopEventually{\PrintChanges\PrintIndex} -% \clearpage -% -% \section{Implementation: \pkg{refstyle.sty}} -% -% \subsection{Identification} -% \begin{macrocode} -%<*pkg> -\NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesPackage{refstyle}[\RefstyleFileDate\space - \RefstyleFileVersion\space - Reference formatting (DNJ Els)] -\newcommand*{\RS@pkgname}{refstyle} -% \end{macrocode} -% -% -% \subsection{External packages} -% -% Load all the external packages. -% \begin{macrocode} -\RequirePackage{keyval} -% \end{macrocode} -% -% \begin{macro}{\RS@setkeys} -% \changes{v0.3}{2006/09/09}{original \cmd{\setkeys} copy} -% Note if \pkg{xkeyval} is loaded, it redefines \pkg{keyval}'s -% macros. To fix this bug, we need the original \cmd{\setkeys} -% command. -% \begin{macrocode} -\def\RS@setkeys#1#2{% - \def\KV@prefix{KV@#1@}% - \let\@tempc\relax - \KV@do#2,\relax,} -% \end{macrocode} -% \end{macro} -% -% \noindent A small bug-fix for \pkg{showkeys}. Will be removed -% after release of new version. -% -% \begin{macrocode} -\@ifundefined{vref@space}{\let\vref@space\space}{} -% \end{macrocode} -% -% \begin{macro}{\@safe@activestrue} -% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activesfalse}} -% \begin{macro}{\@safe@activesfalse} -% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activestrue}} -% If \pkg{babel} is not loaded, make the following -% commands inactive. -% \begin{macrocode} -\providecommand*{\@safe@activestrue}{} -\providecommand*{\@safe@activesfalse}{} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \subsection{Utility commands} -% -% \begin{macro}{\RS@namelet} -% \begin{macro}{\RS@nameuse} -% \begin{macro}{\RS@namedef} -% \begin{macro}{\RS@robustnamedef} -% \noindent -% The following is a list of commands that take a variable \marg{name} -% as argument. This enables on-the-fly definitions of user commands. -% \begin{Itabb} -% Usage:~\=\cmd{\RS@robustnamedef}\marg{name}~\=\kill -% Usage: -% \>\cmd{\RS@namelet}\marg{name} -% \> $\rightarrow$ \cmd{\let}\cmeta{name}\\ -% \>\cmd{\RS@nameuse}\marg{name} -% \> $\rightarrow$ \cmeta{name}\\ -% \>\cmd{\RS@namedef}\marg{name} -% \> $\rightarrow$ \cmd{\def}\cmeta{name}\\ -% \>\cmd{\RS@robustnamedef}\marg{name} -% \> $\rightarrow$ -% \cmd{\def}\cmeta{name}|{\protect|\cmeta{name\textvisiblespace}|}|^^A -% \cmd{\def}\cmeta{name\textvisiblespace} -% \end{Itabb} -% \begin{macrocode} -\newcommand*{\RS@namelet}[1]{\expandafter\let\csname #1\endcsname} -\newcommand*{\RS@nameuse}[1]{\csname #1\endcsname} -\newcommand*{\RS@namedef}[1]{\expandafter\def\csname #1\endcsname} -\newcommand*{\RS@robustnamedef}[1]{% - \expandafter\edef\csname #1\endcsname{% - \noexpand\protect\RS@nameuse{#1 }}% - \RS@namedef{#1 }} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\RS@ifundefined} -% This is an improved definition\footnote{Posted by Markus Kohm -% on c.t.t. 2002/11/11} for the \LaTeX{} kernel command -% \cmd{\@ifundefined} that do not leave an undefined command -% defined as \cmd{\relax} after the test. -% -% The usage is: -% \cmd{\RS@ifundefined}\marg{name}\marg{true}\marg{false} executes -% the contents of \meta{true} if \cmeta{name} is not defined and -% \meta{false} if defined. -% \begin{macrocode} -\def\RS@ifundefined#1{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname#1\endcsname\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@removedef} -% The command removes the definition of a command, including -% robust definitions. -% \begin{macrocode} -\newcommand*{\RS@removedef}[1]{% - \RS@namelet{#1}\@undefined% - \RS@ifundefined{#1 }{}{\RS@namelet{#1 }\@undefined}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@testednamedef} -% \begin{macro}{\RS@testedrobustnamedef} -% These command are identical to \cmd{\RS@namedef} and -% \cmd{\RS@robustnamedef}, but only define the \cmeta{name} -% command if it is legal. Otherwise an error message -% is written to the log file and the program is terminated. -% \begin{macrocode} -\newcommand*{\RS@testednamedef}[1]{% - \RS@ifnamedefinable{#1}\RS@namedef{#1}} -% \end{macrocode} -% \begin{macrocode} -\newcommand*{\RS@testedrobustnamedef}[1]{% - \RS@ifnamedefinable{#1}\RS@robustnamedef{#1}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\RS@ifnamedefinable} -% A modified version of the \LaTeX{} kernel command -% (from ltdefns.dtx). -% \begin{macrocode} -\long\def\RS@ifnamedefinable #1{% - \edef\reserved@a{#1}% - \RS@ifundefined\reserved@a - {\edef\reserved@b{\expandafter\@carcube \reserved@a xxx\@nil}% - \ifx \reserved@b\@qend \RS@notdefinable\else - \ifx \reserved@a\@qrelax \RS@notdefinable\else - \PackageInfo{\RS@pkgname}{\@backslashchar\reserved@a\space created}% - \fi - \fi}% - \RS@notdefinable} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@notdefinable} -% The error message when an illegal definition is attempted. -% \begin{macrocode} -\gdef\RS@notdefinable{% - \PackageError{\RS@pkgname}{% - Command \@backslashchar\reserved@a\space - already defined.\MessageBreak - Or name \@backslashchar\@qend... illegal.\MessageBreak - It can not be redefined by the \@backslashchar newref% - }{% - If \@backslashchar\reserved@a\space is not important\MessageBreak - then \protect\let\@backslashchar\reserved@a% - =\protect\relax,\MessageBreak - else use a different \@backslashchar newref.}% - } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@setbool} -% The command\footnote{Taken from the \pkg{ifthen} package.} -% \cmd{\RS@setbool}\marg{conditional}\marg{true/false} -% sets the \meta{conditional} to |true| or |false|. -% \begin{Itabb} -% Usage:~\= -% \cmd{\RS@setbool}|{RSplural}{false}|\quad\=$\rightarrow$\quad -% |\RSpluralfalse|\\ -% \>\cmd{\RS@setbool}|{RSplural}{true}|\quad\>$\rightarrow$\quad -% |\RSpluraltrue| -% \end{Itabb} -% -% \begin{macrocode} -\newcommand*{\RS@setbool}[2]{% - \lowercase{\def\@tempa{#2}}% - \@ifundefined{@tempswa\@tempa}% - {\PackageError{\RS@pkgname}% - {You can only set the option to `true' or `false'}\@ehc}% - {\csname#1\@tempa\endcsname}} -% \end{macrocode} -% \end{macro} -% -% -% \subsection{First character case changes} -% -% \begin{macro}{\RS@firstcap} -% This macro\footnote{Posted by Dan Luecking on c.t.t.} change the -% first character of a string to uppercase and returns the result -% in \cmd{\RS@cap}. -% \begin{Ipara} -% Usage:~|\RS@fistcap xxxx\@nil| then |\RS@cap| $\rightarrow$ |Xxxx| -% \end{Ipara} -% \begin{macrocode} -\def\RS@firstcap#1#2\@nil{% - \iffalse{\fi - \uppercase{\edef\RS@cap{\iffalse}\fi#1}#2}}% -% \end{macrocode} -% \end{macro} -% -% -% -% \subsection{Reference building commands} -% -% \begin{macro}{\ifRS@keyactive} -% \changes{v0.4}{2010/10/21}{Add \opt{nokeyprefix} to turn of the key prefix} -% We need to peek into the options list for the \opt{nokeyprefix} option -% before the options are processed to find out if the key prefix must be -% included in the |\|\meta{key}|label| command. Make \opt{nokeyprefix} -% not used afterwards. -% \begin{macrocode} -\newif\ifRS@keyactive -\@ifpackagewith{\@currname}{nokeyprefix}% - {\RS@keyactivefalse}% - {\RS@keyactivetrue} -\DeclareOption{nokeyprefix}{\OptionNotUsed} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\ifRSstar} -% \begin{macro}{\ifRSnameon} -% \begin{macro}{\ifRScapname} -% \begin{macro}{\ifRSplural} -% \begin{macro}{\ifRSlsttwo} -% \changes{v0.4}{2010/10/21}{Add \cmd{\ifRSlsttwo} test for list containing only two parameter} -% The |\if| conditional values that are set by the reference commands. -% These values can be accessed by user defined key-values. -% \begin{macrocode} -\newif\ifRSstar\RSstarfalse -\newif\ifRSnameon\RSnameontrue -\newif\ifRScapname\RScapnamefalse -\newif\ifRSplural\RSpluralfalse -\newif\ifRSlsttwo\RSlsttwofalse -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\newref} -% The main user interface for template setup. It take the |#1| or -% \meta{key} parameter and make it lowercase before passing it on to -% \cmd{\RS@newref}. -% -% -% \begin{macrocode} -\newcommand*{\newref}[1]{% - \lowercase{\def\RS@tempa{#1}}% - \expandafter\RS@newref\expandafter{\RS@tempa}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@newref} -% \changes{v0.4}{2010/10/21}{Ad \texttt{lsttwotxt} option} -% This command configures a new template. -% \begin{macrocode} -\newcommand*{\RS@newref}[2]{% -% \end{macrocode} -% \bNP[2.0]\noindent Clears an existing template before defining a new one.\eNP -% \begin{macrocode} - \RS@clearref{#1}% -% \end{macrocode} -% \bNP[2.0]\noindent Create |\ifRS@|\meta{key}|vref| conditional \eNP -% \begin{macrocode} -% \expandafter\newif\csname ifRS@#1vref\endcsname% -% \end{macrocode} -% \bNP[2.0]\noindent Creates a series of key-values for every template -% that stores the setup for the specific template.\eNP -% \begin{macrocode} - \ifRS@keyactive - \define@key{RS@#1}{key}[#1:]{\RS@namedef{RS@#1@key}{##1}}% - \else - \define@key{RS@#1}{key}[]{\RS@namedef{RS@#1@key}{##1}}% - \fi - \define@key{RS@#1}{s}[true]{\RS@setbool{RSplural}{##1}}% - \define@key{RS@#1}{name}[]{\RS@namedef{RS@#1@name}{##1}}% - \define@key{RS@#1}{names}[]{\RS@namedef{RS@#1@names}{##1}}% - \define@key{RS@#1}{Name}[]{\RS@namedef{RS@#1@Name}{##1}}% - \define@key{RS@#1}{Names}[]{\RS@namedef{RS@#1@Names}{##1}}% - \define@key{RS@#1}{rngtxt}[\space to~]{\RS@namedef{RS@#1@rngtxt}{##1}}% - \define@key{RS@#1}{lsttwotxt}[\space and~]{\RS@namedef{RS@#1@lsttwotxt}{##1}}% - \define@key{RS@#1}{lsttxt}[\space and~]{\RS@namedef{RS@#1@lsttxt}{##1}}% - \define@key{RS@#1}{refcmd}[\ref{####1}]{\RS@namedef{RS@#1@rcmd}####1{##1}}% - \define@key{RS@#1}{xr}[]{\RS@namedef{RS@#1@xr}{##1}}% - \define@key{RS@#1}{vref}[true]{\RS@namedef{RS@#1vref}{##1}}% -% \end{macrocode} -% \bNP[2.0]\noindent Set default key-value parameters.\eNP -% \begin{macrocode} - \RS@setkeys{RS@#1}{key, - s=false, - name,names,Name,Names, - rngtxt,lsttwotxt,lsttxt, - refcmd, - xr, - vref=false}% -% \end{macrocode} -% \bNP[2.0]\noindent Set key-values according to user definitions.\eNP -% \begin{macrocode} - \RS@setkeys{RS@#1}{#2}% -% \end{macrocode} -% \bNP[2.0]\noindent Build the reference commands.\eNP -% \begin{macrocode} - \RS@buildref{#1}% - } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@clearref} -% Clear a reference template for redefinition. It check -% if the template already exists and clear it if it does. -% -% \begin{macrocode} -\newcommand*{\RS@clearref}[1]{% - \RS@ifundefined{RS@#1@template} - {\RS@namedef{RS@#1@template}{#1}% - \PackageInfo{\RS@pkgname}% - {New reference template \protect\newref{#1}}{}} - {\PackageInfo{\RS@pkgname}% - {Reference template \protect\newref{#1} redefined}{} - \RS@firstcap#1\@nil - \RS@removedef{#1key}% - \RS@removedef{#1label}% - \RS@removedef{#1ref}% - \RS@removedef{\RS@cap ref}% - \RS@removedef{#1rangeref}% - \RS@removedef{\RS@cap rangeref}% - \RS@removedef{#1pageref}% - }% - } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@buildref} -% Build the reference commands. See \tabref{refopt} for the list of -% commands. The \cmd{\RS@buildref}\marg{key} build commands to -% call \cmd{\RS@cmd}\marg{cmd}\marg{key}, for example: -% \begin{Ipara} -% \cmeta{key}|ref| \quad$\rightarrow$\quad -% |{\RScapnamefalse\RS@cmd{ref}|\marg{key}|}| -% \end{Ipara} -% \changes{v0.2}{2003/07/30}{Remove robust def of \argcmd{{\rtp}}{label}} -% \begin{macrocode} -\newcommand*{\RS@buildref}[1]{% - \RS@firstcap#1\@nil - \RS@testednamedef{#1key}{\RS@nameuse{RS@#1@key}} - \RS@testednamedef{#1label}##1{\label{\RS@nameuse{RS@#1@key}##1}} - \RS@testedrobustnamedef{#1ref}{\RScapnamefalse\RS@cmd{ref}{#1}} - \RS@testedrobustnamedef{\RS@cap ref}{\RScapnametrue\RS@cmd{ref}{#1}} - \RS@testedrobustnamedef{#1rangeref}{\RScapnamefalse\RS@cmd{rangeref}{#1}} - \RS@testedrobustnamedef{\RS@cap rangeref}{\RScapnametrue\RS@cmd{rangeref}{#1}} - \RS@testedrobustnamedef{#1pageref}{\RScapnamefalse\RS@cmd{pageref}{#1}} - } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@cmd} -% \begin{macro}{\RS@@cmd} -% The command \cmd{\RS@cmd}\marg{cmd}\marg{key} calls the final -% reference formatting commands. -% It checks for the starred form and set the conditionals -% |\ifRSstar| and |\ifRSnameon| accordingly. -% It also extracts the optional key-value list. -% \begin{Itabb} -% \hspace*{4.5cm}\=\kill -% \cmd{\RS@cmd}|{ref}|\marg{key} \>$\rightarrow$\quad -% |\RS@ref|\marg{key}\okeylst\\ -% \cmd{\RS@cmd}|{rangeref}|\marg{key} \>$\rightarrow$\quad -% |\RS@rangeref|\marg{key}\okeylst\\ -% \cmd{\RS@cmd}|{pageref}|\marg{key} \>$\rightarrow$\quad -% |\RS@pageref|\marg{key}\okeylst -% \end{Itabb} -% \begin{macrocode} -\newcommand*{\RS@cmd}[2]{% - \@ifstar{\RSstartrue\RSnameonfalse\RS@@cmd{#1}{#2}}% - {\RSstarfalse\RSnameontrue\RS@@cmd{#1}{#2}}} -% \end{macrocode} -% \begin{macrocode} -\newcommand*{\RS@@cmd}[2]{% - \@ifnextchar[% - {\RS@nameuse{RS@#1}{#2}}% - {\RS@nameuse{RS@#1}{#2}[]}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \subsection{Reference formatting commands} -% -% \begin{macro}{\RS@ref} -% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activestrue} to avoid active chars is ref list} -% \begin{macro}{\RS@@ref} -% \begin{macro}{\RS@@@ref} -% \changes{v0.4}{2010/10/21}{Add \cmd{\ifRSlsttwo} test for list containing only two parameter} -% The command \cmd{\RS@ref}\marg{key}\okeylst\marg{label\_lst} -% typeset the references to the comma-separated reference -% label list according to the configuration for \meta{key}. -% -% First of all, remove all spaces for the reference label list. -% \begin{macrocode} -\def\RS@ref#1[#2]#3{% - \begingroup - \RS@setkeys{RS@#1}{#2}% - \@safe@activestrue% - \edef\RS@tmpa{\zap@space#3 \@empty}% - \@safe@activesfalse% - \edef\RS@tmpa{\noexpand\RS@@ref{#1} \RS@tmpa,\relax\noexpand\@eolst}% - \RS@tmpa% - \endgroup} -% \end{macrocode} -% \end{macro} -% Check if there is a single or multiple references in the -% reference label list. If a single reference label then use the -% form set by the \opt{s} key-value. If multiple reference labels -% the use the plural form of the name prefix.\footnote{ -% The list of reference commands came from the \pkg{typedref} package.} -% -% \begin{macrocode} -\def\RS@@ref#1 #2,#3\@eolst{% - \ifx\relax#3\relax - \RS@makename{#1}% - \RS@makeref{#1}{#2}% - \RS@makevpageref{#1}{#2}% - \else - \RSpluraltrue% - \RS@makename{#1}% - \RS@makeref{#1}{#2}% - \RS@makevpageref{#1}{#2}% - \RSnameonfalse% - \RSlsttwotrue% - \RS@@@ref{#1} #3\@eolst% - \fi} -% \end{macrocode} -% \end{macro} -% For more than one reference in the reference list, typeset the -% rest of the references. -% \begin{macrocode} -\def\RS@@@ref#1 #2,#3\@eolst{% - \ifx\relax#3\relax - \ifRSlsttwo - \RS@nameuse{RS@#1@lsttwotxt}% - \else - \RS@nameuse{RS@#1@lsttxt}% - \fi - \RS@makeref{#1}{#2}% - \RS@makevpageref{#1}{#2}% - \else - \RSlsttwofalse% - \unskip,\space% - \RS@makeref{#1}{#2}% - \RS@makevpageref{#1}{#2}% - \RS@@@ref{#1} #3\@eolst% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@rangeref} -% The command \cmd{\RS@rangeref}\marg{key}\okeylst\marg{lbl1}\marg{lbl2} -% typeset the references as a range. -% \begin{macrocode} -\def\RS@rangeref#1[#2]#3#4{% - \begingroup - \RS@setkeys{RS@#1}{#2}% - \RSpluraltrue% - \RS@makename{#1}% - \RS@makeref{#1}{#3}% - \RS@nameuse{RS@#1@rngtxt}% - \RSnameonfalse% - \RS@makeref{#1}{#4}% - \RS@makevpagerefrange{#1}{#3}{#4}% - \endgroup} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@pageref} -% The command \cmd{\RS@pageref}\marg{key}\okeylst\marg{lbl} type -% the page where \marg{lbl} was defined. -% \begin{macrocode} -\def\RS@pageref#1[#2]#3{% - \begingroup% - \RS@setkeys{RS@#1}{#2}% - \RS@ifvref{#1}% - {\mbox{}\vpageref*{\RS@lbl{#1}{#3}}}% - {\reftextfaraway{\RS@lbl{#1}{#3}}}% - {\pageref{\RS@lbl{#1}{#3}}}% - \endgroup} -% \end{macrocode} -% \end{macro} -% -% \changes{v0.2}{2003/07/30}{Remove redundant \cmd{\RS@label}} -% -% \begin{macrocode} -\newcommand*{\RS@true}{true} -\newcommand*{\RS@false}{false} -\newcommand*{\RS@far}{far} -% \end{macrocode} -% -% \begin{macro}{\RS@ifvref} -% The command \cmd{\RS@ifvref}\marg{key}\marg{true}\marg{faraway}\marg{false} -% executes the contents of \meta{true} if the \opt{vref} option for -% the \meta{key} reference type is true and \meta{false} otherwise. -% \begin{macrocode} -\newcommand{\RS@ifvref}[4]{% - \edef\RS@tempa{\RS@nameuse{RS@#1vref}}% - \ifx\RS@tempa\RS@true\relax - #2% - \else\ifx\RS@tempa\RS@far\relax - #3% - \else\ifx\RS@tempa\RS@false\relax - #4% - \else - \PackageError{\RS@pkgname}% - {You can only set the vref option to `true', `far' or `false'}\@ehc - \fi\fi\fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@makename} -% The command \cmd{\RS@makename}\marg{key} build the prefix -% to the reference commands. -% \begin{macrocode} -\newcommand{\RS@makename}[1]{% - \ifRSstar\else\ifRSnameon - \ifRSplural - \ifRScapname - \RS@nameuse{RS@#1@Names}% - \else - \RS@nameuse{RS@#1@names}% - \fi - \else - \ifRScapname - \RS@nameuse{RS@#1@Name}% - \else - \RS@nameuse{RS@#1@name}% - \fi - \fi - \fi\fi - } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@lbl} -% This command builds the full label string for the \cmd{\ref} -% command. -% \begin{Ipara} -% \cmd{\RS@lbl}\marg{key}\marg{label} \quad$\rightarrow$\quad -% |{|\meta{xr_key}\meta{key}\meta{label}|}| -% \end{Ipara} -% \begin{macrocode} -\newcommand*{\RS@lbl}[2]{% - \RS@nameuse{RS@#1@xr}\RS@nameuse{RS@#1@key}#2% - } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@makeref} -% The command \cmd{\RS@makeref}\marg{key}\marg{label} formats -% the \cmd{\ref} output -% \begin{Ipara} -% \cmd{\RS@makeref}\marg{key}\marg{label} \quad$\rightarrow$\quad -% \cmeta{rcmd}|{\ref{|\meta{xr_key}\meta{key}\meta{label}|}}| -% \end{Ipara} -% \begin{macrocode} -\newcommand{\RS@makeref}[2]{% - \RS@nameuse{RS@#1@rcmd}{\RS@lbl{#1}{#2}}% - } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@makevpageref} -% The command \cmd{\RS@makevpageref}\marg{key}\marg{label} adds the -% \pkg{varioref} page reference if the \opt{vref} option is true. -% \begin{macrocode} -\newcommand{\RS@makevpageref}[2]{% - \RS@ifvref{#1}% - {\vpageref[\unskip]{\RS@lbl{#1}{#2}}}% - { \reftextfaraway{\RS@lbl{#1}{#2}}}% - {}% - } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RS@makevpagerefrange} -% The command \cmd{\RS@makevpagerefrange}\marg{key}\marg{lbl1}\marg{lbl1} -% adds the \pkg{varioref} page range reference if the \opt{vref} -% option is true. -% \begin{macrocode} -\newcommand{\RS@makevpagerefrange}[3]{% - \RS@ifvref{#1}% - {\space\vpagerefrange[\unskip]{\RS@lbl{#1}{#2}}{\RS@lbl{#1}{#3}}}% - {\space\vpagerefrange[\unskip]{\RS@lbl{#1}{#2}}{\RS@lbl{#1}{#3}}}% - {}% - } -% \end{macrocode} -% \end{macro} -% -% -% \subsection{\pkg{varioref} command predefinitions} -% -% \begin{macrocode} -\AtBeginDocument{% - \providecommand{\vpageref}{% - \PackageError{\RS@pkgname}% - {The vref option used, but varioref.sty not loaded.}% - {Load varioref.sty}} - \providecommand{\reftextfaraway}{% - \PackageError{\RS@pkgname}% - {The vref=far option used, but varioref.sty not loaded.}% - {Load varioref.sty}} - \providecommand{\vpagerefrange}{% - \PackageError{\RS@pkgname}% - {The vref option used, but varioref.sty not loaded.}% - {Load varioref.sty}} - } -% \end{macrocode} -% -% -% \subsection{Support for language option inclusions in config file} -% -% \begin{macro}{\RSaddto} -% \changes{v0.2}{2003/07/30}{Rename \cmd{\RS@addto} to \cmd{\RSaddto}} -% Command from the \pkg{varioref} package is used to add -% language definitions to the |\extras|\meta{language} token -% for \pkg{babel}. -% \begin{macrocode} -\def\RSaddto#1#2{% - #2% - \@temptokena{#2}% - \ifx#1\relax - \let#1\@empty - \fi - \ifx#1\undefined - \edef#1{\the\@temptokena}% - \else - \toks@\expandafter{#1}% - \edef#1{\the\toks@\the\@temptokena}% - \fi - \@temptokena{}\toks@\@temptokena} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\DeclareLangOpt} -% \changes{v0.5}{2010/11/02}{Add \cmd{\extras}\meta{language} to beginning of document.} -% Command to declare a language option and add -% language definitions to the |\extras|\meta{language} token -% for \pkg{babel}. -% \begin{macrocode} -\def\DeclareLangOpt#1#2{% - \edef\RS@tempa{\expandafter\@gobble\string#2}% - \RS@ifundefined{\RS@tempa}% - {\PackageError{\RS@pkgname}{% - Unknown definitions \@backslashchar\RS@tempa\MessageBreak - for language option `#1'}{}}% - {\DeclareOption{#1}{% - \AtBeginDocument{\expandafter\RSaddto\csname extras#1\endcsname #2}}}% - } -% \end{macrocode} -% \end{macro} -% -% -% -% \subsection{Configuration files} -% -% \begin{macro}{\RS@cfgfile,\RS@reffile} -% \changes{v0.4}{2010/10/21}{Ad alternative definition file \cmd{refstyle.def}} -% Define the config file and alternate definition file names. -% \begin{macrocode} -\newcommand*{\RS@cfgfile}{refstyle.cfg} -\newcommand*{\RS@reffile}{refstyle.def} -% \end{macrocode} -% \end{macro} -% -% We need to peek into the options list before the -% options are processed to find out if the config -% file is to be loaded or not. The config file can -% contain options and must be loaded before -% \cmd{\ProcessOptions}. Make \opt{noconfig} not used -% afterwards. -% -% We first test for a local config file \file{refstyle.def} -% and then for the global config file \file{refstyle.cfg}. -% \begin{macrocode} -\@ifpackagewith{\@currname}{noconfig}% - {\PackageInfo{\RS@pkgname}{No config file loaded}}% - {\InputIfFileExists{\RS@reffile}% - {\PackageInfo{\RS@pkgname}{Local config file \RS@reffile\space used}} - {\InputIfFileExists{\RS@cfgfile}% - {\PackageInfo{\RS@pkgname}{Config file \RS@cfgfile\space used}}% - {\PackageInfo{\RS@pkgname}{No config file found}}}} -% \end{macrocode} -% -% \begin{macrocode} -\DeclareOption{noconfig}{\OptionNotUsed}% -% \end{macrocode} -% -% Process the options, including options in config file. -% \begin{macrocode} -\ProcessOptions*\relax -% \end{macrocode} -% -% The end of this package. -% \begin{macrocode} -% -% \end{macrocode} -% -% \Finale -\endinput +% \iffalse +% +% refstyle.dtx +% Copyright (C) 2002--2024 Danie Els +% +% ------------------------------------------------------------------- +% The refstyle package +% for the formatting of references +% ------------------------------------------------------------------- +% This work may be distributed and/or modified under the conditions +% of the LaTeX Project Public License, either version 1.3c of this +% license or (at your option) any later version. The latest version +% of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008/12/01 or later. +% +% This work has the LPPL maintenance status 'maintained'. +% +% This Current Maintainer of this work is Danie Els (dnjels@gmail.com) +% +% This package consists of the files: refstyle.dtx +% refconfig.dtx +% refstyle.ins +% and the derived files: refstyle.sty +% refstyle.cfg +% ------------------------------------------------------------------- +% +%<*pkg> +\newcommand*{\RefstyleFileDate}{2024/01/31} +\newcommand*{\RefstyleFileVersion}{v0.6} +% +% +% +%<*driver> +\documentclass[a4paper]{ltxdoc} +\let\RefstyleFileDate\relax +\let\RefstyleFileVersion\relax +\usepackage{amsmath} +\usepackage{amsfonts} + \DeclareMathSymbol{\square} {\mathord}{AMSa}{"03} + \DeclareMathSymbol{\blacksquare}{\mathord}{AMSa}{"04} +\usepackage{calc} +\usepackage{rotating} +\usepackage[rounded]{syntax} +\usepackage{varioref} +\usepackage{refstyle} +\usepackage{color} + \definecolor{hrefcol}{rgb}{0.00,0.00,1.00} +\usepackage[pdfpagelabels]{hyperref} +\hypersetup{breaklinks=true, + linktocpage, + pdfstartview=FitH, + colorlinks = true, + linkcolor = hrefcol, + urlcolor = hrefcol, + menucolor = hrefcol, + filecolor = hrefcol, + citecolor = hrefcol, + linkbordercolor = {0.8 0.8 0.8}, + urlbordercolor = {0.8 0.8 0.8}, + menubordercolor = {0.8 0.8 0.8}, + filebordercolor = {0.8 0.8 0.8}, + runbordercolor = {0.8 0.8 0.8}, + citebordercolor = {0.8 0.8 0.8}, + pdftitle={refstyle}, + pdfauthor={Danie Els}} + +%---- macrocode env changes ------------------------------- + +\setlength{\MacroIndent}{1.5em} + +%---- Scratches ------------------------------------------- + +\newlength{\tdima} +\newsavebox{\tboxa} + +%---- Spacing --------------------------------------------- + +\newlength{\myskip} +\setlength{\myskip}{\topsep} + \addtolength{\myskip}{\parskip} + \addtolength{\myskip}{\partopsep} +\newcommand*{\blankline}{\par\addvspace{\myskip}} +\newlength{\mytab} +\setlength{\mytab}{2\parindent} +\newcommand{\tab}{\hspace*{\mytab}} + +%---- Indented environments ------------------------------- + +\newenvironment{IndentPara}[1][1] + {\list{}{\setlength{\leftmargin}{#1\mytab}% + \setlength{\labelwidth}{0pt}% + \setlength{\labelsep}{0pt}% + \setlength{\itemindent}{\parindent}% + \setlength{\listparindent}{\parindent}% + }\item[]}% + {\endlist} +\newenvironment{IndentParaX}[1][1] + {\list{}{\setlength{\leftmargin}{#1\mytab}% + \setlength{\topsep}{0pt}% + \setlength{\partopsep}{0pt}% + \setlength{\labelwidth}{0pt}% + \setlength{\labelsep}{0pt}% + \setlength{\itemindent}{\parindent}% + \setlength{\listparindent}{\parindent}% + }\item[]}% + {\endlist} +\newcommand\bNP{\begin{IndentParaX}} +\newcommand\eNP{\end{IndentParaX}} +\newenvironment{Ipara}[1][\small]% + {\begin{IndentPara}\noindent#1\ignorespaces}% + {\end{IndentPara}} +\newenvironment{Itabb}[1][\small]% + {\begin{IndentPara}#1\ignorespaces\begin{tabbing}\ignorespaces}% + {\end{tabbing}\end{IndentPara}} + +%---- Ruled & colored minipage ---------------------------- + +\definecolor{shadecolor}{gray}{0.9} + +\newenvironment{fminipage}[1][\linewidth] + {\setlength{\tdima}{#1-2\fboxsep-2\fboxrule}% + \begin{lrbox}{\tboxa}\begin{minipage}{\tdima}}% + {\end{minipage}\end{lrbox}\noindent\fbox{\usebox{\tboxa}}} +\newenvironment{cminipage}[1][\linewidth] + {\setlength{\tdima}{#1-2\fboxsep-2\fboxrule}% + \begin{lrbox}{\tboxa}\begin{minipage}{\tdima}}% + {\end{minipage}\end{lrbox}% + \noindent\colorbox{shadecolor}{\usebox{\tboxa}}} + +%---- Additional documenting commands --------------------- + +\def\lcbrack{\symbol{`\{}} +\def\rcbrack{\symbol{`\}}} +\makeatletter +\def\meta@font@select{\normalfont\slshape} +\makeatother +\DeclareRobustCommand{\cmeta}[1]{%<- \ + \texttt{\bslash}\meta{#1}} +\DeclareRobustCommand{\cmarg}[1]{%<- {\} + \texttt{\lcbrack}\cmeta{#1}\texttt{\rcbrack}} +\DeclareRobustCommand{\coarg}[1]{%<- [\] + \texttt{[}\cmeta{#1}\texttt{]}} +\DeclareRobustCommand{\argcmd}[2]{%<- \yyy + \cmeta{#1}\texttt{#2}} +\newcommand{\rmeta}[3][]{% + \texttt{\lcbrack#1}\meta{#2}\texttt{#3\rcbrack}} +\newcommand{\refmeta}[3][]{\cmd{\brref}\rmeta[#1]{#2}{#3}} + +\newcommand*{\file}[1]{\texttt{#1}} +\newcommand*{\pkg}[1]{\textsf{#1}} +\newcommand*{\env}[1]{\texttt{#1}} +\newcommand*{\opt}[1]{\texorpdfstring{\normalfont\texttt{\slshape#1}}{#1}} +\newcommand*{\RS}{\pkg{refstyle}} +\newcommand*{\RScfg}{\file{refstyle.cfg}} +\newcommand*{\rtp}{type} +\newcommand*{\Rtp}{Type} +\newcommand*{\okeylst}{\oarg{key\_lst}} +\newcommand*{\mkeylst}{\marg{key\_lst}} + +%---- Special eq tag command ------------------------------ + +\def\spestag#1{\stepcounter{equation}% + \gdef\tagextra##1{% + \makebox[0pt][l]{\small\quad% + \cmd{\eqlabel}\texttt{\lcbrack##1\rcbrack}}% + \gdef\tagextra####1{}}% + \tag{\theequation\tagextra{#1}}\eqlabel{#1}} + +%---- other stuff ----------------------------------------- + +\newcommand*{\ArTab}{\>\quad$\rightarrow$\quad} + +%---------------------------------------------------------- + +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\setlength\hfuzz{15pt} +\hbadness=7000 +\begin{document} + \DocInput{refstyle.dtx} +\end{document} + +% +% \fi +% +% \CheckSum{552} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \changes{v0.0}{2002/12/01}{Initial version} +% \changes{v0.1}{2003/04/01}{First stable version} +% \changes{v0.2}{2003/07/30}{First updated version} +% \changes{v0.3}{2006/09/09}{Documentation update} +% \changes{v0.4}{2010/10/21}{Documentation update} +% \changes{v0.4}{2010/10/21}{Add \texttt{nokeyprefix} option} +% \changes{v0.5}{2010/11/02}{Documentation update} +% +% \DoNotIndex{ +% \@backslashchar, \@carcube, \@ehc, \@empty, \@firstoftwo, +% \@ifnextchar, \@ifpackageloaded, \@ifstar, \@ifundefined, \@nil, +% \@qend, \@qrelax, \@secondoftwo, \@tempa, \@undefined, +% \AtEndOfPackage, \begingroup, \csname, \CurrentOption, +% \DeclareOption, \def, \edef, \else, \endcsname, \endgroup, +% \expandafter, \fi, \gdef, \iffalse, \ifx, \InputIfFileExists, +% \let, \long, \lowercase, \MakeLowercase, \mbox, \MessageBreak, +% \NeedsTeXFormat, \newcommand, \newif, \noexpand, \PackageError, \PackageInfo, +% \PassOptionsToPackage, \RS@pkgname, \ProcessOptions, \protect, +% \providecommand, \ProvidesPackage, \relax, \renewcommand, +% \RequirePackage, \reserved@a, \reserved@b, \RS@tmpa, +% \RS@tmpb, \S, \RS@setkeys, \space, \string, \textsc, \textup, +% \unrestored@protected@xdef, \unskip, \uppercase, +% \zap@space} +% +%^^A==== Titling ========================================== +% \GetFileInfo{refstyle.sty} +% \title{\vspace*{-1cm} +% The \RS\ package\thanks{This file has version number +% \fileversion, last revised +% \filedate.}} +% \author{Danie Els\\[1ex] +% \normalsize e-mail: \texttt{\href{mailto:dnjels@gmail.com}% +% {dnjels@gmail.com}}} +% \date{\filedate} +% \maketitle +% \begin{center} +% \textbf{Overview of the \RS\ package} +% \end{center} +% \noindent +% When writing complex documents, often a large number of commands +% for different type of references are defined, for example: +% \begin{Ipara} +% |\newcommand*{\eqref}[1]{eqn~(\ref{#1})}|\\ +% |\newcommand*{\Eqref}[1]{Equation~(\ref{#1})}| +% \end{Ipara} +% The \RS\ package was developed to automate this process. The +% package provides a user interface to define sets of reference +% and label commands for each referable object such as an equation +% or a table, etc. When you declare, for example, a set of +% reference commands to an equation: +% \begin{Ipara} +% \cmd{\newref}|{eq}|\mkeylst\ +% \end{Ipara} +% \noindent +% a series of commands of the format \cmd{\eq...} and \cmd{\Eq...} +% are produced. The configuration options are set with a list of +% key-values. Prefixes, inserts and other options for all the +% different perturbations such as capitalized first letters, +% singular and plural from, etc.\ can be defined. The +% configuration can be changed temporarily with an optional list +% of key-values when the commands are used. A direct interface to +% the \pkg{varioref} package is also provided. +% This enables compact reference formats: +% \begin{Itabb} +% \hspace{14em}\=\kill +% |\eqref{e1} ...| \ArTab\eqref{e1} ...\\ +% |\Eqref[vref]{e1} ...| \ArTab\Eqref[vref]{e1} ...\\ +% |\eqref[s]{e1} and ...| \ArTab\eqref[s]{e1} and ...\\ +% |\eqref[name=eq.~]{e1} ...| \ArTab\eqref[name=eq.~]{e1} ... +% \end{Itabb} +% A range or a list of references can also be referred to in a +% consistent way. +% \begin{Itabb} +% \hspace{14em}\=\kill +% |\eqref{e1,e2,e3} ...| \ArTab\eqref{e1,e2,e3} ...\\ +% |\eqrangeref[vref]{e1}{e3} ...| \ArTab\eqrangeref[vref]{e1}{e3} ... +% \end{Itabb} +% +% Templates for the different reference types and different +% languages can be loaded with a configuring file. +% +% The package is aimed at large projects, enabling a consistent +% way of producing references throughout a project. Enough +% flexibility is provided to make local changes to a single +% reference. For large projects such as a series of books or a +% multi volume thesis, written as freestanding documents, a +% facility is provided to interface to the \pkg{xr} package for +% external document references. +% +% \medskip +% +% \begin{center} +% \begin{fminipage}[.6\textwidth] +% See also \pkg{refconfig.pdf} for setup and examples. +% \end{fminipage} +% \end{center} + +% \clearpage +% +% \tableofcontents +% \clearpage +% +% +% \section{Loading the \RS\ Package} +% +% \subsection{Document preamble} +% +% The \RS\ package is loaded in the preamble of the document: +% \begin{enumerate} +% \item[(a)] With a config file with \pkg{babel} language support +% \begin{Ipara} +% |\usepackage{varioref}[2001/09/04]%|~ +% ${\leftarrow}$ To use the \opt{vref} option\\ +% |\usepackage{refstyle}| +% \end{Ipara} +% When the package is loaded, it first searchers for a local user defined +% configuration file \file{refstyle.def}. If it is not available it +% looks for the global default config file \RScfg\ provided with this package. +% These configuration files are loaded before the package options are precess. +% It can therefore contain option commands using globally defined language +% options and can interface to \pkg{babel} for language changes. The macro +% \begin{Ipara} +% |\DeclareLangOpt{|\meta{language}|}{|\meta{definitions}|}| +% \end{Ipara} +% is provided to declare the package option \meta{language} and add +% \meta{definitions} to the |\extras|\meta{language} token for \pkg{babel}. +% It can only be used inside \RScfg\ or \file{refstyle.def}. +% +% \item[(b)] +% Or with an existing configuration with language support and addition +% of your own extensions +% \begin{Ipara} +% |\documentclass[norwegian]{article}|\\ +% |\usepackage{babel} |\\ +% |\usepackage{refstyle} |\\ +% |\RSaddto{\RSnorwegian}{% |\\ +% | \def\RSthmtxt{teorem~}% |\\ +% | \def\RSthmstxt{teorem~}% |\\ +% | \def\RSThmtxt{Teorem~}% |\\ +% | \def\RSThmstxt{Teorem~}} |\\ +% |\newref{thm}{ |\\ +% | name = \RSthmtxt, |\\ +% | names = \RSthmstxt, |\\ +% | Name = \RSThmtxt, |\\ +% | Names = \RSThmstxt, |\\ +% | rngtxt = \RSrngtxt, |\\ +% | lsttxt = \RSlsttxt, |\\ +% | lsttwotxt = \RSlsttwotxt} | +% \end{Ipara} +% +% \item[(c)] +% Or without any configuration file, but by declaring your own +% reference commands in the preamble. +% \begin{Itabb} +% \cmd{\usepackage}|[noconfig]{refstyle}|\\ +% \qquad\cmd{\newref}\marg{reftype$_{\,1}$}\mkeylst \\ +% \qquad\cmd{\newref}\marg{reftype$_{\,2}$}\mkeylst\\ +% \tab$\vdots$ +% \end{Itabb} +% +% \item[(d)] +% Or with your own configuration file (without babel language support) for a specific project: +% \begin{Itabb} +% |\usepackage[noconfig]{refstyle}|\\ +% |\input{thisproject.ref}| +% \end{Itabb} +% +% \end{enumerate} +% +% \subsection{Package options} +% +% \begin{description} +% \item[\opt{noconfig}] Neither of the user supplied \file{refstyle.def} config +% file or \file{refstyle.cfg} the config file supplied with this package +% are loaded. The user must declare his or her own definitions and templates. +% Note that these definitions are not passed on to \pkg{babel}'s language +% changing mechanisms. +% +% \item[\opt{nokeyprefix}] Custom labeling commands \argcmd{\rtp}{label} are generated +% by \pkg{refstyle} for every \meta{type} definition. It defaults to +% \begin{Itabb} +% \hspace{5em}\=hspace{5em}\=\kill +% \argcmd{\rtp}{label}|{abc}| +% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc} +% \end{Itabb} +% With the \opt{nokeyprefix} option, the prefix is turned of and the +% labeling commands defaults to +% \begin{Itabb} +% \hspace{5em}\=hspace{5em}\=\kill +% \argcmd{\rtp}{label}|{abc}| +% \>\>~ $\rightarrow$ \cmd{\label}|{abc}| +% \end{Itabb} +% This is useful for old documents with existing labeling commands or +% where the user prefer not to use the \argcmd{\rtp}{label} commands. +% +% +% \end{description} +% +% +% +% +% \subsection{Companion packages} +% +% The \RS\ packages is intended for large projects. It is therefore +% important that it works together with, or has direct interfaces +% to the following packages: +% \begin{description} +% \item[\pkg{varioref}:\footnotemark] +% \footnotetext{\pkg{varioref} v1.3c, 2001/09/04 or later, +% because the starred versions of the commands +% are used.} +% Produce sophisticated page and page range references. +% +% \item[\pkg{hyperref}:\footnotemark] +% \footnotetext{\pkg{hyperref} v6.72r, 2002/05/27 or later, +% where a bug for interference with +% \pkg{varioref} was fixed.} +% To establish hyper links between the references and the +% labels. +% +% \item[\pkg{xr, xr-hyper}:] +% To establish references to external documents. +% +% \item[\pkg{showkeys}:] +% To show all the labels and references. This is very useful +% to find labels in large documents. +% \end{description} +% +% \clearpage +% \section{User Interface} +% +% The \RS\ package has one configuring command, \DescribeMacro{\newref} +% \cmd{\newref}, that internally creates a series of label and +% reference commands: +% \blankline +% +% \begin{cminipage}[\linewidth] +% \newcommand*{\crsi}{\smash{\rule[0pt]{.4pt}{1.25em}\rule[.5ex]{1.5em}{.4pt}}}^^A +% \newcommand*{\crsl}{\smash{\rule[.5ex]{.4pt}{1.5em}\rule[.5ex]{1.5em}{.4pt}}}^^A +% \begin{Itabb} +% \hspace*{2em}\=\hspace{2em}\=\hspace{10em}\=\kill +% \cmd{\newref}\marg{\rtp}\mkeylst\tab\mbox{}\\[.75ex] +% \>\crsi \>\argcmd{{\rtp}}{key} \> Reference argument prefix \\[.75ex] +% \>\crsl \>\argcmd{{\rtp}}{label} \> Custom label \\[.75ex] +% \>\crsl \>\argcmd{{\rtp}}{ref} \> In text reference \\[.75ex] +% \>\crsl \>\argcmd{{\Rtp}}{ref} \> Start of sentence reference \\[.75ex] +% \>\crsl \>\argcmd{{\rtp}}{rangeref} \> In text range reference \\[.75ex] +% \>\crsl \>\argcmd{{\Rtp}}{rangeref} \> Start of sentence range reference\quad\mbox{}\\[.75ex] +% \>\crsl \>\argcmd{{\rtp}}{pageref} \> Page reference +% \end{Itabb} +% \end{cminipage} +% \blankline +% +% \noindent +% All the \cmeta{\rtp}... commands, excluding \argcmd{{\rtp}}{key} +% and \argcmd{{\rtp}}{label} are robust. +% All the options for the referencing commands are set with a +% key-value list. \Tabref[vref=far]{refopt} gives a full list of all the +% key-values and defaults. +% +% The \RS\ package do not redefine any internal \LaTeX\ commands and +% depends only on the \cmd{\label}, \cmd{\ref}, \cmd{\pageref} and +% the \pkg{varioref} commands. +% The internally defined commands do not overwrite any +% existing command with the same name, and an error results if a command +% already exists. The exception is commands declared with a previous +% \cmd{\newref} call, can be redefined by calling \cmd{\newref} again +% with a new set of parameter. +% If the \pkg{amsmath} package is loaded, and you define +% \cmd{\newref}|{eq}| for references to equations, you need to +% undefine \cmd{\eqref} before issuing \cmd{\newref} by +% \begin{Ipara} +% \cmd{\let}\cmd{\eqref}|=|\cmd{\relax} +% \end{Ipara} +% +% +% \section{Command Descriptions} +% +% The structure of the label and reference commands is given by the +% syntax diagrams that follows. Examples are included for references +% to equations, defined according to the template in +% \RScfg\ with the +% \cmd{\newref}|{eq}|\mkeylst. See also \secref{keyvals} for +% explanations of the key-values. +% +% \subsection{The reference key} +% +% \begin{cminipage}[\linewidth] +% \begin{syntdiag} +% \tok{\argcmd{\rtp}{key}} +% \end{syntdiag} +% \end{cminipage} +% \blankline +% \noindent +% The \argcmd{\rtp}{key} command returns the prefix added to the +% argument of the label and the reference commands, for example: +% +% \begin{Itabb} +% \hspace{10em}\=hspace{5em}\=\kill +% \cmd{\newref}\marg{\rtp}|{}| +% \>\>\argcmd{\rtp}{key} $\rightarrow$ \meta{type\,:\,}\\ +% \cmd{\newref}\marg{\rtp}|{key=xxx-}| +% \>\>\argcmd{\rtp}{key} $\rightarrow$ |xxx-| +% \end{Itabb} +% +% \noindent +% The \argcmd{\rtp}{key} command is not a general command, but was +% provided only as a link to the standard \LaTeX{} \cmd{\ref} and +% \cmd{\pageref} commands: +% +% \begin{Itabb} +% \hspace{10em}\=hspace{5em}\=\kill +% \cmd{\label}|{|\argcmd{\rtp}{key}| abc}| +% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc}\\ +% \cmd{\ref}|{|\argcmd{\rtp}{key}| abc}| +% \>\>~ $\rightarrow$ \cmd{\ref}\rmeta{type\,:\,}{abc} +% \end{Itabb} +% Note if the the \opt{nokeyprefix} option is active then the \argcmd{\rtp}{key} +% is empty. +% +% \blankline +% \noindent +% \textbf{\slshape Examples:} equations +% with \cmd{\newref}|{eq}|\mkeylst: +% +% \begin{Itabb} +% \hspace*{18em}\=\kill +% |\eqkey| \> \eqkey \\ +% |in eq.~\ref{\eqkey e1} ...| \>in eq.~\ref{\eqkey e1} ... \\ +% |on page \pageref{\eqkey e1} ...|\>on page \pageref{\eqkey e1} ... \\ +% |\vpageref*{\eqkey e1} ... | \>\vpageref*{\eqkey e1} ... +% \end{Itabb} +% +% \subsection{Reference label} +% +% \begin{cminipage}[\linewidth] +% \begin{syntdiag} +% \tok{\argcmd{\rtp}{label}"{""}"} +% \end{syntdiag} +% \end{cminipage} +% \blankline +% +% \noindent +% The command \argcmd{\rtp}{label} prefix the reference +% string in the \cmd{\label} with the string \meta{type\,:\,}, or its +% redefinition with the \opt{key} option. +% +% \begin{Itabb} +% \hspace{10em}\=hspace{5em}\=\kill +% \argcmd{\rtp}{label}|{abc}| +% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc} +% \end{Itabb} +% \blankline +% +% \noindent +% \textbf{\slshape Examples:} +% +% \begingroup +% \begin{Ipara} +% Let $z = x+\mathrm{i} y$ and $\alpha = \beta + \mathrm{i} +% \gamma$, with $\mathrm{i}^2 = -1$, then +% \begin{align} +% &\mathrm{e}^z = \mathrm{e}^x \left(\cos y + \mathrm{i} \sin y \right) +% \spestag{e1}\\ +% &z^\alpha = \mathrm{e}^{\alpha \ln z} +% \spestag{e2}\\ +% \intertext{\Eqref{e1,e2} lead to the following interesting results:} +% &\mathrm{e}^{\mathrm{i} \pi} + 1 = 0 \spestag{e3}\\ +% &\mathrm{i}^\mathrm{i} = \mathrm{e}^{-\pi/2}\spestag{e4} +% \end{align} +% \end{Ipara} +% \endgroup +% +% +% \subsection{Reference commands} +% +% \begin{cminipage}[1.05\textwidth] +% \begin{syntdiag} +% \tok{\argcmd{\rtp}{ref}} +% \begin{stack}\\ \tok{$\ast$} \end{stack} +% \begin{stack}\\ \tok{\okeylst} \end{stack} +% "{" +% \begin{rep} \tok{} \\ ~,~ \end{rep} +% "}" +% \end{syntdiag} +% \end{cminipage} +% \smallskip +% +% \begin{cminipage}[1.05\textwidth] +% \begin{syntdiag} +% \tok{\argcmd{\Rtp}{ref}} +% \begin{stack}\\ \tok{$\ast$} \end{stack} +% \begin{stack}\\ \tok{\okeylst} \end{stack} +% \tok{"{"} +% \begin{rep} \tok{} \\ ~,~ \end{rep} +% \tok{"}"} +% \end{syntdiag} +% \end{cminipage} +% \blankline +% \noindent +% The |*| optional form of the \argcmd{\rtp}{ref} and +% \argcmd{\Rtp}{ref} commands eliminates the +% name prefix. The |[s]| optional key-value argument is for the +% plural form of the name prefix. +% \blankline +% +% \noindent +% \textbf{\slshape Examples:} +% \begin{Itabb} +% \hspace*{21em}\=\kill +% |in \eqref{e1} ...| \>in \eqref{e1} ... \\ +% |in \eqref[s]{e1}--\eqref*{e4} ...|\>in \eqref[s]{e1}--\eqref*{e4} ...\\ +% |in \eqref[name=eq.~]{e2} ...| \>in \eqref[name=eq.~]{e2} ... +% \end{Itabb} +% \pagebreak[1] +% \noindent +% A list of references can be used: +% \begin{Itabb} +% \hspace*{21em}\=\kill +% |in \eqref{e1,e2} ...| \>in \eqref{e1,e2} ... \\ +% |in \eqref{e1,e2,e3} ...| \>in \eqref{e1,e2,e3} ... \\ +% |in \eqref[lsttxt={, and~}]{e1,e2,e3} ...| \>in \eqref[lsttxt={, and~}]{e1,e2,e3} ... +% \end{Itabb} +% \pagebreak[2] +% The reference to the page can be included with the \opt{vref} or \opt{vref=far} +% options that activates the \pkg{varioref} reference. +% \begin{Itabb} +% \hspace*{18em}\=\kill +% |in \eqref[vref]{e1} ...| \>in \eqref[vref]{e1} ...\\ +% |in \eqref[vref=far]{e1} ...| \>in \eqref[vref=far]{e1} ... +% \end{Itabb} +% The \argcmd{\Rtp}{ref} command is identical to the +% \argcmd{\rtp}{ref} command except that it uses the \opt{Name} and +% \opt{Names} key-value options. +% \begin{Itabb} +% \hspace*{18em}\=\kill +% |\Eqref{e1} is ...| \>\Eqref{e1} is ... \\ +% |\Eqref{e1,e2} are ...| \>\Eqref{e1,e2} are ... \\ +% |\Eqref[lsttxt={\ or~}]{e1,e2,e3}| \>\Eqref[lsttxt={\ or~}]{e1,e2,e3} +% \end{Itabb} +% \noindent +% References to external documents can be added with the \opt{xr} +% option. Please read the documentation of the \pkg{xr} package. +% +% \begin{Itabb} +% \hspace{10em}\=hspace{5em}\=\kill +% \cmd{\eqref}|[|\opt{xr}|=A-]{xyz}| \> \>$\rightarrow$~ +% |equation~\ref{A-eq:xyz}| +% \end{Itabb} +% +% +% \subsection{Range reference commands} +% +% \begin{cminipage}[\linewidth] +% \begin{syntdiag} +% \tok{\argcmd{\rtp}{rangeref}} +% \begin{stack}\\ \tok{$\ast$} \end{stack} +% \begin{stack}\\ \tok{\okeylst} \end{stack} +% \tok{"{"$_1$"}{"$_2$"}"} +% \end{syntdiag} +% \end{cminipage} +% \smallskip +% +% \begin{cminipage}[\linewidth] +% \begin{syntdiag} +% \tok{\argcmd{\Rtp}{rangeref}} +% \begin{stack}\\ \tok{$\ast$} \end{stack} +% \begin{stack}\\ \tok{\okeylst} \end{stack} +% \tok{"{"$_1$"}{"$_2$"}"} +% \end{syntdiag} +% \end{cminipage} +% \blankline +% +% \noindent +% The \argcmd{\rtp}{rangeref} and \argcmd{\Rtp}{rangeref} commands +% return a range of references and take two arguments. The |*| +% optional form again eliminates the name prefix. +% \blankline +% +% \noindent +% \textbf{\slshape Examples:} +% \begin{Itabb} +% \hspace*{19em}\=\kill +% |in \eqrangeref{e1}{e4} ...| \>in \eqrangeref{e1}{e4} ... \\ +% |... and \eqrangeref*{e1}{e4} ...| \>... and \eqrangeref*{e1}{e4} ... \\ +% |\Eqrangeref{e1}{e4} are ...| \>\Eqrangeref{e1}{e4} are ... \\ +% |\Eqrangeref[vref,rngtxt=--]{e1}{e4}| \>\Eqrangeref[rngtxt=--,vref]{e1}{e4} +% \end{Itabb} +% +% +% \subsection{Page reference command}\seclabel{PRefCmds} +% +% \begin{cminipage} +% \begin{syntdiag} +% \tok{\argcmd{\rtp}{pageref}} +% \begin{stack}\\ \tok{\okeylst} \end{stack} +% \tok{"{""}"} +% \end{syntdiag} +% \end{cminipage} +% \blankline +% \noindent +% The \argcmd{\rtp}{pageref} commands returns the page number of a +% reference. +% \blankline +% +% \noindent +% \textbf{\slshape Examples:} +% \begin{Itabb} +% \hspace*{18em}\=\kill +% |it is on page \eqpageref{e1} ...| \>it is on page \eqpageref{e1} ...\\ +% |it is \eqpageref[vref]{e1} ...| \>it is \eqpageref[vref]{e1} ... +% \end{Itabb} +% +% +%^^A================================================================= +% \begin{table} +% \newcommand*{\Q}{\ensuremath{\blacksquare}}^^A +% \newcommand*{\X}{\ensuremath{\square}}^^A +% \setlength{\fboxsep}{1em}^^A +% \centering +% \caption[The available options and key-value parameters]^^A +% {The available options and key-value parameters for +% the label and reference commands of the \RS\ package.} +% \tablabel{refopt} +% \blankline +% \begin{cminipage}[.9\textwidth] +% \renewcommand{\thempfootnote}{\fnsymbol{mpfootnote}} +% \renewcommand{\footnoterule}{} +% \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}llccccccc@{}} +% & & \multicolumn{7}{c}{Commands\footnote{^^A +% The commands are obtained by calling the configuring command +% \cmd{\newref} and setting the default key-values. The +% active key-values can be changed temporarily inside the +% commands.}} \\ +% \cline{3-9} +% Parameter & Default & +% \begin{turn}{90}\argcmd{{\rtp}}{key}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\rtp}}{label}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\rtp}}{ref}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\Rtp}}{ref}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\rtp}}{rangeref}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\Rtp}}{rangeref}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\rtp}}{pageref}~ \end{turn}\\ +% \hline +% \noalign{\smallskip} +% ~$\ast$ & &\X &\X &\Q &\Q &\Q &\Q &\X\\ +% \okeylst & &\X &\X &\Q &\Q &\Q &\Q &\Q\\[1ex] +% \opt{key} &|={|\meta{\rtp:}|},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\ +% \opt{s} & |={true}|\footnote{^^A +% Options defaults to \opt{true} but is initialized +% as \opt{false}. The \argcmd{{\rtp}}{ref}\texttt{[s]}\marg{lbl} +% command results in the plural: \opt{names}. +% The same principle is also valid for the \opt{vref} +% option.\fnlabel{b}}|,| +% &\X &\X &\Q &\Q &\X &\X &\X\\ +% \opt{vref} &|={true}|\fnref*{b}|,| +% &\X &\X &\Q &\Q &\Q &\Q &\Q\\ +% \opt{xr} &|={},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\[1ex] +% \opt{name} &|={},| &\X &\X &\Q &\X &\X &\X &\X\\ +% \opt{names}\footnote{^^A +% Option depends on the selection of the \texttt{s=true/false} +% optional key-value for singular or plural.\fnlabel{c}} +% &|={},| &\X &\X &\Q &\X &\Q &\X &\X\\ +% \opt{Name} &|={},| &\X &\X &\X &\Q &\X &\X &\X\\ +% \opt{Names}\fnref*{c} +% &|={},| &\X &\X &\X &\Q &\X &\Q &\X\\ +% \opt{lsttwotxt} &|={\space and~},| &\X &\X &\Q &\Q &\X &\X &\X\\ +% \opt{lsttxt} &|={\space and~},| &\X &\X &\Q &\Q &\X &\X &\X\\ +% \opt{rngtxt} &|={\space to~},| &\X &\X &\X &\X &\Q &\Q &\X\\[1ex] +% \opt{refcmd} &|=\ref{#1},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\ +% +% \hline +% \noalign{\smallskip} +% +% \footnotesize \Q\ -- \makebox[0pt][l]{\footnotesize Available}\\ +% \footnotesize \X\ -- \makebox[0pt][l]{Not available} +% \end{tabular*} +% \end{cminipage} +% \end{table} +%^^A================================================================= +% +% +% +% \clearpage +% \section{\pkg{Keyval} Optional Arguments}\seclabel{keyvals} +% +% Al the options for the referencing commands are set with a key-value +% list. \Tabref[vref]{refopt} gives a full list of all the key-values and +% defaults. The options can also be changed locally with the +% \okeylst\ optional arguments. +% +% +% \subsection{Identifier: \opt{key}} +% +% The \opt{key} key-value is the prefix to the reference label +% of the \cmd{\ref} and \cmd{\pageref} commands. +% The default is \opt{key=}\meta{type\,:\,}. +% With the default \RScfg: +% +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% \cmd{\newref}|{tab}{...}|\\[1ex] +% \>|\tablabel{abc}| +% \>~ $\rightarrow$ |\label{tab:abc}|\\ +% \>|\tabref{abc}| +% \>~ $\rightarrow$ |table~\ref{tab:abc}|\\[1ex] +% \cmd{\newref}|{tab}{key=xxx-,...}|\\[1ex] +% \>|\tablabel{abc}| +% \>~ $\rightarrow$ |\label{xxx-abc}|\\ +% \>|\tabref{abc}| +% \>~ $\rightarrow$ |table~\ref{xxx-abc}| +% \end{Itabb} +% For existing documents containing labels such as |\label{tab:xx}|, +% you can use the \opt{nokeyprefix} option which defines \opt{key}|={}|. The +% normal \cmd{\label} command can then be used and the reference +% commands defaults to +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% \>\cmd{\label}|{tab:xx}| \\ +% \>|\tabref{tab:xx}| \>~ $\rightarrow$ |table~\ref{tab:xx}| +% \end{Itabb} +% +% +% \subsection{Plural form: \opt{s}} +% +% The \opt{s} conditional option (\texttt{true/false}) switches the +% singular/plural form of the reference on and off. The default is +% \opt{s}\texttt{=true}, but it is initialized to \texttt{false}. +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% |\tabref{abc}| +% \>\>~ $\rightarrow$ |table~\ref{tab:abc}|\\ +% |\tabref[s]{abc}| +% \>\>~ $\rightarrow$ |tables~\ref{tab:abc}| +% \end{Itabb} +% +% +% \subsection{Extended reference: \opt{vref}} +% +% The \opt{vref} conditional option (\texttt{true/far/false}) switches the +% \pkg{varioref} page referencing on and off. The default is +% \opt{vref}\texttt{=true}, but it is initialized to \texttt{false}. +% +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% |\tabref{abc}| +% \>\>~ $\rightarrow$ |table~\ref{tab:abc}|\\ +% |\tabref[vref]{abc}| +% \>\>~ $\rightarrow$ |table~\ref{tab:abc}| +% |\vpageref[\unskip]{tab:abc}|\\ +% |\tabref[vref=far]{abc}|^^A +% \>\>~ $\rightarrow$ |table~\ref{tab:abc}| +% |\reftextfaraway{tab:abc}| +% \end{Itabb} +% +% +% \subsection{External interfaces: \opt{xr}} +% +% The \opt{xr} option is for references to external documents. +% It inserts a prefix in the reference label, compatible with the +% \pkg{xr} package. The default is \opt{xr}|={}|. +% +% External document can be defined in the preamble with the +% \pkg{xr} or \pkg{xr-hyper} packages: +% \begin{Ipara} +% \cmd{\usepackage}|{xr}|\\ +% \cmd{\externaldocument}\oarg{xr\_key}\marg{filename} +% \end{Ipara} +% +% \noindent +% If, for example, an external document defined with +% \meta{xr\_key}\texttt{=\{A-\}}, uses an identical setup (e.g.\ the same +% \RScfg), then it can be referenced with +% +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% |\tabref[xr=A-]{abc}| +% \>\>~ $\rightarrow$ |table~\ref{A-tab:abc}| +% \end{Itabb} +% \noindent or otherwise +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% |\tabref[xr=A-,key=]{abc}| +% \>\>~ $\rightarrow$ |table~\ref{A-abc}| +% \end{Itabb} +% +% +% \subsection{Language parameters: \opt{name}, \opt{names}, +% \opt{Name}, \opt{Names}, \opt{rngtxt}, \opt{lsttwotxt}, \opt{lsttxt}} +% \seclabel{langopts} +% +% This key-values contain the text prefixes and insertions. +% Every house style or user has his or her own preference for naming the reference types, +% therefore are there no defaults provided. +% +% \begin{Itabb} +% \hspace*{1.5cm}\=\hspace{7cm}\=\kill +% \opt{name} \> ---~Inside sentence reference prefix (singular) +% \> default=|{}|\\ +% \opt{names}\> ---~Inside sentence reference prefix (plural) +% \> default=|{}|\\ +% \opt{Name} \> ---~First word reference prefix (singular) +% \> default=|{}|\\ +% \opt{Names}\> ---~First word reference prefix (plural) +% \> default=|{}|\\ +% \opt{rngtxt}\> ---~Range of references +% \> default=|{\ to~}|\\ +% \opt{lsttwotxt}\> ---~List of references (two) +% \> default=|{\ and~}|\\ +% \opt{lsttxt}\> ---~List of references (more than two) +% \> default=|{\ and~}| +% \end{Itabb} +% \noindent +% Good typographic style manuals recommend the minimum use of +% capital letters and punctuation that breaks the flow of a sentence +% or paragraph. For abbreviations, Bringhurst\cite{Bring1996} +% recommends the Oxford house style: Use a period only when the word +% stops prematurely. The period is omitted if the abbreviation +% begins with the first letter and end with the last. As an example +% for equations, use eq.~(1) or eqn~(1). +% A good guideline is not to abbreviate any reference type names. +% If a sentence starts with a +% reference then the type name must always be written in full. +% A typical example for references to a table is: +% \begin{Ipara} +% \opt{name}| ={table~}, |\opt{names}| ={tables~},|\\ +% \opt{Name}| ={Table~}, |\opt{Names}| ={Tables~},|\\ +% \opt{rngtxt}|={\ to~}, |\opt{lsttxt}|={, and~}, |\opt{lsttwotxt}|={\ and~},| +% \end{Ipara} +% Note the hardspace after the text. It is needed to keep the text +% and the reference together on the same line. +% +% The \RS\ configuration file can be setup to interface with \pkg{babel} +% for different languages or for automatic language changes inside a +% document. The language specific key-values can be added to the +% \pkg{babel} hook |\extras|\meta{language}. The command +% \DescribeMacro{\DeclareLangOpt}\cmd{\DeclareLangOpt}\footnote{^^A +% Only for use in \RScfg\ the default config file} +% is provided to supply a \meta{language} option to the package +% and to add the option contents to |\extras|\meta{language}. The +% default config file contains the following lines for equations: +% \begin{Ipara} +% |\newcommand\RSenglish{% |\\ +% | \def\RSeqtxt{equation~}% |\\ +% | \def\RSeqstxt{equations~}%|\\ +% | \def\RSEqtxt{Equation~}% |\\ +% | \def\RSEqstxt{Equations~}%|\\ +% | : |\\ +% | } |\\ +% |\DeclareLangOpt{english}{\RSenglish}| +% \end{Ipara} +% \DescribeMacro{\RSaddto}or manually with the \cmd{\RSaddto} command +% \begin{Ipara} +% |\RSaddto{\extrasenglish}{\RSenglish}| +% \end{Ipara} +% The key-value options for language specific options +% are then set as: +% \begin{Ipara} +% |\newref{eq}{% |\\ +% | name = \RSeqtxt, |\\ +% | names = \RSeqstxt,|\\ +% | Name = \RSEqtxt, |\\ +% | Names = \RSEqstxt,|\\ +% | : |\\ +% | } | +% \end{Ipara} +% +% \noindent\LaTeX{}/\pkg{babel} provides some language specific +% names that can be utilized. +% +% \begin{Ipara} +% |\chaptername \appendixname|\\ +% |\figurename \tablename|\\ +% |\partname \pagename| +% \end{Ipara} +% +% To setup a multilingual document with \pkg{babel}, +% \emph{always} make the language options global so that other +% language compliant packages can detect it. +% A typical setup for an Afrikaans/English document would be: +% {\makeatletter\def\meta@font@select{\normalfont\ttfamily\slshape} +% \begin{Ipara} +% |\documentclass[UKenglish,afrikaans,|\meta{options}|]{|\meta{LaTeX\_class}|}|\\ +% |\usepackage[T1]{fontenc}%..|\texttt{\slshape hyphenation of words with accents}\\ +% |\usepackage{babel}%........|\texttt{\slshape language def's}\\ +% |\usepackage{varioref}%.....|\texttt{\slshape for \opt{vref} option}\\ +% |\usepackage{refstyle}| +% \end{Ipara}} +% +% +% \subsection{Reference formatting command: \opt{refcmd}} +% +% The \opt{refcmd} key-value holds the contents of the internal +% command that formats the reference. The |#1| parameter +% passed to the command is the full reference label. +% For example: +% \begin{Itabb} +% \hspace{10em}\=hspace{5em}\=\kill +% \opt{refcmd}|=(\ref{#1})| \> $\rightarrow$~ +% |(\ref{|\meta{label}|})| +% \end{Itabb} +% +% External commands can be employed. For example, to make references +% to equations identical to the \AmS\ \cmd{\eqref} command: +% \begin{Itabb} +% \opt{refcmd}|={\textup{\tagform@{\ref{#1}}}}%|~~It needs \file{amsmath.sty} +% \end{Itabb} +% +% The \opt{refcmd} can be used in conjuntion with the |\ifRSstar|, +% |\ifRSnameon|, |\ifRSplural| and |\ifRScapname| internal +% conditional variables to format the reference. As an example for a +% reference to a footnote, where a duplicate footnote mark is needed, +% can the \opt{refcmd} be configured so that the starred form of the +% reference command produce a superscripted duplicate mark: +% \begin{Itabb} +% |\newcommand{\RSfnmark}[1]{%|\\ +% | \begingroup |\\ +% | \unrestored@protected@xdef\@thefnmark{#1}%|\\ +% | \endgroup |\\ +% | \@footnotemark} |\\[1ex] +% \opt{refcmd}|={\ifRSstar\RSfnmark{\ref{#1}}\else(\ref{#1})\fi}| +% \end{Itabb} +% \noindent The second footnote mark, \fnref*[name]{b}, in +% \tabref[vref]{refopt}, was obtained in this way with the reference +% |\fnref*{b}|. See \RScfg\ for another +% example for references to chapters and appendices. +% +% The \pkg{nameref} package can easily be incorporated if you need elaborate +% references which include the section or chapter name: +% \begin{Ipara} +% |\Secref[vref, refcmd={\S\ref{#1}, `\nameref{#1}'}]{PRefCmds}| +% \end{Ipara} +% gives +% \begin{Ipara} +% \Secref[vref, refcmd={\S\ref{#1}, `\nameref{#1}'}]{PRefCmds} +% \end{Ipara} +% +% \section{Default configuration files} +% +% The \pkg{refstyle} package first searches for the \file{refstyle.def} +% configuration file, and if it not found, then it uses the default +% configuration file \RScfg\ that is supplied with the package. +% +% The default configuration file, \RScfg, makes a +% number of default reference declarations and provides language +% definitions for the language parameters. See the file +% \file{refconfig.pdf} for the documentation. +% \medskip +% +% \begin{center} +% \begin{fminipage}[.55\textwidth] +% \slshape Any user is welcome to customize the +% local copy of the \RScfg\ file or copy +% the relevant contents to your own \file{refstyle.def} +% configuration file. +% \end{fminipage} +% \end{center} +% +% \begin{thebibliography}{99} +% \bibitem{Bring1996} +% {Bringhurst, R.} (1996), \emph{The elements of typographic style}, +% Hartley \& Marks Publishers, Point Roberts, WA, USA and Vancouver, +% BC, Canada, second edn. +% \end{thebibliography} +% +% \StopEventually{\PrintChanges\PrintIndex} +% \clearpage +% +% \section{Implementation: \pkg{refstyle.sty}} +% +% \subsection{Identification} +% \begin{macrocode} +%<*pkg> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{refstyle}[\RefstyleFileDate\space + \RefstyleFileVersion\space + Reference formatting (DNJ Els)] +\newcommand*{\RS@pkgname}{refstyle} +% \end{macrocode} +% +% +% \subsection{External packages} +% +% Load all the external packages. +% \begin{macrocode} +\RequirePackage{keyval} +% \end{macrocode} +% +% \begin{macro}{\RS@setkeys} +% \changes{v0.3}{2006/09/09}{original \cmd{\setkeys} copy} +% Note if \pkg{xkeyval} is loaded, it redefines \pkg{keyval}'s +% macros. To fix this bug, we need the original \cmd{\setkeys} +% command. +% \begin{macrocode} +\def\RS@setkeys#1#2{% + \def\KV@prefix{KV@#1@}% + \let\@tempc\relax + \KV@do#2,\relax,} +% \end{macrocode} +% \end{macro} +% +% \noindent A small bug-fix for \pkg{showkeys}. Will be removed +% after release of new version. +% +% \begin{macrocode} +\@ifundefined{vref@space}{\let\vref@space\space}{} +% \end{macrocode} +% +% \begin{macro}{\@safe@activestrue} +% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activesfalse}} +% \begin{macro}{\@safe@activesfalse} +% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activestrue}} +% If \pkg{babel} is not loaded, make the following +% commands inactive. +% \begin{macrocode} +\providecommand*{\@safe@activestrue}{} +\providecommand*{\@safe@activesfalse}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Utility commands} +% +% \begin{macro}{\RS@namelet} +% \begin{macro}{\RS@nameuse} +% \begin{macro}{\RS@namedef} +% \begin{macro}{\RS@robustnamedef} +% \noindent +% The following is a list of commands that take a variable \marg{name} +% as argument. This enables on-the-fly definitions of user commands. +% \begin{Itabb} +% Usage:~\=\cmd{\RS@robustnamedef}\marg{name}~\=\kill +% Usage: +% \>\cmd{\RS@namelet}\marg{name} +% \> $\rightarrow$ \cmd{\let}\cmeta{name}\\ +% \>\cmd{\RS@nameuse}\marg{name} +% \> $\rightarrow$ \cmeta{name}\\ +% \>\cmd{\RS@namedef}\marg{name} +% \> $\rightarrow$ \cmd{\def}\cmeta{name}\\ +% \>\cmd{\RS@robustnamedef}\marg{name} +% \> $\rightarrow$ +% \cmd{\def}\cmeta{name}|{\protect|\cmeta{name\textvisiblespace}|}|^^A +% \cmd{\def}\cmeta{name\textvisiblespace} +% \end{Itabb} +% \begin{macrocode} +\newcommand*{\RS@namelet}[1]{\expandafter\let\csname #1\endcsname} +\newcommand*{\RS@nameuse}[1]{\csname #1\endcsname} +\newcommand*{\RS@namedef}[1]{\expandafter\def\csname #1\endcsname} +\newcommand*{\RS@robustnamedef}[1]{% + \expandafter\edef\csname #1\endcsname{% + \noexpand\protect\RS@nameuse{#1 }}% + \RS@namedef{#1 }} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\RS@ifundefined} +% This is an improved definition\footnote{Posted by Markus Kohm +% on c.t.t. 2002/11/11} for the \LaTeX{} kernel command +% \cmd{\@ifundefined} that do not leave an undefined command +% defined as \cmd{\relax} after the test. +% +% The usage is: +% \cmd{\RS@ifundefined}\marg{name}\marg{true}\marg{false} executes +% the contents of \meta{true} if \cmeta{name} is not defined and +% \meta{false} if defined. +% \begin{macrocode} +\def\RS@ifundefined#1{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname#1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@removedef} +% The command removes the definition of a command, including +% robust definitions. +% \begin{macrocode} +\newcommand*{\RS@removedef}[1]{% + \RS@namelet{#1}\@undefined% + \RS@ifundefined{#1 }{}{\RS@namelet{#1 }\@undefined}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@testednamedef} +% \begin{macro}{\RS@testedrobustnamedef} +% These command are identical to \cmd{\RS@namedef} and +% \cmd{\RS@robustnamedef}, but only define the \cmeta{name} +% command if it is legal. Otherwise an error message +% is written to the log file and the program is terminated. +% \begin{macrocode} +\newcommand*{\RS@testednamedef}[1]{% + \RS@ifnamedefinable{#1}\RS@namedef{#1}} +% \end{macrocode} +% \begin{macrocode} +\newcommand*{\RS@testedrobustnamedef}[1]{% + \RS@ifnamedefinable{#1}\RS@robustnamedef{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\RS@ifnamedefinable} +% A modified version of the \LaTeX{} kernel command +% (from ltdefns.dtx). +% \begin{macrocode} +\long\def\RS@ifnamedefinable #1{% + \edef\reserved@a{#1}% + \RS@ifundefined\reserved@a + {\edef\reserved@b{\expandafter\@carcube \reserved@a xxx\@nil}% + \ifx \reserved@b\@qend \RS@notdefinable\else + \ifx \reserved@a\@qrelax \RS@notdefinable\else + \PackageInfo{\RS@pkgname}{\@backslashchar\reserved@a\space created}% + \fi + \fi}% + \RS@notdefinable} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@notdefinable} +% The error message when an illegal definition is attempted. +% \begin{macrocode} +\gdef\RS@notdefinable{% + \PackageError{\RS@pkgname}{% + Command \@backslashchar\reserved@a\space + already defined.\MessageBreak + Or name \@backslashchar\@qend... illegal.\MessageBreak + It can not be redefined by the \@backslashchar newref% + }{% + If \@backslashchar\reserved@a\space is not important\MessageBreak + then \protect\let\@backslashchar\reserved@a% + =\protect\relax,\MessageBreak + else use a different \@backslashchar newref.}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@setbool} +% The command\footnote{Taken from the \pkg{ifthen} package.} +% \cmd{\RS@setbool}\marg{conditional}\marg{true/false} +% sets the \meta{conditional} to |true| or |false|. +% \begin{Itabb} +% Usage:~\= +% \cmd{\RS@setbool}|{RSplural}{false}|\quad\=$\rightarrow$\quad +% |\RSpluralfalse|\\ +% \>\cmd{\RS@setbool}|{RSplural}{true}|\quad\>$\rightarrow$\quad +% |\RSpluraltrue| +% \end{Itabb} +% +% \begin{macrocode} +\newcommand*{\RS@setbool}[2]{% + \lowercase{\def\@tempa{#2}}% + \@ifundefined{@tempswa\@tempa}% + {\PackageError{\RS@pkgname}% + {You can only set the option to `true' or `false'}\@ehc}% + {\csname#1\@tempa\endcsname}} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{First character case changes} +% +% \begin{macro}{\RS@firstcap} +% This macro\footnote{Posted by Dan Luecking on c.t.t.} change the +% first character of a string to uppercase and returns the result +% in \cmd{\RS@cap}. +% \begin{Ipara} +% Usage:~|\RS@fistcap xxxx\@nil| then |\RS@cap| $\rightarrow$ |Xxxx| +% \end{Ipara} +% \begin{macrocode} +\def\RS@firstcap#1#2\@nil{% + \iffalse{\fi + \uppercase{\edef\RS@cap{\iffalse}\fi#1}#2}}% +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{Reference building commands} +% +% \begin{macro}{\ifRS@keyactive} +% \changes{v0.4}{2010/10/21}{Add \opt{nokeyprefix} to turn of the key prefix} +% We need to peek into the options list for the \opt{nokeyprefix} option +% before the options are processed to find out if the key prefix must be +% included in the |\|\meta{key}|label| command. Make \opt{nokeyprefix} +% not used afterwards. +% \begin{macrocode} +\newif\ifRS@keyactive +\@ifpackagewith{\@currname}{nokeyprefix}% + {\RS@keyactivefalse}% + {\RS@keyactivetrue} +\DeclareOption{nokeyprefix}{\OptionNotUsed} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\ifRSstar} +% \begin{macro}{\ifRSnameon} +% \begin{macro}{\ifRScapname} +% \begin{macro}{\ifRSplural} +% \begin{macro}{\ifRSlsttwo} +% \changes{v0.4}{2010/10/21}{Add \cmd{\ifRSlsttwo} test for list containing only two parameter} +% The |\if| conditional values that are set by the reference commands. +% These values can be accessed by user defined key-values. +% \begin{macrocode} +\newif\ifRSstar\RSstarfalse +\newif\ifRSnameon\RSnameontrue +\newif\ifRScapname\RScapnamefalse +\newif\ifRSplural\RSpluralfalse +\newif\ifRSlsttwo\RSlsttwofalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\newref} +% The main user interface for template setup. It take the |#1| or +% \meta{key} parameter and make it lowercase before passing it on to +% \cmd{\RS@newref}. +% +% +% \begin{macrocode} +\newcommand*{\newref}[1]{% + \lowercase{\def\RS@tempa{#1}}% + \expandafter\RS@newref\expandafter{\RS@tempa}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@newref} +% \changes{v0.4}{2010/10/21}{Ad \texttt{lsttwotxt} option} +% This command configures a new template. +% \begin{macrocode} +\newcommand*{\RS@newref}[2]{% +% \end{macrocode} +% \bNP[2.0]\noindent Clears an existing template before defining a new one.\eNP +% \begin{macrocode} + \RS@clearref{#1}% +% \end{macrocode} +% \bNP[2.0]\noindent Create |\ifRS@|\meta{key}|vref| conditional \eNP +% \begin{macrocode} +% \expandafter\newif\csname ifRS@#1vref\endcsname% +% \end{macrocode} +% \bNP[2.0]\noindent Creates a series of key-values for every template +% that stores the setup for the specific template.\eNP +% \begin{macrocode} + \ifRS@keyactive + \define@key{RS@#1}{key}[#1:]{\RS@namedef{RS@#1@key}{##1}}% + \else + \define@key{RS@#1}{key}[]{\RS@namedef{RS@#1@key}{##1}}% + \fi + \define@key{RS@#1}{s}[true]{\RS@setbool{RSplural}{##1}}% + \define@key{RS@#1}{name}[]{\RS@namedef{RS@#1@name}{##1}}% + \define@key{RS@#1}{names}[]{\RS@namedef{RS@#1@names}{##1}}% + \define@key{RS@#1}{Name}[]{\RS@namedef{RS@#1@Name}{##1}}% + \define@key{RS@#1}{Names}[]{\RS@namedef{RS@#1@Names}{##1}}% + \define@key{RS@#1}{rngtxt}[\space to~]{\RS@namedef{RS@#1@rngtxt}{##1}}% + \define@key{RS@#1}{lsttwotxt}[\space and~]{\RS@namedef{RS@#1@lsttwotxt}{##1}}% + \define@key{RS@#1}{lsttxt}[\space and~]{\RS@namedef{RS@#1@lsttxt}{##1}}% + \define@key{RS@#1}{refcmd}[\ref{####1}]{\RS@namedef{RS@#1@rcmd}####1{##1}}% + \define@key{RS@#1}{xr}[]{\RS@namedef{RS@#1@xr}{##1}}% + \define@key{RS@#1}{vref}[true]{\RS@namedef{RS@#1vref}{##1}}% +% \end{macrocode} +% \bNP[2.0]\noindent Set default key-value parameters.\eNP +% \begin{macrocode} + \RS@setkeys{RS@#1}{key, + s=false, + name,names,Name,Names, + rngtxt,lsttwotxt,lsttxt, + refcmd, + xr, + vref=false}% +% \end{macrocode} +% \bNP[2.0]\noindent Set key-values according to user definitions.\eNP +% \begin{macrocode} + \RS@setkeys{RS@#1}{#2}% +% \end{macrocode} +% \bNP[2.0]\noindent Build the reference commands.\eNP +% \begin{macrocode} + \RS@buildref{#1}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@clearref} +% Clear a reference template for redefinition. It check +% if the template already exists and clear it if it does. +% +% \begin{macrocode} +\newcommand*{\RS@clearref}[1]{% + \RS@ifundefined{RS@#1@template} + {\RS@namedef{RS@#1@template}{#1}% + \PackageInfo{\RS@pkgname}% + {New reference template \protect\newref{#1}}{}} + {\PackageInfo{\RS@pkgname}% + {Reference template \protect\newref{#1} redefined}{} + \RS@firstcap#1\@nil + \RS@removedef{#1key}% + \RS@removedef{#1label}% + \RS@removedef{#1ref}% + \RS@removedef{\RS@cap ref}% + \RS@removedef{#1rangeref}% + \RS@removedef{\RS@cap rangeref}% + \RS@removedef{#1pageref}% + }% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@buildref} +% Build the reference commands. See \tabref{refopt} for the list of +% commands. The \cmd{\RS@buildref}\marg{key} build commands to +% call \cmd{\RS@cmd}\marg{cmd}\marg{key}, for example: +% \begin{Ipara} +% \cmeta{key}|ref| \quad$\rightarrow$\quad +% |{\RScapnamefalse\RS@cmd{ref}|\marg{key}|}| +% \end{Ipara} +% \changes{v0.2}{2003/07/30}{Remove robust def of \argcmd{{\rtp}}{label}} +% \begin{macrocode} +\newcommand*{\RS@buildref}[1]{% + \RS@firstcap#1\@nil + \RS@testednamedef{#1key}{\RS@nameuse{RS@#1@key}} + \RS@testednamedef{#1label}##1{\label{\RS@nameuse{RS@#1@key}##1}} + \RS@testedrobustnamedef{#1ref}{\RScapnamefalse\RS@cmd{ref}{#1}} + \RS@testedrobustnamedef{\RS@cap ref}{\RScapnametrue\RS@cmd{ref}{#1}} + \RS@testedrobustnamedef{#1rangeref}{\RScapnamefalse\RS@cmd{rangeref}{#1}} + \RS@testedrobustnamedef{\RS@cap rangeref}{\RScapnametrue\RS@cmd{rangeref}{#1}} + \RS@testedrobustnamedef{#1pageref}{\RScapnamefalse\RS@cmd{pageref}{#1}} + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@cmd} +% \begin{macro}{\RS@@cmd} +% The command \cmd{\RS@cmd}\marg{cmd}\marg{key} calls the final +% reference formatting commands. +% It checks for the starred form and set the conditionals +% |\ifRSstar| and |\ifRSnameon| accordingly. +% It also extracts the optional key-value list. +% \begin{Itabb} +% \hspace*{4.5cm}\=\kill +% \cmd{\RS@cmd}|{ref}|\marg{key} \>$\rightarrow$\quad +% |\RS@ref|\marg{key}\okeylst\\ +% \cmd{\RS@cmd}|{rangeref}|\marg{key} \>$\rightarrow$\quad +% |\RS@rangeref|\marg{key}\okeylst\\ +% \cmd{\RS@cmd}|{pageref}|\marg{key} \>$\rightarrow$\quad +% |\RS@pageref|\marg{key}\okeylst +% \end{Itabb} +% \begin{macrocode} +\newcommand*{\RS@cmd}[2]{% + \@ifstar{\RSstartrue\RSnameonfalse\RS@@cmd{#1}{#2}}% + {\RSstarfalse\RSnameontrue\RS@@cmd{#1}{#2}}} +% \end{macrocode} +% \begin{macrocode} +\newcommand*{\RS@@cmd}[2]{% + \@ifnextchar[% + {\RS@nameuse{RS@#1}{#2}}% + {\RS@nameuse{RS@#1}{#2}[]}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Reference formatting commands} +% +% \begin{macro}{\RS@ref} +% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activestrue} to avoid active chars is ref list} +% \begin{macro}{\RS@@ref} +% \begin{macro}{\RS@@@ref} +% \changes{v0.4}{2010/10/21}{Add \cmd{\ifRSlsttwo} test for list containing only two parameter} +% The command \cmd{\RS@ref}\marg{key}\okeylst\marg{label\_lst} +% typeset the references to the comma-separated reference +% label list according to the configuration for \meta{key}. +% +% First of all, remove all spaces for the reference label list. +% \begin{macrocode} +\def\RS@ref#1[#2]#3{% + \begingroup + \RS@setkeys{RS@#1}{#2}% + \@safe@activestrue% + \edef\RS@tmpa{\zap@space#3 \@empty}% + \@safe@activesfalse% + \edef\RS@tmpa{\noexpand\RS@@ref{#1} \RS@tmpa,\relax\noexpand\@eolst}% + \RS@tmpa% + \endgroup} +% \end{macrocode} +% \end{macro} +% Check if there is a single or multiple references in the +% reference label list. If a single reference label then use the +% form set by the \opt{s} key-value. If multiple reference labels +% the use the plural form of the name prefix.\footnote{ +% The list of reference commands came from the \pkg{typedref} package.} +% +% \begin{macrocode} +\def\RS@@ref#1 #2,#3\@eolst{% + \ifx\relax#3\relax + \RS@makename{#1}% + \RS@makeref{#1}{#2}% + \RS@makevpageref{#1}{#2}% + \else + \RSpluraltrue% + \RS@makename{#1}% + \RS@makeref{#1}{#2}% + \RS@makevpageref{#1}{#2}% + \RSnameonfalse% + \RSlsttwotrue% + \RS@@@ref{#1} #3\@eolst% + \fi} +% \end{macrocode} +% \end{macro} +% For more than one reference in the reference list, typeset the +% rest of the references. +% \begin{macrocode} +\def\RS@@@ref#1 #2,#3\@eolst{% + \ifx\relax#3\relax + \ifRSlsttwo + \RS@nameuse{RS@#1@lsttwotxt}% + \else + \RS@nameuse{RS@#1@lsttxt}% + \fi + \RS@makeref{#1}{#2}% + \RS@makevpageref{#1}{#2}% + \else + \RSlsttwofalse% + \unskip,\space% + \RS@makeref{#1}{#2}% + \RS@makevpageref{#1}{#2}% + \RS@@@ref{#1} #3\@eolst% + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@rangeref} +% The command \cmd{\RS@rangeref}\marg{key}\okeylst\marg{lbl1}\marg{lbl2} +% typeset the references as a range. +% \begin{macrocode} +\def\RS@rangeref#1[#2]#3#4{% + \begingroup + \RS@setkeys{RS@#1}{#2}% + \RSpluraltrue% + \RS@makename{#1}% + \RS@makeref{#1}{#3}% + \RS@nameuse{RS@#1@rngtxt}% + \RSnameonfalse% + \RS@makeref{#1}{#4}% + \RS@makevpagerefrange{#1}{#3}{#4}% + \endgroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@pageref} +% The command \cmd{\RS@pageref}\marg{key}\okeylst\marg{lbl} type +% the page where \marg{lbl} was defined. +% \begin{macrocode} +\def\RS@pageref#1[#2]#3{% + \begingroup% + \RS@setkeys{RS@#1}{#2}% + \RS@ifvref{#1}% + {\mbox{}\vpageref*{\RS@lbl{#1}{#3}}}% + {\reftextfaraway{\RS@lbl{#1}{#3}}}% + {\pageref{\RS@lbl{#1}{#3}}}% + \endgroup} +% \end{macrocode} +% \end{macro} +% +% \changes{v0.2}{2003/07/30}{Remove redundant \cmd{\RS@label}} +% +% \begin{macrocode} +\newcommand*{\RS@true}{true} +\newcommand*{\RS@false}{false} +\newcommand*{\RS@far}{far} +% \end{macrocode} +% +% \begin{macro}{\RS@ifvref} +% The command \cmd{\RS@ifvref}\marg{key}\marg{true}\marg{faraway}\marg{false} +% executes the contents of \meta{true} if the \opt{vref} option for +% the \meta{key} reference type is true and \meta{false} otherwise. +% \begin{macrocode} +\newcommand{\RS@ifvref}[4]{% + \edef\RS@tempa{\RS@nameuse{RS@#1vref}}% + \ifx\RS@tempa\RS@true\relax + #2% + \else\ifx\RS@tempa\RS@far\relax + #3% + \else\ifx\RS@tempa\RS@false\relax + #4% + \else + \PackageError{\RS@pkgname}% + {You can only set the vref option to `true', `far' or `false'}\@ehc + \fi\fi\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@makename} +% The command \cmd{\RS@makename}\marg{key} build the prefix +% to the reference commands. +% \begin{macrocode} +\newcommand{\RS@makename}[1]{% + \ifRSstar\else\ifRSnameon + \ifRSplural + \ifRScapname + \RS@nameuse{RS@#1@Names}% + \else + \RS@nameuse{RS@#1@names}% + \fi + \else + \ifRScapname + \RS@nameuse{RS@#1@Name}% + \else + \RS@nameuse{RS@#1@name}% + \fi + \fi + \fi\fi + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@lbl} +% This command builds the full label string for the \cmd{\ref} +% command. +% \begin{Ipara} +% \cmd{\RS@lbl}\marg{key}\marg{label} \quad$\rightarrow$\quad +% |{|\meta{xr_key}\meta{key}\meta{label}|}| +% \end{Ipara} +% \begin{macrocode} +\newcommand*{\RS@lbl}[2]{% + \RS@nameuse{RS@#1@xr}\RS@nameuse{RS@#1@key}#2% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@makeref} +% The command \cmd{\RS@makeref}\marg{key}\marg{label} formats +% the \cmd{\ref} output +% \begin{Ipara} +% \cmd{\RS@makeref}\marg{key}\marg{label} \quad$\rightarrow$\quad +% \cmeta{rcmd}|{\ref{|\meta{xr_key}\meta{key}\meta{label}|}}| +% \end{Ipara} +% \begin{macrocode} +\newcommand{\RS@makeref}[2]{% + \RS@nameuse{RS@#1@rcmd}{\RS@lbl{#1}{#2}}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@makevpageref} +% The command \cmd{\RS@makevpageref}\marg{key}\marg{label} adds the +% \pkg{varioref} page reference if the \opt{vref} option is true. +% \begin{macrocode} +\newcommand{\RS@makevpageref}[2]{% + \RS@ifvref{#1}% + {\vpageref[\unskip]{\RS@lbl{#1}{#2}}}% + { \reftextfaraway{\RS@lbl{#1}{#2}}}% + {}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@makevpagerefrange} +% The command \cmd{\RS@makevpagerefrange}\marg{key}\marg{lbl1}\marg{lbl1} +% adds the \pkg{varioref} page range reference if the \opt{vref} +% option is true. +% \begin{macrocode} +\newcommand{\RS@makevpagerefrange}[3]{% + \RS@ifvref{#1}% + {\space\vpagerefrange[\unskip]{\RS@lbl{#1}{#2}}{\RS@lbl{#1}{#3}}}% + {\space\vpagerefrange[\unskip]{\RS@lbl{#1}{#2}}{\RS@lbl{#1}{#3}}}% + {}% + } +% \end{macrocode} +% \end{macro} +% +% +% \subsection{\pkg{varioref} command predefinitions} +% +% \begin{macrocode} +\AtBeginDocument{% + \providecommand{\vpageref}{% + \PackageError{\RS@pkgname}% + {The vref option used, but varioref.sty not loaded.}% + {Load varioref.sty}} + \providecommand{\reftextfaraway}{% + \PackageError{\RS@pkgname}% + {The vref=far option used, but varioref.sty not loaded.}% + {Load varioref.sty}} + \providecommand{\vpagerefrange}{% + \PackageError{\RS@pkgname}% + {The vref option used, but varioref.sty not loaded.}% + {Load varioref.sty}} + } +% \end{macrocode} +% +% +% \subsection{Support for language option inclusions in config file} +% +% \begin{macro}{\RSaddto} +% \changes{v0.2}{2003/07/30}{Rename \cmd{\RS@addto} to \cmd{\RSaddto}} +% Command from the \pkg{varioref} package is used to add +% language definitions to the |\extras|\meta{language} token +% for \pkg{babel}. +% \begin{macrocode} +\def\RSaddto#1#2{% + #2% + \@temptokena{#2}% + \ifx#1\relax + \let#1\@empty + \fi + \ifx#1\undefined + \edef#1{\the\@temptokena}% + \else + \toks@\expandafter{#1}% + \edef#1{\the\toks@\the\@temptokena}% + \fi + \@temptokena{}\toks@\@temptokena} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\DeclareLangOpt} +% \changes{v0.5}{2010/11/02}{Add \cmd{\extras}\meta{language} to beginning of document.} +% Command to declare a language option and add +% language definitions to the |\extras|\meta{language} token +% for \pkg{babel}. +% \begin{macrocode} +\def\DeclareLangOpt#1#2{% + \edef\RS@tempa{\expandafter\@gobble\string#2}% + \RS@ifundefined{\RS@tempa}% + {\PackageError{\RS@pkgname}{% + Unknown definitions \@backslashchar\RS@tempa\MessageBreak + for language option `#1'}{}}% + {\DeclareOption{#1}{% + \AtBeginDocument{\expandafter\RSaddto\csname extras#1\endcsname #2}}}% + } +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{Configuration files} +% +% \begin{macro}{\RS@cfgfile,\RS@reffile} +% \changes{v0.4}{2010/10/21}{Ad alternative definition file \cmd{refstyle.def}} +% Define the config file and alternate definition file names. +% \begin{macrocode} +\newcommand*{\RS@cfgfile}{refstyle.cfg} +\newcommand*{\RS@reffile}{refstyle.def} +% \end{macrocode} +% \end{macro} +% +% We need to peek into the options list before the +% options are processed to find out if the config +% file is to be loaded or not. The config file can +% contain options and must be loaded before +% \cmd{\ProcessOptions}. Make \opt{noconfig} not used +% afterwards. +% +% We first test for a local config file \file{refstyle.def} +% and then for the global config file \file{refstyle.cfg}. +% \begin{macrocode} +\@ifpackagewith{\@currname}{noconfig}% + {\PackageInfo{\RS@pkgname}{No config file loaded}}% + {\InputIfFileExists{\RS@reffile}% + {\PackageInfo{\RS@pkgname}{Local config file \RS@reffile\space used}} + {\InputIfFileExists{\RS@cfgfile}% + {\PackageInfo{\RS@pkgname}{Config file \RS@cfgfile\space used}}% + {\PackageInfo{\RS@pkgname}{No config file found}}}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareOption{noconfig}{\OptionNotUsed}% +% \end{macrocode} +% +% Process the options, including options in config file. +% \begin{macrocode} +\ProcessOptions*\relax +% \end{macrocode} +% +% The end of this package. +% \begin{macrocode} +% +% \end{macrocode} +% +% \Finale +\endinput diff --git a/macros/latex/contrib/refstyle/refstyle.ins b/macros/latex/contrib/refstyle/refstyle.ins index ced9ef9722..5d69497509 100644 --- a/macros/latex/contrib/refstyle/refstyle.ins +++ b/macros/latex/contrib/refstyle/refstyle.ins @@ -1,97 +1,92 @@ -% refstyle.ins -% Copyright (C) 2002--2010 Danie Els -% -% ------------------------------------------------------------------- -% The refstyle package -% for the formatting of references -% ------------------------------------------------------------------- -% This work may be distributed and/or modified under the conditions -% of the LaTeX Project Public License, either version 1.3c of this -% license or (at your option) any later version. The latest version -% of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work is "maintained" (as per LPPL maintenance status) -% by Danie Els (dnjels@sun.ac.za). -% -% This package consists of the files: refstyle.dtx -% refconfig.dtx -% refstyle.ins -% and the derived files: refstyle.sty -% refstyle.cfg -% ------------------------------------------------------------------- -% This file will generate fast loadable files and documentation -% driver files from the doc files in this package when run through -% LaTeX or TeX. -% ------------------------------------------------------------------- - -\def\batchfile{refstyle.ins} -\def\filedate{2010/10/21} -\input docstrip.tex -\keepsilent - -\declarepreamble\package - -Copyright (C) 2002--2010 Danie Els - -------------------------------------------------------------------- - The refstyle package - for the formatting of references -------------------------------------------------------------------- -This work may be distributed and/or modified under the conditions -of the LaTeX Project Public License, either version 1.3c of this -license or (at your option) any later version. The latest version -of this license is in - http://www.latex-project.org/lppl.txt -and version 1.3c or later is part of all distributions of LaTeX -version 2005/12/01 or later. - -This work is "maintained" (as per LPPL maintenance status) -by Danie Els (dnjels@sun.ac.za). -------------------------------------------------------------------- - -\endpreamble - -\generate{% - \askforoverwritefalse - \usepreamble\package - \file{refstyle.sty}{\from{refstyle.dtx}{pkg}}} - - - - -\declarepreamble\config - -------------------------------------------------------------------- - The refstyle package - for the formatting of references -------------------------------------------------------------------- -This file may be customized to suit specific user requirements. - -Original by Danie Els -------------------------------------------------------------------- - -\endpreamble -\generate{% - \askforoverwritefalse - \usepreamble\config - \file{refstyle.cfg}{\from{refconfig.dtx}{cfg}}} - - -\obeyspaces -\Msg{**********************************************************} -\Msg{* *} -\Msg{* To finish the installation you have to move the *} -\Msg{* following files into a directory searched by TeX: *} -\Msg{* *} -\Msg{* refstyle.sty *} -\Msg{* refstyle.cfg *} -\Msg{* *} -\Msg{* To produce the documentation run the file ustitle.dtx *} -\Msg{* through LaTeX. *} -\Msg{* *} -\Msg{* Happy TeXing! *} -\Msg{**********************************************************} -\endbatchfile +% refstyle.ins +% Copyright (C) 2002--2024 Danie Els +% +% ------------------------------------------------------------------- +% The refstyle package +% for the formatting of references +% ------------------------------------------------------------------- +% This work may be distributed and/or modified under the conditions +% of the LaTeX Project Public License, either version 1.3c of this +% license or (at your option) any later version. The latest version +% of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008/12/01 or later. +% +% This work has the LPPL maintenance status 'maintained'. +% +% This Current Maintainer of this work is Danie Els (dnjels@gmail.com) +% +% This package consists of the files: refstyle.dtx +% refconfig.dtx +% refstyle.ins +% and the derived files: refstyle.sty +% refstyle.cfg +% ------------------------------------------------------------------- + +\def\batchfile{refstyle.ins} +\def\filedate{2024/01/31} +\input docstrip.tex +\keepsilent + +\declarepreamble\package + +Copyright (C) 2002--2024 Danie Els + +------------------------------------------------------------------- + The refstyle package + for the formatting of references +------------------------------------------------------------------- +This work may be distributed and/or modified under the conditions +of the LaTeX Project Public License, either version 1.3c of this +license or (at your option) any later version. The latest version +of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3c or later is part of all distributions of LaTeX +version 2008/12/01 or later. + +This work has the LPPL maintenance status 'maintained'. + +This Current Maintainer of this work is Danie Els (dnjels@gmail.com) +------------------------------------------------------------------- + +\endpreamble + +\generate{% + \askforoverwritefalse + \usepreamble\package + \file{refstyle.sty}{\from{refstyle.dtx}{pkg}}} + + +\declarepreamble\config + +------------------------------------------------------------------- + The refstyle package + for the formatting of references +------------------------------------------------------------------- +This file may be customized to suit specific user requirements. + +Original by Danie Els (dnjels@gmail.com) +------------------------------------------------------------------- + +\endpreamble +\generate{% + \askforoverwritefalse + \usepreamble\config + \file{refstyle.cfg}{\from{refconfig.dtx}{cfg}}} + + +\obeyspaces +\Msg{*************************************************************} +\Msg{* To finish the installation you have to move the *} +\Msg{* following files into a directory searched by TeX: *} +\Msg{* refstyle.sty *} +\Msg{* refstyle.cfg *} +\Msg{* *} +\Msg{* To produce the documentation run through LaTeX the files: *} +\Msg{* refstyle.dtx *} +\Msg{* refconfig.dtx *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{*************************************************************} +\endbatchfile diff --git a/macros/latex/contrib/refstyle/refstyle.pdf b/macros/latex/contrib/refstyle/refstyle.pdf index 0e94b7db28..a7bc463295 100644 Binary files a/macros/latex/contrib/refstyle/refstyle.pdf and b/macros/latex/contrib/refstyle/refstyle.pdf differ diff --git a/macros/latex/contrib/refstyle/refstyle.sty b/macros/latex/contrib/refstyle/refstyle.sty deleted file mode 100644 index 11f0c3606b..0000000000 --- a/macros/latex/contrib/refstyle/refstyle.sty +++ /dev/null @@ -1,327 +0,0 @@ -%% -%% This is file `refstyle.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% refstyle.dtx (with options: `pkg') -%% -%% Copyright (C) 2002--2010 Danie Els -%% -%% ------------------------------------------------------------------- -%% The refstyle package -%% for the formatting of references -%% ------------------------------------------------------------------- -%% This work may be distributed and/or modified under the conditions -%% of the LaTeX Project Public License, either version 1.3c of this -%% license or (at your option) any later version. The latest version -%% of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work is "maintained" (as per LPPL maintenance status) -%% by Danie Els (dnjels@sun.ac.za). -%% ------------------------------------------------------------------- -%% -\newcommand*{\RefstyleFileDate}{2010/11/02} -\newcommand*{\RefstyleFileVersion}{v0.5} - -\NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesPackage{refstyle}[\RefstyleFileDate\space - \RefstyleFileVersion\space - Reference formatting (DNJ Els)] -\newcommand*{\RS@pkgname}{refstyle} -\RequirePackage{keyval} -\def\RS@setkeys#1#2{% - \def\KV@prefix{KV@#1@}% - \let\@tempc\relax - \KV@do#2,\relax,} -\@ifundefined{vref@space}{\let\vref@space\space}{} -\providecommand*{\@safe@activestrue}{} -\providecommand*{\@safe@activesfalse}{} -\newcommand*{\RS@namelet}[1]{\expandafter\let\csname #1\endcsname} -\newcommand*{\RS@nameuse}[1]{\csname #1\endcsname} -\newcommand*{\RS@namedef}[1]{\expandafter\def\csname #1\endcsname} -\newcommand*{\RS@robustnamedef}[1]{% - \expandafter\edef\csname #1\endcsname{% - \noexpand\protect\RS@nameuse{#1 }}% - \RS@namedef{#1 }} -\def\RS@ifundefined#1{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname#1\endcsname\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\newcommand*{\RS@removedef}[1]{% - \RS@namelet{#1}\@undefined% - \RS@ifundefined{#1 }{}{\RS@namelet{#1 }\@undefined}} -\newcommand*{\RS@testednamedef}[1]{% - \RS@ifnamedefinable{#1}\RS@namedef{#1}} -\newcommand*{\RS@testedrobustnamedef}[1]{% - \RS@ifnamedefinable{#1}\RS@robustnamedef{#1}} -\long\def\RS@ifnamedefinable #1{% - \edef\reserved@a{#1}% - \RS@ifundefined\reserved@a - {\edef\reserved@b{\expandafter\@carcube \reserved@a xxx\@nil}% - \ifx \reserved@b\@qend \RS@notdefinable\else - \ifx \reserved@a\@qrelax \RS@notdefinable\else - \PackageInfo{\RS@pkgname}{\@backslashchar\reserved@a\space created}% - \fi - \fi}% - \RS@notdefinable} -\gdef\RS@notdefinable{% - \PackageError{\RS@pkgname}{% - Command \@backslashchar\reserved@a\space - already defined.\MessageBreak - Or name \@backslashchar\@qend... illegal.\MessageBreak - It can not be redefined by the \@backslashchar newref% - }{% - If \@backslashchar\reserved@a\space is not important\MessageBreak - then \protect\let\@backslashchar\reserved@a% - =\protect\relax,\MessageBreak - else use a different \@backslashchar newref.}% - } -\newcommand*{\RS@setbool}[2]{% - \lowercase{\def\@tempa{#2}}% - \@ifundefined{@tempswa\@tempa}% - {\PackageError{\RS@pkgname}% - {You can only set the option to `true' or `false'}\@ehc}% - {\csname#1\@tempa\endcsname}} -\def\RS@firstcap#1#2\@nil{% - \iffalse{\fi - \uppercase{\edef\RS@cap{\iffalse}\fi#1}#2}}% -\newif\ifRS@keyactive -\@ifpackagewith{\@currname}{nokeyprefix}% - {\RS@keyactivefalse}% - {\RS@keyactivetrue} -\DeclareOption{nokeyprefix}{\OptionNotUsed} -\newif\ifRSstar\RSstarfalse -\newif\ifRSnameon\RSnameontrue -\newif\ifRScapname\RScapnamefalse -\newif\ifRSplural\RSpluralfalse -\newif\ifRSlsttwo\RSlsttwofalse -\newcommand*{\newref}[1]{% - \lowercase{\def\RS@tempa{#1}}% - \expandafter\RS@newref\expandafter{\RS@tempa}} -\newcommand*{\RS@newref}[2]{% - \RS@clearref{#1}% - \ifRS@keyactive - \define@key{RS@#1}{key}[#1:]{\RS@namedef{RS@#1@key}{##1}}% - \else - \define@key{RS@#1}{key}[]{\RS@namedef{RS@#1@key}{##1}}% - \fi - \define@key{RS@#1}{s}[true]{\RS@setbool{RSplural}{##1}}% - \define@key{RS@#1}{name}[]{\RS@namedef{RS@#1@name}{##1}}% - \define@key{RS@#1}{names}[]{\RS@namedef{RS@#1@names}{##1}}% - \define@key{RS@#1}{Name}[]{\RS@namedef{RS@#1@Name}{##1}}% - \define@key{RS@#1}{Names}[]{\RS@namedef{RS@#1@Names}{##1}}% - \define@key{RS@#1}{rngtxt}[\space to~]{\RS@namedef{RS@#1@rngtxt}{##1}}% - \define@key{RS@#1}{lsttwotxt}[\space and~]{\RS@namedef{RS@#1@lsttwotxt}{##1}}% - \define@key{RS@#1}{lsttxt}[\space and~]{\RS@namedef{RS@#1@lsttxt}{##1}}% - \define@key{RS@#1}{refcmd}[\ref{####1}]{\RS@namedef{RS@#1@rcmd}####1{##1}}% - \define@key{RS@#1}{xr}[]{\RS@namedef{RS@#1@xr}{##1}}% - \define@key{RS@#1}{vref}[true]{\RS@namedef{RS@#1vref}{##1}}% - \RS@setkeys{RS@#1}{key, - s=false, - name,names,Name,Names, - rngtxt,lsttwotxt,lsttxt, - refcmd, - xr, - vref=false}% - \RS@setkeys{RS@#1}{#2}% - \RS@buildref{#1}% - } -\newcommand*{\RS@clearref}[1]{% - \RS@ifundefined{RS@#1@template} - {\RS@namedef{RS@#1@template}{#1}% - \PackageInfo{\RS@pkgname}% - {New reference template \protect\newref{#1}}{}} - {\PackageInfo{\RS@pkgname}% - {Reference template \protect\newref{#1} redefined}{} - \RS@firstcap#1\@nil - \RS@removedef{#1key}% - \RS@removedef{#1label}% - \RS@removedef{#1ref}% - \RS@removedef{\RS@cap ref}% - \RS@removedef{#1rangeref}% - \RS@removedef{\RS@cap rangeref}% - \RS@removedef{#1pageref}% - }% - } -\newcommand*{\RS@buildref}[1]{% - \RS@firstcap#1\@nil - \RS@testednamedef{#1key}{\RS@nameuse{RS@#1@key}} - \RS@testednamedef{#1label}##1{\label{\RS@nameuse{RS@#1@key}##1}} - \RS@testedrobustnamedef{#1ref}{\RScapnamefalse\RS@cmd{ref}{#1}} - \RS@testedrobustnamedef{\RS@cap ref}{\RScapnametrue\RS@cmd{ref}{#1}} - \RS@testedrobustnamedef{#1rangeref}{\RScapnamefalse\RS@cmd{rangeref}{#1}} - \RS@testedrobustnamedef{\RS@cap rangeref}{\RScapnametrue\RS@cmd{rangeref}{#1}} - \RS@testedrobustnamedef{#1pageref}{\RScapnamefalse\RS@cmd{pageref}{#1}} - } -\newcommand*{\RS@cmd}[2]{% - \@ifstar{\RSstartrue\RSnameonfalse\RS@@cmd{#1}{#2}}% - {\RSstarfalse\RSnameontrue\RS@@cmd{#1}{#2}}} -\newcommand*{\RS@@cmd}[2]{% - \@ifnextchar[% - {\RS@nameuse{RS@#1}{#2}}% - {\RS@nameuse{RS@#1}{#2}[]}} -\def\RS@ref#1[#2]#3{% - \begingroup - \RS@setkeys{RS@#1}{#2}% - \@safe@activestrue% - \edef\RS@tmpa{\zap@space#3 \@empty}% - \@safe@activesfalse% - \edef\RS@tmpa{\noexpand\RS@@ref{#1} \RS@tmpa,\relax\noexpand\@eolst}% - \RS@tmpa% - \endgroup} -\def\RS@@ref#1 #2,#3\@eolst{% - \ifx\relax#3\relax - \RS@makename{#1}% - \RS@makeref{#1}{#2}% - \RS@makevpageref{#1}{#2}% - \else - \RSpluraltrue% - \RS@makename{#1}% - \RS@makeref{#1}{#2}% - \RS@makevpageref{#1}{#2}% - \RSnameonfalse% - \RSlsttwotrue% - \RS@@@ref{#1} #3\@eolst% - \fi} -\def\RS@@@ref#1 #2,#3\@eolst{% - \ifx\relax#3\relax - \ifRSlsttwo - \RS@nameuse{RS@#1@lsttwotxt}% - \else - \RS@nameuse{RS@#1@lsttxt}% - \fi - \RS@makeref{#1}{#2}% - \RS@makevpageref{#1}{#2}% - \else - \RSlsttwofalse% - \unskip,\space% - \RS@makeref{#1}{#2}% - \RS@makevpageref{#1}{#2}% - \RS@@@ref{#1} #3\@eolst% - \fi} -\def\RS@rangeref#1[#2]#3#4{% - \begingroup - \RS@setkeys{RS@#1}{#2}% - \RSpluraltrue% - \RS@makename{#1}% - \RS@makeref{#1}{#3}% - \RS@nameuse{RS@#1@rngtxt}% - \RSnameonfalse% - \RS@makeref{#1}{#4}% - \RS@makevpagerefrange{#1}{#3}{#4}% - \endgroup} -\def\RS@pageref#1[#2]#3{% - \begingroup% - \RS@setkeys{RS@#1}{#2}% - \RS@ifvref{#1}% - {\mbox{}\vpageref*{\RS@lbl{#1}{#3}}}% - {\reftextfaraway{\RS@lbl{#1}{#3}}}% - {\pageref{\RS@lbl{#1}{#3}}}% - \endgroup} -\newcommand*{\RS@true}{true} -\newcommand*{\RS@false}{false} -\newcommand*{\RS@far}{far} -\newcommand{\RS@ifvref}[4]{% - \edef\RS@tempa{\RS@nameuse{RS@#1vref}}% - \ifx\RS@tempa\RS@true\relax - #2% - \else\ifx\RS@tempa\RS@far\relax - #3% - \else\ifx\RS@tempa\RS@false\relax - #4% - \else - \PackageError{\RS@pkgname}% - {You can only set the vref option to `true', `far' or `false'}\@ehc - \fi\fi\fi} -\newcommand{\RS@makename}[1]{% - \ifRSstar\else\ifRSnameon - \ifRSplural - \ifRScapname - \RS@nameuse{RS@#1@Names}% - \else - \RS@nameuse{RS@#1@names}% - \fi - \else - \ifRScapname - \RS@nameuse{RS@#1@Name}% - \else - \RS@nameuse{RS@#1@name}% - \fi - \fi - \fi\fi - } -\newcommand*{\RS@lbl}[2]{% - \RS@nameuse{RS@#1@xr}\RS@nameuse{RS@#1@key}#2% - } -\newcommand{\RS@makeref}[2]{% - \RS@nameuse{RS@#1@rcmd}{\RS@lbl{#1}{#2}}% - } -\newcommand{\RS@makevpageref}[2]{% - \RS@ifvref{#1}% - {\vpageref[\unskip]{\RS@lbl{#1}{#2}}}% - { \reftextfaraway{\RS@lbl{#1}{#2}}}% - {}% - } -\newcommand{\RS@makevpagerefrange}[3]{% - \RS@ifvref{#1}% - {\space\vpagerefrange[\unskip]{\RS@lbl{#1}{#2}}{\RS@lbl{#1}{#3}}}% - {\space\vpagerefrange[\unskip]{\RS@lbl{#1}{#2}}{\RS@lbl{#1}{#3}}}% - {}% - } -\AtBeginDocument{% - \providecommand{\vpageref}{% - \PackageError{\RS@pkgname}% - {The vref option used, but varioref.sty not loaded.}% - {Load varioref.sty}} - \providecommand{\reftextfaraway}{% - \PackageError{\RS@pkgname}% - {The vref=far option used, but varioref.sty not loaded.}% - {Load varioref.sty}} - \providecommand{\vpagerefrange}{% - \PackageError{\RS@pkgname}% - {The vref option used, but varioref.sty not loaded.}% - {Load varioref.sty}} - } -\def\RSaddto#1#2{% - #2% - \@temptokena{#2}% - \ifx#1\relax - \let#1\@empty - \fi - \ifx#1\undefined - \edef#1{\the\@temptokena}% - \else - \toks@\expandafter{#1}% - \edef#1{\the\toks@\the\@temptokena}% - \fi - \@temptokena{}\toks@\@temptokena} -\def\DeclareLangOpt#1#2{% - \edef\RS@tempa{\expandafter\@gobble\string#2}% - \RS@ifundefined{\RS@tempa}% - {\PackageError{\RS@pkgname}{% - Unknown definitions \@backslashchar\RS@tempa\MessageBreak - for language option `#1'}{}}% - {\DeclareOption{#1}{% - \AtBeginDocument{\expandafter\RSaddto\csname extras#1\endcsname #2}}}% - } -\newcommand*{\RS@cfgfile}{refstyle.cfg} -\newcommand*{\RS@reffile}{refstyle.def} -\@ifpackagewith{\@currname}{noconfig}% - {\PackageInfo{\RS@pkgname}{No config file loaded}}% - {\InputIfFileExists{\RS@reffile}% - {\PackageInfo{\RS@pkgname}{Local config file \RS@reffile\space used}} - {\InputIfFileExists{\RS@cfgfile}% - {\PackageInfo{\RS@pkgname}{Config file \RS@cfgfile\space used}}% - {\PackageInfo{\RS@pkgname}{No config file found}}}} -\DeclareOption{noconfig}{\OptionNotUsed}% -\ProcessOptions*\relax -\endinput -%% -%% End of file `refstyle.sty'. diff --git a/macros/latex/contrib/schooldocs/schooldocs-examples.pdf b/macros/latex/contrib/schooldocs/schooldocs-examples.pdf index e4277bbdbe..1d653303b0 100644 Binary files a/macros/latex/contrib/schooldocs/schooldocs-examples.pdf and b/macros/latex/contrib/schooldocs/schooldocs-examples.pdf differ diff --git a/macros/latex/contrib/schooldocs/schooldocs-examples.tex b/macros/latex/contrib/schooldocs/schooldocs-examples.tex new file mode 100644 index 0000000000..0c35f10b7a --- /dev/null +++ b/macros/latex/contrib/schooldocs/schooldocs-examples.tex @@ -0,0 +1,327 @@ + +\documentclass[a4paper,11pt]{article} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[english]{babel} +\usepackage{times,lmodern,charter} +\usepackage{schooldocs} +\usepackage{enumerate} +\usepackage{multicol} +\usepackage{centeredline} +\usepackage{hyperref} +\usepackage{lipsum} + +\definecolor{darkbrown}{rgb}{0.5,0.1,0.1} + +\pagestyle{collection} +\title{The schooldocs package} +\subject{Example file for titles and styles} +\author{Antoine Missier} +\institute{Royal College of Pataphysics} +\date{December 28, 2023} +\renewcommand{\titlestyle}{\Huge} %\sffamily +\hypersetup{colorlinks, linkcolor=blue} +%\setcounter{tocdepth}{0} + +\begin{document} + +\maketitle + +On the following pages we showcase various title formatting options +and the different styles. +This initial page has been created using the \textbf{collection} style, for which +the main title style has been redefined through +\verb|\renewcommand{\titlestyle}{\Huge}|. + + +\medskip +In most examples (dated may 4, 2020), we have utilized +the \textsf{lmodern} package font, which pairs well with a sans-serif title style. +To achieve this, simply redefine the title style using +\smallskip +\centeredline{\verb|\renewcommand\titelstyle{\LARGE\bfseries\sffamily}|.} + +\smallskip +For examples dated january 25 or december 28, 2023, we have opted +for the \textsf{charter}, or \textsf{times} fonts. +For these fonts, the default title style setting +\verb|\LARGE\bfseries| is suitable. + + +\seprule + +\begin{center} \Large \color{darkbrown} +\bfseries Table of contents +\end{center} + +\bigskip + +\begin{multicols}{2} +\begin{enumerate}[\bfseries 1.] + \item \hyperlink{schooldocs-example-center}{\bfseries The standard title} + \item \hyperlink{schooldocs-example-left}{\bfseries A left-aligned title} + \item \hyperlink{schooldocs-example-right}{\bfseries A right-aligned title} + \item \hyperlink{schooldocs-example-norule}{\bfseries + The standard title without rule} + \item \hyperlink{schooldocs-example-boxed}{\bfseries A title in boxed shape} + \item \hyperlink{schooldocs-example-seprule}{\bfseries + The \texttt{\textbackslash seprule} and \texttt{\textbackslash correct} macros} + \item \hyperlink{schooldocs-example-small}{\bfseries A ``small'' title} + \item \hyperlink{schooldocs-example-classic}{\bfseries The classic style layout} + \item \hyperlink{schooldocs-example-elegant}{\bfseries The elegant style layout} + \item \hyperlink{schooldocs-example-modern}{\bfseries The modern style layout} + \item \hyperlink{schooldocs-example-soft}{\bfseries The soft style layout} + \item \hyperlink{schooldocs-example-exam}{\bfseries The exam style layout} + \item \hyperlink{schooldocs-example-examcorrect}{\bfseries + Exam style with the \texttt{\textbackslash correct} macro} + \item \hyperlink{schooldocs-example-collection}{\bfseries The collection style layout} + \item \hyperlink{schooldocs-example-identity}{\bfseries + The identity style in collection} + \item \hyperlink{schooldocs-example-small-identity}{\bfseries + A ``small'' title with identity} + \item \hyperlink{schooldocs-example-modern-small-identity}{\bfseries + Small title, identity and modern style} + \item \hyperlink{schooldocs-example-left-identity}{\bfseries + A left-aligned title with identity} +\end{enumerate} +\end{multicols} + +\newpage +\hypertarget{schooldocs-example-center}{} +\addcontentsline{toc}{section}{The standard title} + +\fontfamily{lmr}\selectfont +\pagestyle{empty} +\lfoot{} +\cfoot{} +\rfoot{} +\renewcommand{\subjectstyle}{} +\renewcommand{\authorstyle}{} +\renewcommand{\datestyle}{} +\renewcommand{\titlestyle}{\LARGE\bfseries\sffamily} +\renewcommand\subjectstyle{\large} +\setlength{\titletopskip}{-1.32cm} +\setlength\titlesep{2\medskipamount} +\schooldocstitles +\title{The standard title} +\subject[Pathography / M2A]{Pathography / Master 2A} +\date{May 4, 2020} + +\maketitle +\lipsum[1] + +\newpage +\hypertarget{schooldocs-example-left}{} +\addcontentsline{toc}{section}{A left-aligned title} + +\renewcommand{\titleflush}{flushleft} +\title{A left-aligned title} +\maketitle +\lipsum[1] + +\newpage +\hypertarget{schooldocs-example-right}{} + +\renewcommand{\titleflush}{flushright} +\title{A right-aligned title} +\maketitle +\lipsum[1] + +\newpage +\hypertarget{schooldocs-example-norule}{} + +\renewcommand{\titleflush}{center} +\title{The standard title without rule} +\maketitle[0pt] +\lipsum[1] + +\newpage +\hypertarget{schooldocs-example-boxed}{} + +\renewcommand{\titlestyle}{\LARGE\sffamily\bfseries\boxedshape} +\title{A title in boxed shape} +\maketitle +\lipsum[1] + +\newpage +\hypertarget{schooldocs-example-seprule}{} + +\renewcommand{\titlestyle}{\LARGE\bfseries\sffamily} +\title{The \textbackslash seprule and \textbackslash correct macros} +\correct +\maketitle +\lipsum[1]\seprule\lipsum[2]\seprule\lipsum[3] + +\newpage +\hypertarget{schooldocs-example-small}{} + +\fontfamily{bch}\selectfont +\title{A ``small'' title} +\date{January 25, 2023} +\makesmalltitle +\lipsum[1] + +\newpage +\hypertarget{schooldocs-example-classic}{} + +\fontfamily{lmr}\selectfont +\setcounter{page}{1} +\pagestyle{classic} +\title[The classic style]{The classic style layout} +\date{May 4, 2020} +\maketitle +\section*{Pellentesque a nulla} +\lipsum[1-3] +\section*{Vestibulum lectus} +\lipsum[5-9] + +\newpage +\hypertarget{schooldocs-example-elegant}{} + +\setcounter{page}{1} +\setcounter{section}{0} +\addtolength{\headheight}{-\baselineskip} +\pagestyle{elegant} +\title[The elegant style]{The elegant style layout} +\schooldocstitles +\maketitle +\section*{Pellentesque a nulla} +\lipsum[1-3] +\section*{Vestibulum lectus} +\lipsum[5-9] + +\newpage +\hypertarget{schooldocs-example-modern}{} + +\setcounter{page}{1} +\setcounter{section}{0} +\renewcommand{\headrulewidth}{0.4pt} +\pagestyle{modern} +\title[The modern style]{The modern style layout} +\maketitle +\section*{Pellentesque a nulla} +\lipsum[1-3] +\section*{Vestibulum lectus} +\lipsum[5-9] + +\newpage +\hypertarget{schooldocs-example-soft}{} + +\setcounter{page}{1} +\setcounter{section}{0} +\pagestyle{soft} +\title[The soft style]{The soft style layout} +\maketitle +\section*{Pellentesque a nulla} +\lipsum[1-3] +\section*{Vestibulum lectus} +\lipsum[5-9] + +\newpage +\hypertarget{schooldocs-example-exam}{} + +\setcounter{page}{1} +\setcounter{section}{0} +\fontfamily{ptm}\selectfont +\pagestyle{exam} +\title[The exam style]{The exam style layout} +\date{December 28, 2023} +\subtitle{Duration of the test: 2\,h} +\maketitle +\section*{Pellentesque a nulla} +\lipsum[1-3] +\section*{Vestibulum lectus} +\lipsum[5-9] + +\newpage +\hypertarget{schooldocs-example-examcorrect}{} + +\setcounter{page}{1} +\setcounter{section}{0} +\correct +\maketitle +\section*{Pellentesque a nulla} +\lipsum[1-3] +\section*{Vestibulum lectus} +\lipsum[5-9] + +\newpage +\hypertarget{schooldocs-example-collection}{} + +\setcounter{page}{1} +\setcounter{section}{0} +\fontfamily{bch}\selectfont +\pagestyle{collection} +\title[The collection style]{The collection style layout} +\date{December 28, 2023} +\subtitle{Duration of the test: 2\,h} +\maketitle +\section*{Ultrices bibendum} +\lipsum +\lipsum[1-3] +\section*{Etiam facilisis} +\lipsum[1-5] + +\newpage +\hypertarget{schooldocs-example-identity}{} + +\thispagestyle{identity} +Here we present a single page with the \textbf{identity} style +within a document using the collection style. +\par\medskip +\textbf{Question:} Analyze the previous text and provide a written summary of its content. + +\newpage +\lfoot{} +\cfoot{\thepage} +\rfoot{} +\renewcommand{\subjectstyle}{} +\renewcommand{\authorstyle}{} +\renewcommand{\datestyle}{} +\hypertarget{schooldocs-example-small-identity}{} + +\setcounter{page}{1} +\renewcommand{\titlestyle}{\LARGE\bfseries} +\renewcommand\subjectstyle{\large} +\renewcommand{\headrulewidth}{0pt} +\setlength{\titletopskip}{-1.32cm} +\setlength\titlesep{2\medskipamount} +\title{A ``small'' title} +\date{January 25, 2023} +\thispagestyle{identity} +\schooldocstitles +\makesmalltitle +\lipsum[1] + +\newpage +\hypertarget{schooldocs-example-modern-small-identity}{} + +\setcounter{page}{1} +\setcounter{section}{0} +\title[The modern style]{The modern style layout} +\pagestyle{modern} +\thispagestyle{identity} +\makesmalltitle +\section*{Pellentesque a nulla} +\lipsum[1-3] +\section*{Vestibulum lectus} +\lipsum[5-6] + +\newpage +\hypertarget{schooldocs-example-left-identity}{} + +\setcounter{page}{1} +\lfoot{} +\cfoot{} +\rfoot{} +\renewcommand{\titleflush}{flushleft} +\title{A left-aligned title} +\pagestyle{empty} +\thispagestyle{identity} +\schooldocstitles +\maketitle +\lipsum[1] + +\setcounter{page}{2} % for the lastpage field in headers or footers +\end{document} diff --git a/macros/latex/contrib/schooldocs/schooldocs.dtx b/macros/latex/contrib/schooldocs/schooldocs.dtx index d1cd9a484b..4b1f1c451e 100644 --- a/macros/latex/contrib/schooldocs/schooldocs.dtx +++ b/macros/latex/contrib/schooldocs/schooldocs.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2020-2023 by Antoine Missier +% Copyright (C) 2020-2024 by Antoine Missier % ---------------------------------------------------------------------- % % This file may be distributed and/or modified under the @@ -22,7 +22,7 @@ %\NeedsTeXFormat{LaTeX2e}[2005/12/01] %\ProvidesPackage{schooldocs} %<*package> - [2023/12/28 v1.4 .dtx Layout styles for school documents] + [2024/01/31 v1.5 .dtx Layout styles for school documents] % % %<*driver> @@ -80,7 +80,7 @@ % % \fi % -% \CheckSum{805} +% \CheckSum{863} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -110,11 +110,15 @@ % - sffamily discarded from the default titlestyle % - smalltitletopskip changed from -2.0cm to -1.32cm} % \changes{v1.2}{2023/01/24}{ -% Small changes in the documentation (charter font is now used) +% - Small changes in the documentation (charter font is now used) % and the examples file (with several fonts)} % \changes{v1.3}{2023/08/28}{English corrections in the documentation} % \changes{v1.4}{2023/12/28}{ -% headtitlestyle in exam and collection styles set to scshape instead of MakeUppercase} +% - Headtitlestyle in exam and collection styles set to scshape instead of MakeUppercase} +% \changes{v1.5}{2024/01/30}{ +% - Possibility to call maketitle several times with different information fields +% that can be changed outside the preamble +% - The schooldocs-examples.pdf file is now generated in a single compilation} % % \GetFileInfo{schooldocs.dtx} % @@ -675,20 +679,30 @@ % \medskip % \subsection{Information fields} % +% The PDF information fields are automatically filled in using the information macros, +% but this only works in the preamble, hence the test |\ifx@onlypreamble@notprerr|. +% This allows using these macros outside the preamble, which is the normal behavior +% for |\title|, |\date|, |\author|, etc. with the 'article' class. +% % Once defined, information fields are initially set to empty % to ensure that tests for empty fields work correctly. + % % \begin{macrocode} \renewcommand{\title}[2][]{\long\def\@title{#2} \ifthenelse{\equal{#1}{}}{\def\@headtitle{#2}}{\def\@headtitle{#1}} - \@ifpackageloaded{hyperref}{\hypersetup{pdftitle={\@headtitle}}}{} + \ifx\@onlypreamble\@notprerr\else + \@ifpackageloaded{hyperref}{\hypersetup{pdftitle={\@headtitle}}}{} + \fi } \title{} \author{} \newcommand\school[1]{\long\def\@school{#1} - \@ifpackageloaded{hyperref}{ - \hypersetup{pdfauthor={\@author\ (\@school)}}}{} + \ifx\@onlypreamble\@notprerr\else + \@ifpackageloaded{hyperref}{ + \hypersetup{pdfauthor={\@author\ (\@school)}}}{} + \fi } \school{} \newcommand{\institute}{\school} @@ -696,7 +710,9 @@ \let\subject\relax \newcommand{\subject}[2][]{\long\def\@subject{#2} \ifthenelse{\equal{#1}{}}{\def\@headsubject{#2}}{\def\@headsubject{#1}} - \@ifpackageloaded{hyperref}{\hypersetup{pdfsubject={\@headsubject}}}{} + \ifx\@onlypreamble\@notprerr\else + \@ifpackageloaded{hyperref}{\hypersetup{pdfsubject={\@headsubject}}}{} + \fi } \def\@subject{} \def\@headsubject{} @@ -764,55 +780,64 @@ % % \subsection{Title composition} % +% The first macro, |\schooldocstitles|, aims to define the default composition of titles. +% Several styles redefine their own title composition. +% This macro allows, when using |\maketitle| multiple times at different places +% in the document, to revert to the default definition when a style has modified +% the title definition. % \begin{macrocode} -\renewcommand{\maketitle}[1][\seprulelength]{ - \mbox{}\par\vspace{\titletopskip} - \begin{\titleflush} - {\color{titlecolor} - {\titlestyle{\@title}} - \ifx\@subject\@empty\else - \par\vspace{\titlesep}\subjectstyle\@subject - \fi - \ifthenelse{\equal{\@date}{}}{}{% - \par\vspace{0.5\titlesep} \datestyle\@date} - \par\vspace{0.5\titlesep} - } - \ifthenelse{\lengthtest{#1 > 0cm}}{\rule{#1}{\seprulewidth}}{} - \end{\titleflush} - \vspace{\titlebottomskip} -} +\newcommand{\schooldocstitles}{ + \renewcommand{\maketitle}[1][\seprulelength]{ + \newpage\mbox{}\par\vspace{\titletopskip} + \begin{\titleflush} + {\color{titlecolor} + {\titlestyle{\@title}} + \ifx\@subject\@empty\else + \par\vspace{\titlesep}\subjectstyle\@subject + \fi + \ifthenelse{\equal{\@date}{}}{}{% + \par\vspace{0.5\titlesep} \datestyle\@date} + \par\vspace{0.5\titlesep} + } + \ifthenelse{\lengthtest{##1 > 0cm}}{\rule{##1}{\seprulewidth}}{} + \end{\titleflush} + \vspace{\titlebottomskip} + } -\newcommand{\makesmalltitle}{ - \mbox{}\par\vspace{\smalltitletopskip} - \begin{center} - {\color{titlecolor} - {\titlestyle{\@title}} - \hfill \subjectstyle\@subject - \ifthenelse{\equal{\@date}{}}{}{% - \enskip --\enskip \smalltitledatestyle\@date} - } - \rule{\linewidth}{\seprulewidth} - \end{center} - \vspace{\titlebottomskip} -} + \let\makesmalltitle\relax + \newcommand{\makesmalltitle}{ + \newpage\mbox{}\par\vspace{\smalltitletopskip} + \begin{center} + {\color{titlecolor} + {\titlestyle{\@title}} + \hfill \subjectstyle\@subject + \ifthenelse{\equal{\@date}{}}{}{% + \enskip --\enskip \smalltitledatestyle\@date} + } + \rule{\linewidth}{\seprulewidth} + \end{center} + \vspace{\titlebottomskip} + } -\newcommand\correct{% - \let\@originalheadtitle\@headtitle - \def\@headtitle{\@originalheadtitle ~--~\correctname} - \@ifpackageloaded{hyperref}{% - \AtBeginDocument{\hypersetup{pdftitle={\@headtitle}}}}{} - \let\@originaltitle\@title - \def\@title{\@originaltitle ~--~\correctname} + \let\correct\relax + \newcommand\correct{% + \let\@originalheadtitle\@headtitle + \def\@headtitle{\@originalheadtitle ~--~\correctname} + \ifx\@onlypreamble\@notprerr\else + \@ifpackageloaded{hyperref}{% + \AtBeginDocument{\hypersetup{pdftitle={\@headtitle}}}}{} + \fi + \let\@originaltitle\@title + \def\@title{\@originaltitle ~--~\correctname} + } } +\schooldocstitles \newcommand{\seprule}[1][\seprulelength]{\begin{center} \raisebox{0.25\baselineskip}{\rule{#1}{\seprulewidth}}\end{center}} % \end{macrocode} -% The use of |\AtBeginDocument| is necessary in the |\correct| macro because -% |\correctname| could be redefined by \textsf{babel} at |\begin{document}|. % -% \bigskip % \subsection{Basic styles} % % In the \textbf{classic} style, the header is displayed on two lines, @@ -832,7 +857,7 @@ \cfoot{\footstyle \thepage /\pageref{LastPage}} \setlength{\titletopskip}{-0.67cm} \renewcommand{\maketitle}[1][\seprulelength]{% - \mbox{}\par\vspace{\titletopskip} + \newpage\mbox{}\par\vspace{\titletopskip} \begin{\titleflush} {\color{titlecolor}\titlestyle{\@title}} \par\vspace{0.5\titlesep} @@ -841,7 +866,7 @@ \vspace{\titlebottomskip} } \renewcommand{\makesmalltitle}{ - \mbox{}\par\vspace{\smalltitletopskip} + \newpage\mbox{}\par\vspace{\smalltitletopskip} \begin{center} {\color{titlecolor} {\titlestyle{\@title}} @@ -879,7 +904,7 @@ \headdatestyle\@date\ignorespaces}{} } \renewcommand{\maketitle}[1][\seprulelength]{% - \mbox{}\par\vspace{\titletopskip} + \newpage\mbox{}\par\vspace{\titletopskip} \begin{\titleflush} {\color{titlecolor} {\titlestyle{\@title}} @@ -893,7 +918,7 @@ \vspace{\titlebottomskip} } \renewcommand{\makesmalltitle}{ - \mbox{}\par\vspace{\smalltitletopskip} + \newpage\mbox{}\par\vspace{\smalltitletopskip} \begin{center} {\color{titlecolor} {\titlestyle{\@title}} @@ -922,7 +947,7 @@ } \setlength{\titletopskip}{-0.67cm} \renewcommand{\maketitle}[1][\seprulelength]{% - \mbox{}\par\vspace{\titletopskip} + \newpage\mbox{}\par\vspace{\titletopskip} \begin{\titleflush} {\color{titlecolor}\titlestyle{\@title}} \par\vspace{0.5\titlesep} @@ -931,7 +956,7 @@ \vspace{\titlebottomskip} } \renewcommand{\makesmalltitle}{ - \mbox{}\par\vspace{\smalltitletopskip} + \newpage\mbox{}\par\vspace{\smalltitletopskip} \begin{center} {\color{titlecolor} {\titlestyle{\@title}} @@ -973,18 +998,22 @@ \setlength{\titlesep}{2\bigskipamount} \renewcommand{\titlestyle}{\LARGE\MakeUppercase} \renewcommand{\subjectstyle}{\Large\bfseries} + \let\subtitlestyle\relax \newcommand{\subtitlestyle}{\large\slshape} + \let\titlecorrectstyle\relax \newcommand*{\titlecorrectstyle}{\color{red}\large\scshape} \renewcommand\correct{% \let\@originalheadtitle\@headtitle \def\@headtitle{\@originalheadtitle ~--~\correctname} - \@ifpackageloaded{hyperref}{% - \AtBeginDocument{\hypersetup{pdftitle={\@headtitle}}}}{} + \ifx\@onlypreamble\@notprerr\else + \@ifpackageloaded{hyperref}{% + \AtBeginDocument{\hypersetup{pdftitle={\@headtitle}}}}{} + \fi \renewcommand{\subtitlestyle}{\titlecorrectstyle} \subtitle{\correctname} } \renewcommand{\maketitle}[1][\seprulelength]{% - \mbox{}\par\vspace{\titletopskip} + \newpage\mbox{}\par\vspace{\titletopskip} \begin{center} {\color{titlecolor} {\titlestyle{\@title}} @@ -1004,7 +1033,11 @@ \fancypagestyle{collection}{% \lhead{\headstyle\headtitlestyle\@headtitle} - \AtBeginDocument{\renewcommand{\sectionmark}[1]{\markboth{##1}{}}} + \ifx\@onlypreamble\@notprerr + \renewcommand{\sectionmark}[1]{\markboth{##1}{}} + \else + \AtBeginDocument{\renewcommand{\sectionmark}[1]{\markboth{##1}{}}} + \fi \rhead{\headstyle\headsubjectstyle\leftmark} %\@section \lfoot{\footstyle\schoolstyle \@school} \cfoot{} @@ -1017,7 +1050,7 @@ \renewcommand{\datestyle}{\Large} \renewcommand{\maketitle}[1][\seprulelength]{% \thispagestyle{empty} - \mbox{}\par\vspace{\titletopskip} + \newpage\mbox{}\par\vspace{\titletopskip} \begin{center} {\color{titlecolor} {\titlestyle{\@title}} diff --git a/macros/latex/contrib/schooldocs/schooldocs.ins b/macros/latex/contrib/schooldocs/schooldocs.ins index ec68fae155..4a6e0784ac 100644 --- a/macros/latex/contrib/schooldocs/schooldocs.ins +++ b/macros/latex/contrib/schooldocs/schooldocs.ins @@ -1,5 +1,5 @@ %% -%% Copyright (C) 2020-2023 by Antoine Missier +%% Copyright (C) 2020-2024 by Antoine Missier %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.3 of this license @@ -21,7 +21,7 @@ This is a generated file. -Copyright (C) 2020-2023 by Antoine Missier +Copyright (C) 2020-2024 by Antoine Missier This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license diff --git a/macros/latex/contrib/schooldocs/schooldocs.pdf b/macros/latex/contrib/schooldocs/schooldocs.pdf index 18ba710bac..760002f3c5 100644 Binary files a/macros/latex/contrib/schooldocs/schooldocs.pdf and b/macros/latex/contrib/schooldocs/schooldocs.pdf differ diff --git a/macros/luatex/latex/novel/README.md b/macros/luatex/latex/novel/README.md index 12a511ac4f..81ab14b3e2 100644 --- a/macros/luatex/latex/novel/README.md +++ b/macros/luatex/latex/novel/README.md @@ -2,14 +2,11 @@ The `novel` document class is intended for popular fiction books, printed to paper: murder mystery, historical romance, etc. - Special attention to the needs of print-on-demand. -Site github.com/rallg/novel is the canonical project page for the -Novel document class, as seen in TeXlive and at CTAN. It is now -in version 1.83, November 2023. Only change from 1.82 is a minor typo. +Due to changes in print technology over the years, much of `novel` code +is now unnecessary. Also, it offers many rarely-used features that bloat +the code and its documentation. If you have not already used `novel`, +the simpler `novelette` document class might be better for your +purpose. Expected 2024. -Also see the `novelette` document class, by the same developer. -It is much simpler, yet does what it needs to do. Expected in -late November, 2023. Site github.com/rallg/novelette but not yet -at CTAN, since it is still Alpha stage. diff --git a/macros/luatex/latex/novel/doc/extras/CPmodified.otf b/macros/luatex/latex/novel/doc/extras/CPmodified.otf deleted file mode 100644 index 04ca84e6fb..0000000000 Binary files a/macros/luatex/latex/novel/doc/extras/CPmodified.otf and /dev/null differ diff --git a/macros/luatex/latex/novel/doc/extras/novel-Gallery-ChapterStart.pdf b/macros/luatex/latex/novel/doc/extras/novel-Gallery-ChapterStart.pdf deleted file mode 100644 index 2e623ca54b..0000000000 Binary files a/macros/luatex/latex/novel/doc/extras/novel-Gallery-ChapterStart.pdf and /dev/null differ diff --git a/macros/luatex/latex/novel/doc/extras/novel-example.pdf b/macros/luatex/latex/novel/doc/extras/novel-example.pdf deleted file mode 100644 index 06dd430daf..0000000000 --- a/macros/luatex/latex/novel/doc/extras/novel-example.pdf +++ /dev/null @@ -1,1125 +0,0 @@ -%PDF-1.3 -%ÌÕÁÔÅØÐÄÆ -4 0 obj -<< /Type /Metadata /Subtype /XML /Length 2653 >> -stream - - - - - 2023-11-09T11:35:37-08:00 - 2023-11-09T11:35:37-08:00 - LuaLaTeX with novel and microtype - 2023-11-09T11:35:37-08:00 - - - application/pdf - - - Dark and Stormy - - - - - Dirk Hardcase - - - - - uuid:A12D98E081B6A0EC2CBA2D468474F922 - uuid:93EBAF4EA76B474D4D8883AFAAE9DBA6 - default - 1 - - - LuaLaTeX with novel-pdfx and hyperref - False - - - PDF/X-1a:2001 - PDF/X-1a:2001 - - - PDF/X-1a:2001 - - - - -endstream -endobj -7 0 obj -<< /Length 435 >> -stream -0 g 0 G -0 g 0 G -0 g 0 G -1 0 0 1 273.852 438.889 cm -q -1.8 0 0 1.8 0 0 cm -1 0 0 1 -273.852 -438.889 cm -BT -/F95 11.3574 Tf -1 0 0 1 273.852 438.889 Tm [<002500420053004C>-250<0042004F0045>]TJ -ET -1 0 0 1 273.852 438.889 cm -Q -1 0 0 1 -3.911 -29.589 cm -q -2.4 0 0 2.4 0 0 cm -0.5 g 0.5 G -1 0 0 1 -269.941 -409.3 cm -BT -/F95 11.3574 Tf -1 0 0 1 269.941 409.3 Tm [<0034005500500053004E005A>]TJ -0 g 0 G -ET -1 0 0 1 269.941 409.3 cm -Q -0 g 0 G -0 g 0 G - -endstream -endobj -6 0 obj -<< /Type /Page /Contents 7 0 R /Resources 5 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 9 0 R >> -endobj -5 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F95 8 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -12 0 obj -<< /Length 32 >> -stream -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G - -endstream -endobj -11 0 obj -<< /Type /Page /Contents 12 0 R /Resources 10 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 9 0 R >> -endobj -10 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ProcSet [ /PDF ] >> -endobj -15 0 obj -<< /Length 1288 >> -stream -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -1 0 0 1 120.852 453.684 cm -q -3.6 0 0 3.6 0 0 cm -1 0 0 1 -120.852 -453.684 cm -BT -/F95 11.3574 Tf -1 0 0 1 120.852 453.684 Tm [<002500420053004C>-250<0042004F0045>]TJ -ET -1 0 0 1 120.852 453.684 cm -Q -1 0 0 1 -3.912 -44.384 cm -q -4.8 0 0 4.8 0 0 cm -0.5 g 0.5 G -1 0 0 1 -116.94 -409.3 cm -BT -/F95 11.3574 Tf -1 0 0 1 116.94 409.3 Tm [<0034005500500053004E005A>]TJ -0 g 0 G -ET -1 0 0 1 116.94 409.3 cm -Q -1 0 0 1 29.284 -36.986 cm -q -1.6 0 0 1.6 0 0 cm -1 0 0 1 -146.224 -372.314 cm -BT -/F83 11.3574 Tf -1 0 0 1 146.224 372.314 Tm [<0022>-250<0035>49<0042004D0046>-250<00500047>-250<002F004A0048004900550054>]TJ -ET -1 0 0 1 146.224 372.314 cm -Q -1 0 0 1 -7.368 -71.014 cm -q -6 0 0 6 0 0 cm -1 0 0 1 -138.856 -301.3 cm -BT -/F96 11.3574 Tf -1 0 0 1 138.856 301.3 Tm [<0176>]TJ -ET -1 0 0 1 138.856 301.3 cm -Q -1 0 0 1 -138.856 -301.3 cm -BT -/F83 34.07221 Tf -1 0 0 1 106.742 215.381 Tm [<0025004A0053004C>-250<002900420053>8<00450044004200540046>]TJ -/F83 14.19675 Tf -1 0 0 1 134.49 54.231 Tm [<002F0050004F0046>7<0059004A005400550046004F0055>-250<003100560043004D004A004400420055004A0050004F0054>]TJ -1 0 0 1 109.27 39.437 Tm [<0022004F005A00550050>7<0058004F>-250<06E8>-250<0022004F005A0051004D004200440046>-250<06E8>-250<0022004F005A>-15<0058004900460053>8<0046>]TJ -0 g 0 G -0 g 0 G -ET - -endstream -endobj -14 0 obj -<< /Type /Page /Contents 15 0 R /Resources 13 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 9 0 R >> -endobj -13 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F95 8 0 R /F83 16 0 R /F96 17 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -20 0 obj -<< /Length 2311 >> -stream -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F101 11.3574 Tf -1 0 0 1 146.785 290.944 Tm [<0025086D087E0877>-250<086D087A0870>-250<00340880>25<087B087E08790885>]TJ -/F101 11.3574 Tf -1 0 0 1 117.136 276.149 Tm [<002400500051>7<005A0053004A004800490055>-250<006908D308D108D208D8>-250<0025004A0053004C>-250<002900420053>8<00450044004200540046>10<000F>]TJ -1 0 0 1 145.053 261.355 Tm [<0022004D004D>-250<0033004A0048004900550054>-250<00330046005400460053>-15<0057>8<0046>-7<0045000F>]TJ -1 0 0 1 135.626 231.766 Tm [<00350049004A0054>-250<004A0054>-250<0042>-250<0058>8<00500053004C>-250<00500047>-250<084A00440055004A0050004F000F>]TJ -1 0 0 1 130.566 216.971 Tm [<0022004D004D>-250<0051>-7<0046005300540050004F0054>-250<0042004F0045>-250<0046>7<0057>8<0046004F00550054>-250<00420053>8<0046>]TJ -1 0 0 1 120.356 202.177 Tm [<00470053>8<0050004E>-250<005500490046>-250<00420056005500490050005306BC0054>-250<004A004E00420048004A004F00420055004A0050004F000F>]TJ -1 0 0 1 118.152 187.382 Tm [<0033004600540046004E0043004D0042004F00440046>-250<00550050>-250<0042004F005A>-250<0053>8<00460042004D>-250<0051>-7<0046005300540050004F000D>]TJ -1 0 0 1 122.707 172.588 Tm [<004D004A0057004A004F0048>-250<00500053>-250<0045004600420045000D>-250<004A0054>-250<00440050004A004F0044004A00450046004F00550042004D000F>]TJ -1 0 0 1 147.466 142.999 Tm [<002A00340023002F>-250<08D1000E08D208D308D408D508D608D708D808D9000E08DA>]TJ -1 0 0 1 93.092 113.41 Tm [<002A004F004500460051>-7<0046004F00450046004F0055004D005A>-250<003100560043004D004A005400490046>-7<0045>-250<0043005A>-250<0025004A0053004C>-250<002900420053>8<00450044004200540046>10<000D>]TJ -1 0 0 1 134.729 98.615 Tm [<0022>50<004F005A00550050>7<0058004F000D>-250<0022>50<004F005A00540055004200550046>-250<003600340022>]TJ -1 0 0 1 92.701 83.82 Tm [<0058>-15<0058>-15<0058>59<000F0046>7<00590042004E0051004D0046>10<000F00440050004E00100045004900420053>8<004500440042005400460010005100560043004D004A004400420055004A0050004F00540010>]TJ -1 0 0 1 92.349 54.231 Tm [<003100560043004D004A005400490046005306BC0054>-250<0024004200550042004D00500048004A004F0048000E002A004F000E003100560043004D004A004400420055004A0050004F>-250<0025004200550042>]TJ -1 0 0 1 137.67 39.437 Tm [<004200570042004A004D00420043004D0046>-250<00560051>-7<0050004F>-250<0053>8<0046>-7<00520056004600540055000F>]TJ -0 g 0 G -0 g 0 G -ET - -endstream -endobj -19 0 obj -<< /Type /Page /Contents 20 0 R /Resources 18 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 9 0 R >> -endobj -18 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F101 21 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -24 0 obj -<< /Length 862 >> -stream -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -BT -/F83 11.3574 Tf -1 0 0 1 110.787 424.095 Tm [<003800490046004F>-250<005500490046>-250<004D0050004F0046>-250<00530042004400440050>-7<0050004F>-250<00490050>7<0058004D0054>-250<00420055>-250<004500560054004C000D>]TJ -1 0 0 1 110.389 409.3 Tm [<0022004F0045>-250<00580049004A00550046>-250<0043004A0053>8<00450054>-250<00440046004200540046>-250<005500490046004A0053>-250<00550058004A0055005500460053>58<000D>]TJ -0.997 0 0 1 110.446 394.506 Tm [<003500490046004F>-250<005400490042004D004D>-251<005500490046>-251<0053004A0057>7<004600530054>-249<0050>6<0057>8<00460053093A0050>7<0058>-250<0058004A00550049>-250<004E004600420045000F>]TJ -1 0 0 1 198.975 379.711 Tm [<06DA>]TJ -/F101 11.3574 Tf -1 0 0 1 207.402 379.711 Tm [<00310053>8<0050005100490046>-7<0044005A>-250<00500047>-250<0024004D004200560045004A00560054>]TJ -0 g 0 G -0 g 0 G -ET - -endstream -endobj -23 0 obj -<< /Type /Page /Contents 24 0 R /Resources 22 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 9 0 R >> -endobj -22 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F83 16 0 R /F101 21 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -27 0 obj -<< /Length 32 >> -stream -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G - -endstream -endobj -26 0 obj -<< /Type /Page /Contents 27 0 R /Resources 25 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 9 0 R >> -endobj -25 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ProcSet [ /PDF ] >> -endobj -30 0 obj -<< /Length 7553 >> -stream -0 g 0 G -0 g 0 G -BT -/F83 18.17191 Tf -1 0 0 1 159.426 489.674 Tm [<0024004900420051005500460053>-250<0030004F0046>]TJ -/F83 11.3574 Tf -0.98 0 0 1 54 394.506 Tm [<002A0055>-178<005800420054>-178<0042>-179<004500420053004C>-178<0042004F0045>-179<0054005500500053004E005A>-178<004F004A004800490055000F>-315<002D00500053>8<0045>-178<0038004A005500490046004F0054>-178<0053>7<0050>-6<00450046>-179<0049004A0054>-178<00490050005300540046>-179<005500490053>8<0050005600480049>]TJ -0.993 0 0 1 54 379.711 Tm [<005500490046>-250<0048004D0050>-7<0050004E000D>-251<00580049004A00440049>-251<005800420054000D>-251<00420054>-251<004900460053>8<004600550050004700500053>8<0046>-250<004E0046004F0055004A0050004F0046>-7<0045000D>-251<004500420053004C000F>-335<002E005000540055>-251<0048004D0050>-7<0050004E>]TJ -1 0 0 1 54 364.917 Tm [<004A0054>-250<004500420053004C000D>-250<00460049>-250<0058>8<005000550020>]TJ -1.002 0 0 1 71.036 350.122 Tm [<002E0050>7<0057004A004F0048>-249<0053004A004800490055>-249<0042004D0050004F0048000D>-249<0049004A0054>-249<00490050005300540046>-249<004200530053004A0057>7<0046>-6<0045>-249<00420055>-249<005500490046>-249<004300420044004C>-249<00450050>-7<00500053>-249<00500047>-250<002D00420045005A>]TJ -1.02 0 0 1 53.455 335.327 Tm [<0038004A00540049004A004F00550042004D0046>24<06DF0054>-256<00520056004200530055004600530054000F>-359<003400420045004D005A>58<000D>-258<002D00500053>7<0045>-255<0038004A005500490046004F0054>-256<005800420054>-256<004F00500055>-256<0050004F>-256<004A0055000D>-259<004900420057004A004F0048>]TJ -0.982 0 0 1 54 320.533 Tm [<0054004D004A00510051>-7<0046>-7<0045>-255<00500938>-256<0049004A0054>-255<0054004200450045004D0046>-256<0042004D0050004F0048>-255<005500490046>-255<00580042005A>60<000F>-341<0035004900420055>-255<005800420054>-256<0043>-10<0046>-7<00440042005600540046>-255<005500490046>-256<0058>8<004600420055004900460053>]TJ -1 0 0 1 53.58 305.738 Tm [<005800420054>-250<0054005500500053004E005A>59<000F>]TJ -0.98 0 0 1 71.036 290.944 Tm [<002D00500053>8<0046004E>-248<004A005100540056004E>-248<00450050004D00500053>-249<0054004A0055>-248<0042004E00460055000D>-250<00440050004F00540046>-7<0044005500460055005600460053>-249<00420045004A0051004A00540044004A004F0048>-249<0046004D004A0055000F>-337<00360055>-249<00510056000E>]TJ -0.985 0 0 1 54 276.149 Tm [<005300560054>-253<0046004D004A0055000D>-253<0057>7<004600540055004A00430056004D0056004E>-252<00560055000D>-253<0051004D004200440046005300420055>-253<00420044000D>-254<00420045004A0051004A00540044004A004F0048>-253<0057004A005500420046>10<000D>-253<00470046004D004A0054000F>-338<00240056005300420043004A005500560053>]TJ -1.02 0 0 1 54 261.355 Tm [<0045004A004400550056004E>-243<0048005300420057004A00450042>-243<004E004200560053004A0054000F>-327<002F0042004E>-243<00420053>7<00440056>-243<004D004A0043>-10<00460053>7<0050>10<000D>-242<004F0050004F0056004E004E005A>-244<0046004800460055000D>-244<00440050004F00540046>-7<0044000E>]TJ -1.02 0 0 1 54 246.56 Tm [<005500460055005600460053>-335<004A0045000D>-358<00570056004D005100560055004200550046>-335<0042000D>-358<004E00420048004F0042000F>-598<00250050004F0046>-7<0044>-335<0057>7<00460049004A00440056004D0042>-335<00420056004800560046>-335<00460056>-335<004F0046>-7<005200560046>9<000F>]TJ -1.02 0 0 1 54 231.766 Tm [<00310046004D004D0046004F005500460054005200560046>-319<004900420043004A00550042004F0055>-320<004E005000530043004A>-320<00550053004A00540055004A005200560046>-320<00540046004F0046>-7<0044005500560054>-320<00460055>-320<004F0046005500560054>-320<00460055>-320<004E0042004D0046000E>]TJ -1.02 0 0 1 54 216.971 Tm [<00540056004200450042>-261<00470042004E00460054>-262<00420044>-261<0055005600530051004A0054>-262<0046004800460054005500420054000F>-376<002E004200560053004A0054>-262<00560055>-262<004D0046>-7<0050>10<000F>-376<0024005300420054>-261<0057004A0057>7<0046005300530042>-261<004E0046005500560054>]TJ -0.98 0 0 1 54 202.177 Tm [<005300490050004F004400560054>-226<00540046004E000F>-331<002F0056004D004D0042>-227<00460055>-226<004D0046>-8<0044005500560054>-226<0057>7<004600540055004A00430056004D0056004E>-226<00560053004F0042>-227<00470053004A004F0048004A004D004D0042>-226<0056004D00550053004A004400460054000F>-331<0031>-13<00490042000E>]TJ -1.004 0 0 1 54 187.382 Tm [<00540046004D004D00560054>-248<00460056>-249<00550046004D004D00560054>-249<0054004A0055>-249<0042004E00460055>-249<005500500053005500500053>-249<0048005300420057004A00450042>-249<0051004D004200440046005300420055000F>-332<002A004F00550046004800460053>-249<005400420051004A0046004F>-249<004600540055000D>]TJ -0.99 0 0 1 54 172.588 Tm [<004A004200440056004D004A0054>-253<004A004F000D>-253<00510053>7<00460055004A0056004E>-253<00520056004A0054000D>-253<0057004A0057>7<0046005300530042>-252<00420044000D>-254<004F0056004F0044000F>-339<003100530042004600540046004F0055>-253<0046004800460055>-254<00540046004E>-253<0057>7<0046004D>-252<004D0046>-7<0050>]TJ -0.99 0 0 1 54 157.793 Tm [<0056004D00550053004A004400460054>-252<0043004A0043>-11<0046004F00450056004E000F>-337<0022>12<0046004F00460042004F>-252<0047004200560044004A004300560054000F>-337<002E005000530043004A>-253<00450050004D00500053>-253<004F0056004D004D0042000D>-252<004E0042004D004600540056004200450042>]TJ -1.02 0 0 1 54 142.999 Tm [<00460056000D>-331<00510056004D0057004A004F00420053>-314<00420055000D>-332<004E0050004D004D004A0054>-314<00420044000D>-332<004F0056004D004D0042000F>-534<00240056005300420043004A005500560053>-315<004200560044005500500053>-314<00540046004E0051>-7<00460053>-314<004F0056004D004D0042000F>]TJ -1.02 0 0 1 54 128.204 Tm [<00250050004F0046>-7<0044>-252<005700420053004A00560054>-253<00500053>8<0044004A>-252<0046004800460055>-253<0053004A005400560054000F>-349<00250056004A0054>-252<004F004A00430049>-253<004E004A000D>-254<00440050004F004800560046>-253<00460056000D>-254<0042004400440056004E00540042004F>]TJ -1.007 0 0 1 54 113.41 Tm [<0046004D0046004A00470046004F0045000D>-249<005400420048004A00550055004A0054>-249<00520056004A0054000D>-250<0045004A0042004E000F>-333<00250056004A0054>-249<0046004800460055>-250<00500053>8<0044004A>-249<0054004A0055>-249<0042004E00460055>-249<00500053>7<0044004A>-248<0045004A0048004F004A00540054004A004E>]TJ -1 0 0 1 54 98.615 Tm [<00530056005500530056004E000F>]TJ -1.02 0 0 1 71.036 83.82 Tm [<002F0042004E>-328<00450056004A>-328<004D004A00480056004D0042000D>-349<00470053004A004F0048004A004D004D0042>-329<0042000D>-349<00460056004A0054004E0050>-7<0045>-328<00540050>-7<00450042004D00460054000D>-349<00540050004D004D004A0044004A005500560045004A004F>-329<0057>7<0046004D000D>]TJ -1.016 0 0 1 53.58 69.026 Tm [<0058004A0054004A000F>-328<002E005000530043004A>-245<004200560044005500500053>-246<004D00500053>7<0046004E>-245<004F0050004F>-246<004B0056005400550050>9<000F>-327<002F0042004E>-245<004D0042004400560054>-246<004D004A0043>-10<00460053>7<0050>10<000D>-245<00510053>7<00460055004A0056004E>-245<00420055000D>]TJ -0.98 0 0 1 54 54.231 Tm [<004D00500043>-10<005000530055004A0054>-215<0057004A005500420046>10<000D>-222<0056004D00550053004A0044004A00460054>-215<00460055000D>-223<00550046004D004D00560054000F>-327<00250050004F0046>-7<0044>-215<0042004D004A0052005600460055000D>-223<005500500053005500500053>-215<00540046>-7<0045>-215<0042004400440056004E00540042004F>]TJ -0.995 0 0 1 54 39.437 Tm [<0043004A0043>-10<0046004F00450056004E000D>-251<0046005300420055>-250<004D004A00480056004D0042>-251<0042004D004A0052005600460055>-251<004E00420048004F0042000D>-250<0057004A005500420046>-251<00500053004F00420053>7<0046>-250<0050>-7<0045004A0050>-251<004E0046005500560054>-250<0042>-251<004E004A000F>]TJ -0 g 0 G -0 g 0 G -ET - -endstream -endobj -29 0 obj -<< /Type /Page /Contents 30 0 R /Resources 28 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 9 0 R >> -endobj -28 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F83 16 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -33 0 obj -<< /Length 10995 >> -stream -0 g 0 G -BT -/F83 10.44878 Tf -1 0 0 1 36 565.121 Tm [<0013>]TJ -/F83 10.44878 Tf -1 0 0 1 151.292 565.121 Tm [<0025>-50<0964>-50<096C>-50<095B>-341<0029>-50<095C>-50<096C>-50<095F>-50<095E>-50<095C>-50<096D>-50<0960>]TJ -0 g 0 G -/F83 11.3574 Tf -1.011 0 0 1 36 542.451 Tm [<002E005000530043004A>-247<00420044>-248<00500053>7<0044004A>-246<00460055>-248<004F004A0054004D>-247<00490046004F00450053>7<00460053004A0055>-247<004E0050004D004D004A0054000F>-330<0034005600540051>-7<0046004F0045004A005400540046>-248<00560055>-248<004E0042005400540042000F>-330<0024005300420054>]TJ -1.02 0 0 1 36 527.656 Tm [<004F0046>-7<0044>-283<0042004F00550046>9<000F>-443<00310046004D004D0046004F005500460054005200560046>-284<0042>-283<004F0056004D004D0042000F>-444<00240056004E>-284<00540050>-6<0044004A004A0054>-284<004F004200550050>-7<005200560046>-284<0051>-7<0046004F00420055004A004300560054>-284<00460055>]TJ -1.02 0 0 1 36 512.862 Tm [<004E00420048004F004A0054>-316<0045004A0054>-316<005100420053005500560053004A0046004F0055>-317<004E0050004F005500460054000D>-334<004F0042005400440046005500560053>-316<0053004A0045004A00440056004D00560054>-316<004E00560054000F>-541<0022004D004A005200560042004E>]TJ -0.999 0 0 1 36 498.067 Tm [<0055004A004F0044004A00450056004F0055>-250<00560053004F0042000F>-336<002F0056004D004D0042>-251<0056004D004D0042004E0044005000530051>-7<00460053>-251<0057>7<004600540055004A00430056004D0056004E>-250<0055005600530051004A0054000F>-335<00310046004D004D0046004F005500460054005200560046>]TJ -1 0 0 1 36 483.273 Tm [<004400560053005400560054>-250<004D00560044005500560054>-250<004E004200560053004A0054000F>]TJ -1.011 0 0 1 53.036 468.478 Tm [<002F0056004D004D0042>-248<004E0042004D004600540056004200450042>-248<0051>-7<0050005300550055004A005500500053>-249<0045004A0042004E000F>-332<00250050004F0046>-7<0044>-249<00470046004D004A0054>-248<0046005300420055000D>-249<00440050004F004800560046>-248<004F0050004F000D>]TJ -0.992 0 0 1 35.716 453.684 Tm [<0057>8<0050004D00560055005100420055>-251<00420055000D>-252<0055004A004F0044004A00450056004F0055>-251<00550053004A00540055004A005200560046>9<000D>-251<004D004A0043>-10<00460053>7<0050>10<000F>-335<0037004A00570042004E00560054>-251<0057004A0057>7<0046005300530042>-251<004700460053004E0046004F00550056004E>]TJ -0.98 0 0 1 36 438.889 Tm [<00470046004D004A0054000F>-329<00250050004F0046>-7<0044>-222<004F0050004F0056004E004E005A>-221<0051>-7<0046004D004D0046004F005500460054005200560046>-222<0042004F00550046>9<000F>-328<0031>-12<0049004200540046004D004D00560054>-222<00420045004A0051004A00540044004A004F0048>-222<00540046004E000E>]TJ -0.98 0 0 1 36 424.095 Tm [<0051>-7<00460053>-226<0046004D004A0055000F>-330<00310053>7<0050004A004F>-225<004700460053004E0046004F00550056004E>-226<004E0042005400540042>-226<00420044>-226<005200560042004E000F>-331<00340046>-7<0045>-226<0045004A0042004E>-226<0055005600530051004A0054000D>-232<004E0050004D004600540055004A0046>]TJ -1.02 0 0 1 35.716 409.3 Tm [<0057004A005500420046>10<000D>-250<0051004D004200440046005300420055>-249<0042000D>-251<004E0050004D004600540055004A0046>-249<004F0046>-7<0044000D>-251<004D0046>-7<0050>9<000F>-338<002E00420046>-7<00440046004F00420054>-250<004D00420044004A004F004A0042000F>-339<002F0042004E>-250<004A005100540056004E>]TJ -1.015 0 0 1 36 394.506 Tm [<004D004A00480056004D0042000D>-246<0046004D0046004A00470046004F0045>-247<00420055000D>-246<0042004400440056004E00540042004F>-247<004F0046>-7<0044000D>-246<0054005600540044004A0051004A0055>-247<0042000D>-247<004A005100540056004E000F>-329<002E005000530043004A>-246<0043004D0042004F0045004A0055>]TJ -1.017 0 0 1 36 379.711 Tm [<004D004A00480056004D0042>-244<0047004600560048004A00420055>-245<004E00420048004F0042000F>-328<002F0056004F0044>-245<0046004D0046004A00470046004F0045>-245<00440050004F00540046>-7<0052005600420055>-245<004D00500053>8<0046004E000F>-327<00340046>-7<0045>-245<004D00420044004A004F004A0042>]TJ -1.02 0 0 1 36 364.917 Tm [<004F0056004D004D0042>-305<0057004A005500420046>-306<0046004F004A004E000F>-510<00310046004D004D0046004F005500460054005200560046>-306<0055004A004F0044004A00450056004F0055>-306<00510056005300560054>-305<0057>7<0046004D>-305<004E00420048004F0042000F>-510<002A004F00550046000E>]TJ -1.004 0 0 1 36 350.122 Tm [<004800460053>-248<004F0050004F>-249<0046004F004A004E000F>-332<003100530042004600540046004F0055>-248<00460056004A0054004E0050>-7<0045>-249<004F0056004F0044>-249<00460056>-248<00510056005300560054000F>-332<00250050004F0046>-7<0044>-249<0043004A0043>-10<0046004F00450056004E>]TJ -1.014 0 0 1 36 335.327 Tm [<005200560042004E>-247<004A004F>-247<00550046004D004D00560054000F>-331<002F0056004D004D0042004E>-247<004400560053005400560054>-247<00510056004D0057004A004F00420053>-247<004D0046>-7<0044005500560054000F>-331<00250050004F0046>-7<0044>-247<00460055>-248<004E004A000F>-330<002F0042004E>]TJ -1 0 0 1 35.716 320.533 Tm [<00570056004D005100560055004200550046>-250<004E0046005500560054>-250<00460056>-250<0046004F004A004E000F>-333<0037>79<004600540055004A00430056004D0056004E>-249<0051>-7<0046004D004D0046004F005500460054005200560046>-250<00470046004D004A0054>-250<00460056>-250<004E0042005400540042000F>]TJ -0.98 0 0 1 53.036 305.738 Tm [<09550056004A0054005200560046>-228<0056004D004D0042004E0044005000530051>-7<00460053>-228<0051004D004200440046005300420055>-228<004A005100540056004E000F>-331<0024005300420054>-228<004F004A00430049000F>-331<002E005000530043004A>-228<0057>7<0046004D>-227<004B0056005400550050>]TJ -0.98 0 0 1 35.716 290.944 Tm [<0057004A005500420046>-236<004D0042004400560054>-237<0055004A004F0044004A00450056004F0055>-236<0056004D00550053004A004400460054000F>-334<002D00500053>7<0046004E>-235<004A005100540056004E>-237<00450050004D00500053>-236<0054004A0055>-237<0042004E00460055000D>-240<00440050004F00540046>-7<004400550046000E>]TJ -0.98 0 0 1 36 276.149 Tm [<0055005600460053>-193<00420045004A0051004A00540044004A004F0048>-193<0046004D004A0055000F>-319<002A004F>-193<004900420044>-193<004900420043004A00550042005400540046>-194<0051004D0042005500460042>-193<0045004A004400550056004E00540055000F>-319<002A004F00550046004800460053>-193<00550046004E005100560054>]TJ -0.996 0 0 1 36 261.355 Tm [<00440050004F00570042004D004D004A0054>-250<00420056004800560046>9<000F>-333<00260055004A0042004E>-251<004700420044004A004D004A0054004A0054000F>-334<002F0056004F0044>-251<0046004D0046004E0046004F00550056004E>-250<004700460053004E0046004F00550056004E>-251<0058004A0054004A000F>]TJ -1.01 0 0 1 35.602 246.56 Tm [<0022>12<0046004F00460042004F>-246<0051004D004200440046005300420055000F>-330<00360055>-247<004A004E0051>-7<00460053>7<0045004A00460055000D>-246<0046004F004A004E>-247<00540046>-7<0045>-247<0048005300420057004A00450042>-246<00540050004D004D004A0044004A005500560045004A004F000D>-247<00470046004D004A0054>]TJ -1.02 0 0 1 36 231.766 Tm [<0050>-7<0045004A0050>-259<0051004D004200440046005300420055>-260<005200560042004E000D>-264<00420044>-260<00510056004D0057004A004F00420053>-260<0046004D004A0055>-260<00510056005300560054>-260<0046004800460055>-260<0046004F004A004E000F>-371<002F0056004F0044>-260<0057004A005500420046>]TJ -1.014 0 0 1 36 216.971 Tm [<005500500053005500500053>59<000F>-330<00310053>7<0050004A004F>-246<00550046004E005100560054>-247<004F004A00430049>-247<0054004A0055>-247<0042004E00460055>-247<004F004A0054004D000F>-331<0037004A00570042004E00560054>-247<00520056004A0054>-247<005500500053005500500053>-247<0057004A005500420046>]TJ -1 0 0 1 36 202.177 Tm [<0053004A005400560054>-250<0051>-7<0050005300550042>-250<0057>8<00460049004A00440056004D0042000F>]TJ -0.999 0 0 1 53.036 187.382 Tm [<00270056005400440046>-250<004E004200560053004A0054000F>-333<0037>80<004600540055004A00430056004D0056004E>-249<004D00560044005500560054>-250<004F004A00430049>-250<00420055>-251<004D0046>-7<0044005500560054000F>-333<00340046>-7<0045>-251<0043004A0043>-10<0046004F00450056004E000D>]TJ -1.004 0 0 1 36 172.588 Tm [<004F0056004D004D0042>-248<0042>-248<0047004200560044004A004300560054>-248<00540046004E0051>-7<00460053>59<000D>-247<004D0046>-7<0050>-248<0057>7<0046004D004A0055>-247<0056004D00550053004A0044004A00460054>-248<00550046004D004D00560054000D>-248<00420044>-248<0057>7<0046004F0046004F00420055004A0054>-247<00420053>7<00440056>]TJ -1.016 0 0 1 35.58 157.793 Tm [<0058004A0054004A>-246<0057>7<0046004D>-245<004F004A0054004D000F>-328<0037>79<004600540055004A00430056004D0056004E>-245<0045004A0042004E000F>-329<0022004D004A005200560042004E>-246<0051>-7<0046004D004D0046004F005500460054005200560046>9<000D>-245<00420056004800560046>-246<00520056004A0054>]TJ -1.007 0 0 1 36 142.999 Tm [<005400420048004A00550055004A0054>-247<0051>-7<00500054005600460053>7<0046>10<000D>-247<0055005600530051004A0054>-247<004D0042004400560054>-248<00440050004F004800560046>-248<005200560042004E000D>-247<004A004F>-248<00490046004F00450053>7<00460053004A0055>-247<0053004A005400560054>-247<00460053>7<00500054>]TJ -0.98 0 0 1 36 128.204 Tm [<0046004800460055>-237<00470046004D004A0054000F>-334<002E00420046>-7<00440046004F00420054>-237<0046004800460055>-237<0046005300420055>-237<004A004F>-237<005400420051004A0046004F>-237<004E004200550055004A0054>-237<0051>-8<0050005300550055004A005500500053>61<000F>-333<0037>82<004600540055004A00430056004D0056004E>]TJ -1.02 0 0 1 36 113.41 Tm [<0051>-7<0050005300550055004A005500500053>59<000F>-483<002F0056004D004D0042>-297<004700420044004A004D004A0054004A000F>-484<00340046>-7<0045>-297<0042>-298<0055005600530051004A0054>-297<00460056>-297<004D0042004400560054>-298<00440050004E004E0050>-7<00450050>-297<004700420044004A004D004A0054004A0054000F>]TJ -0.982 0 0 1 36 98.615 Tm [<002E005000530043004A>-254<00470053004A004F0048004A004D004D0042000D>-254<0058004A0054004A>-254<004A004F>-254<0045004A0048004F004A00540054004A004E>-254<004A004F005500460053>8<00450056004E000D>-254<004B0056005400550050>-254<004D0046>-7<0044005500560054>-254<005400420048004A00550055004A0054>-254<00450056004A000D>]TJ -1.02 0 0 1 36 83.82 Tm [<00460055>-258<0057>7<00460049004A00440056004D0042>-258<004D004A0043>-10<00460053>7<0050>-258<00450056004A>-259<004400560053005400560054>-258<00450056004A000F>-368<002E004200560053004A0054>-259<00550046004E0051>-7<00500053>-259<004D004A00480056004D0042>-258<00540046>-7<0045>-259<004D0042004400560054000F>]TJ -1.02 0 0 1 36 69.026 Tm [<00250056004A0054>-341<004400560053005400560054>-341<0046004F004A004E>-341<00560055>-341<00420056004800560046>9<000F>-614<0024005300420054>-341<00420044>-341<004E00420048004F0042000F>-615<0024005300420054>-341<004F0056004D004D0042000F>-615<002F0056004D004D0042>]TJ -1.02 0 0 1 36 54.231 Tm [<0046004800460054005500420054000F>-526<00240056005300420043004A005500560053>-312<0042>-311<004D0046>-7<0050>9<000F>-526<09550056004A0054005200560046>-312<0046004800460054005500420054>-311<0058004A0054004A>-312<0046004800460055>-312<004F0056004F0044000F>-526<002F0042004E>]TJ -1 0 0 1 36 39.437 Tm [<0047004600560048004A00420055>-250<004D0042004400560054>-250<0057>8<0046004D>-250<004600540055000F>-333<00240056005300420043004A005500560053>-250<00440050004F00540046>-7<0044005500460055005600460053>58<000F>]TJ -0 g 0 G -0 g 0 G -ET - -endstream -endobj -32 0 obj -<< /Type /Page /Contents 33 0 R /Resources 31 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 9 0 R >> -endobj -31 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F83 16 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -36 0 obj -<< /Length 6171 >> -stream -0 g 0 G -BT -/F83 10.44878 Tf -1 0 0 1 162.868 565.121 Tm [<0025>-50<095C>-50<096C>-50<095B>-341<095C>-50<0968>-50<095F>-342<0034>-50<096E>-25<0969>-50<096C>-50<0967>-50<0973>]TJ -/F83 10.44878 Tf -1 0 0 1 355.141 565.121 Tm [<0014>]TJ -0 g 0 G -/F83 11.3574 Tf -0.98 0 0 1 71.036 542.451 Tm [<0034005600540051>-7<0046004F0045004A005400540046>-249<0057>7<0046004D>-248<00470046004D004A0054000F>-339<00360055>-249<004D00500053>7<0046004E>-248<004D00500053>7<0046004E000D>-249<004A004F005500460053>7<00450056004E>-249<00460056000D>-250<0055004A004F0044004A00450056004F0055>-250<0054004A0055>]TJ -1.015 0 0 1 54 527.656 Tm [<0042004E00460055000D>-246<004D004200500053>7<0046>-6<00460055>-247<0057004A005500420046>9<000D>-246<00420053>7<00440056000F>-329<0022>12<0046004F00460042004F>-246<0047004200560044004A004300560054>-247<0051>-7<0046>-7<00450046>-247<00460056>-247<0042004F00550046>10<000F>-329<003100530042004600540046004F0055>]TJ -1.02 0 0 1 54 512.862 Tm [<0046004F004A004E>-282<0046004D004A0055000D>-293<00530056005500530056004E>-283<00420055000D>-292<004E0050004D004600540055004A0046>-283<004F0050004F000D>-292<004F0050004F0056004E004E005A>-283<0057>7<0046004D000D>-291<004F004A0054004D000F>-440<00360055>-283<004D0046>-7<0044005500560054>]TJ -1.02 0 0 1 54 498.067 Tm [<00460053>8<00500054000D>-318<004E0042004D004600540056004200450042>-304<0054004A0055>-304<0042004E00460055000D>-319<004700460053004E0046004F00550056004E>-304<00460056000D>-319<00540050>-6<00450042004D00460054>-304<004400560053005400560054000D>-319<004E00420048004F0042000F>]TJ -1.007 0 0 1 54 483.273 Tm [<00250050004F0046>-7<0044>-248<00460056>-249<00510056005300560054000F>-332<09550056004A0054005200560046>-249<0057>7<00460049004A00440056004D0042000D>-248<00560053004F0042>-248<00540046>-7<0045>-249<0056004D00550053004A0044004A00460054>-249<004200560044005500500053>59<000D>-248<0051>-7<0046>-7<00450046>]TJ -1.02 0 0 1 54 468.478 Tm [<004D00500053>8<0046004E>-316<0046004800460054005500420054>-316<00450056004A000D>-335<00460055>-316<00440050004F00570042004D004D004A0054>-317<0046004D004A0055>-316<0046005300420055>-316<00540046>-7<0045>-317<004F0056004D004D0042000F>-541<00250050004F0046>-7<0044>-316<004D00560044005500560054000F>]TJ -0.98 0 0 1 54 453.684 Tm [<00240056005300420043004A005500560053>-241<00460055>-242<004F0056004F0044000F>-336<0022004D004A005200560042004E>-242<00450050004D00500053>-242<0050>-7<0045004A0050>10<000D>-244<00440050004E004E0050>-7<00450050>-242<00510053>7<00460055004A0056004E000D>-243<0056004D00550053004A0044004A00460054>]TJ -1.018 0 0 1 54 438.889 Tm [<004F0050004F000D>-244<0051004900420053>7<0046005500530042>-243<004A004F000D>-245<0057>7<0046004D004A0055000F>-326<002A004F00550046004800460053>-244<00420053>7<00440056>-244<004600540055000D>-244<004F0050004F0056004E004E005A>-244<004A004F000D>-245<004700460053004E0046004F00550056004E>]TJ -1 0 0 1 54 424.095 Tm [<0047004200560044004A004300560054000D>-250<0046004800460054005500420054>-250<0057>8<0046004D000D>-250<0050>-7<0045004A0050>10<000F>]TJ -1.005 0 0 1 71.036 409.3 Tm [<00340046>-7<0045>-247<00440050004E004E0050>-7<00450050>-248<0051>-7<00500054005600460053>7<0046>-246<0051>-7<0046>-7<00450046>9<000F>-330<002E004200560053004A0054>-248<00560055>-247<004600540055000F>-332<00360055>-247<00520056004A0054>-247<00510056005300560054000F>-332<00340046>-7<0045>]TJ -1.01 0 0 1 54 394.506 Tm [<00420044>-247<0050>-7<0045004A0050>9<000F>-330<00340046>-7<0045>-248<0057>7<00460049004A00440056004D0042>-247<00490046004F00450053>7<00460053004A0055>-247<00540046004E000F>-331<00250056004A0054>-248<004F0050004F>-247<0050>-8<0045004A0050>10<000F>-330<002E005000530043004A>-248<00560055>-248<00450056004A000F>]TJ -1.02 0 0 1 54 379.711 Tm [<00340046>-7<0045>-316<0042004400440056004E00540042004F>-317<0053004A005400560054>-316<0046004800460055>-317<0050>-7<0045004A0050>9<000F>-541<002A004F>-316<004900420044>-317<004900420043004A00550042005400540046>-317<0051004D0042005500460042>-316<0045004A004400550056004E00540055000F>]TJ -1.02 0 0 1 54 364.917 Tm [<00310046004D004D0046004F005500460054005200560046>-361<004F0050004F>-362<0046004D004A0055000F>-677<00270056005400440046>-361<00540046>-7<0045>-362<004B0056005400550050>-362<00460056>-362<00560053004F0042>-361<0051>-7<0050005300550042>-362<0055004A004F0044004A00450056004F0055000F>]TJ -0.981 0 0 1 54 350.122 Tm [<002E004200560053004A0054>-255<00470046004D004A0054>-255<0050>-7<0045004A0050>9<000D>-254<00540050004D004D004A0044004A005500560045004A004F>-255<00540046>-8<0045000D>-255<0057>7<0050004D0056>1<0055005100420055>-255<0042000D>-255<00500053004F00420053>7<0046>-254<00420044000D>-255<0046005300420055000F>-341<002E005000530043004A>]TJ -1.02 0 0 1 54 335.327 Tm [<00520056004A0054>-270<00450050004D00500053>59<000F>-401<00250050004F0046>-7<0044>-270<0051>-7<0046004D004D0046004F005500460054005200560046>9<000D>-275<0046005300420055>-270<00420044>-270<005400420048004A00550055004A0054>-270<00540046004E0051>-7<00460053>58<000D>-275<004F0056004F0044>-270<00450056004A>]TJ -1.02 0 0 1 54 320.533 Tm [<004D00500043>-10<005000530055004A0054>-269<00510056005300560054000D>-275<00520056004A0054>-269<00440050004F004800560046>-269<00510056005300560054>-269<004E0046005500560054>-269<0056004D00550053004A0044004A00460054>-269<00550046004D004D00560054000F>-398<00310053>7<0050004A004F>-268<00460055>]TJ -1.02 0 0 1 54 305.738 Tm [<005200560042004E000F>-341<0024004D004200540054>-250<0042005100550046004F0055>-250<005500420044004A0055004A>-250<00540050>-7<0044004A0050005400520056>-250<00420045>-250<004D004A0055005000530042>-250<005500500053>7<005200560046004F0055>-249<0051>-7<00460053>-250<00440050004F00560043004A0042>]TJ -0.98 0 0 1 54 290.944 Tm [<004F00500054005500530042000D>-241<0051>-7<00460053>-238<004A004F004400460051005500500054>-239<0049005A004E0046004F00420046>-7<00500054000F>-334<003100530042004600540046004F0055>-239<005400420051004A0046004F>-238<0055005600530051004A0054000D>-241<004700460053004E0046004F00550056004E>]TJ -1 0 0 1 53.716 276.149 Tm [<0057>8<0046004D000D>-250<0046004D0046004A00470046004F0045>-250<0047004200560044004A004300560054000D>-250<0057>8<00460049004A00440056004D0042>-250<00460056000D>-250<004D0042004400560054000F>]TJ -0 g 0 G -0 g 0 G -ET - -endstream -endobj -35 0 obj -<< /Type /Page /Contents 36 0 R /Resources 34 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 9 0 R >> -endobj -34 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F83 16 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -39 0 obj -<< /Length 7861 >> -stream -0 g 0 G -0 g 0 G -BT -/F83 18.17191 Tf -1 0 0 1 140.517 489.674 Tm [<0024004900420051005500460053>-250<0035>49<0058>8<0050>]TJ -/F83 11.3574 Tf -0.988 0 0 1 35.659 394.506 Tm [<003500490046>-254<004F004A004800490055>-253<005800420054>-254<00540055004A004D004D>-254<004500420053004C>-254<0042004F0045>-254<0054005500500053004E005A>60<000F>-339<00350049004A0054>-254<0054004900500056004D0045>-254<004F00500055>-254<0043>-11<0046>-253<00540056005300510053004A0054004A004F0048000D>]TJ -0.989 0 0 1 36 379.711 Tm [<00540046>-7<0046004A004F0048>-253<00420054>-254<00490050>7<0058>-253<0050004F004D005A>-253<00490042004D0047>-253<0042004F>-254<0049005000560053>-253<004900420054>-254<0046004D0042005100540046>-7<0045>-253<0054004A004F00440046>-254<005500490046>-253<0939005300540055>-253<0044004900420051005500460053>60<000F>]TJ -1.02 0 0 1 35.659 364.917 Tm [<0035004900420055>-281<004A004F004700500053004E00420055004A0050004F>-282<005800420054>-282<004F0046>-7<004400460054005400420053>-15<005A>58<000D>-289<004A004F>-282<0044004200540046>-282<005A>7<00500056>-280<005100560055>-282<005500490046>-282<0043>-10<0050>-7<0050004C>-281<00450050>6<0058004F>]TJ -1 0 0 1 36 350.122 Tm [<0042004F0045>-250<004900420057>8<0046004F06DF0055>-250<0053>8<004600420045>-250<0042004F005A>-250<00500047>-250<004A0055>-250<004700500053>-250<005500490046>-250<004D004200540055>-250<00550058>8<0050>-250<0058>8<0046>-7<0046004C0054000F>]TJ -0.98 0 0 1 53.036 335.327 Tm [<002D00500053>8<0045>-209<0038004A005500490046004F0054000D>-220<0058>8<00460055>-209<0042004F0045>-210<004300530056004A00540046>-8<0045000D>-219<0939004F0042004D004D005A>-210<004200530053004A0057>7<0046>-6<0045>-210<00420055>-210<0049004A0054>-210<0045004600540055004A004F00420055004A0050004F000F>]TJ -0.98 0 0 1 35.659 320.533 Tm [<003500490046>-234<0053>7<0046004200540050004F>-234<00490046>-234<005800420054>-235<0058>7<00460055>-233<005800420054>-235<0043>-10<0046>-8<00440042005600540046>10<000D>-238<00420054>-235<004900420054>-234<0043>-11<0046>-7<0046004F>-235<004F005000550046>-7<0045000D>-239<005500490046>-235<0058>8<004600420055004900460053>]TJ -1 0 0 1 35.58 305.738 Tm [<005800420054>-250<0054005500500053004E005A>59<000F>-333<002A0055>-250<005800420054>-250<004500420053004C000D>-250<00550050>-7<0050>9<000F>]TJ -0.98 0 0 1 53.036 290.944 Tm [<002D00500053>8<0046004E>-248<004A005100540056004E>-248<00450050004D00500053>-249<0054004A0055>-248<0042004E00460055000D>-250<00440050004F00540046>-7<0044005500460055005600460053>-249<00420045004A0051004A00540044004A004F0048>-249<0046004D004A0055000F>-337<00360055>-249<00510056000E>]TJ -0.985 0 0 1 36 276.149 Tm [<005300560054>-253<0046004D004A0055000D>-253<0057>7<004600540055004A00430056004D0056004E>-252<00560055000D>-253<0051004D004200440046005300420055>-253<00420044000D>-254<00420045004A0051004A00540044004A004F0048>-253<0057004A005500420046>10<000D>-253<00470046004D004A0054000F>-338<00240056005300420043004A005500560053>]TJ -1.02 0 0 1 36 261.355 Tm [<0045004A004400550056004E>-243<0048005300420057004A00450042>-243<004E004200560053004A0054000F>-327<002F0042004E>-243<00420053>7<00440056>-243<004D004A0043>-10<00460053>7<0050>10<000D>-242<004F0050004F0056004E004E005A>-244<0046004800460055000D>-244<00440050004F00540046>-7<0044000E>]TJ -1.02 0 0 1 36 246.56 Tm [<005500460055005600460053>-335<004A0045000D>-358<00570056004D005100560055004200550046>-335<0042000D>-358<004E00420048004F0042000F>-598<00250050004F0046>-7<0044>-335<0057>7<00460049004A00440056004D0042>-335<00420056004800560046>-335<00460056>-335<004F0046>-7<005200560046>9<000F>]TJ -1.02 0 0 1 36 231.766 Tm [<00310046004D004D0046004F005500460054005200560046>-319<004900420043004A00550042004F0055>-320<004E005000530043004A>-320<00550053004A00540055004A005200560046>-320<00540046004F0046>-7<0044005500560054>-320<00460055>-320<004F0046005500560054>-320<00460055>-320<004E0042004D0046000E>]TJ -1.02 0 0 1 36 216.971 Tm [<00540056004200450042>-261<00470042004E00460054>-262<00420044>-261<0055005600530051004A0054>-262<0046004800460054005500420054000F>-376<002E004200560053004A0054>-262<00560055>-262<004D0046>-7<0050>10<000F>-376<0024005300420054>-261<0057004A0057>7<0046005300530042>-261<004E0046005500560054>]TJ -0.98 0 0 1 36 202.177 Tm [<005300490050004F004400560054>-226<00540046004E000F>-331<002F0056004D004D0042>-227<00460055>-226<004D0046>-8<0044005500560054>-226<0057>7<004600540055004A00430056004D0056004E>-226<00560053004F0042>-227<00470053004A004F0048004A004D004D0042>-226<0056004D00550053004A004400460054000F>-331<0031>-13<00490042000E>]TJ -1.004 0 0 1 36 187.382 Tm [<00540046004D004D00560054>-248<00460056>-249<00550046004D004D00560054>-249<0054004A0055>-249<0042004E00460055>-249<005500500053005500500053>-249<0048005300420057004A00450042>-249<0051004D004200440046005300420055000F>-332<002A004F00550046004800460053>-249<005400420051004A0046004F>-249<004600540055000D>]TJ -0.99 0 0 1 36 172.588 Tm [<004A004200440056004D004A0054>-253<004A004F000D>-253<00510053>7<00460055004A0056004E>-253<00520056004A0054000D>-253<0057004A0057>7<0046005300530042>-252<00420044000D>-254<004F0056004F0044000F>-339<003100530042004600540046004F0055>-253<0046004800460055>-254<00540046004E>-253<0057>7<0046004D>-252<004D0046>-7<0050>]TJ -0.99 0 0 1 36 157.793 Tm [<0056004D00550053004A004400460054>-252<0043004A0043>-11<0046004F00450056004E000F>-337<0022>12<0046004F00460042004F>-252<0047004200560044004A004300560054000F>-337<002E005000530043004A>-253<00450050004D00500053>-253<004F0056004D004D0042000D>-252<004E0042004D004600540056004200450042>]TJ -1.02 0 0 1 36 142.999 Tm [<00460056000D>-331<00510056004D0057004A004F00420053>-314<00420055000D>-332<004E0050004D004D004A0054>-314<00420044000D>-332<004F0056004D004D0042000F>-534<00240056005300420043004A005500560053>-315<004200560044005500500053>-314<00540046004E0051>-7<00460053>-314<004F0056004D004D0042000F>]TJ -1.02 0 0 1 36 128.204 Tm [<00250050004F0046>-7<0044>-252<005700420053004A00560054>-253<00500053>8<0044004A>-252<0046004800460055>-253<0053004A005400560054000F>-349<00250056004A0054>-252<004F004A00430049>-253<004E004A000D>-254<00440050004F004800560046>-253<00460056000D>-254<0042004400440056004E00540042004F>]TJ -1.007 0 0 1 36 113.41 Tm [<0046004D0046004A00470046004F0045000D>-249<005400420048004A00550055004A0054>-249<00520056004A0054000D>-250<0045004A0042004E000F>-333<00250056004A0054>-249<0046004800460055>-250<00500053>8<0044004A>-249<0054004A0055>-249<0042004E00460055>-249<00500053>7<0044004A>-248<0045004A0048004F004A00540054004A004E>]TJ -1 0 0 1 36 98.615 Tm [<00530056005500530056004E000F>]TJ -1.02 0 0 1 53.036 83.82 Tm [<002F0042004E>-328<00450056004A>-328<004D004A00480056004D0042000D>-349<00470053004A004F0048004A004D004D0042>-329<0042000D>-349<00460056004A0054004E0050>-7<0045>-328<00540050>-7<00450042004D00460054000D>-349<00540050004D004D004A0044004A005500560045004A004F>-329<0057>7<0046004D000D>]TJ -1.016 0 0 1 35.58 69.026 Tm [<0058004A0054004A000F>-328<002E005000530043004A>-245<004200560044005500500053>-246<004D00500053>7<0046004E>-245<004F0050004F>-246<004B0056005400550050>9<000F>-327<002F0042004E>-245<004D0042004400560054>-246<004D004A0043>-10<00460053>7<0050>10<000D>-245<00510053>7<00460055004A0056004E>-245<00420055000D>]TJ -0.98 0 0 1 36 54.231 Tm [<004D00500043>-10<005000530055004A0054>-215<0057004A005500420046>10<000D>-222<0056004D00550053004A0044004A00460054>-215<00460055000D>-223<00550046004D004D00560054000F>-327<00250050004F0046>-7<0044>-215<0042004D004A0052005600460055000D>-223<005500500053005500500053>-215<00540046>-7<0045>-215<0042004400440056004E00540042004F>]TJ -0.995 0 0 1 36 39.437 Tm [<0043004A0043>-10<0046004F00450056004E000D>-251<0046005300420055>-250<004D004A00480056004D0042>-251<0042004D004A0052005600460055>-251<004E00420048004F0042000D>-250<0057004A005500420046>-251<00500053004F00420053>7<0046>-250<0050>-7<0045004A0050>-251<004E0046005500560054>-250<0042>-251<004E004A000F>]TJ -0 g 0 G -0 g 0 G -ET - -endstream -endobj -38 0 obj -<< /Type /Page /Contents 39 0 R /Resources 37 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 9 0 R >> -endobj -37 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F83 16 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -42 0 obj -<< /Length 11010 >> -stream -0 g 0 G -BT -/F83 10.44878 Tf -1 0 0 1 162.868 565.121 Tm [<0025>-50<095C>-50<096C>-50<095B>-341<095C>-50<0968>-50<095F>-342<0034>-50<096E>-25<0969>-50<096C>-50<0967>-50<0973>]TJ -/F83 10.44878 Tf -1 0 0 1 355.141 565.121 Tm [<0016>]TJ -0 g 0 G -/F83 11.3574 Tf -1.011 0 0 1 54 542.451 Tm [<002E005000530043004A>-247<00420044>-248<00500053>7<0044004A>-246<00460055>-248<004F004A0054004D>-247<00490046004F00450053>7<00460053004A0055>-247<004E0050004D004D004A0054000F>-330<0034005600540051>-7<0046004F0045004A005400540046>-248<00560055>-248<004E0042005400540042000F>-330<0024005300420054>]TJ -1.02 0 0 1 54 527.656 Tm [<004F0046>-7<0044>-283<0042004F00550046>9<000F>-443<00310046004D004D0046004F005500460054005200560046>-284<0042>-283<004F0056004D004D0042000F>-444<00240056004E>-284<00540050>-6<0044004A004A0054>-284<004F004200550050>-7<005200560046>-284<0051>-7<0046004F00420055004A004300560054>-284<00460055>]TJ -1.02 0 0 1 54 512.862 Tm [<004E00420048004F004A0054>-316<0045004A0054>-316<005100420053005500560053004A0046004F0055>-317<004E0050004F005500460054000D>-334<004F0042005400440046005500560053>-316<0053004A0045004A00440056004D00560054>-316<004E00560054000F>-541<0022004D004A005200560042004E>]TJ -0.999 0 0 1 54 498.067 Tm [<0055004A004F0044004A00450056004F0055>-250<00560053004F0042000F>-336<002F0056004D004D0042>-251<0056004D004D0042004E0044005000530051>-7<00460053>-251<0057>7<004600540055004A00430056004D0056004E>-250<0055005600530051004A0054000F>-335<00310046004D004D0046004F005500460054005200560046>]TJ -1 0 0 1 54 483.273 Tm [<004400560053005400560054>-250<004D00560044005500560054>-250<004E004200560053004A0054000F>]TJ -1.011 0 0 1 71.036 468.478 Tm [<002F0056004D004D0042>-248<004E0042004D004600540056004200450042>-248<0051>-7<0050005300550055004A005500500053>-249<0045004A0042004E000F>-332<00250050004F0046>-7<0044>-249<00470046004D004A0054>-248<0046005300420055000D>-249<00440050004F004800560046>-248<004F0050004F000D>]TJ -0.992 0 0 1 53.716 453.684 Tm [<0057>8<0050004D00560055005100420055>-251<00420055000D>-252<0055004A004F0044004A00450056004F0055>-251<00550053004A00540055004A005200560046>9<000D>-251<004D004A0043>-10<00460053>7<0050>10<000F>-335<0037004A00570042004E00560054>-251<0057004A0057>7<0046005300530042>-251<004700460053004E0046004F00550056004E>]TJ -0.98 0 0 1 54 438.889 Tm [<00470046004D004A0054000F>-329<00250050004F0046>-7<0044>-222<004F0050004F0056004E004E005A>-221<0051>-7<0046004D004D0046004F005500460054005200560046>-222<0042004F00550046>9<000F>-328<0031>-12<0049004200540046004D004D00560054>-222<00420045004A0051004A00540044004A004F0048>-222<00540046004E000E>]TJ -0.98 0 0 1 54 424.095 Tm [<0051>-7<00460053>-226<0046004D004A0055000F>-330<00310053>7<0050004A004F>-225<004700460053004E0046004F00550056004E>-226<004E0042005400540042>-226<00420044>-226<005200560042004E000F>-331<00340046>-7<0045>-226<0045004A0042004E>-226<0055005600530051004A0054000D>-232<004E0050004D004600540055004A0046>]TJ -1.02 0 0 1 53.716 409.3 Tm [<0057004A005500420046>10<000D>-250<0051004D004200440046005300420055>-249<0042000D>-251<004E0050004D004600540055004A0046>-249<004F0046>-7<0044000D>-251<004D0046>-7<0050>9<000F>-338<002E00420046>-7<00440046004F00420054>-250<004D00420044004A004F004A0042000F>-339<002F0042004E>-250<004A005100540056004E>]TJ -1.015 0 0 1 54 394.506 Tm [<004D004A00480056004D0042000D>-246<0046004D0046004A00470046004F0045>-247<00420055000D>-246<0042004400440056004E00540042004F>-247<004F0046>-7<0044000D>-246<0054005600540044004A0051004A0055>-247<0042000D>-247<004A005100540056004E000F>-329<002E005000530043004A>-246<0043004D0042004F0045004A0055>]TJ -1.017 0 0 1 54 379.711 Tm [<004D004A00480056004D0042>-244<0047004600560048004A00420055>-245<004E00420048004F0042000F>-328<002F0056004F0044>-245<0046004D0046004A00470046004F0045>-245<00440050004F00540046>-7<0052005600420055>-245<004D00500053>8<0046004E000F>-327<00340046>-7<0045>-245<004D00420044004A004F004A0042>]TJ -1.02 0 0 1 54 364.917 Tm [<004F0056004D004D0042>-305<0057004A005500420046>-306<0046004F004A004E000F>-510<00310046004D004D0046004F005500460054005200560046>-306<0055004A004F0044004A00450056004F0055>-306<00510056005300560054>-305<0057>7<0046004D>-305<004E00420048004F0042000F>-510<002A004F00550046000E>]TJ -1.004 0 0 1 54 350.122 Tm [<004800460053>-248<004F0050004F>-249<0046004F004A004E000F>-332<003100530042004600540046004F0055>-248<00460056004A0054004E0050>-7<0045>-249<004F0056004F0044>-249<00460056>-248<00510056005300560054000F>-332<00250050004F0046>-7<0044>-249<0043004A0043>-10<0046004F00450056004E>]TJ -1.014 0 0 1 54 335.327 Tm [<005200560042004E>-247<004A004F>-247<00550046004D004D00560054000F>-331<002F0056004D004D0042004E>-247<004400560053005400560054>-247<00510056004D0057004A004F00420053>-247<004D0046>-7<0044005500560054000F>-331<00250050004F0046>-7<0044>-247<00460055>-248<004E004A000F>-330<002F0042004E>]TJ -1 0 0 1 53.716 320.533 Tm [<00570056004D005100560055004200550046>-250<004E0046005500560054>-250<00460056>-250<0046004F004A004E000F>-333<0037>79<004600540055004A00430056004D0056004E>-249<0051>-7<0046004D004D0046004F005500460054005200560046>-250<00470046004D004A0054>-250<00460056>-250<004E0042005400540042000F>]TJ -0.98 0 0 1 71.036 305.738 Tm [<09550056004A0054005200560046>-228<0056004D004D0042004E0044005000530051>-7<00460053>-228<0051004D004200440046005300420055>-228<004A005100540056004E000F>-331<0024005300420054>-228<004F004A00430049000F>-331<002E005000530043004A>-228<0057>7<0046004D>-227<004B0056005400550050>]TJ -0.98 0 0 1 53.716 290.944 Tm [<0057004A005500420046>-236<004D0042004400560054>-237<0055004A004F0044004A00450056004F0055>-236<0056004D00550053004A004400460054000F>-334<002D00500053>7<0046004E>-235<004A005100540056004E>-237<00450050004D00500053>-236<0054004A0055>-237<0042004E00460055000D>-240<00440050004F00540046>-7<004400550046000E>]TJ -0.98 0 0 1 54 276.149 Tm [<0055005600460053>-193<00420045004A0051004A00540044004A004F0048>-193<0046004D004A0055000F>-319<002A004F>-193<004900420044>-193<004900420043004A00550042005400540046>-194<0051004D0042005500460042>-193<0045004A004400550056004E00540055000F>-319<002A004F00550046004800460053>-193<00550046004E005100560054>]TJ -0.996 0 0 1 54 261.355 Tm [<00440050004F00570042004D004D004A0054>-250<00420056004800560046>9<000F>-333<00260055004A0042004E>-251<004700420044004A004D004A0054004A0054000F>-334<002F0056004F0044>-251<0046004D0046004E0046004F00550056004E>-250<004700460053004E0046004F00550056004E>-251<0058004A0054004A000F>]TJ -1.01 0 0 1 53.602 246.56 Tm [<0022>12<0046004F00460042004F>-246<0051004D004200440046005300420055000F>-330<00360055>-247<004A004E0051>-7<00460053>7<0045004A00460055000D>-246<0046004F004A004E>-247<00540046>-7<0045>-247<0048005300420057004A00450042>-246<00540050004D004D004A0044004A005500560045004A004F000D>-247<00470046004D004A0054>]TJ -1.02 0 0 1 54 231.766 Tm [<0050>-7<0045004A0050>-259<0051004D004200440046005300420055>-260<005200560042004E000D>-264<00420044>-260<00510056004D0057004A004F00420053>-260<0046004D004A0055>-260<00510056005300560054>-260<0046004800460055>-260<0046004F004A004E000F>-371<002F0056004F0044>-260<0057004A005500420046>]TJ -1.014 0 0 1 54 216.971 Tm [<005500500053005500500053>59<000F>-330<00310053>7<0050004A004F>-246<00550046004E005100560054>-247<004F004A00430049>-247<0054004A0055>-247<0042004E00460055>-247<004F004A0054004D000F>-331<0037004A00570042004E00560054>-247<00520056004A0054>-247<005500500053005500500053>-247<0057004A005500420046>]TJ -1 0 0 1 54 202.177 Tm [<0053004A005400560054>-250<0051>-7<0050005300550042>-250<0057>8<00460049004A00440056004D0042000F>]TJ -0.999 0 0 1 71.036 187.382 Tm [<00270056005400440046>-250<004E004200560053004A0054000F>-333<0037>80<004600540055004A00430056004D0056004E>-249<004D00560044005500560054>-250<004F004A00430049>-250<00420055>-251<004D0046>-7<0044005500560054000F>-333<00340046>-7<0045>-251<0043004A0043>-10<0046004F00450056004E000D>]TJ -1.004 0 0 1 54 172.588 Tm [<004F0056004D004D0042>-248<0042>-248<0047004200560044004A004300560054>-248<00540046004E0051>-7<00460053>59<000D>-247<004D0046>-7<0050>-248<0057>7<0046004D004A0055>-247<0056004D00550053004A0044004A00460054>-248<00550046004D004D00560054000D>-248<00420044>-248<0057>7<0046004F0046004F00420055004A0054>-247<00420053>7<00440056>]TJ -1.016 0 0 1 53.58 157.793 Tm [<0058004A0054004A>-246<0057>7<0046004D>-245<004F004A0054004D000F>-328<0037>79<004600540055004A00430056004D0056004E>-245<0045004A0042004E000F>-329<0022004D004A005200560042004E>-246<0051>-7<0046004D004D0046004F005500460054005200560046>9<000D>-245<00420056004800560046>-246<00520056004A0054>]TJ -1.007 0 0 1 54 142.999 Tm [<005400420048004A00550055004A0054>-247<0051>-7<00500054005600460053>7<0046>10<000D>-247<0055005600530051004A0054>-247<004D0042004400560054>-248<00440050004F004800560046>-248<005200560042004E000D>-247<004A004F>-248<00490046004F00450053>7<00460053004A0055>-247<0053004A005400560054>-247<00460053>7<00500054>]TJ -0.98 0 0 1 54 128.204 Tm [<0046004800460055>-237<00470046004D004A0054000F>-334<002E00420046>-7<00440046004F00420054>-237<0046004800460055>-237<0046005300420055>-237<004A004F>-237<005400420051004A0046004F>-237<004E004200550055004A0054>-237<0051>-8<0050005300550055004A005500500053>61<000F>-333<0037>82<004600540055004A00430056004D0056004E>]TJ -1.02 0 0 1 54 113.41 Tm [<0051>-7<0050005300550055004A005500500053>59<000F>-483<002F0056004D004D0042>-297<004700420044004A004D004A0054004A000F>-484<00340046>-7<0045>-297<0042>-298<0055005600530051004A0054>-297<00460056>-297<004D0042004400560054>-298<00440050004E004E0050>-7<00450050>-297<004700420044004A004D004A0054004A0054000F>]TJ -0.982 0 0 1 54 98.615 Tm [<002E005000530043004A>-254<00470053004A004F0048004A004D004D0042000D>-254<0058004A0054004A>-254<004A004F>-254<0045004A0048004F004A00540054004A004E>-254<004A004F005500460053>8<00450056004E000D>-254<004B0056005400550050>-254<004D0046>-7<0044005500560054>-254<005400420048004A00550055004A0054>-254<00450056004A000D>]TJ -1.02 0 0 1 54 83.82 Tm [<00460055>-258<0057>7<00460049004A00440056004D0042>-258<004D004A0043>-10<00460053>7<0050>-258<00450056004A>-259<004400560053005400560054>-258<00450056004A000F>-368<002E004200560053004A0054>-259<00550046004E0051>-7<00500053>-259<004D004A00480056004D0042>-258<00540046>-7<0045>-259<004D0042004400560054000F>]TJ -1.02 0 0 1 54 69.026 Tm [<00250056004A0054>-341<004400560053005400560054>-341<0046004F004A004E>-341<00560055>-341<00420056004800560046>9<000F>-614<0024005300420054>-341<00420044>-341<004E00420048004F0042000F>-615<0024005300420054>-341<004F0056004D004D0042000F>-615<002F0056004D004D0042>]TJ -1.02 0 0 1 54 54.231 Tm [<0046004800460054005500420054000F>-526<00240056005300420043004A005500560053>-312<0042>-311<004D0046>-7<0050>9<000F>-526<09550056004A0054005200560046>-312<0046004800460054005500420054>-311<0058004A0054004A>-312<0046004800460055>-312<004F0056004F0044000F>-526<002F0042004E>]TJ -1 0 0 1 54 39.437 Tm [<0047004600560048004A00420055>-250<004D0042004400560054>-250<0057>8<0046004D>-250<004600540055000F>-333<00240056005300420043004A005500560053>-250<00440050004F00540046>-7<0044005500460055005600460053>58<000F>]TJ -0 g 0 G -0 g 0 G -ET - -endstream -endobj -41 0 obj -<< /Type /Page /Contents 42 0 R /Resources 40 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 43 0 R >> -endobj -40 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F83 16 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -46 0 obj -<< /Length 6156 >> -stream -0 g 0 G -BT -/F83 10.44878 Tf -1 0 0 1 36 565.121 Tm [<0017>]TJ -/F83 10.44878 Tf -1 0 0 1 151.292 565.121 Tm [<0025>-50<0964>-50<096C>-50<095B>-341<0029>-50<095C>-50<096C>-50<095F>-50<095E>-50<095C>-50<096D>-50<0960>]TJ -0 g 0 G -/F83 11.3574 Tf -0.98 0 0 1 53.036 542.451 Tm [<0034005600540051>-7<0046004F0045004A005400540046>-249<0057>7<0046004D>-248<00470046004D004A0054000F>-339<00360055>-249<004D00500053>7<0046004E>-248<004D00500053>7<0046004E000D>-249<004A004F005500460053>7<00450056004E>-249<00460056000D>-250<0055004A004F0044004A00450056004F0055>-250<0054004A0055>]TJ -1.015 0 0 1 36 527.656 Tm [<0042004E00460055000D>-246<004D004200500053>7<0046>-6<00460055>-247<0057004A005500420046>9<000D>-246<00420053>7<00440056000F>-329<0022>12<0046004F00460042004F>-246<0047004200560044004A004300560054>-247<0051>-7<0046>-7<00450046>-247<00460056>-247<0042004F00550046>10<000F>-329<003100530042004600540046004F0055>]TJ -1.02 0 0 1 36 512.862 Tm [<0046004F004A004E>-282<0046004D004A0055000D>-293<00530056005500530056004E>-283<00420055000D>-292<004E0050004D004600540055004A0046>-283<004F0050004F000D>-292<004F0050004F0056004E004E005A>-283<0057>7<0046004D000D>-291<004F004A0054004D000F>-440<00360055>-283<004D0046>-7<0044005500560054>]TJ -1.02 0 0 1 36 498.067 Tm [<00460053>8<00500054000D>-318<004E0042004D004600540056004200450042>-304<0054004A0055>-304<0042004E00460055000D>-319<004700460053004E0046004F00550056004E>-304<00460056000D>-319<00540050>-6<00450042004D00460054>-304<004400560053005400560054000D>-319<004E00420048004F0042000F>]TJ -1.007 0 0 1 36 483.273 Tm [<00250050004F0046>-7<0044>-248<00460056>-249<00510056005300560054000F>-332<09550056004A0054005200560046>-249<0057>7<00460049004A00440056004D0042000D>-248<00560053004F0042>-248<00540046>-7<0045>-249<0056004D00550053004A0044004A00460054>-249<004200560044005500500053>59<000D>-248<0051>-7<0046>-7<00450046>]TJ -1.02 0 0 1 36 468.478 Tm [<004D00500053>8<0046004E>-316<0046004800460054005500420054>-316<00450056004A000D>-335<00460055>-316<00440050004F00570042004D004D004A0054>-317<0046004D004A0055>-316<0046005300420055>-316<00540046>-7<0045>-317<004F0056004D004D0042000F>-541<00250050004F0046>-7<0044>-316<004D00560044005500560054000F>]TJ -0.98 0 0 1 36 453.684 Tm [<00240056005300420043004A005500560053>-241<00460055>-242<004F0056004F0044000F>-336<0022004D004A005200560042004E>-242<00450050004D00500053>-242<0050>-7<0045004A0050>10<000D>-244<00440050004E004E0050>-7<00450050>-242<00510053>7<00460055004A0056004E000D>-243<0056004D00550053004A0044004A00460054>]TJ -1.018 0 0 1 36 438.889 Tm [<004F0050004F000D>-244<0051004900420053>7<0046005500530042>-243<004A004F000D>-245<0057>7<0046004D004A0055000F>-326<002A004F00550046004800460053>-244<00420053>7<00440056>-244<004600540055000D>-244<004F0050004F0056004E004E005A>-244<004A004F000D>-245<004700460053004E0046004F00550056004E>]TJ -1 0 0 1 36 424.095 Tm [<0047004200560044004A004300560054000D>-250<0046004800460054005500420054>-250<0057>8<0046004D000D>-250<0050>-7<0045004A0050>10<000F>]TJ -1.005 0 0 1 53.036 409.3 Tm [<00340046>-7<0045>-247<00440050004E004E0050>-7<00450050>-248<0051>-7<00500054005600460053>7<0046>-246<0051>-7<0046>-7<00450046>9<000F>-330<002E004200560053004A0054>-248<00560055>-247<004600540055000F>-332<00360055>-247<00520056004A0054>-247<00510056005300560054000F>-332<00340046>-7<0045>]TJ -1.01 0 0 1 36 394.506 Tm [<00420044>-247<0050>-7<0045004A0050>9<000F>-330<00340046>-7<0045>-248<0057>7<00460049004A00440056004D0042>-247<00490046004F00450053>7<00460053004A0055>-247<00540046004E000F>-331<00250056004A0054>-248<004F0050004F>-247<0050>-8<0045004A0050>10<000F>-330<002E005000530043004A>-248<00560055>-248<00450056004A000F>]TJ -1.02 0 0 1 36 379.711 Tm [<00340046>-7<0045>-316<0042004400440056004E00540042004F>-317<0053004A005400560054>-316<0046004800460055>-317<0050>-7<0045004A0050>9<000F>-541<002A004F>-316<004900420044>-317<004900420043004A00550042005400540046>-317<0051004D0042005500460042>-316<0045004A004400550056004E00540055000F>]TJ -1.02 0 0 1 36 364.917 Tm [<00310046004D004D0046004F005500460054005200560046>-361<004F0050004F>-362<0046004D004A0055000F>-677<00270056005400440046>-361<00540046>-7<0045>-362<004B0056005400550050>-362<00460056>-362<00560053004F0042>-361<0051>-7<0050005300550042>-362<0055004A004F0044004A00450056004F0055000F>]TJ -0.981 0 0 1 36 350.122 Tm [<002E004200560053004A0054>-255<00470046004D004A0054>-255<0050>-7<0045004A0050>9<000D>-254<00540050004D004D004A0044004A005500560045004A004F>-255<00540046>-8<0045000D>-255<0057>7<0050004D0056>1<0055005100420055>-255<0042000D>-255<00500053004F00420053>7<0046>-254<00420044000D>-255<0046005300420055000F>-341<002E005000530043004A>]TJ -1.02 0 0 1 36 335.327 Tm [<00520056004A0054>-270<00450050004D00500053>59<000F>-401<00250050004F0046>-7<0044>-270<0051>-7<0046004D004D0046004F005500460054005200560046>9<000D>-275<0046005300420055>-270<00420044>-270<005400420048004A00550055004A0054>-270<00540046004E0051>-7<00460053>58<000D>-275<004F0056004F0044>-270<00450056004A>]TJ -1.02 0 0 1 36 320.533 Tm [<004D00500043>-10<005000530055004A0054>-269<00510056005300560054000D>-275<00520056004A0054>-269<00440050004F004800560046>-269<00510056005300560054>-269<004E0046005500560054>-269<0056004D00550053004A0044004A00460054>-269<00550046004D004D00560054000F>-398<00310053>7<0050004A004F>-268<00460055>]TJ -1.02 0 0 1 36 305.738 Tm [<005200560042004E000F>-341<0024004D004200540054>-250<0042005100550046004F0055>-250<005500420044004A0055004A>-250<00540050>-7<0044004A0050005400520056>-250<00420045>-250<004D004A0055005000530042>-250<005500500053>7<005200560046004F0055>-249<0051>-7<00460053>-250<00440050004F00560043004A0042>]TJ -0.98 0 0 1 36 290.944 Tm [<004F00500054005500530042000D>-241<0051>-7<00460053>-238<004A004F004400460051005500500054>-239<0049005A004E0046004F00420046>-7<00500054000F>-334<003100530042004600540046004F0055>-239<005400420051004A0046004F>-238<0055005600530051004A0054000D>-241<004700460053004E0046004F00550056004E>]TJ -1 0 0 1 35.716 276.149 Tm [<0057>8<0046004D000D>-250<0046004D0046004A00470046004F0045>-250<0047004200560044004A004300560054000D>-250<0057>8<00460049004A00440056004D0042>-250<00460056000D>-250<004D0042004400560054000F>]TJ -0 g 0 G -0 g 0 G -ET - -endstream -endobj -45 0 obj -<< /Type /Page /Contents 46 0 R /Resources 44 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 43 0 R >> -endobj -44 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F83 16 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -49 0 obj -<< /Length 32 >> -stream -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G - -endstream -endobj -48 0 obj -<< /Type /Page /Contents 49 0 R /Resources 47 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 43 0 R >> -endobj -47 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ProcSet [ /PDF ] >> -endobj -52 0 obj -<< /Length 32 >> -stream -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G - -endstream -endobj -51 0 obj -<< /Type /Page /Contents 52 0 R /Resources 50 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 43 0 R >> -endobj -50 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ProcSet [ /PDF ] >> -endobj -1 0 obj -<<>> -endobj -2 0 obj -<<>> -endobj -3 0 obj -<< /pgfprgb [/Pattern /DeviceRGB] >> -endobj -53 0 obj -[ 13 [ 219 333 219 291 ] 34 [ 667 557 616 667 ] 41 [ 673 280 ] 47 [ 666 ] 49 [ 499 ] 51 [ 555 454 544 634 ] 66 [ 486 478 389 489 401 314 477 519 276 ] 76 [ 486 266 783 518 447 489 491 357 353 307 521 472 688 475 503 ] 105 [ 633 ] 1724 [ 268 ] 2122 [ 564 ] 2157 [ 519 ] 2160 [ 551 ] 2167 [ 568 ] 2169 [ 648 591 552 ] 2174 [ 462 ] 2176 [ 492 ] 2181 [ 474 ] 2257 [ 444 444 444 444 445 444 444 444 444 444 ] ] -endobj -55 0 obj -<< /Length 284 >> -stream -€> -stream -OKLFSU+LibertinusSerif-ItalicKø ø!‹ øø øøø = ³ úÓûÌmú4˜Û "'t $ %!^u…Š’OKLFSU+LibertinusSerif-Italic5.0Copyright Copyright 2012-2021 The Libertinus Project Authors.Libertinus Serif ItalicLibertinus SerifAdobeIdentity "#$%)*/13456BCDEFGHIJLMNOPQRSTUVWXYZi¼Jmpwyz{~€…ÑÒÓÔÕÖ×ØÙÚ??M…ªÉâ¤{âŒtêÇbþ• W â -k -Ö „ å š p"·{îôµ Þ"‰¨/òÁj;;õ‹]#ˆXö Å!!w!é"z##‡#õ$Z$ì%ZN‹½ø콋½ø$½‹øˆùPüˆÛý÷>÷“÷>û“üø¿÷>û“û>û“÷z÷“÷>÷“ü’û\÷Àû>÷“÷èûêû÷w÷»ɸsšž†›‡š‡yoX\Vˆ‚Žƒ“…÷ §å¿³t£lmnxlûx÷sÇØ÷¤÷Î÷sšŸ¬š’ˆƒûyuqzƒŽ‚’ûê€õÊ÷÷êgqjpqŸw¥®¦«©¤wžqû¢vùS‹ø&ø&ù>bûýýSµõ‰¨÷jµø wŽù+÷5Úß÷%˜’’¢÷\¤û=Œˆ‹ˆˆu{‚jˆo‰‡ˆˆ†Š‰xŒ‰¯ŒÁŒ°²²Š® $žŒ‡Ž†Œe{š…²/ø²žˆˆ–}}‚‚p{ûÏüœfMoaˆ†ˆˆ†ŠˆxŒ‰¯Œ›Œ°²¾Š® $ŽžŒˆŽ‡pr€•š’““÷&÷`{„ŒŒ÷%÷’´ûŸ‡‰¨n­÷À­÷‹­n¨÷’÷ÚäB×uŸž‡x‰¸Œ²Œ±±˜‰á $v÷SÑï᜘——Ô[·G¡uÀ¤¿¿•Á——˜ÅjÆû'i‹_‰dfdŒ^ $ˆ‰­‡w‡Œˆ§‰¬‰–‡y†‹…‰„)ü‹„h‡bˆn‰u†‰ˆ†Š÷t÷ÍÍv÷ºRB‰‰~B|cOû&S{”¢‹Œëø€¬‘•ßuºÄtA€Š€ˆ~6zKm;D´øâ°äáø]¨÷æèê¹äÝ”ˆ†‘€=8Cl2û Yñ÷ ¦Ž¨§÷_³÷,ß×÷³:5“¨Œ¿¼‘ÁŽUnµû -û3ûDû&ûYe†r‰srûÖû -÷Bõ‰¨n­øÙ­n¨÷k×÷Ìælžˆy‰¸Œ±Œ²°°‰î $÷÷SË÷Šº¢¢ ÷/û÷ û5N‹R‰dfdŒ^ $ˆ‰œˆx†ŠŽˆ¥‰«‰—‡w†Š…Š„*ü†…kx€i‰n‰l‡‡‡†Š÷BÂíø‰®’­º÷;Äûûmˆm…mû^dûYû;y’ ‹Œ÷‰ÿ€ÿ$€µÿý€ÿ€žùŠøïøÍcûbûͳ÷b‘§š™´ªŽ›‡”^ŠgŠde^Œ_ $ˆ‡ˆwŽ†­ˆ²ˆ–~…m*ü…o|}b‡lˆ‡‡‰{‚¸Œ¯Œ²±¸Š· $ŽŽŸˆiŽdŽ€˜‘©»÷‰÷Í[û‰…o|}b‡lˆ‡‡‰{‚¸Œ¯Œ²±¸Š· $ŽŽŸˆiŽdŽ€˜‘©ìø‘§š™´ªŽ›‡”^ŠgŠde^Œ_ $ˆ‡ˆwŽ†­ˆ²ˆ–~…mû­‰ÿ€øàÿ€žø÷iøÍ*ü…o|}b‡lˆ‡‡‰{‚¸Œ¯Œ²±¸Š· $ŽŽŸˆiŽdŽ€˜‘©ìø‘§š™´ªŽ›‡”^ŠgŠde^Œ_ $ˆ‡ˆwŽ†­ˆ²ˆ–~…mô‰¨n©zvù¨—ùœ˜ùCøÁ‘©ž¥±Ž¦Ž‘Žž‰^ŠgŠtsbŒ^ $‰‰ˆx‡Š“‡£‰«‰–wu†Š†Š†Aüx‡‰€…ƒ‚°vû‡øPûˆ‰‰x†’‰’Šªˆ dŒqX1üb…pyncˆr‰˜‚Š‡ˆŠ†‰y‰¸Œ´Œ££®Š¸ $ž‘Œ‰†rm~ž¢ŒŒÏ÷ó­’š’‘“€u˜8÷üM|’–‚›˜”—žM‰¨÷“­÷¦r­÷jØ÷ZàÔ÷Ò†oz€dˆr‰†ˆˆ†Š‡x‰®Œ»Œ³±»Š¸ $žŒˆŽ‡hl}’ Ž‹Œ¶÷q„Ÿœˆ­÷CÔ÷ à›•Œ•—ÆiØû(ìrM‚deZŒŒhˆ‰‡v‡Š‰°‰™Š „sˆ‹‡ŠˆÜÙ¨˜œÐÄÁy9|‰z‡wûvO_.sjŽ…ªt¨÷œ­÷¹¦r­÷jØ÷[ßnøù"vsO‚eeeŒŒ^ˆ‰‡v‡Š‰°‰™Š „sˆ‹‡Šˆ)üŠ†o|bˆr‰†ˆˆ†Š‡x‰¸Œ²Œ±±²Š¸ $ŽŽžŒˆŽ‡rkŽ~’Ÿ‹Œ¶÷oÛœ|t•®ÏûB\ž¬aÅ™œ–Ž£`z­¶z;÷f·™ë¿ ôŽ˜Œ˜—¬¨v¤n¸fPO…i¾Åy:‰|ˆ{ûs=o.[¼÷¨œœÏ ¯vÿ¡€ÿÉ€­Ë©»Ó÷2߉ªºøù“X‘£27ûR!v‰Š€2Ø\Ñh¼¹t°kO€Šˆ}:{ZkB6YµïŠ|mˆˆ?‰jƒX¼Å¤|Ü÷õÝñŸŽ˜Œ˜—äF·HªjšBµÐ‘Œ’Œ’È—¿´Êºç˜PI‘ª‰»¦ŽÁz‰ÿ€ÿA€²˜w÷øµÐ÷yù°qv”sÐ~ZouV†“˜‰”̨¤ŸÀв‘n†,ü…o|}b‡lˆ‡‡‰{‚¸Œ¯Œ²±¸Š· $ŽŽŸˆiŽdŽ€˜‘©êø|­’˜“­Á¿šqHœ•“‹—°€Ä‰¶³Іj~ƒgÔ´øߨ÷Ú÷Æ÷YÐ÷÷F­Á÷§§›š´Ž¤ŽŽŒž‰^ŠdŠuueŒ^ $‰‰‡x†ŠˆŽ¥‰«‰˜‚v‡Š†Š†Rû¹ûucûû7]h ¨tv¦…ª««‘­‘«Æ÷ѧ›˜³Ž¤ŽŽŒž‰^ŠcŠeeeŒ^ $ˆ‰ˆx†ŠŽˆ¤‰ª‰™ƒv‡‹‡Š†Iûä†q‰tvû$ökÖ@Â÷ÿªƒwÙÛ÷9ÙØø.øEŽp~Žc û%û1û1S˜<ßÀÃÂälj~a„tˆwx’q­É³³Ä¥”††’~fpx{ˆ‚—”‘§ž¸Ð÷Ë„…‹„ØyŠzŠ|Yûj1Z>7ki³ÃõÞ÷5ç ¡„ž‹!rK8®øº÷^ª›•‹wî×÷ÝÎ÷±øÛ֚̕³‹’ˆŽ‚æpC~bˆˆsˆŒ‰ª‰˜“…u€‰z†u$ü]M}¥U媲˜£®æÊç÷ñÏ}¾0FXLbh‰Œ÷Hhû%ûû?g…²Ï›­÷$º¸È»©¢tGû@Æ÷ûªÞÝ÷QÐ÷eÓ̿λ•ˆ’‚_dcjVzxž}|žŸÇ÷)ÑãØ™§†j…‰ƒˆ†ˆ‡‰€…{•{œ¦¤Ÿ¤²ˆÄûcKq_aZVj>1j’^¢jn ­x´C¹ø¯÷^ª›•‹wÜÛ÷;ÙÎ÷í÷„q…s‡xx’q­É³³Ä¥”††’~fpx{ˆ‚—”‘§žõøc֚̕³‹’ˆŽ‚æpC~bˆˆsˆŒ‰ª‰˜“…u€‰z†ufûGŠ©n¤e ûû(û1T™2ãοº³ãÇŽ×1ZRGdk„ÅÃõÖ÷'籤Whtz]nVû4Ç÷úªÞÞ÷QÐ÷;÷[÷•½‹×±Œ‹‹Œ¤t¼CûBCû>û6³HÞÎÈ®×Æ–†…QRt‚[^l£æ‹ Œ“÷P÷?1"j?÷"®Â¨µ¯˜‚nû‹û‚¬øç²p¦÷€¬=øíØ÷Pøwû€O@~)xû5gRz€w~|}‡’•…˜‚xžuo‚xzu£sÏ´·Ÿ¶ª§²¡×²÷R›Ù›ÜšßŽœè”š“¸‹ ŒŽ‰†Øû–Ä’±–­—¦ɤ´œ¢–†vu“p­ª’£•³_­DoN|Zahbq>y4IˆxŠ„ƒ‰ƒŠˆˆ‰‰Ž‹Ž7û‚¬÷sv÷©÷‹©’εÃ[Õ÷#ÕVÌûø3÷·¦…¯}Ÿ™š¤–’”Ž††Žƒ’‚›˜™ž{›tqekh¥uk›_û_?;_ža¦kü€rqn[h‹t¥|Vn9TO:÷vÜ÷æ²îÌ[¬U›;£B»Ÿ™£”œ›£„§ûâÌÇîû’ûºú€‡Ñu¬|Ãq£uheic3ûU°Âû»É·¤÷H÷ºM~HON‚Ó»Ó—ÂͶ¡YGaÇdvøÇ÷^ª›•‹wø1Úf÷DÓ±÷:ÝÊÌƯ ™…l}‰xƒieû4ƒk‚bxx–}©»¸­Æ¹ª”ˆ…“}mqnw„ˆ—”¡‘¥±÷3“®¢ÇpŸdWWv!/È÷£šÌ•³‹’ˆŽ‚rpC~bˆˆsˆŒ‰ª‰˜“…u€‰z†uûü†wƒr{”€«f±Š·±”û±Çdvÿ“€ÿ*€‹wõë÷ ÷)5áJë\÷‰÷Ô”²—²œ™ƒ’~k^„…\l„ƒ€‘‚j³ˆ—Š‘‚‚‰}„o\ûb„kbxx–}©\»¸­Æ¹œ”ˆ…“}mqnw„ˆ—”¡‘¥YŒøRq¡u¥¥¡¡¥¥u¡qquuq@¿÷W®ÝàDÒ÷^ª›•‹w×øPãäÓ†wƒr{”€«±‹¸°“¯÷6Ž“’‹’“’„‚k–XŸ^C¬¤l´­®ªÃ«“„‡€nwvx€x„ŸoÂ~²}§{ª…™j”Ó¿¹·¼¦Ÿ奇}­™«žª§u’pkNeKCci|zv{vÓ÷˚̕³‹’ˆŽ‚épC~bˆˆsˆŒ‰ª‰˜“…u€‰z†uû»Çdvùª›•‹wèÚ<÷nJ÷²øÛRšÌ•³‹’ˆŽ‚bpC~bˆˆsˆŒ‰ª‰˜“…u€‰z†uL(üP„k„ixxr°¸Â¥Ö¸Œ•‡†’~gmkuƒ‡‘““Žš”³÷rÇdvøÇÿÿÒ€ÿ*€‹w÷÷)÷.ØíÜ|Øb€÷J÷ÕRû†wƒr{”€«±‰·±•³÷5÷Ùì«Ÿ‘„mŠs„l[û_†wƒr{”€«±Š·±”±÷1÷ ಪ«ž•„m€Šnƒlcdû1bƒb‚w~™Æ¨ݭ£”‰„~esopy†‰‘¤Ž–f€º÷F‘¢ªžÊm£lDTNBQŽ›Œ˜ÑmœoCJV?P‰Œ”N€•²˜²œ™ƒ’~k^„…\V€„ƒ€‘‚³ˆ—Š‘‚b€‚ˆ}…o`ÇdvøÇÿÿÒ€ÿ*€‹wó÷+÷*ÚNøE÷±÷3f“®¢ÇpŸdW`vû/ŠŒŽ”N˜°”¶š™ƒ’~k\…„\V„ƒ€‘‚³ˆ—Š‘‚ƒˆ|…oSû†wƒr{–€«±Š·±”±÷:fÝÊÂƯ ™†l…o„oeû4ƒk‚bxx–}©»»­Æ¹Ž”ˆ…“}mqnw„ˆ—N”¡‘¥û°ø¬ÙÞ÷qÞÙ÷6V˜û ÷«ªš¨â·Ïõ÷ -Óyåûû;<û1û Þ“å²÷&õ©›{oš—rŽfmc…5fS`ocyen`±ôCû}ÿ€ÿÿæ€ÿ€ÿÿõ€v÷u®ø¹ø?Ý\÷žø(”©—œ•ke‹_eƒ~PYgfmoh}”„¡¨¡§¢œ$ü_…o|k†xˆ†Š†Š…eX|v{w}}„‚¿~Î~Á‚±‚­„œ{z‡ƒ{a+Jû tgˆŒi÷iè|€°fjQPVhГ„–Š¦§¢ ž•z_“µûˆ°Y””}”5¼ZËK×TvøÞ?×LÊ‹w®ø‰€÷k÷ɯ)A€-û|€‡„ƒ€ƒ!€‚u{{uq®¢­£šÊ·Ñï±ûc˜•{­®·ž¿ª‚€‡”‚“€jq~ƒ€‚„˜£ƒU÷5×÷¢›£’“˜ˆ„”€…’›‡•™Ÿ¢¤pštYjzDZYCoã¿z€ŸrtAbqh€Œ€“ƒ‘—¬› ˜•ˆ‚€ƒ’{‘yQû~ÈNèCvøé׋w÷À÷íCÓ.÷õž«÷÷O§Íš®—¯¯§~ždnz~s…Ž‡-št‘v{_b@iU‹W7rf„Ž…÷„ém÷À}~ rtAbqh–Œ€“ƒ‘—¬› ˜•ˆ‚ƒ‘{yª%©û‡qHba_}x˜…N‘„w“ƒvrwlj·‚œÀÛÌîËÓ¢«í¦÷JÛ„ ðª­ªòÃ÷ìªß÷Ñ¢÷0÷÷÷0÷0û÷û0û0ûûû0û/÷û÷1øª÷÷ûûûûûûû û÷÷÷÷÷÷ ÷ ûèv™{€nhXGjÅÎôƤ°Ô‘l_“ï¦ÙßiŒ™E-R?B;ÅA볬ªŸû¹ùNw÷ »÷_ùsšž†›‡š‡yoX\Vˆ‚Žƒ“…÷ §å¿³t£lmnxlŽû‚¬÷WÌ_vø$²d¹÷z¬ø^âWåµÛûBy€v~|}‡’•…˜‚xžuo‚xzu£sÏ´·Ÿ¶ª–›“œ’ž¥Ò´÷G¶÷ŠŽœ¶öžŸ‹‰››ˆ–ˆ€‚Š~„o\ûb„kbxx–}©»¸­Æ¹Δˆ…“}mqn|„ˆ—”œ‘¥¸÷X”²—²œ™ƒ’~¶q\„IûŽ™•å²ÐµÇ­¶Ÿ›£†~•s‹†coœy¤¡¥ ­¹AÌAT`zlhU[l;x-OˆyŠ‚ƒ‰ƒŠˆˆ‰‰Ž‹ŽÚvûqû wûŠ`Ia‰¨÷(¨÷¢wøœ÷T÷8‘’—÷:žûŒˆŠˆ‰Š‹ŠŠ~‡|ƒrz‡ˆˆˆ†vŒ‰‹Ü¦¨¼‹ "Ž ŽŒ‹Ž…l€”³„Pø ¢ˆ{…y‡v~û”ügsu„rˆˆˆˆŠ†vŒ‰‹·žÖ‹ " ŽŒ‰Ž‡u~•Œ‹ŒŒŽŽŽ÷•÷%ûx”Œ‹÷ -÷CŒŠ§q¦ø*§÷NÕ÷…Ú¸­ †w‰í§¹‰Û÷÷$¹÷C°œœ›÷9ÞûpOŠŠV)‰‰‡vˆŠŽ‰Ž¢¤•†}‡Š†Š…xEûÛl„~}mt¸‡‰ˆ‡Š÷.½Ó÷㤧Ž²÷²B8r‡r†rû$m4kûL|–ž‹Œ’Š¨o§÷P«÷N§÷ƒ’¸÷~÷Œ¬÷.Ÿ˜—«–ŽŒ Š‹L‰ol<‹ "‰‰‡uˆŠŽŠŸ¥–„|ˆ‹ˆŠ‡Cûåx‡}ykv‡ˆ‰‡†v‰‹ß§ªÄ‹ " ‰‡€r–›Ž‹ŒŽ«÷+¦Š—†™wxðû‘‚„„…Š‡Š…ˆ~÷&¸¡ŽŒ‡Žˆ†v|Ÿ}û÷J†’ˆ‘Œ‘Œ‘•”¤Ÿ÷î¶Áž²Ž¡ˆŒ‹_ŠroC‹ "‰Š†uˆ‰Ž˜œŠƒ†‡†|~û5ûqw|‡wŠ⊨€vøJ§÷"’ž’÷âÑ»’¶ø¶øŠ‡gûÑ‹s‰‚vw‡‡‰‡Š†v‰‹Ï§©Ä‹ " †ˆl{Œ¨ŽŒ²÷㤎½‘ŒŽŠû‰ûgûøC÷øûˆˆ‡v‰‰¬š‰}‰‹ˆŠˆ(ûäc~…d‡‡‰‡Š‡vŒ‰¾‹µ§ª¹‹ " ‡ˆm~Œœ‘’•æ÷Æv×ü†‰©Š¨xvøR§÷m’°øÝø¡›¡ª ŽŽ¡ˆŒ‹T‰moF‹ "†‰‡vˆ‰ ¥“{z‡‹‡ŠˆXû…z‡ˆ‚†‡„’›ûP÷Îûˆˆ‡x‡Š‰°•xy‘FûÚx‡{skvˆ„‰‡Š†vŽ‰‹Í¦ªÈ‹ " ˆˆvr‚™œ‹Œ¿÷‡£–‘’ƒ{”p÷UûÏ{–“…š—•’Ÿ‚«ø:«ÙÜ÷àÜøÊ÷žœœ÷6Õûû û ûû m‡w‰yyûÙF÷÷)÷ó÷#©ûe÷cÛÁ[)uˆr…oûqBA18X¾è Ž£¤÷*«ÞÅÖ(ƒ«r¨÷T©—÷J©o§÷ØÖ˜Ój÷Çw‡~kw‡ˆ‰‡Š†v‰‹Ô¦ªÑ‹ "Ž Œˆ‡q€’šŽ‹ŽŒ­÷4ÐœghšIjŒQؘ¡‘ ˆ£V‰´¥ŠÛ®q¨jŒŒ[ƒϼ˜È”Œ’“ÈM¡5s‹]‰ijcŒm $g†s‰‰©¤‰vƒ÷sZ8zYv@dk°÷FŽž¢Œ§¿¥eg‚‰‚‰FŠ¨ø(©mµ÷vÕÃ’÷+§Üø^øD¶”qC§Ž¼»”¸”·sÜ…ˆ€…{ûܼ{ƒ‘‘ŠrÜ‚_]z\¤ˆÓ¯œ¥¸¾¢”„|ˆŠ‡Š‡Cûèw‡}€lv‡ˆˆˆ†v‰‹Ó§©Û‹ " ŽˆŽˆvr€‘šŽ‹ŒŽÓ÷棗–§4Š¨ø*§òø_ûïÕà÷kÆw‡~€kw‡ˆˆˆŠ†v‰Ћԧ©Û‹ "Œ ŽŒˆŽˆvq€‘šŽ‹ŽŒª÷&÷2÷Z¢ž—“¢œ’ŒŽ {Š]Š„O… $‰Š†u‰ŠŒˆŽ¢›‰ƒ‰Š‡‡†ƒ€ûû4E÷4ŒŠ‹Œˆ•‰Œ’Œ‘Žš¡ŽŽŒ¡ŠŒ€Š6Š†M‚ $ˆ‰‡v‡ŠŠ¨˜v”àû^û ®ø®ÍÜ÷}Ü÷ÅøK"%2ûrû'nÍ9÷÷ìÞ÷&§÷¦TÝû …hÜ—Cûuûuf:5<€Ü÷¡÷ -¢½ÎÐû ‰¬ø%•÷÷™÷w÷{8p†Gˆ„…‡v…ºŒ®Œ¿¹¡Š» $’‘ †‘HŽ|›Þ²÷[—Ç—¾‹“‡‚Y{`ƒ7yŠ‚Ž§¥Ž š€Wû ‹ÂÜ’÷·½ø÷¸Âû÷1÷ÎĪ³”¹È—mº*0FXWqƒ–‡™ˆÀ©¾ º· oV€Qspû$û"‘tŒ•¿Œ£÷"±¬ŠŠ›–ªž¼¨Å„‘‚‹‚ŒynVj„…Tû ûIª÷º¥÷‚ª÷äÔ_Ëè÷¹ø,²¬p[C*:>m›—˜ð½Áu;Ts\jihh_vho|•—€žz„£pzsvw’ƒ–ƒy¦½€°÷!÷ ÷÷Õ^¹T•¨ìÈ¢¾¼·_ºHCVoljmo}lxš¦œ«žŽèÇ–Óž¦ûûB©÷#µø!w¢ø+ø5´=Å÷½•À’°Ž•o€x†‡û ûC//û û x‡˜x¢÷ey-…kr~mˆq‰‡‡‰zƒ©Œ¬Œµ²­Š© $ŽŽŸˆrr˜‘¬éÌ™Ÿ™’†Žƒ4÷·Rû·û_ææÞÚá÷ û ûJ«÷Ø·÷(Ê–w÷ÛÔè÷Û¸JoTehroj|kk{››œ~‚wvwyw“—‚x¦»€³÷ö÷÷àYÖ4`e…ƒvÁ÷>†°µˆ°§«´Ø ÎèƒUOˆYhkj4û®žÁ¶¯½µRCû ©÷į÷t§ÛÓ÷tÔø…øÜ•‹”ˆ”+ˆ \=<ûû‡û1mûÔhÕ÷ì÷ õËqÜûfUtoi¡Î¶É¸·ÄÃà°Ó”ûÞûů¼«”¤Ý FYDSûAdT­ôµ“Á’£û ø Ä–wÝø& ÷pø ÷KûûYûû[,û.‘„ÍŽâ÷>ß÷;÷3÷¥`— †zv…gûdpˆ‰Š‡Œ‡‡†Š‰€]~dyY”ˆ“Š•ŒŦ›˜¿û §øȧÔÇŸÌ÷*ÐwÈôø:ø#¯©Ÿ¨µÊTº8)287c¢l¹iŸ|èF_'Xû1Ñeà÷àç÷ -µ|µ`§b¦ô­¢§ž¡èûOübN©××ÑÄÏ·ªt¸j gd5YI8ôéøÈÁ­Zfnl*?t›R´¤¨º¿ËÆû ûK§÷t¯÷Ä©×Ô÷tÓ§û/‰‹‚Ž‚ëŽöºÙÚ÷÷÷1©÷B®Aû*û !K¥:÷°Á¢§­uH`M^_RS6fC‚÷Þ÷ÅgZk‚r9vнÒÅ÷Ó²Âi"aƒU„sø &6'ˆ˜ø@˜™è–Θ©•û‚–—øA˜™è–Θ©•û“ :ff|/ ‹ ² -× øÅ -endstream -endobj -54 0 obj -<< /Type /FontDescriptor /FontName /OKLFSU+LibertinusSerif-Italic /Flags 4 /FontBBox [ -1325 -312 1389 928 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle -12 /StemV 73 /XHeight 429 /FontFile3 56 0 R /CIDSet 55 0 R >> -endobj -57 0 obj -<< /Length 1576 >> -stream -%!PS-Adobe-3.0 Resource-CMap -%%DocumentNeededResources: ProcSet (CIDInit) -%%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-OKLFSU-LibertinusSerif-Italic-0) -%%Title: (TeX-OKLFSU-LibertinusSerif-Italic-0 TeX OKLFSU-LibertinusSerif-Italic 0) -%%Version: 1.000 -%%EndComments -/CIDInit /ProcSet findresource begin -12 dict begin -begincmap -/CIDSystemInfo -<< /Registry (TeX) -/Ordering (OKLFSU-LibertinusSerif-Italic) -/Supplement 0 ->> def -/CMapName /TeX-Identity-OKLFSU-LibertinusSerif-Italic def -/CMapType 2 def -1 begincodespacerange -<0000> -endcodespacerange -0 beginbfrange -endbfrange -62 beginbfchar -<000D> <002C> -<000E> <002D> -<000F> <002E> -<0010> <002F> -<0022> <0041> -<0023> <0042> -<0024> <0043> -<0025> <0044> -<0029> <0048> -<002A> <0049> -<002F> <004E> -<0031> <0050> -<0033> <0052> -<0034> <0053> -<0035> <0054> -<0036> <0055> -<0042> <0061> -<0043> <0062> -<0044> <0063> -<0045> <0064> -<0046> <0065> -<0047> <0066> -<0048> <0067> -<0049> <0068> -<004A> <0069> -<004C> <006B> -<004D> <006C> -<004E> <006D> -<004F> <006E> -<0050> <006F> -<0051> <0070> -<0052> <0071> -<0053> <0072> -<0054> <0073> -<0055> <0074> -<0056> <0075> -<0057> <0076> -<0058> <0077> -<0059> <0078> -<005A> <0079> -<0069> <00A9> -<06BC> <2019> -<084A> <00660069> -<086D> <0061> -<0870> <0064> -<0877> <006B> -<0879> <006D> -<087A> <006E> -<087B> <006F> -<087E> <0072> -<0880> <0074> -<0885> <0079> -<08D1> <0030> -<08D2> <0031> -<08D3> <0032> -<08D4> <0033> -<08D5> <0034> -<08D6> <0035> -<08D7> <0036> -<08D8> <0037> -<08D9> <0038> -<08DA> <0039> -endbfchar -endcmap -CMapName currentdict /CMap defineresource pop -end -end -%%EndResource -%%EOF - -endstream -endobj -21 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OKLFSU+LibertinusSerif-Italic /DescendantFonts [ 58 0 R ] /ToUnicode 57 0 R >> -endobj -58 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OKLFSU+LibertinusSerif-Italic /FontDescriptor 54 0 R /W 53 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> -endobj -59 0 obj -[ 374 [ 2000 ] ] -endobj -61 0 obj -<< /Length 47 >> -stream - -endstream -endobj -62 0 obj -<< /Subtype /CIDFontType0C /Length 472 >> -stream -ETXLAD+NovelDecoFøø ‹ øøøøøû ³ üû~ÁùÚø "„ $ %ˆ•ETXLAD+NovelDeco2.0Copyright 2017-2018 Robert Allgeyer. Copyright 2003-2012 Philipp H. Poll. Copyright 2012-2016 Khaled Hosny.NovelDecoAdobeIdentityvql½_ãUŸúPã`úêsùü™ŒŽ‹Ž‹ŽŠ‰Žýü™„Ž‚‹ƒ‹ƒˆ‚†„ûo†’ˆ”‹“‹“Ž”’ýý}‰ˆŠ‡‹ˆ‹ˆŒ‡ˆ újÁtvzpp z¢¢ œ¦¦vœtø &@˜‹ø§—øA˜—÷•®˜©•û‚–—øA˜—÷•®˜©•û‚– :–Âÿ ‘ -¯ -¯ Ú Ú’ -endstream -endobj -60 0 obj -<< /Type /FontDescriptor /FontName /ETXLAD+NovelDeco /Flags 4 /FontBBox [ -392 -234 1985 838 ] /Ascent 894 /CapHeight 537 /Descent -246 /ItalicAngle 0 /StemV 61 /XHeight 429 /FontFile3 62 0 R /CIDSet 61 0 R >> -endobj -63 0 obj -<< /Length 652 >> -stream -%!PS-Adobe-3.0 Resource-CMap -%%DocumentNeededResources: ProcSet (CIDInit) -%%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-ETXLAD-NovelDeco-0) -%%Title: (TeX-ETXLAD-NovelDeco-0 TeX ETXLAD-NovelDeco 0) -%%Version: 1.000 -%%EndComments -/CIDInit /ProcSet findresource begin -12 dict begin -begincmap -/CIDSystemInfo -<< /Registry (TeX) -/Ordering (ETXLAD-NovelDeco) -/Supplement 0 ->> def -/CMapName /TeX-Identity-ETXLAD-NovelDeco def -/CMapType 2 def -1 begincodespacerange -<0000> -endcodespacerange -0 beginbfrange -endbfrange -1 beginbfchar -<0176> <254C> -endbfchar -endcmap -CMapName currentdict /CMap defineresource pop -end -end -%%EndResource -%%EOF - -endstream -endobj -17 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ETXLAD+NovelDeco /DescendantFonts [ 64 0 R ] /ToUnicode 63 0 R >> -endobj -64 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ETXLAD+NovelDeco /FontDescriptor 60 0 R /W 59 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> -endobj -65 0 obj -[ 13 [ 220 338 220 ] 19 [ 465 465 ] 22 [ 465 465 ] 32 [ 435 ] 34 [ 695 ] 36 [ 646 701 557 485 ] 41 [ 730 297 ] 45 [ 528 839 699 702 541 ] 52 [ 485 597 661 652 951 ] 66 [ 457 493 428 506 447 310 500 538 271 272 512 264 790 542 504 519 503 372 390 316 531 497 747 490 515 ] 1754 [ 742 ] 1759 [ 268 ] 1768 [ 351 ] 2360 [ 582 560 540 ] 2389 [ 702 ] 2395 [ 554 556 ] 2398 [ 492 565 477 ] 2404 [ 311 ] 2407 [ 667 602 563 ] 2412 [ 511 412 529 ] 2419 [ 489 ] ] -endobj -67 0 obj -<< /Length 303 >> -stream -¯gÏ€?ÿÿà!€à‰Î -endstream -endobj -68 0 obj -<< /Subtype /CIDFontType0C /Length 10921 >> -stream -FIJEIL+LibertinusSerif-RegularHø ø!‹ øø øøø= ³ úÓû”õú4¨ t "*m $  %"_w‡Œ”FIJEIL+LibertinusSerif-Regular5.0Copyright Copyright 2012-2021 The Libertinus Project Authors.Libertinus Serif RegularLibertinus SerifAdobeIdentity  "$%&')*-./0145678BCDEFGHIJKLMNOPQRSTUVWXYZÚßè 8 9 : U [ \ ^ _ ` d g h i l m n sGGMƒ¨ÅKÊ?¡/Â%š]Î/l  o ÷ -s   ü —9…E­4/ý~çAH]Ã]òf”a`5l‹M  Ö!±"="•##Â$!$Ü%„%Ì&''‹(3U‹½ø龋½ø$½‹øˆùNüˆÛý÷>÷’÷>û’üø½÷>û’û>û’÷z÷’÷>÷’üû\÷¿û>÷‘÷èûâû÷x÷²óêluvol¥ˆž‰œ…tvg]W~„’„Ç–Å»ÑÇq²cûl÷sdz÷–÷£÷s˜™§—•‡•ûo~ty‘‚”ûâõÄõĶn£s¨¨££¨¨s£nnssn2‹Ìø’®¿ÞAÖ@â÷BãÌÈøhvžy œ©¡“‰‘‰’Ô‰’…”“¤¥¯Ô¯¾r+KtWPOABä)'{[P‹¾«÷C«¹‰‹˜À•ÖŒ©…~‰DzzrgûF»ÐÏðìĶ·×÷3·:ÌûF9O2®øº®ºÔ÷FÙXãð÷køÓ¶³qKYQ>(}kœ‹˜èÄÕ{ûû2phX‚¢™~—wvvx{cßpÇ÷ õØ÷÷9²P•Šðݲ¢´À©„£s¤¡uhœWû'a+j}•w£®¬žËЗ¥2€®÷ѽ÷"Î’w÷Óäè÷Ó÷Q,YEOe~¤Ÿ|œ~zšvxxzwbàiÄ÷ãç÷ìHâû`f‚„yŸ÷;‡°«†»©­´؛τè…RU†VfgŽhiû´ŸÀ±¯̾`û2€®÷Æ®·Þ÷gÞ÷$÷ë¦æËð÷½—‡”ƒ&mMaSJMCl0<û_÷cØ÷Á÷áá]Øûqdƒ}m‚g¡¬¬Œœí¡+YûaYZLR­÷?¢¥‘¨û õø¦¬¹ÏGÛõF¬çÞæ÷øЩ³£ÄıRJ\|ncfJP†P`]„“ˆ““”Ž’·£Œ£˜¤”œŸ›¢œº­É·ÚæIÇ%ÖVa}rnmsvoeh¤ƒ›žŸ—¢˜‰‘‡應‘šÚ©ü¥n£s¨¨££¨¨s£nnssn÷!‰¬÷fµø wŽ÷)÷/ÚÂ÷%˜‘£÷gÅû=—ie‡[ˆ……‹v‘…°ŒÂŒ²´±Š® $‘‘‹ …‘diŽz»ûbøЂ|p€~ûwü¬qMm…_ˆ……‹v‘…¥Œ¬Œ©´½Š° $‘‘‹ …‘eŽ\›´÷÷`u„Ž•ñ÷—‘éû¤ç´øâ°°æ÷ùìä¹äÏ”†„‘€=DGl.û.÷,÷&á¢Ó¯¸Ƚŧ¿÷Â95¥—‡•Ž–‘†¿„»ÂX^³û6DlUPINc)#ûBôû&÷k÷'‰­øÙ­õàøë÷(ùgVŒŒc……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…²ŒÀŒ±°µ‰ò $÷!÷NË÷Š÷Nû-÷-ûTDT‰d¶üÅøt®®™¼÷lÒûCû.û^û Yû!)€Ÿ«Ž‹²÷°±Ïw£w÷T³wôàÚ÷­÷ý0÷H·—ŸÁÖÖ›cF¡—‰–•Ö†´|뉓ŠŒˆêˆzƒŠsû“mPŒŒc……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…Œ°ÇŒ¬÷k»Û‰‹™½šÍ“¾‘~ˆCwhP?ûa}›º÷qæàŽt^Ž‘… ‹‘‘Š¥Š§­§Œ­Œ£Ú…‘v‹……Tˆˆ~6Fžv÷Ù±Ïw£w÷T³wôàÚ÷¯÷×àŽt^Ž‘… ‹‘‘ꊤŠ¨­­Œ¥Œ¥Ú…‘v‹……Tˆˆ~6.÷HÁ—•·¸õ¤cF¡—–Ž“Ö†´|뉓ŠŒˆÚˆz†Šrû“kRŒŒc……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…®Œ½Œ¸¸¼Š® $‘‘‹ …‘EŽzÞ÷]÷Džv÷×µ÷°wõà÷êàøþ÷ø%ޜю‘‘‹ …‘bŠXŠef[Œ_ $……‹v‘…шœ†8û4ûê÷4ޜю‘‘‹ …‘eŠbŠXYbŒe $……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…·Œ»Œ±¯¼Š· $‘‘‹ …‘EŽzÞ÷[÷êû[8z†Eˆ……‹v‘…¸Œ»Œ°°»Š· $‘‘‹ …‘EŽzÞû•žvùwõà÷S÷ø%ޜю‘‘‹ …‘_Š\ŠdjZŒ\ $……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…¸Œ¼Œ¯¯»Š¸ $‘‘‹ …‘EŽzÞq‹²øôwõà÷)÷i¦ç‰‹•½•Ì‘¿€‰CwfP!Ldyž¾ø2ޜю‘‘‹ …‘^Š\Šeg\Œ] $……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…Œ²ÄŒ­÷±–v¨vø¢÷û÷‹w›÷ -Œ°ø÷1Mù+÷:‡ŠJˆ……‹v‘…°Œ³Œ©©¹Š¬ $‘‘‹ …‘GŽˆ…Þmø9‡Á™Ï‘‘‹ …‘û‰ûhü‡ˆ‡‰‰ˆ“ˆKûaøû%……‹v‘…Ї‘‰„@Mcü0…OrR†……‹v‘…©Œ«Œ££³Š© $‘‘‹ …‘I†ªÃ£±ø%÷cü›„Ž‘ƒ‘‘’“U÷uø¥÷%–v¨vøü¬ñ¼ø)¼xøÀø”ûÛx‹€„‡|°nûëøGû……‹v‘…¶ˆ©h‘qü52z…E„……‹v‘…¶Œ¸Œ£¢¹Šµ $‘‘‹ …‘E’zæ÷Æ­‹š“‘–€uœ¸÷ñüM|–˜‚›™”—žø䜑ђ‘‘‹ …‘bŠ\Šsv]Œ_ $……‹v‘…xÑ„œ‡0÷(¯ø诰ëøIëù.÷Ý÷cû#÷ûGûVûû.ûVûY÷#û÷>÷ã»Ù³ġÓßûã÷¹÷öûû^ûG5"ûûû÷÷T÷fîàî~‰¬÷­÷­†wóà÷uèìóøŸü%8z†Eˆ……‹v‘…¸Œ¼Œ¯®ÆŠ½ $‘‘‹ …‘=sÞ÷>„¡£ˆ®÷JÂ÷ àÆdöûMeP„cÜfWŒŒc……‹v‘…ìшœ†8નš®ÓÐÐtûûW_*rcŽ€F¯~÷/ø\­¾Ò÷‚߸øù “Qž)&2H!"â[ãiÇtÕo):^a;.O¶îux~‰†>q—Z¸Ê§t丶–¡®ů¯ÈËõ;º9ªO¡'±ßþÃÆìªMIŸ–‰˜Œ”’‡»‡§À¶‰¬øÓ²“w÷àÐ÷ò÷øË•±¯¡Öºq>œ–™Œ”°„¹†¾Š¸Œ‰ŠЈiû†<5°>û -Že‰‰‰Š‡^W€[‡•—Š—ÐÛŸ¹¥Í¼°•eNü8z†;ˆ……‹v‘…¼Œ¾Œ³±¾Š½ $‘‘‹ …‘;ŽzÞö´øÛ¬âà÷ö¼÷@øŸޚ؎‘‘‹ …‘\ŠZŠddbŒd $……‹v‘…Ljœ†8û¶û`÷dñ÷a¼÷÷F÷xۜǒ‘‘‹ …‘eŠbŠtvZŒ] $……‹v‘…Ö„œˆ:ûŠû|ûû=[b¨mZº‰×Ìí”vù¬Œ÷:÷î÷øTøúÕ†‹pvUû2ü%‡û4ø+tÇ‘˜Ï’‘‘‹ …‘cŠ^ŠgghŒj $……Œv‘…†“z¦F÷Yü”{‘’„•–’”™‘÷cø’žº›²Ê’‘‘‹ …‘mŠhŠtt^Œb $……‹v‘…ø!”vù¬÷4÷B÷ATÂ÷Ä÷ôù¾øÉû0üFˆŒûø:zÁ®Ž­Ž‘‘‹ …‘bŠ_ŠcjhŒk $……‹v‘…ìÀˆ¡l”q¢IŽ‚Šƒƒzûû¹†Œû&øN®¦®‘‘‹ …‘jŠ_ŠdhnŒn $……‹v‘…¸ˆ’ŠžU÷Pü±{‘€–˜‘•œ’÷)÷㟔Ž€z‘÷ûàz‘—–’–š÷]ø¯˜®¢ÂŽ‘‘‹ …‘nŠkŠqq_Œc $……‹v‘…ô´ˆ³ˆ|`*´b»ø¬¯ÞKØ÷5Ù´÷¹»l‘–p½±¯œŸ l‰—‡”€‘…„z~nŠ²¹÷'÷"=¦B98URs—¢¨ ˜’Š’‰ŠŽŠ‘–ªµ–±­ºzû„ˆ‡ˆŠ5v´+sFVG9ÃqÑ®©“­·Ÿ›÷Mû~…„ƒ…vqitoYu³ª¸ ¹ÕžN­ˆvø·÷^©œ•‹wÙÚ÷iá§÷;ø……‡”÷L«Ì³‹’‡Ž‚sr@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<ü|dŠyˆ}§ƒ‡—‘‘•”“”•—‘‹–‚x¢©…®ñ÷ è÷3÷1Ö4`ezol’l¢¥©”¨ȽA*û]5,lv¡¤w÷Ž •˜–û¼ø¬°áø"懔ƒ‚Œ_i`u`BNÕ÷ ÷»ÍÍÆ“hhpŽ™‚  §˜ªÂR³+(!2û"ûÓ2÷ÇÀžÝ½[º„¦÷ï®÷^©œ•‹w²á÷pÚ§÷â½”Œ„Žs“h‹“ˆŒ‘k¡®šÈ’‘‘‹š…‘K‚ž¼øY̳‹’‡Ž‚³r@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<û„‰‰„‡bœjI_uec``qPAûÉ1÷§²°Ÿ³¼–Õx‰ƒ}kfk{rUSÆ÷Ó™³š ºªµŽŸ¯¤~tŸ™{Ž„l ¼÷c²÷ ¬°ß÷[áøèefn{Qga ¾lw¬¹Å÷ž‰—’‘–ßmåû4û8û,S™U¬ec­ºsÓ×Á®¿³ˆ•…Œûš÷Q÷žÑ”£±¸v7‚‡†€ûˆžvø²÷­ëÚ÷C÷÷ è”™”Ÿˆ†ûÄ÷.¹£¬©›h™y“–} œ£ Ÿœ€v›qqŽe7.Bû0cXy†ƒ~†ŒŠÐû 8{‡U‡……‹v‘…®Œ®Œ³³»Š® $‘‘‹ …‘=…ÞUû‚°÷QÈlv÷ª÷pÖUª‹w«ÐbÝAÀ÷ZÛÂØ øPøžŸ x›pq[ziqÔ “jŸP29O/U£l§p´`os{`igŸo¥~Õ0Uko]`4ÝpØ÷÷&Ì÷«|¤n£«dEŒfÒ`yr‰ˆsŠ|Š†nh™¶Ÿ‘ —œ}£§„²ãÜÂíº}¦n©•’Ÿ™˜’’ˆ‚‘Ø ƒ˜–Õ0ûÌü!ˆ–›‰˜ª§Ž™½µŠ{¨²u—}qC!e1g7¨Ï­¤¨®Ô ÷O÷µ.\xf7‚ÒËѤ¯ÂÊ­]8{žvø¿÷^©œ•‹wãÚ÷fÚÎ÷;÷² ”—“”°±¾¡²Ÿ ~t—•wpmû,9‡W††…‹v…§Œ­Œ³³¬Š¬ $‘‹ †‘S€Ý÷)‡¼t©¡zl—hZO~GNŠŠ‹ŠŠˆ‡†…—Œ÷uÖ̳‹’‡Ž‚ær@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<üI8‡Q‡……‹v‘…¬Œ°Œ³±¬Š§ $‘‘‹ …‘X‚Þû¯žvøI’‹w÷ï‹wåï3Úª÷I÷÷[ʽˋ†Žƒo€c‚F‚‰…{…†•…RûW8€ˆN†……‹v‘…¬Œ²Œ³³±Š¬ $‘‘‹ …‘ªN€Þ´0øqq£q£§£¦ £v§p¬sossû®ûs·øú’‹w÷ï‹wîï5Úª÷÷Ñû…û‡ûY€~’„•›u€vwyn¯}ž ¿Žª°º±§Ó÷Q÷gʽˋ†Žƒo€c‚F‚‰…{…ªÁ†–…R´}÷®q£q£§£¦ £v§p¬sossa‰¬÷F¤÷8¬÷f©œ•‹wáÚ÷5÷.çá÷8€‡S‡……‹v‘…¬Œ­Œ³®¬Š¢ $‘‘‹ …‘b€Þ➊™Š•ˆ–ƒ”‚—{Ô)¨d—xŒˆŒ‰ŽŸŒ¡ŒŸªªŠŸ $‘‘‹ …‘irp­û÷:‡ˆ‹ãæ©«®“³‘‘‹ …‘tŠoŠgefŒt $……‹v‘…Çsh‚tnliqxu{pxˆ÷ñë̳‹’‡Ž‚ór@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<û¶žvùF•‹wêÚ°ê÷8€†Nˆ……‹v‘…®Œ°Œ³³±Š¬ $‘‘‹ …‘NŽ€ÞøaÐ̳‹’‡Ž‚r@}cˆ‰ƒ{‘…Ň‘ˆ@÷€žvø¿ŽwéÚ÷SÚ÷SÚ¼÷>÷úŠ©‰¯†•‰‰Žƒo€q‚F‚‰…{…Á†–†QûW9~†T‡……‹v‘…©Œ±Œ³³ªŠ© $‘‘‹ …‘X€Ý÷8Ü ”—“”²³°Ÿª±§sHûB9ƒ†U‡†…‹v…¤Œ°Œ³³¬Š¤ $‘‹ †‘Y‚Ý÷3™‹™Š—À»¸˜²±¡uHûD9†W‡†…‹v…¤Œ°Œ³³®Š§ $‘‹ †‘T‚Ý÷2ä|Ñ3XMxTWˆˆ…†‰”´‚d«WQWi\a¼††…„Š—žvø¿Žwë×?Ú÷`ÚÔ÷L÷ú´…„…‰”Š¦‰²†•¬‰‰Žƒo€q‚F‚‰…{…Á†–†QûW9‡O†……‹v‘…©Œ³Œ³³©Š© $‘‘‹ …‘XÝ÷8Ì ”—“”°±¸¡²Ÿ ~t—•wpmû,9‡W††…‹v…©Œ«Œ³³¯Š© $‘‹ †‘S€Ý÷)‡»tª¡zl—hÔZS~GPY®ø®´á÷Žá´÷a%Ïû÷"˼¢¬­¸·ŸÊÈóR÷ û-IUp`fg`xQL÷Y÷[áÀ=û$ûJl\#i÷Øâ äåhûiv÷t­ø¹ŽwÛ×?Ú÷€áÚ÷0øŠ©‰¥†•Ö‰‰Žƒo€q‚F‚‰…{…Á†–†Qü?8€†Nˆ……‹v‘…®Œ°Œ³³»Š¬ $‘‘‹ …‘D€Þ÷˜Š•‡¤©…«ýœ²´º¹¦ÉÜêõ@í%]Xm^cÚ……‡‹Š•æžf«¥¹©¨ËÂCû9n%ûyh›yw‡‘¯÷J ”—™Xûiv÷t·yø­Žw®á÷uÚÖ÷îû8€‡Nˆ……‹v‘…®Œ°Œ³³±Š¬ $‘‘‹ …‘NŽ€ÞÎø¤™‡–€„…ƒ€ƒÖ~y‡ˆ“Ÿkd”aû1'û.Êû÷$¦¬‘•œ¶¢˜vsøŸu|sÖûzyŠ†~„tpŠ{Q4µ÷+óµÕÛ¶©¦r¡ûJžv÷ëíMÉŽwï×?Ú˜÷D÷ú‰³Š¥†•”‰‰Žƒo€q‚F‚‰…{…Á†–†QûW8‡M‡……‹v‘…®Œ²Œ³³¹Š® $‘‘‹ …‘EŽÞ÷¤¥—¢—›–¢¬—””‰€“Ä’—~œ£¢¤¤¨žy¨a\b_dt˜…€†“û8¬‰vø*¬‹w£zÒ÷!×j»÷ZŽ\a••Œª’‘‹‰’„¦¦‡°Ãò¦îÏZ³G¤¦O¢cšÂ´¯¢­¡Åƒ6˜‘…ŸŒ‘‘–Ž¯°Œ¬¦l[™WAH[KB¬lØkÞižv`Z[vfªdu˜–u¢€·…¤j…‘xŠ……û‚Â÷í²÷$”äÚ¶øA}‡ƒ~†ŒŠÆûÁDªo¹¹½¡·²‰•…‘Œwqmƒqp…©É÷‘ó•™”Ÿˆ†û ²̳‹‘ˆŽ†‡‚‡†‚€…†~ˆ‡ˆ„Ž’ûtº„¦ø -wãÚ÷XÚ¸÷m²ºŸ³¼”Œ„Žr“i‹“ˆŒ‘x¡®šÈ’‘‘‹š…‘K‚ž¼÷T©Ô‹ŽˆŽ††Š|Š|kgŒi $……‹v‘…¼ˆ˜I¸ûUx‰ƒ}kfe{rmY™ä÷J©Ô‹ŽˆŽ††Š|Š|kgŒi $……‹v‘…»‡™€JûTF©HîR”vø.¬’÷/÷i÷ ÷Ùø"Á‡‘vX:ûX{d†‹{µC÷Uy»‡—À’‘‘‹ …‘jŠhŠjjmŒm $……‹v‘…À…’{ŸX÷ûÐ|‘‘…˜•’‘œ’÷÷Íž·–¤Ã‘‘‹ …‘wŠsŠqjiŒr $……‹v‘…÷U”vø.¬’÷.ò÷%÷i÷ -÷_ø"‘‘‹ …‘mŠhŠgepŒq $……‹v‘…º†– W÷û×}‘“…•”“‘›’ð÷ŠòûŒ}‘“…•”“‘š‘÷÷Ñ›´œ§¾Ž‘‘‹ …‘wŠuŠmmaŒm $……‹v‘…Ö‡n}h7ûdr‡‹ƒ 5÷oxº•À‘‘‹ …‘mŠcŠmrjŒm $……‹v‘…º‡—n^‘{EûE~j‰Š~«;÷bx»Œ›»ŽK‰¬÷ ã÷¬œ÷û÷9û6÷)¯Ò¢÷:û+÷4û÷¦@÷J÷út­’Œ¸‘‘‹ …‘pŠ_ŠmmmŒq $……‹v‘…­ˆ§z§bâû„‹ˆ‡†¨@7ûcXuˆh‰……‹v‘…ŸŒ¡Œ©©§Š¥ $‘‘‹ …‘ò€gƒ¡«Êæ“—Š‘‚Å;®[{‰kˆ……‹v‘…©Œ¬Œ¯±¦Š£ $‘‘‹ …‘^Ž|ŽcÄ1÷‡‘ŠŽ‘¨@ßö°º£¯Ž‘‘‹ …‘©wŠtŠmmoŒq $……‹v‘…ä@°‡–ˆsiJ0„‡Œƒ–dû|Øø½¬—÷-÷@÷?û÷è÷`û4›§˜§—©Û÷U¸ò¿÷Ÿµ™›º‘‘‘‹ …‘ðwŠtŠomlŒm $……‹v‘…諈«…{g(ûy„{‚ˆƒŸ2÷dyµ†žÃ‘‘‹ …‘fŠcŠgipŒw $……‹v‘…³†˜‚¥N÷û›”wš]ojo|lw€}‚r}‡Ž€n|m~vŸ{¦ ³“˯÷P÷‚¼®ù,¼÷‚ù˜˜Ÿ—”ˆ“€ý}wƒŽ‚–û²ùNw÷0²÷ùNluvol¥ˆž‰œ…tvg]W~„’„Ç–Å»ÑÇq²cû_÷÷xÉ÷xÉ÷zL¾XÊʾ¾ÊÊX¾LLXXL§žvø²÷r©y®åÚ÷[ÚÜøS÷÷ ç•™”Ÿˆ†ûÀŸŒ¸‘­Ô™¥”¡£ }w”v••x¦ŸššŸ´]¬AfRuViì£~^­;pq„vFcjDûZy†ƒ~†ŒŠÎû 8€‡U‡……‹v‘…¬Œ¯Œ¯«­Š« $‘‘‹ …‘]~Þ÷ ÷[û 8€‡_‡……‹v‘…¨Œ«Œ­«¶Š¶ $‘‘‹ …‘ÜG€ÞFøN‚gŠdwcû[”ìÏ“®‘žÛ ¸–š®sr–w””w¥ÜŽŒŒŒ‘žvø²˜w÷†­éÚ÷nÚÜøj÷÷g¼²Ë‹…‡ÜmnŠhûYÄê­Þ϶­€b“Y• |ª¡ Ÿ É6».]Ty[baZ‚N=|Zy†ƒ~†ŒŠÎû 8€‡U‡……‹v‘…­Œ¯Œ®®¸Š¬ $‘‘‹ …‘KÞ÷ ÷Gª“wXûY8‡T‡……‹v‘…®Œ¯Œ¯®²Š° $‘‘‹ …‘N€Þ}žvø²÷­•éÚ>Ö÷^ÚêøX÷øaÚÌŒ³‹æ’‡Ž‚~ƒr€{‡šu]“h7$Bû:mêXy†ƒ~†ŒŠÎû 8€‡U‡……‹v‘…­Œ°Œ­¯°Š® $‘‘‹ …‘S~ŽÞ÷ è”™”Ÿˆ†æûº÷.Ê­¬©¯{j˜‘~•—‡†Š€‚üM8‚†Yˆ……‹v‘…©Œ©Œ²¶­Š« $‘‘‹ …‘êS}Þ÷(ûvÂŵˬø诰ëøIëøÐû½ûûŒm€ŠŠŽŽŽµ©¸ ­”á˜Ð·¸Ì³Ä¡Óß÷cû#÷ûGûVûû.ûVûG÷ û -÷)wy‚z€{\iccnc³w•™•˜–˜šž ”ÐÅx[÷ -lÖÓ|ßóð°ÆÊzfI;uY?X™®1û…ù|÷öûû^ûG5"ûûû÷÷T÷fîà¬÷L­÷H¬÷Ú÷A÷.û÷$ô÷÷æûl8€ˆN†……‹v‘…±Œ¸Œ¨¨­Š¬ $‘‘‹ …‘[‚ŽÞ衤†wš÷û™{Œ€~}–Œ¤Œ¥§¼‰‹ $‘‘‹ …‘pŽs–~šû(÷B†‘‡‘“‘–œáîø©®°³‘‘‹ …‘mŠjŠqnjŒn $……‹v‘…½ˆq>4[`n{jäÞ”Ž»‘‘‹ …‘kŠjŠln_Œd $……‹v‘…ôȆ–ˆ8‰¬÷ ­÷¨w‘÷÷§÷.êôw_rV†……‹v‘…Œ¡Œ¥¦±Šª $‘‘‹ …‘U„˜¢½ž¶“ŽŽŽ›÷O U¡UŒƒU†……‹v‘…®Œ²Œ«©¨Š¨ $‘‘‹ …‘V’ˆ“sÅû.ø |ƒxƒwˆçû¨û+w˜Ÿ“Õ÷=’ŒM±ø-¬°â÷¸©÷¨Ù»¨Êº‰’–ƒU]hwH(Qöî÷<Ù®ÖÛº_E—•ˆ•‹•‘´‰µ¸e^›;û%'û&LŸF¼^f³ÃwÕ–‰¬ø"¬÷Ú÷“â÷(ø`p^ŒŒd……‹v‘…ȇ–‡8ûl8€ˆN†……‹v‘…±Œ¸Œ¨¥³‰Û $÷÷¿÷C÷9óû;Gg‰n³ü÷Ö¤¤‘²÷<¢û #û Mfû?„œ§>‹ª÷V«÷>¬w÷Úè÷Œ÷uÍŒxf†‹Š¢Š­›™Œ«Œ¤†y‹††^‰‰€JR÷"œ˜–žÄݘjR•Š”“؇­Ù‰’ŠŒ‰èˆ}Šzûcn]ŒŒg……‹v‘…ȇ–‡8ûl8€ˆN†……‹v‘…Œ¯·Œ«÷.³Í‰‹—´–Â’µ‚ƒ€ˆP{nY8`a–¬÷*û‡žvødw÷Ú÷W÷æÞ–ŽÈ‘‘‹ …‘eŠ`ŠlmaŒd $……‹v‘…ȇ–‡8ûl8€ˆN†……‹v‘…°Œ´Œ­«·Š® $‘‘‹ …‘N€Þ÷”vªvøC¬£êÿy€ÿ?€R÷ tøwø’˜û—8Š‡U†……‹v‘…®Œ°Œ§©¨Š¦ $‘‘‹ …‘xXŠ‘…Üw÷–ˆ³”½‘‘‹ …‘û‰û*ûúû÷úû……‹v‘…¼ˆ”†‰xkû­‚8~‡eˆ……‹v‘…ŸŒ©Œ›Ÿ°ŠŸ $‘‘‹ …‘RŒ—“Õ¨÷’´÷"ü†ˆŽ»”vªv÷ñ÷j¬÷º÷¸º\÷/÷¬÷R¼˜‚¢n÷ûÍ{š›…š—•’Ÿ÷×\Þ–ŽÈ‘‘‹ …‘mŠgŠmmhŒm $……‹v‘…ȇ–‡8ûOpˆzlµûy÷Ëû"‰ˆs‡‘‰Ž±ˆ–•yû¦8€‡N‡……‹v‘…©Œ®Œ©©¯Š© $‘‘‹ …‘N€ŽÞ”¬ø2¬°â÷Ðâø£÷÷"ûèûû &û'ûò+÷÷8ã÷÷û‘÷^äØ9ûûN@2*Fã÷÷ÖÏÖ`„®‚v¢v÷e¨÷U¬÷Ú÷0â>÷S÷â±™jf˜ž¡OM¢­s¶šªŽœŽ•‰•„“gx‘¿wnÖªœ~˜­—¾´ÐÞW®û rR‡mnaŒŒc……‹v‘…ȇ–‡8ûl^8€ˆN†……‹v‘…±Œ´Œ¬ª¬Š« $‘‘‹ …‘>\ŽÞ÷0÷t> -endobj -69 0 obj -<< /Length 1701 >> -stream -%!PS-Adobe-3.0 Resource-CMap -%%DocumentNeededResources: ProcSet (CIDInit) -%%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-FIJEIL-LibertinusSerif-Regular-0) -%%Title: (TeX-FIJEIL-LibertinusSerif-Regular-0 TeX FIJEIL-LibertinusSerif-Regular 0) -%%Version: 1.000 -%%EndComments -/CIDInit /ProcSet findresource begin -12 dict begin -begincmap -/CIDSystemInfo -<< /Registry (TeX) -/Ordering (FIJEIL-LibertinusSerif-Regular) -/Supplement 0 ->> def -/CMapName /TeX-Identity-FIJEIL-LibertinusSerif-Regular def -/CMapType 2 def -1 begincodespacerange -<0000> -endcodespacerange -0 beginbfrange -endbfrange -70 beginbfchar -<000D> <002C> -<000E> <002D> -<000F> <002E> -<0013> <0032> -<0014> <0033> -<0016> <0035> -<0017> <0036> -<0020> <003F> -<0022> <0041> -<0024> <0043> -<0025> <0044> -<0026> <0045> -<0027> <0046> -<0029> <0048> -<002A> <0049> -<002D> <004C> -<002E> <004D> -<002F> <004E> -<0030> <004F> -<0031> <0050> -<0034> <0053> -<0035> <0054> -<0036> <0055> -<0037> <0056> -<0038> <0057> -<0042> <0061> -<0043> <0062> -<0044> <0063> -<0045> <0064> -<0046> <0065> -<0047> <0066> -<0048> <0067> -<0049> <0068> -<004A> <0069> -<004B> <006A> -<004C> <006B> -<004D> <006C> -<004E> <006D> -<004F> <006E> -<0050> <006F> -<0051> <0070> -<0052> <0071> -<0053> <0072> -<0054> <0073> -<0055> <0074> -<0056> <0075> -<0057> <0076> -<0058> <0077> -<0059> <0078> -<005A> <0079> -<06DA> <2014> -<06DF> <2019> -<06E8> <2022> -<0938> <00660066> -<0939> <00660069> -<093A> <0066006C> -<0955> <0051> -<095B> <006B> -<095C> <0061> -<095E> <0063> -<095F> <0064> -<0960> <0065> -<0964> <0069> -<0967> <006D> -<0968> <006E> -<0969> <006F> -<096C> <0072> -<096D> <0073> -<096E> <0074> -<0973> <0079> -endbfchar -endcmap -CMapName currentdict /CMap defineresource pop -end -end -%%EndResource -%%EOF - -endstream -endobj -16 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FIJEIL+LibertinusSerif-Regular /DescendantFonts [ 70 0 R ] /ToUnicode 69 0 R >> -endobj -70 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FIJEIL+LibertinusSerif-Regular /FontDescriptor 66 0 R /W 65 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> -endobj -71 0 obj -[ 37 [ 734 ] 52 [ 504 ] 66 [ 506 ] 69 [ 561 ] 76 [ 613 ] 78 [ 905 616 551 ] 83 [ 428 ] 85 [ 358 ] 90 [ 558 ] ] -endobj -73 0 obj -<< /Length 12 >> -stream -$ ” -endstream -endobj -74 0 obj -<< /Subtype /CIDFontType0C /Length 2256 >> -stream -COAJSK+LibertinusSerif-BoldFø ø!‹ øø øøø= ³ ù§ûÜúŠ'æ " $ %\q†ŽCOAJSK+LibertinusSerif-Bold5.0Copyright Copyright 2012-2021 The Libertinus Project Authors.Libertinus Serif BoldLibertinus SerifAdobeIdentity%4BELNOPSUZ MÇaö¡yteçxMV‹½ø콋½ø$½‹øˆùPüˆÛý÷>÷“÷>û“üø¿÷>û“û>û“÷z÷“÷>÷“ü’û\÷Àû>÷“÷è÷I‰µøȵ÷÷ ÷­÷+÷M³Ý‰³ãî¡ÉÒ»µ¬Þñ÷Mû ÷,ûŠVaŠccû‹…‹u•…ˆ§‡8ü%8o‡Tˆ…‹u•…‹÷³Ð÷ ø.Â¥Ÿ¯÷Y¡û=û+ûJûM?Eq—ÎZµu÷?øH´´÷÷?÷¸ø9ù “Tvž.^P}iafmo]Ze•[¢m¹MÞi¶m¹k¸cSZ`iNHFÂæwx{‘{‡|‡ŠŠŠŠ@“V–f¸ÄŽw÷ȼ°´¯ª«¹É¿u®m¬d¶SªdŸcŸD¿Äí­¾à§>I™‡¤‹–”À‡´„Å\ÇOÑ÷êµ·÷ %÷÷ -÷´÷»¼b’¦y·² ®°l‰—‡““~‡xu…¼÷$÷$2¨9BûaIo—u²¯¥¡£Š‘Š‘‰•‰••–Œ“—¬µ®yûHv´"jAn<F±gâ¨Å«¥¬Œ÷>ûwrr{y`|¨ª°ŽªÒ¢“Í÷îµ€w÷¤˜‹w°÷ ÷B÷Î÷÷»sz‹Œ“†™°•Ç™Ð”‘‰Ÿ‰‘U€›ÄøV¶ÌŽ°‹”„‚f;€DˆˆŒ~‚ʆŠFûΑxsnûûûûP F¼eo¯¤}æշ™ ‘ºzvVuYdÃ÷ À‘¹žª¦œ¦›©¥¤ˆj£ûŠƒ‹‚Œƒlj­÷E³÷-­÷˜‹wï÷÷-÷qûc÷Jîï÷8{‚Nˆ……‹u‘…µŒ¸ŒÂ··Š£ $‘‘‹¡…‘mz“Þݧªˆ{•¢i§bœf˜oŽ‚|q‰‹‹¸®´ÃŠ° $‘‘‹¡…‘duˆm¸û÷?†’‰“½Âõ«®¦®×“‘‘‹¡…‘uŠLŠqf\Œf $……‹u‘…Á‡›‚ncumuswy€~]zm÷âÌŽ°‹”„‚f;€DˆˆŒ€‚ʆŠF÷ôžvøÕzœí÷÷5÷÷5÷Ü÷x÷÷[‹£²®•œ³©yRû;7{‚bˆ……‹u‘…µŒ«Œ»»ªŠ¶ $‘‘‹¡…‘cŽz”ß÷0¤ŠŸˆ•ž±¶—›³§yRû;7{‚bˆ……‹u‘…µŒ«Œ»Â·Š¶ $‘‘‹¡…‘NŽ{”ß÷0÷c½5f7ckQ¶|c¨PgCekR¼ˆ©ˆ¢‹Ü—Šƒ}fO}F‚‰…w…†•ƒRûO8€‰N†……‹u‘…µŒµŒÀ¹§Š¶ $‘‘‹¡…‘aŽÞÊžvøÕí÷÷<÷÷x÷÷]¦³³Ÿ³©yRû;7{‚bˆ……‹u‘…µŒ«Œ»Â·Š¶ $‘‘‹¡…‘NŽ{”ß÷0÷\½5cD_eTˆ®‡©‹—Šƒ}fO}F‚‰…w…†•ƒRûO8€‰N†……‹u‘…µŒµŒÀ¹§Š¶ $‘‘‹¡…‘aŽÞ‰µøµ°÷ ÷Y÷ °÷cûó5÷ÒÆŸ°´¾¸œÏÃ÷2ìû)8Mn^de_zOP÷s÷WϹ:ûû \kg9k÷Õç›ÜÎûžv÷Ò÷í÷÷x÷ ¯–š˜š•“”’š”–‚“ƒ’œƒ¢¨§©µ¥m©ghemI]‡‰©†¼‹”Šƒ“}\V}I„‰…x…†•‚RûO8€‰N†……‹u‘…µŒµŒÀÀ´Š¶ $‘‘‹¡…‘N€ŽÞûWÑ÷ؽ÷'”ã÷û÷û÷ðÊøF}|‡€~n†ŒŠÌ‰&ŠûYh”i yx¢¯‚£Âȧ§Ÿ—…‘•~r‡xuuœ½½Šöïð•™”ªˆ†äû Œ­ÎŽ¹‹‘ˆŽ†è„f€„{z„n…„‚„‚‡p;û|ï'ó8vù­‘÷]÷4÷Nû÷:÷†û<›§š¯—©Û÷U¼÷À÷™¨©ª°Ž‘‘‹¡…‘> -endobj -75 0 obj -<< /Length 848 >> -stream -%!PS-Adobe-3.0 Resource-CMap -%%DocumentNeededResources: ProcSet (CIDInit) -%%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-COAJSK-LibertinusSerif-Bold-0) -%%Title: (TeX-COAJSK-LibertinusSerif-Bold-0 TeX COAJSK-LibertinusSerif-Bold 0) -%%Version: 1.000 -%%EndComments -/CIDInit /ProcSet findresource begin -12 dict begin -begincmap -/CIDSystemInfo -<< /Registry (TeX) -/Ordering (COAJSK-LibertinusSerif-Bold) -/Supplement 0 ->> def -/CMapName /TeX-Identity-COAJSK-LibertinusSerif-Bold def -/CMapType 2 def -1 begincodespacerange -<0000> -endcodespacerange -0 beginbfrange -endbfrange -11 beginbfchar -<0025> <0044> -<0034> <0053> -<0042> <0061> -<0045> <0064> -<004C> <006B> -<004E> <006D> -<004F> <006E> -<0050> <006F> -<0053> <0072> -<0055> <0074> -<005A> <0079> -endbfchar -endcmap -CMapName currentdict /CMap defineresource pop -end -end -%%EndResource -%%EOF - -endstream -endobj -8 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /COAJSK+LibertinusSerif-Bold /DescendantFonts [ 76 0 R ] /ToUnicode 75 0 R >> -endobj -76 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /COAJSK+LibertinusSerif-Bold /FontDescriptor 72 0 R /W 71 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> -endobj -9 0 obj -<< /Type /Pages /Parent 77 0 R /Count 10 /Kids [ 6 0 R 11 0 R 14 0 R 19 0 R 23 0 R 26 0 R 29 0 R 32 0 R 35 0 R 38 0 R ] >> -endobj -43 0 obj -<< /Type /Pages /Parent 77 0 R /Count 4 /Kids [ 41 0 R 45 0 R 48 0 R 51 0 R ] >> -endobj -77 0 obj -<< /Type /Pages /Count 14 /Kids [ 9 0 R 43 0 R ] >> -endobj -78 0 obj -<< /Type /Catalog /Pages 77 0 R /Metadata 4 0 R/OutputIntents [ <> ]/PageLabels<>6<>]>> >> -endobj -79 0 obj -<< /Title(Dark\040and\040Stormy)/Author(Dirk\040Hardcase)/Creator(LuaLaTeX\040with\040novel\040and\040microtype)/CreationDate(D:20231109113537-08'00')/ModDate(D:20231109113537-08'00')/Producer(LuaLaTeX\040with\040novel-pdfx\040and\040hyperref)/Trapped/False/GTS_PDFXVersion(PDF/X-1a:2001)/GTS_PDFXConformance(PDF/X-1a:2001) >> -endobj -xref -0 80 -0000000000 65535 f -0000062151 00000 n -0000062171 00000 n -0000062191 00000 n -0000000020 00000 n -0000003407 00000 n -0000003256 00000 n -0000002762 00000 n -0000095373 00000 n -0000095732 00000 n -0000003773 00000 n -0000003619 00000 n -0000003527 00000 n -0000005367 00000 n -0000005213 00000 n -0000003865 00000 n -0000091321 00000 n -0000077144 00000 n -0000008037 00000 n -0000007883 00000 n -0000005512 00000 n -0000075146 00000 n -0000009236 00000 n -0000009082 00000 n -0000008160 00000 n -0000009617 00000 n -0000009463 00000 n -0000009371 00000 n -0000017476 00000 n -0000017322 00000 n -0000009709 00000 n -0000028807 00000 n -0000028653 00000 n -0000017598 00000 n -0000035314 00000 n -0000035160 00000 n -0000028929 00000 n -0000043511 00000 n -0000043357 00000 n -0000035436 00000 n -0000054858 00000 n -0000054703 00000 n -0000043633 00000 n -0000095870 00000 n -0000061351 00000 n -0000061196 00000 n -0000054980 00000 n -0000061720 00000 n -0000061565 00000 n -0000061473 00000 n -0000062059 00000 n -0000061904 00000 n -0000061812 00000 n -0000062244 00000 n -0000073268 00000 n -0000062666 00000 n -0000063010 00000 n -0000073510 00000 n -0000075305 00000 n -0000075510 00000 n -0000076206 00000 n -0000075543 00000 n -0000075650 00000 n -0000076432 00000 n -0000077290 00000 n -0000077482 00000 n -0000089319 00000 n -0000077951 00000 n -0000078314 00000 n -0000089560 00000 n -0000091481 00000 n -0000091687 00000 n -0000094226 00000 n -0000091814 00000 n -0000091886 00000 n -0000094465 00000 n -0000095529 00000 n -0000095967 00000 n -0000096036 00000 n -0000096403 00000 n -trailer -<< /Size 80 /Root 78 0 R /Info 79 0 R /ID [ ] >> -startxref -96747 -%%EOF diff --git a/macros/luatex/latex/novel/doc/extras/novel-example.tex b/macros/luatex/latex/novel/doc/extras/novel-example.tex index ce875ab67a..d565c39896 100644 --- a/macros/luatex/latex/novel/doc/extras/novel-example.tex +++ b/macros/luatex/latex/novel/doc/extras/novel-example.tex @@ -11,7 +11,7 @@ % have read/write permissions for any user. If they don't, then % compile will fail at the point where files are written. -\documentclass{novel} % v. 1.83. +\documentclass{novel} % v. 1.86. \SetTitle{Dark and Stormy} \SetSubtitle{A Tale of Nights} \SetAuthor{Dirk Hardcase} diff --git a/macros/luatex/latex/novel/doc/extras/novel-extras-README.html b/macros/luatex/latex/novel/doc/extras/novel-extras-README.html index 2bedaab3a0..095e2d1136 100644 --- a/macros/luatex/latex/novel/doc/extras/novel-extras-README.html +++ b/macros/luatex/latex/novel/doc/extras/novel-extras-README.html @@ -9,21 +9,15 @@

README for novel extras

-

This folder contains items that may be helpful, but are not essential to operation of the novel document class. Version 1.83.

+

This folder contains items that may be helpful, but are not essential to operation of the novel document class. Version 1.86.

File novel-example.tex is a fake short novel. If you wish to compile it, place a copy in your user home folder (or other place where you have read/write privilege) and compile it there.

-

File novel-testsuite.tex exercises the various capabilities of the document class. You can look at the code, and see how it compiles. You may also change settings, to see what they do. It requires files novel-testimage.png, novel-testimage.jpg, novel-testscript.png, and novel-testscript.jpg. If you wish to compile it, place a copy (along with images) in your user home folder (or other place where you have read/write privilege) and compile it there.

-

File novel-decoglyphs.pdf shows the decorative characters in the NovelDeco.otf file, along with the codes needed to retrieve them.

-

File novel-Gallery-ChapterStart.pdf shows a number of different ways to begin a chapter, making use of the ChapterStart environment and related commands. These are only suggestions.

- -

File CPmodified.otf is not (normally) for use in TeX. I use it when editing my work in a word processor, prior to TeX markup. To use it, install the font in your operating system (not in TeX) where a word processor can find it. This font is nearly-monospaced, with exaggerated punctuation marks. I have found that punctuation errors are most frequently overlooked during editing, since they are so small in many fonts, and the spell-check software doesn't find the errors.

- -

novel-scripts.zip

+

IMPORTANT: The techniques described in these scripts, are rarely needed nowadays (late 2023).

This zip archive contains Windows batch scripts, and Linux/OSX BASH scripts, for automatic image conversion.

The scripts are meant to ensure that your use of images complies with commercial printing standards. In particular, they provide a method for converting color cover artwork to CMYK at 240% ink limit, in a PDF/X-1a:2001 file.

Complete usage instructions are documented within the zip archive.

diff --git a/macros/luatex/latex/novel/doc/extras/novel-testimage.jpg b/macros/luatex/latex/novel/doc/extras/novel-testimage.jpg deleted file mode 100644 index 6e39d29be5..0000000000 Binary files a/macros/luatex/latex/novel/doc/extras/novel-testimage.jpg and /dev/null differ diff --git a/macros/luatex/latex/novel/doc/extras/novel-testimage.png b/macros/luatex/latex/novel/doc/extras/novel-testimage.png deleted file mode 100644 index 1fabb2ccf2..0000000000 Binary files a/macros/luatex/latex/novel/doc/extras/novel-testimage.png and /dev/null differ diff --git a/macros/luatex/latex/novel/doc/extras/novel-testscript.jpg b/macros/luatex/latex/novel/doc/extras/novel-testscript.jpg deleted file mode 100644 index e1fac7cd45..0000000000 Binary files a/macros/luatex/latex/novel/doc/extras/novel-testscript.jpg and /dev/null differ diff --git a/macros/luatex/latex/novel/doc/extras/novel-testscript.png b/macros/luatex/latex/novel/doc/extras/novel-testscript.png deleted file mode 100644 index 77fb7e1da9..0000000000 Binary files a/macros/luatex/latex/novel/doc/extras/novel-testscript.png and /dev/null differ diff --git a/macros/luatex/latex/novel/doc/extras/novel-testsuite.pdf b/macros/luatex/latex/novel/doc/extras/novel-testsuite.pdf deleted file mode 100644 index f4393f610a..0000000000 Binary files a/macros/luatex/latex/novel/doc/extras/novel-testsuite.pdf and /dev/null differ diff --git a/macros/luatex/latex/novel/doc/extras/novel-testsuite.tex b/macros/luatex/latex/novel/doc/extras/novel-testsuite.tex deleted file mode 100644 index 09ca6b348f..0000000000 --- a/macros/luatex/latex/novel/doc/extras/novel-testsuite.tex +++ /dev/null @@ -1,318 +0,0 @@ -% !TeX TS-program = lualatex -% !TeX encoding = UTF-8 - -% Copyright 2023 Robert Allgeyer. -% This file may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, version 1.3c. -% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ - -% TEST SUITE FOR NOVEL DOCUMENT CLASS -% -% IF YOU COMPILE THIS DOCUMENT: Be sure that this file, and its generated PDF, -% have read/write permissions for any user. If they don't, then -% compile will fail at the point where files are written. -% -% This document tests the various capabilities of `novel' document class. -% The Preamble settings are originally the defaults. -% Change them to exercise the setting, and see the result. -% In the document body, various commands are exercised. -% -% You need all fonts from the `libertinus' package, -% all fonts from `lmodern' package, -% and the included NovelDeco.otf. -% -% You also need the file` novel-testimage.png' -% in the same folder as this document. -% It is grayscale png, 150x150 pixels, with resolution 300pdi. -% -% The `test' class option is required. You may add others. - -\documentclass[test,shademargins,draft]{novel} % v. 1.83. -\SetTitle{Test Suite} -\SetSubtitle{Novel Document Class} -\SetAuthor{Author Name} -% Additional Preamble, if desired. - - -\begin{document} - -\frontmatter % begins at page i. - -\thispagestyle{footer} -\vspace*{5\nbs} -\begin{center} -\charscale[3.6]{\textbf{Test Suite}}\par -\vspace{1.5\nbs} -\charscale[1.6]{Novel Document Class}\par -\vspace{4\nbs} -\ChapterDeco[6]{\decoglyph{n9548}} -\vspace{2\nbs} -\charscale[1.5]{The following page will be blank!}\par -\vfill -If you choose a head/foot style with footer, then page number i (lowercase roman) will appear in the footer below.\par -But if the head/foot style has no footer, then nothing below.\par -\end{center} -\clearpage - - -% Now to begin at page 1: -\mainmatter - -\begin{ChapterStart}[10] -\vspace*{3\nbs} -\ChapterTitle{Chapter One} -\ChapterSubtitle{Dark and Stormy} -\ChapterDeco[4]{\decoglyph{n9548}} -\end{ChapterStart} - -This tests the ChapterStart environment, plus \string\ChapterTitle, \string\ChapterSubtitle, \string\ChapterDeco, and \string\decoglyph. - -In the TeX document, you can change the height of the environment, the alignment of its components, the decoglyph, and so forth. - -The first paragraph will not be indented, but all following paragraphs will be indented. - -Since this is a recto (odd-numbered) page at right side, the default margins will be a little larger at left, where there is an allowance for binding gutter. - -Unless you change the head/foot style, you should see no heading. Arabic page number 1 should be at the bottom. - -\clearpage - - -% NEXT PAGE: - -This page tests the \string\charscale\space command, and \string\rotatebox. The combined effect is shown below:\par -\vspace{1.5\nbs} % trial and error -\charscale[2,3em,-4em]{\rotatebox[origin=c]{45}{Random Test Items}} -\vspace{7.5\nbs} % trial and error - -Above, you should see the phrase Random Test Items in larger than normal text, tilted 45 degrees, nicely fitting between the text above and this text. Offset has been used, so it is not quite centered. - -If you change the font size or number of lines per page, then the tilted phrase might not fit nicely. That can be fixed by changing the amount of \string\vspace\space above and below the rotated text. - -The amount of \string\vspace\space is not calculated automatically. You have to determine it by trial and error (or do some math). The total amount of \string\vspace, top and bottom, must be an integer. - -If you use \string\rotatebox\space without \string\charscale, then it will create its own vertical gap. Unfortunately, the height of this gap is very difficult for you to calculate, so you would not be able to easily restore the line grid by adding some amount of \string\vspace. So, don't use \string\rotatebox\space without \string\charscale. - -\clearpage - - -% NEXT PAGE: - -This page tests \string\FloatImage\space effects. Remember that \textit{novel} uses its own methods of placing images. - -There will be a gap before the image appears. In the tex code, find \string\vspace\space there, and change the space. At some point, the image will float to the top of the following page. - -\vspace{7\nbs} - -\FloatImage[ht]{novel-testimage.png} - -Above, the top of the image sits where the baseline of text would be. If the image fits where placed, then this paragraph comfortably clears the bottom of the image. If the gap is increased so that the image flats to the top of the next page, then this paragraph will be directly beneath the preceding paragraph. - - - -\clearpage - -% NEXT PAGE: - -This page tests \string\InlineImage\space effects. Note that the command also has a starred version. The difference: Unstarred, the width of the image is taken into account. Starred, the width of the image is ignored. - -\null - -\noindent\InlineImage*[0,\normalXheight]{novel-testimage.png}This paragraph is not indented. The starred command places an image, offset so that its top sits at the X-height of the text. The image underlies the following text. If you use this effect, then be sure that the image is much lighter, or the text will be hard to read. - -\null\null\null - -\noindent\InlineImage[0,b-\normaldescender]{novel-testimage.jpg}This paragraph is not indented. The unstarred command places an image, offset so that its bottom sits at the descender of the text. It was necessary to insert previous blank lines, or the image would overlie (and obscure) the preceding paragraph. - -\null\null - -\noindent\InlineImage[0,1.5em]{novel-testscript.png}This paragraph is not indented. The unstarred command places an image, offset so that it rises above the paragraph, and also descends beneath the following text. - -\null\null - -In all of the above, the alignments will change, if you change the text size or lines per page. - -\clearpage - - -% NEXT PAGE: - -This page tests \string\WrapImage. The command is written following the paragraph you are now reading. - -\WrapImage[r]{novel-testscript.jpg} - -The image will appear at right, with this text flowing around it. the first few lines will be at the left of the image. Then, as the paragraph continues, it eventually is restored to full text width, once it gets past the bottom of the image. Note that the top of the image is aligned to the X-height of the first line of text. - -\null -\null - -\clearpage - -% NEXT 2 PAGES: - -This page, combined with the following page, test the detection mechanism for \string\scenebreak, \string\sceneline, and \string\scenestars. - -In the source document, there is \string\vspace\space following this paragraph. To detect the effects, vary the \string\vspace. - -% Change this to see the effects: -\vspace{20\nbs} % originally 20\nbs - -Following this paragraph is the \string\scenestars\space command. It prints a few asterisks centered in a gap. It is one way to indicate that a scenbreak is present, when the break occurs at the very top or bottom of a page (because a blank line might not be noticed there). - -\scenestars - -If you change the above \string\vspace\space to 25\string\nbs, you will get a Warning about the line being too close to the bottom. Change to 28\string\nbs, and the Warning will say that it is too close to the top (of the following page. Note that \string\scenestars\space is allowed to be at the very bottom or very top, or somewhere in the middle of the page. The same applies to \string\sceneline. - -If you wish, you can always use \string\scenestars\space or \string\sceneline\space to indicate a scene break. But more common practice is to use a blank line, \string\scenebreak, except for those cases where you ``must'' use one of the others. - -\scenebreak - -Above this paragraph is \string\scenebreak, which appears as a blank line. A \string\scenebreak\space cannot be located close to the top or bottom of a page. Unlike \string\sceneline\space or \string\scenestars, you cannot place \string\scenebreak\space at the very top or bottom, either. So, changing the \string\vspace\space to any of 14\string\nbs\space through 17\string\nbs\space will generate a Warning. - -\clearpage - - -% NEXT PAGE: - -This page tests the footnote and endnote capabilities.\footnote{This is the first sample footnote. Unless you change the marker style, it will be marked with an asterisk.} Two footnotes have been placed.\footnote{This is the second footnote. Unless you change the marker style, it will be marked by a dagger.} - -\null - -Test of \string\QuickChapter: - - -\QuickChapter[3em]{Just Before Midnight} - -Above, \string\QuickChapter\space inserted two blank lines, in which a phrase is followed by a short line. The text is slightly larger than normal, and sits slightly above the normal baseline. - -\null - -There is a \string\bigemdash\space between here\makebox[2.5em]{\bigemdash}and here. Its length is set at 2.5em, using \string\makebox. Compare to normal—emdash. Thickness and yoffset is adjustable. - -\null - -This tests the endnote capability.\endnote You will see marker 1 after the last sentence, and marker 2 after this one.\endnote\memo{This text does not print.} But no actual endnotes are created. You may manually place them wherever you wish. For that, you may use the \string\endnotetext\space command (if its style works for you), or any other method. - -\null - -\endnotetext{1}{This tests the \string\endnotetext\space command, although you would not normally place the text of an endnote here. It is only a test.\par} - -\endnotetext{2}{Text for a second endnote.\par} - -\clearpage - - -% NEXT PAGE: - -The following tests the \textit{parascale} environment: - -\begin{parascale}[0.8] -But this text has a different scale than normal. Both the font size and the baseline skip have been proportionately changed. As a result, the lines are not on the normal line grid.\par -If the following normal text needs to be back on grid (usually the case), here is what you must do: Compile, and note the number of lines occupied by the scaled text. Calculate the discrepancy, and fix with \string\vspace. Or let \textit{novel} do the thinking for you; there will be a Warning message with advice.\par -\vspace{0.2\nbs} % based on result of Warning. -\end{parascale} - -Back to normal text. At the dimensions originally used for this test, there are 9 lines of scaled text. Not counting the first scaled line, the remaining 8 scaled lines each introduce a deficit of 0.2\string\nbs. So, the cumulative deficit is 1.6\string\nbs. The integer part doesn't matter. So, \string\vspace{0.6\string\nbs} must be added prior to \string\end\{parascale\}, to restore the normal line grid. - -It is also possible to split the \string\vspace, prior to \string\begin\{parascale\} and \string\end\{parascale\}, as long as the total is correct. - -If the \string\vspace\space is not added, then there will be a Warning message. - -If the parascale spans more than one page, then the correct amount to add will depend on the lines present on the final page, not the total number of lines. - -\clearpage - - -% NEXT PAGE - -This page tests the \textit{adjustwidth} environment. Changing textwidth is a useful way to create block indents, occasionally used for long quotations, or for other special text that must be visually distinguished from normal. - -\begin{adjustwidth}{2\normalparindent}{\normalparindent} -\forceindent This text uses the \textit{adjustwidth} environment. It is set to block indent 2\string\normalparindent\space at left, and indent 1\string\normalparindent\space at right. The \string\forceindent\space command precedes the text, so that (within the block) it indents like an ordinary paragraph.\par -\end{adjustwidth} - -This text is after the environment, so it occupies the normal amount of text width. - -\clearpage - - -% NEXT PAGE: - -This tests various text effects: - -\null - -\FirstLine{\noindent\charscale[2]{T}\hspace{-2pt}his line has its first letter enlarged, and sets the first line in small caps. After the first line, text continues as usual. Note that space must be provided prior to this paragraph, so that the first letter does not intrude on text (or margin) above it.} - -The \string\charscale\space command scales the letter, and \string\FirstLine\space performs the small caps. Also, some kerning was applied so that the large T has the following \textsc{h} resting beneath its top. The \string\noindent\space command goes inside \string\FirstLine. - -\null\null - -\dropcap{H}ere is placed is a drop cap, using \textit{novel's} \string\dropcap\space command. Alternatively, the \textit{lettrine} package could be used. There are differences in how the drop caps are specified, depending on what you do. So, be sure to read the documentation, or you will be surprised.\par -In general, it is difficult to style drop caps so that they look good for many different letters. An alternative is to use images for the drop caps. If you use images, please read the \textit{novel} documentation, as the method is not the same as the usual methods from the \textsc{lettrine} package.\par -Note that there is no automated way to combine a drop cap with a first line in small caps. This is discussed in \textsc{novel} documentation. - -\null -This line is in the main font.\par -\textsf{This line is in the sans font.}\par -\texttt{This line is in the mono font.}\par -{\mustbelibertinus This line is in Libertinus Serif.}\par % specific to testsuite -{\mustbelmodern This line is in Latin Modern Roman.}\par % specific to testsuite - - -\clearpage - - -% NEXT PAGE: - -\thispagestyle{dropfoliobeneath} % compare to dropfolioinside - -This page tests drop folio. There will be no page header. If your head/foot style normally has a footer, then you will see it as usual. - -If you choose a head/foot style without footer, you will still see a page number centered below. Exactly where it appears will depend on which kind of drop folio is used. - -If using \string\thispagestyle\{dropfoliobeneath\} then the page number will appear within the lower margin. - -If using \string\thispagestyle\{dropfolioinside\} then the page number will appear just above the lower margin, where the final line of text would otherwise be placed. - -Use class options [draft,shademargins] to see the position. - -The initial choice is \textit{dropfoliobeneath}. - -\clearpage - -% NEXT PAGE: - -This tests the \string\cleartoend\space command. If this page is recto (odd), then exactly one blank page will follow. If this page is verso (even), then exactly two blank pages will follow. - -\null\null - - -When you request PDF/X (default), whether or not you are in draft mode, each image placed in your document is inspected. This is one of those things that require Lua code, which is one reason why the \textit{novel} class requires LuaLaTeX only. - -When an image is inspected, it is added to one of two lists, either good or unknown. Each time an image is requested, the lists are examined, so the same image file is not inspected twice. This saves time. - -The lists are saved in the \textit{aux} file. Then, if you re-compile, images already inspected won't be re-inspected. To re-initialize the lists, discard the \textit{aux} file. - -\null - -Two of the images were pre-processed via \textit{novel-scripts}. These will be detected as good. They are: - -\makeatletter\@AllGoodImages\makeatother - -\null - -Two of the images were not pre-processed, so their compliance is unknown. They might be good or bad. They are: - - \makeatletter\@UnknownImages\makeatother - -\null - -Note: If you change the document settings to \string\SetPDFX\{off\} then you will not see either of the image lists, and will not get the Warning message. - -Also, using \string\SetPDFX\{off\} will re-initialize the lists. - - - -\end{document} - diff --git a/macros/luatex/latex/novel/doc/needed-packages b/macros/luatex/latex/novel/doc/needed-packages deleted file mode 100644 index 3bfbc7e9bb..0000000000 --- a/macros/luatex/latex/novel/doc/needed-packages +++ /dev/null @@ -1,11 +0,0 @@ - -To use `novel' you need LaTeX with lualatex. - -In addition to the minimal setup, you will need these packages: - -textpos magaz xcolor adjustbox eso-pic pdfpages unicode-math fp iftex -libertinus-fonts makecmds xkeyval lm-math xstring xifthen silence -collectbox pgf lipsum wrapfig pdflscape polyglossia microtype hyperref - -You will need language support, for your language(s). -If using lipsum, you will need hyphen-latin. \ No newline at end of file diff --git a/macros/luatex/latex/novel/doc/novel-documentation.html b/macros/luatex/latex/novel/doc/novel-documentation.html index 154f85a358..a644f4c03c 100644 --- a/macros/luatex/latex/novel/doc/novel-documentation.html +++ b/macros/luatex/latex/novel/doc/novel-documentation.html @@ -14,7 +14,10 @@ License URL: https://www.latex-project.org/lppl/lppl-1-3c/ - - - - - - - - - - -
-
-

Document class novel - Documentation

-

Contents   (open all)   (close all)

+

Contents

6.4 Superscripts, Subscripts

-
+

A. In novel, superscripts and subscripts are called "markers." Most book-quality Open Type fonts have markers in style sets (sups, sinf, subs).

B. In professional fonts, marker glyph weights are adjusted for consistent appearance compared to ordinary glyphs. However, many free fonts do not adjust marker glyph weights, so the markers may appear too small, or too light. You may choose whether to use a font's own markers, or allow novel to generate markers, depending on whichever you think looks better.

C. real markers attempt to use the Open Type feature sups for superscripts, and the feature sinf (preferred) or subs (alternate) for subscripts. Real markers are the best choice for professional fonts. If the requested feature is not available for the font, then it will be automatically faked, by scaling/raising/lowering ordinary characters from the basefont (lining numerals will be used).

@@ -2070,8 +1983,11 @@ This text is in lightgray, until the group ends.

\SetKnownGoodImages{somefile.png anotherfile.jpg}

-

7.1.2. Color Cover

+

7.1.2. Color Cover (deprecated)

+

As of late 2023, most print services no longer have the same requirements as they once did, +regarding color cover artwork. Although the method provided by novel still works, +it is the hard way to do something that (nowadays) does not have to be hard.

A. The book cover may be (usually is) in color. Bleed is required.

B. If your print service allows you to submit cover artwork as an ordinary RGB image file, that's the easiest way to do it. Then, novel is not used.

C. tech info Complete support for creating a PDF/X-1a:2001 (or other) color cover, with image in CMYK at 240% ink limit, is provided in novel-scripts.zip. This format is required by some American print-on-demand services.

@@ -2235,7 +2151,7 @@ He would have taken the car, had it not been stolen. But that was why he was her

-
+
@@ -2665,7 +2581,7 @@ It was a dark and stormy night, etc.

The source of the quotation should be right-justified within the block, and may be preceded by an emdash. Typically, names of people are not italicized, but titles of books are. It is not necessary to give elaborate details; this is not a bibliography.

It is not necessary to load the epigraph package. Simply construct your own style of epigraph using other methods. But if you do load epigraph: Only use \epigraph, or the epigraphs environment, within the ChapterStart environment, or on a display page. Commands \epigraphhead, \dropchapter, \undocrop do not work in novel. The \cleartoevenpage[option] command does work. Ignore the material regarding epigraphs on part pages or in bibliographies.

-
D.3.2.6.1. Example Epigraph: Real Quotation
+
D.3.2.6.1. Example Epigraph: Real Quotation

This might be used for an action adventure:

sample epigraph: Shakespeare @@ -2683,7 +2599,7 @@ The valiant never taste of death but once.\par

-
D.3.2.6.2. Example Epigraph: Imaginary Quotation
+
D.3.2.6.2. Example Epigraph: Imaginary Quotation

This might be used for contemporary fiction with a humorous style. The fictional speaker will appear as a character in the book:

sample epigraph: imaginary @@ -2739,7 +2655,7 @@ Let me tell you, there's nothing more exciting than the brouhaha at Mickey's Pub

If an Author's Note is two pages long, then on the second page use the same page style that you would ordinary use to start a chapter. Normally, this is \thispagestyle{footer}.

If an Author's Note is three or more pages long, then a header is permitted (if the book's main style has header). You may allow author and title to appear in header text, but it is better to indicate that this is not the main story, using \SetVersoHeadText{Author's Note} and \SetRectoHeadText{Author's Note}.

-
D.3.2.10.1. Example Author's Note
+
D.3.2.10.1. Example Author's Note

In a book of historical fiction, based on the author's own travels and expertise:

@@ -2774,7 +2690,7 @@ Finally, I would like to thank... \lipsum[1]

A single map, or maybe two, need not be mentioned in a table of contents or illustrations. If you have a lot of them strewn around the book, then they should be listed in such a table; but this is very rare in fiction.

As with all images, a map must be placed using novel's own image placement methods.

-
D.3.2.11.1. Example Map
+
D.3.2.11.1. Example Map

Typically, there will be nothing but the single image on a Map page, with all text self-contained. But in this example, the image only occupies part of the page. It is followed by ordinary text for the numbered locations:

sample map @@ -2834,7 +2750,7 @@ Finally, I would like to thank... \lipsum[1]

Some books are partitioned into distinct sub-books. A sub-book is of substantial length, not individual chapters or short stories.

If your book has distinct sub-books, then each of them has its own recto cover page, known as a Part Separator. Its verso is blank or an Epigraph. Then the accompanying story begins recto.

A Part Separator is always main matter. So, the first Part Separator is always page 1 (number not printed). Then its text begins on page 3. Do not re-initialize the page count when you get to the next Part Separator.

-

Part separators could be simply Part I, Part II, and so forth. They could be Book I, Book II. Or, they could have distinctive titles, such as The Northern Front and The Southern Front. If your book is two novelettes in one, then the Part Separators would be the title (and subtitle, if any) of the individual novelettes. Sometimes a Part Separator has a brief description of its purpose, as in Book I. On Earth followed by Book II. On Mars.

+

Part separators could be simply Part I, Part II, and so forth. They could be Book I, Book II. Or, they could have distinctive titles, such as The Northern Front and The Southern Front. If your book is "two in one" then the Part Separators would be the title (and subtitle, if any) of the individual parts. Sometimes a Part Separator has a brief description of its purpose, as in Book I. On Earth followed by Book II. On Mars.

Unless your book has a very complex structure, do not use both a second Half-Title (whether in front matter or main matter) and a Part Separator. Combine them as the recto main matter page 1: The Withens Chronicles. Part I, or simply Part I. Then the next Part Separator would be Part II.

In one book I recently noticed, there were five parts, each of which corresponded to one calendar day. The Part Separator showed the day, as in Monday, September 25. Then within each part there were several chapters, each of which took us to some different event in a different setting, all on that same day. I also note that this book had no Table of Contents; the progress of the novel was therefore a surprise, by its author's intent.

@@ -3183,7 +3099,7 @@ Some text {\baskf\addfontfeature{Numbers=Monospaced} hello 123} is here.

Appendix Y.   Licensing and Credits

-

A. Licensing: The novel document class, including software, examples, documentation and supporting images, is distributed under the terms of the LaTeX Project Public License, version 1.3c only. Exception: The included fonts NovelDeco.otf and CPmodified.otf are distributed under terms of the SIL Open Font License, v.1.1.

+

A. Licensing: The novel document class, including software, examples, documentation and supporting images, is distributed under the terms of the LaTeX Project Public License, version 1.3c only. Exception: The included font NovelDeco.otf is distributed under terms of the SIL Open Font License, v.1.1.

To ensure that your book may be sold commercially, be careful to use only fonts that allow commercial usage. That may exclude some of the fonts in the LaTeX font catalog. See Appendix C.

B. Credits: Within the TeX code files, you will find places where small or large pieces of code are the work of someone else. Names or organizations are credited in-place within the TeX code, according to license.

@@ -3199,11 +3115,13 @@ Some text {\baskf\addfontfeature{Numbers=Monospaced} hello 123} is here.
-

Appendix Z.   Changes in v.1.80.

+

Appendix Z.   Changes in v.1.86.

Important Changes

+

Version 1.86 (2024) docs edited..

+

Version 1.84 (2023) docs edited. Probably final update.

Version 1.83 (2023) corrected minor typo. Will not affect most users.

Version 1.82 (2023) adds a user setting, to change the default indent.

Version 1.80 (2023) tweaks some internal code, for faster compiling. @@ -3213,6 +3131,8 @@ In any case, if you are re-building an earlier document, pay careful attention to line breaks and pagination. Due to various adjustments in component packages and fonts, a document built in the past may look slightly different if re-built now.

+
+
@@ -3221,7 +3141,7 @@ if re-built now.

-
+
diff --git a/macros/luatex/latex/novel/doc/novel.pdf b/macros/luatex/latex/novel/doc/novel.pdf index afb325ef5f..019feecf43 100644 --- a/macros/luatex/latex/novel/doc/novel.pdf +++ b/macros/luatex/latex/novel/doc/novel.pdf @@ -8,10 +8,10 @@ stream - 2023-11-09T11:33:37-08:00 - 2023-11-09T11:33:37-08:00 + 2024-01-31T11:26:16-08:00 + 2024-01-31T11:26:16-08:00 LuaLaTeX with novel and microtype - 2023-11-09T11:33:37-08:00 + 2024-01-31T11:26:16-08:00 @@ -25,7 +25,7 @@ stream uuid:A12D98E081B6A0EC2CBA2D468474F922 - uuid:50D7821EED17A7D4834572F405C18DB9 + uuid:7B55E0C0C1A732BF844F0BBB234AF9B7 default 1 @@ -49,7 +49,7 @@ stream endstream endobj 7 0 obj -<< /Length 8286 >> +<< /Length 8457 >> stream 0 g 0 G 0 g 0 G @@ -59,67 +59,58 @@ BT 1 0 0 1 178.388 541.455 Tm [<002F0030>-37<00370026002D>]TJ /F95 13.62884 Tf 1 0 0 1 105.124 508.167 Tm [<0022>-250<00250050>-7<00440056004E0046004F0055>-250<0024004D004200540054>-250<004700500053>-250<005500490046>-250<0033004600540055>-250<00500047>-250<00360054>]TJ -ET -1 0 0 1 161.57 496.331 cm -q -4 0 0 4 0 0 cm -1 0 0 1 -161.57 -496.331 cm -BT +/F95 11.3574 Tf +1 0 0 1 143.535 493.372 Tm [<0037>80<004600530054004A0050004F>-250<09C9000F09D009CE>-250<0009>-73<002B0042004F005600420053>-15<005A>-250<09CA09C809CA09CC000A>]TJ /F97 11.3574 Tf -1 0 0 1 161.57 496.331 Tm [<0176>]TJ -ET -1 0 0 1 161.57 496.331 cm -Q -1 0 0 1 -161.57 -496.331 cm -BT -/F98 11.3574 Tf -1 0 0 1 53.421 446.286 Tm [<0038004900460053>8<0046>-201<004A0054>-201<005500490046>-202<00450050>-7<00440056004E0046004F005500420055004A0050004F00200020>]TJ +1 0 0 1 53.421 446.202 Tm [<0038004900460053>8<0046>-250<004A0054>-250<005500490046>-250<00450050>-7<00440056004E0046004F005500420055004A0050004F00200020>]TJ /F95 11.3574 Tf -0.98 0 0 1 211.688 446.286 Tm [<002A0055>-205<004A0054>-205<004A004F>-206<0029>-38<0035002E002D>-206<004700500053004E00420055000D>-215<0042004F0045>-206<00440042004F004F00500055>]TJ -1 0 0 1 54 431.492 Tm [<0043>-10<0046>-249<0053>7<004600550053004A0046>8<0057>8<0046>-7<0045>-249<0057004A0042>]TJ -/F99 11.3574 Tf -1 0 0 1 128.744 431.492 Tm [<00550046>7<005900450050>-7<0044>]TJ +1 0 0 1 213.53 446.202 Tm [<002A0055>-250<004A0054>-250<0029>-37<0035002E002D000F>]TJ +1 0 0 1 53.659 431.407 Tm [<000900550046>7<00590053>8<0050>-7<00500055000A001000450050>-7<00440010004D00560042004D004200550046>7<00590010004F0050>7<0057>8<0046004D0010004F0050>7<0057>8<0046004D000E00450050>-7<00440056004E0046004F005500420055004A0050004F000F00490055004E004D000F>]TJ +/F97 11.3574 Tf +1 0 0 1 54 401.818 Tm [<002F0046>7<00580054001B>]TJ /F95 11.3574 Tf -1 0 0 1 157.229 431.492 Tm [<000F>-333<002A0047>-249<005A>8<00500056>-249<004900420057>8<0046>-248<00550049004A0054>-250<005100420044004C004200480046>-249<004A004F005400550042004D004D0046>-7<0045000D>-249<004D0050>-7<0050004C>-249<004700500053>]TJ -0.996 0 0 1 53.659 416.697 Tm [<000900550046>7<00590053>8<0050>-6<00500055000A001000450050>-8<00440010004D00560042004D004200550046>7<00590010004F0050>7<0057>8<0046004D0010004F0050>7<0057>8<0046004D000E00450050>-6<00440056004E0046004F005500420055004A0050004F000F00490055004E004D000F>-341<002A0047>-253<005A>7<00500056>-252<00420053>7<0046>]TJ -0.98 0 0 1 54 401.903 Tm [<0050004F004D004A004F0046>10<000D>-246<00480050>-246<00550050>-245<005500490046>-245<00240035>50<0022002F>-244<0051004200480046>-246<00420055>-245<00490055005500510054001B00100010004400550042004F000F00500053004800100051004C00480010004F0050>7<0057>8<0046004D>-244<0042004F0045>-246<0044004D004A0044004C>]TJ -1 0 0 1 53.148 387.108 Tm [<06E2003100420044004C004200480046>-250<00250050>-7<00440056004E0046004F005500420055004A0050004F>-250<00090029>-37<0035002E002D000A000F>122<06E3>]TJ +0.992 0 0 1 88.261 401.818 Tm [<00350049004A0054>-252<00450050>-7<00440056004E0046004F0055>-253<0044004D004200540054>-253<005800420054>-252<0939005300540055>-253<00510053004A0057004200550046004D005A>-253<005600540046>-7<0045>-252<004A004F>-253<09CA09C809C909CC000F>-338<003500490046004F000D>]TJ +1.02 0 0 1 54 387.024 Tm [<004A004F>-280<09CA09C809C909D0000D>-289<004A0055>-280<005800420054>-281<004A004E00510053>8<0050>7<0057>8<0046>-7<0045000D>-289<00450050>-7<00440056004E0046004F00550046>-7<0045000D>-289<0042004F0045>-280<0053>7<0046004D0046004200540046>-6<0045000F>-432<002A0055>-281<004900420054>-280<0043>-10<0046>-7<0046004F>]TJ +1.02 0 0 1 54 372.229 Tm [<004E0042004A004F00550042004A004F0046>-7<0045>-315<005500490053>7<0050005600480049>-314<0035>62<00460039004D004A0057>8<0046>-315<09CA09C809CA09CB000F>-538<002A0055>-315<004A0054>-315<0046>6<00590051>-6<0046>-7<004400550046>-7<0045>-316<00550050>-315<0058>7<00500053004C>-315<004A004F>-315<005500490046>]TJ +1 0 0 1 54 357.435 Tm [<00470056005500560053>8<0046>10<000D>-250<004300560055>-250<004A0054>-250<004F0050>-250<004D0050004F004800460053>-250<004E0042004A004F00550042004A004F0046>-7<0045>-250<0043005A>-250<004A00550054>-250<00500053004A0048004A004F0042004D>-250<00440053>8<00460042005500500053>59<000F>]TJ +0.98 0 0 1 71.036 342.64 Tm [<002400490042004F004800460054>-226<004A004F>-226<00510053004A004F0055000E0050004F000E00450046004E0042004F0045>-227<00550046>-7<00440049004F0050004D00500048005A>-227<004900420057>8<0046>-226<004E004200450046>-226<004E0042004F005A>-227<00510042005300550054>]TJ +0.98 0 0 1 54 327.845 Tm [<00500047>-254<00550049004A0054>-255<00440050>-7<00450046>-254<004A00530053>7<0046004D0046>7<00570042004F0055000F>-339<0035004900460053>8<0046>-254<00420053>7<0046>-253<0042004D00540050>-255<0042>-254<00470046>6<0058>-254<00440050004E004E0042004F00450054>-254<0055004900420055>-255<0053>8<0046>-7<00520056004A0053>8<0046>]TJ +1.02 0 0 1 54 313.051 Tm [<00480053004200510049004A0044>-288<004500460054004A0048004F>-288<0046>6<00590051>-6<00460053004A0046004F00440046>-289<004700500053>-288<00510053>7<00500051>-6<00460053>-289<00560054004200480046>9<000F>-456<0022004F0045>-288<0042>-289<00470046>6<0058>-287<0054004600550055004A004F00480054000D>]TJ +1 0 0 1 53.58 298.256 Tm [<00580049004A00440049>-250<0054004900500056004D0045>-250<0043>-10<0046>-250<0054004A004E0051004D0046>-250<0042004F0045>-250<005000430057004A005000560054000D>-250<00420053>8<0046>-250<00440050004E0051004D0046>7<0059>-250<0042004F0045>-250<00420053>8<00440042004F0046>10<000F>]TJ +1.02 0 0 1 71.036 283.462 Tm [<002A0047>]TJ /F98 11.3574 Tf -1 0 0 1 54 357.519 Tm [<00250046005400440053004A00510055004A0050004F001B>]TJ +1.02 0 0 1 81.23 283.462 Tm [<004F0050>7<0057>8<0046004D>]TJ /F95 11.3574 Tf -1.02 0 0 1 121.178 357.519 Tm [<003500490046>]TJ -/F99 11.3574 Tf -1.02 0 0 1 142.58 357.519 Tm [<004F0050>7<0057>8<0046004D>]TJ +1.02 0 0 1 109.331 283.462 Tm [<0058>8<00500053004C0054>-273<004700500053>-273<005A>8<00500056000D>-279<00480050>-7<0050>-7<0045000F>-411<002300560055>-273<004A0047>-273<005A>7<00500056>-272<00420053>7<0046>-272<0054004A004E0051004D005A>-273<00580053004A0055004A004F0048>-273<0042>]TJ +1.02 0 0 1 54 268.667 Tm [<093900440055004A0050004F>-283<004F0050>6<0057>8<0046004D000D>-293<004F005000550049004A004F0048>-284<00470042004F0044005A>58<000D>-292<005500490046004F>-284<00540046>-7<0046>-284<004A0047>-284<00240035>48<0022002F>-282<0042004F0045>-284<0035>62<00460039004D004A0057>8<0046>-283<004900420057>7<0046>]TJ +1.02 0 0 1 54 253.873 Tm [<0042>-273<005100420044004C004200480046>-274<004F0042004E0046>-7<0045>]TJ +/F98 11.3574 Tf +1.02 0 0 1 139.105 253.873 Tm [<004F0050>7<0057>7<0046004D0046005500550046>]TJ /F95 11.3574 Tf -1.02 0 0 1 170.594 357.519 Tm [<00450050>-7<00440056004E0046004F0055>-265<0044004D004200540054>-266<004A0054>-265<004700500053>-265<00580053004A0055004600530054>-266<00500047>-265<00500053004A0048004A004F0042004D>]TJ -0.98 0 0 1 54 342.725 Tm [<093900440055004A0050004F000D>-244<00550050>-242<0043>-10<0046>-242<00510053004A004F00550046>-7<0045>-242<00550050>-242<005100420051>-7<00460053>61<000D>-244<0058004A00550049>-242<0042005500550046004F0055004A0050004F>-241<00550050>-242<005500490046>-242<0053>7<0046>-6<00520056004A0053>8<0046004E0046004F00550054>-241<00500047>]TJ -0.995 0 0 1 54 327.93 Tm [<005500490046>-249<00510053004A004F0055000E0050004F000E00450046004E0042004F0045>-250<004E00420053004C00460055000F>-335<002F0050004F000E00440050004D00500053>-250<004A004F005500460053004A005000530054>-249<0042004F0045>-250<00440050004D00500053>-250<00440050>6<0057>8<004600530054>]TJ -1.02 0 0 1 54 313.136 Tm [<00420053>8<0046>-294<0054005600510051>-7<0050005300550046>-7<0045000F>-474<002A004E0042004800460054>-295<00420053>8<0046>-294<0054005600510051>-7<0050005300550046>-7<0045000D>-307<004300560055>-294<0050004F004D005A>-294<00420054>-294<005500490046>6<005A>-294<004E004A004800490055>-294<0043>-10<0046>]TJ -1 0 0 1 54 298.341 Tm [<005600540046>-7<0045>-250<004A004F>-250<093900440055004A0050004F000D>-250<004F00500055>-250<0051004A0044005500560053>8<0046>-250<0043>-10<0050>-7<0050004C0054000F>]TJ -0.98 0 0 1 71.036 283.547 Tm [<002A0047>-226<005A>8<005000560053>-226<0058>8<00500053004C>-226<004A0054>-226<0042004F>-226<0026000E0043>-10<0050>-8<0050004C000D>-232<00500053>-226<0056005400460054>-226<004A004F005500460053004A00500053>-226<00440050004D00500053>-226<00500055004900460053>-227<005500490042004F>-226<004800530042005A>61<000D>]TJ -1 0 0 1 54 268.752 Tm [<00500053>-250<004A0054>-250<00420044004200450046004E004A0044000D>-250<005500490046004F>-250<00550049004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<004A0054>-250<004F00500055>-250<004700500053>-250<005A>8<00500056000F>]TJ -1 0 0 1 71.036 253.958 Tm [<002300560055>-250<004A0047>-250<005A>7<00500056>-250<00420053>8<0046>-250<00580053004A0055004A004F0048>-250<0042>-251<0045004600550046>-7<00440055004A0057>7<0046>-249<004F0050>6<0057>8<0046004D000D>-249<00500053>-251<00540044004A0046004F00440046>-250<093900440055004A0050004F000D>-251<00500053>-250<0042>]TJ -1 0 0 1 54 239.163 Tm [<00440050004D004D0046>-7<00440055004A0050004F>-250<00500047>-250<00540049005000530055>-250<0054005500500053004A00460054000D>-250<005500490046004F>-250<0053>8<004600420045>-250<0050004F0002>]TJ -/F95 13.62884 Tf -1 0 0 1 54 213.663 Tm [<0012000F>-333<002700460042005500560053>7<00460054>]TJ +1.02 0 0 1 179.711 253.873 Tm [<000F>-411<0022>11<0054>-273<00500047>-273<004D004200550046>-274<002B0042004F005600420053>-15<005A>-273<09CA09C809CA09CC000D>-281<005500490046>-273<005100420044004C004200480046>]TJ +1.02 0 0 1 54 239.078 Tm [<004A0054>-264<004A004F>-265<0043>-10<004600550042>-265<0055004600540055>-265<0009004F00500055>-265<0053>7<0046004D0046004200540046>-6<0045>-265<005A>7<00460055000A000F>-385<002A0047>-265<005500490046>-265<005100420044004C004200480046>-264<0046>6<0059004A005400550054>-264<0042004F0045>-265<00440042004F>-265<0043>-10<0046>]TJ +1 0 0 1 54 224.284 Tm [<004A004F005400550042004D004D0046>-7<0045000D>-250<005500490046004F>-250<005A>8<00500056>-250<0054004900500056004D0045>-250<00510053>8<0046004700460053>]TJ +/F98 11.3574 Tf +1 0 0 1 207.45 224.284 Tm [<004F0050>7<0057>8<0046004D0046005500550046>]TJ /F95 11.3574 Tf -1.02 0 0 1 53.659 194.779 Tm [<003500490053>8<0050005600480049005000560055000D>-329<004A0055>-312<004A0054>-313<0042005400540056004E0046>-7<0045>-312<0055004900420055>-312<005500490046>-313<0051005600530051>-7<005000540046>-312<00500047>-312<005A>7<005000560053>-312<00580053004A0055004A004F0048>-312<004A0054>-312<0042>]TJ -1 0 0 1 54 179.985 Tm [<00440050004E004E00460053>8<0044004A0042004D004D005A>-250<00510053004A004F00550046>-7<0045>-250<0043>-10<0050>-7<0050004C>-250<00500047>-250<093900440055004A0050004F000F>]TJ -0.98 0 0 1 71.036 165.19 Tm [<0022>-244<004F0046>7<0058>]TJ -/F99 11.3574 Tf -0.98 0 0 1 103.451 165.19 Tm [<004F0050>7<0057>8<0046004D>]TJ +1 0 0 1 247.258 224.284 Tm [<000F>]TJ +/F97 11.3574 Tf +1 0 0 1 54 194.695 Tm [<00250046005400440053004A00510055004A0050004F001B>]TJ +/F95 11.3574 Tf +1.02 0 0 1 121.178 194.695 Tm [<003500490046>]TJ +/F98 11.3574 Tf +1.02 0 0 1 142.58 194.695 Tm [<004F0050>7<0057>8<0046004D>]TJ /F95 11.3574 Tf -0.98 0 0 1 130.153 165.19 Tm [<004A0054>-244<00510053>8<0046000E00440050004F0939004800560053>8<0046>-7<0045>-244<00550050>-244<00510053>7<0050>-6<0045005600440046>-244<0042>-245<005400550042004F004500420053>8<0045>-244<00550053004200450046>-244<0043>-10<0050>-8<0050004C>]TJ -1.003 0 0 1 54 150.396 Tm [<0054004A005B0046>-249<00500047>-249<09CD000F09CD004A004F>-249<0038>-249<0059>-249<09D0000F09CD004A004F>-249<0029000D>-250<0058004A00550049>-249<004D0042005A>7<005000560055>-248<004E004200530048004A004F0054>-249<0055004900420055>-249<00420053>7<0046>-248<004D004A004C0046004D005A>-249<00550050>-250<0043>-10<0046>]TJ -0.994 0 0 1 54 135.601 Tm [<00420044004400460051005500420043004D0046>-251<00550050>-252<005500490046>-251<004E005000540055>-252<0058004A00450046004D005A000E005600540046>-7<0045>-252<00510053004A004F0055>-251<005400460053>-15<0057004A004400460054000F>-336<003500490046>-251<0939004D0046>-252<005A>7<00500056>-250<00420053>7<0046>]TJ -0.98 0 0 1 54 120.807 Tm [<004F0050>7<0058>-202<0053>7<004600420045004A004F0048>-202<004A0054>-203<004A004F>-203<00550049004A0054>-204<004700500053004E00420055000F>-322<002300560055>-204<004A0047>-203<0055004900420055>-203<004A0054>-203<004F00500055>-203<005500490046>-203<0054004A005B0046>-203<00500053>-204<004D0042005A>8<005000560055>-203<005A>8<00500056>]TJ -0.986 0 0 1 53.58 106.012 Tm [<00580042004F0055000D>-252<005500490046004F>-253<0055004900460053>8<0046>-252<00420053>8<0046>-252<00440050004E004E0042004F00450054>-252<0055004900420055>-253<00440050004F0939004800560053>8<0046>-252<004B005600540055>-252<00420043>-11<005000560055>-252<0042004F005A00550049004A004F0048000D>]TJ -1.02 0 0 1 54 91.218 Tm [<00560054004A004F0048>-243<005400550042004F004500420053>7<0045>-243<005500460053004E004A004F0050004D00500048005A>-244<0042004F0045>-243<0056004F004500460053005400550042004F004500420043004D0046>-244<0051005600530051>-7<005000540046>9<000F>-325<0023004600540055>-244<00500047>]TJ -0.984 0 0 1 54 76.423 Tm [<0042004D004D000D>-253<005500490046>-253<0029>-39<0035002E002D>-253<00450050>-7<00440056004E0046004F005500420055004A0050004F>-253<00440050004E00460054>-254<0058004A00550049>-253<004A004E0042004800460054>-253<0042004F0045>-253<0046>6<00590042004E0051004D00460054000D>-252<00540050>]TJ -1 0 0 1 54 61.629 Tm [<005A>8<00500056>-250<004C004F0050>7<0058>-250<0058004900420055>-250<005A>8<00500056>-250<00420053>8<0046>-250<00450050004A004F0048000F>]TJ +1.02 0 0 1 170.594 194.695 Tm [<00450050>-7<00440056004E0046004F0055>-265<0044004D004200540054>-266<004A0054>-265<004700500053>-265<00580053004A0055004600530054>-266<00500047>-265<00500053004A0048004A004F0042004D>]TJ +0.98 0 0 1 54 179.9 Tm [<093900440055004A0050004F000D>-244<00550050>-242<0043>-10<0046>-242<00510053004A004F00550046>-7<0045>-242<00550050>-242<005100420051>-7<00460053>61<000D>-244<0058004A00550049>-242<0042005500550046004F0055004A0050004F>-241<00550050>-242<005500490046>-242<0053>7<0046>-6<00520056004A0053>8<0046004E0046004F00550054>-241<00500047>]TJ +0.995 0 0 1 54 165.106 Tm [<005500490046>-249<00510053004A004F0055000E0050004F000E00450046004E0042004F0045>-250<004E00420053004C00460055000F>-335<002F0050004F000E00440050004D00500053>-250<004A004F005500460053004A005000530054>-249<0042004F0045>-250<00440050004D00500053>-250<00440050>6<0057>8<004600530054>]TJ +1.02 0 0 1 54 150.311 Tm [<00420053>8<0046>-294<0054005600510051>-7<0050005300550046>-7<0045000F>-474<002A004E0042004800460054>-295<00420053>8<0046>-294<0054005600510051>-7<0050005300550046>-7<0045000D>-307<004300560055>-294<0050004F004D005A>-294<00420054>-294<005500490046>6<005A>-294<004E004A004800490055>-294<0043>-10<0046>]TJ +1 0 0 1 54 135.517 Tm [<005600540046>-7<0045>-250<004A004F>-250<093900440055004A0050004F000D>-250<004F00500055>-250<0051004A0044005500560053>8<0046>-250<0043>-10<0050>-7<0050004C0054000F>]TJ +0.98 0 0 1 71.036 120.722 Tm [<002A0047>-226<005A>8<005000560053>-226<0058>8<00500053004C>-226<004A0054>-226<0042004F>-226<0026000E0043>-10<0050>-8<0050004C000D>-232<00500053>-226<0056005400460054>-226<004A004F005500460053004A00500053>-226<00440050004D00500053>-226<00500055004900460053>-227<005500490042004F>-226<004800530042005A>61<000D>]TJ +1 0 0 1 54 105.928 Tm [<00500053>-250<004A0054>-250<00420044004200450046004E004A0044000D>-250<005500490046004F>-250<00550049004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<004A0054>-250<004F00500055>-250<004700500053>-250<005A>8<00500056000F>]TJ +1 0 0 1 71.036 91.133 Tm [<002300560055>-250<004A0047>-250<005A>7<00500056>-250<00420053>8<0046>-250<00580053004A0055004A004F0048>-250<0042>-251<0045004600550046>-7<00440055004A0057>7<0046>-249<004F0050>6<0057>8<0046004D000D>-249<00500053>-251<00540044004A0046004F00440046>-250<093900440055004A0050004F000D>-251<00500053>-250<0042>]TJ +1 0 0 1 54 76.339 Tm [<00440050004D004D0046>-7<00440055004A0050004F>-250<00500047>-250<00540049005000530055>-250<0054005500500053004A00460054000D>-250<005500490046004F>-250<005A>8<00500056>-250<00420053>8<0046>-250<004A004F>-250<005500490046>-250<0053004A004800490055>-250<0051004D004200440046>10<000F>]TJ 0 g 0 G -/F95 10.44878 Tf -1 0 0 1 204.571 39.437 Tm [<0012>]TJ 0 g 0 G ET @@ -128,193 +119,10 @@ endobj 6 0 obj << /Type /Page /Contents 7 0 R /Resources 5 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] -/TrimBox[0 0 396 612] /Parent 12 0 R >> +/TrimBox[0 0 396 612] /Parent 11 0 R >> endobj 5 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F95 8 0 R /F97 9 0 R /F98 10 0 R /F99 11 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -15 0 obj -<< /Length 9218 >> -stream -0 g 0 G -0 g 0 G -BT -/F95 11.3574 Tf -1.02 0 0 1 53.036 564.643 Tm [<0022004D004E005000540055>-286<0046>6<0057>8<00460053>-14<005A00550049004A004F0048>-286<004A0054>-286<00510053>7<0046000E00440050004F0939004800560053>8<0046>-6<0045>-286<00550050>-286<06E2004B005600540055>-286<0058>7<00500053004C000D>122<06E3>-295<0046>6<0057>8<0046004F>-285<005500490046>]TJ -0.993 0 0 1 36 549.848 Tm [<004400490050004A00440046>-253<00500047>-253<00470050004F00550054000F>-339<003500490046>-253<00440049005000540046004F>-253<00440050004E0051004A004D00460053>-253<004A0054>-253<002D00560042002D00420035>64<00460039000D>-252<0042004F0045>-253<00300051>-7<0046004F>-253<0035>49<005A0051>-6<0046>]TJ -1.02 0 0 1 36 535.054 Tm [<00470050004F00550054>-254<00420053>7<0046>-253<004D0050004200450046>-7<0045>-254<00560054004A004F0048>]TJ -/F99 11.3574 Tf -1.02 0 0 1 143.408 535.054 Tm [<00470050004F005500540051>-7<0046>-7<0044>]TJ -/F95 11.3574 Tf -1.02 0 0 1 184.407 535.054 Tm [<00550046>-7<00440049004F0050004D00500048005A>59<000F>-353<002A0047>-255<005A>7<00500056>-253<00510053>7<0046004700460053>-253<00550050>-254<005600540046>-254<0042>]TJ -1 0 0 1 36 520.259 Tm [<00510053>8<00500047004600540054004A0050004F0042004D>-250<00470050004F0055000D>-250<004A0055>-250<0058004A004D004D>-250<0043>-10<0046>-250<004600420054005A>-250<00550050>-250<004D005000420045>-250<0042004F0045>-250<005600540046>-250<004A004F>-250<005600550047000E09D0000F>]TJ -1.02 0 0 1 53.036 505.465 Tm [<002E0042004F005A>-330<005400550042004F004500420053>7<0045>-330<002D00420035>62<00460039>-330<00440050004E004E0042004F00450054>-330<00420053>7<0046>-330<0045004A005400420043004D0046>-7<0045000F>-584<00350049004A0054>-331<0058004A004D004D>-330<0043>-10<0046>]TJ -0.98 0 0 1 36 490.67 Tm [<00540056005300510053004A0054004A004F0048>-228<00420055>-227<0939005300540055000F>-332<002300560055>]TJ -/F99 11.3574 Tf -0.98 0 0 1 138.832 490.67 Tm [<004F0050>7<0057>8<0046004D>]TJ -/F95 11.3574 Tf -0.98 0 0 1 165.352 490.67 Tm [<004A0054>-228<00470050>-7<0044005600540046>-7<0045>-228<0050004F>-228<0050004F0046>-228<00550049004A004F0048>-228<0050004F004D005A>61<000F>-331<0022004F005A00550049004A004F0048>]TJ -0.986 0 0 1 36 475.875 Tm [<0055004900420055>-254<004E004A004800490055>-254<004A004F005500460053004700460053>7<0046>-253<0058004A00550049>-255<0055004900420055>-254<0051005600530051>-7<005000540046>-255<004E0042005A>-254<004900420057>7<0046>-253<0043>-11<0046>-7<0046004F>-254<00550050005400540046>-7<0045>-255<00420054004A00450046>10<000F>]TJ -0.98 0 0 1 36 461.081 Tm [<00340050>10<000D>-231<0043>-10<0046>-226<005400560053>7<0046>-224<0055004900420055>-226<005A>7<00500056>-225<0053>8<004600420045>-225<005500490046>-226<00450050>-7<00440056004E0046004F005500420055004A0050004F0002>-331<002A0047>-225<005A>7<00500056>-225<00550042004C0046>-226<0042004F>-225<0046>6<0059004A00540055004A004F0048>]TJ -0.98 0 0 1 36 446.286 Tm [<002D00420035>65<00460039>-173<00450050>-8<00440056004E0046004F0055>-174<0042004F0045>-174<004B005600540055>-175<004400490042004F00480046>-174<005500490046>-175<0044004D004200540054>-174<00550050>]TJ -/F99 11.3574 Tf -0.98 0 0 1 237.077 446.286 Tm [<004F0050>7<0057>8<0046004D000D>]TJ -/F95 11.3574 Tf -0.98 0 0 1 264.879 446.286 Tm [<004A0055>-174<004A0054>-174<0057>7<00460053>-15<005A>-174<0056004F004D004A004C0046004D005A>]TJ -1 0 0 1 36 431.492 Tm [<00550050>-250<0058>8<00500053004C>-250<00420054>-250<0046>7<00590051>-7<0046>-7<004400550046>-7<0045000F>]TJ -1.02 0 0 1 53.036 416.697 Tm [<002E0042004F005A>-266<004F0046>7<0058>-266<00440050004E004E0042004F00450054>-266<00420053>7<0046>-265<00510053>7<0050>7<0057004A00450046>-6<0045000F>-389<003500490046>6<005A>-265<00420053>7<0046>-266<00470050>-6<0044005600540046>-7<0045>-266<0050004F>-266<005500490046>]TJ -0.98 0 0 1 36 401.903 Tm [<004F0046>-7<0046>-7<00450054>-240<00500047>-239<00510053004A004F0055>-240<093900440055004A0050004F>-239<00580053004A0055004600530054000D>-243<0051>-7<00460053004A0050>-8<0045000F>-335<0022004F0045000D>]TJ -/F99 11.3574 Tf -0.98 0 0 1 231.134 401.903 Tm [<004F0050>7<0057>8<0046004D>]TJ -/F95 11.3574 Tf -0.98 0 0 1 257.783 401.903 Tm [<004900420054>-239<00430056004A004D0055000E004A004F>-240<00310025002700100039>]TJ -0.98 0 0 1 36 387.108 Tm [<00550046>-7<00440049004F0050004D00500048005A>-185<0055004900420055>-186<0046>6<005900440046>-6<0046>-7<00450054>-186<005500490046>-186<00440042005100420043004A004D004A0055004A00460054>-185<0044005600530053>7<0046004F0055004D005A>-184<004200570042004A004D00420043004D0046>-186<0057004A0042>-186<00500055004900460053>]TJ -1 0 0 1 36 372.314 Tm [<002D00420035>63<00460039>-250<005100420044004C0042004800460054000F>]TJ -/F95 13.62884 Tf -1 0 0 1 36 346.813 Tm [<0013000F>-333<00240050004E0051004D004600550046>-250<00250050>-7<00440056004E0046004F005500420055004A0050004F>]TJ -/F95 11.3574 Tf -1.008 0 0 1 35.455 327.93 Tm [<0038004900420055>-248<005A>7<00500056>-247<00420053>7<0046>-248<0053>8<004600420045004A004F0048>-248<004F0050>6<0058>60<000D>-248<004A0054>-248<0050004F004D005A>-249<0042004F>-248<004A004F00550053>7<0050>-6<0045005600440055004A0050004F000F>-332<003500490046>-248<00440050004E0051004D004600550046>]TJ -0.98 0 0 1 36 313.136 Tm [<00450050>-7<00440056004E0046004F005500420055004A0050004F>-221<004A0054>-222<004A004F>-221<0029>-38<0035002E002D>-222<004700500053004E00420055000D>-228<0045004A0053>8<0046>-7<00440055004D005A>-221<00580053004A005500550046004F>-221<004A004F>-222<0029>-38<0035002E002D>-222<005300420055004900460053>]TJ -0.98 0 0 1 36 298.341 Tm [<005500490042004F>-173<0046>6<0059005500530042004400550046>-6<0045>-173<00470053>7<0050004E>-172<00440050>-8<00450046>10<000F>-312<0035004900460053>7<0046>-172<00420053>7<0046>-172<004F0056004E00460053>7<005000560054>-173<0046>7<00590042004E0051004D00460054>-173<0042004F0045>-173<004A004E0042004800460054000D>]TJ -1 0 0 1 36 283.547 Tm [<00550050>-7<0050>-250<0045004600550042004A004D0046>-7<0045>-250<00550050>-250<0043>-10<0046>-250<00510053>8<004600540046004F00550046>-7<0045>-250<00420054>-250<003100250027>24<000F>]TJ -/F95 13.62884 Tf -1 0 0 1 36 258.046 Tm [<0014000F>-333<002D004A00440046004F00540046>]TJ -/F95 11.3574 Tf -1.02 0 0 1 35.659 239.163 Tm [<003500490046>-323<002D00420035>62<00460039>-323<00440050>-7<00450046>9<000D>-342<0042004F0045>-324<0042004400440050004E00510042004F005A004A004F0048>-323<00450050>-7<00440056004E0046004F005500420055004A0050004F000D>-344<004A0054>-323<0053>7<0046004D0046004200540046>-6<0045>]TJ -1 0 0 1 36 224.369 Tm [<0056004F004500460053>-250<005500490046>-250<002D0042005500460039>-250<00310053>8<0050004B0046>-7<00440055>-250<003100560043004D004A0044>-250<002D004A00440046004F00540046>10<000D>-250<0057>8<004600530054004A0050004F>-250<09C9000F09CB0044000F>]TJ -0.98 0 0 1 53.036 209.574 Tm [<003500490046>-254<00440050004E00510042004F004A0050004F>-254<00470050004F00550009>11<0054000A>-253<004A00540009>11<00420053>9<0046000A>-254<004D004A00440046004F00540046>-7<0045>-255<0056004F004500460053>-254<005500490046>-254<0034002A002D>-255<00300051>-7<0046004F>-255<00270050004F0055>]TJ -1 0 0 1 36 194.779 Tm [<002D004A00440046004F00540046>10<000D>-250<0057>8<004600530054004A0050004F>-250<09C9000F09C9000F>]TJ -/F95 13.62884 Tf -1 0 0 1 36 169.279 Tm [<0015000F>-333<0037>79<004600530054004A0050004F>]TJ -/F95 11.3574 Tf -1 0 0 1 36 150.396 Tm [<09C9000F09D009CB000D>-250<09CA09C809CA09CB000E09C909C9000E09C809D1001B>-333<002E004A004F00500053>-250<0055005A0051>-7<0050>-250<0044005000530053>7<0046>-6<004400550046>-7<0045000F>]TJ -1 0 0 1 36 135.601 Tm [<09C9000F09D009CA000D>-250<09CA09C809CA09CB000E09C809D0000E09CA09CE001B>-333<0022>11<004500450046>-6<0045>-250<0056005400460053>-250<0054004600550055004A004F0048>-250<004700500053>-250<00450046004700420056004D0055>-250<004A004F00450046004F0055000F>]TJ -1 0 0 1 36 120.807 Tm [<09C9000F09D009C9000D>-250<09CA09C809CA09CB000E09C809CB000E09CA09CD001B>-333<002300560048>-250<0939005900460054000F>-333<0022004D00540050>-250<09C9000F09D009C90042000D>-250<09C9000F09D009C90043>19<000F>]TJ -1 0 0 1 36 106.012 Tm [<09C9000F09D009C8000D>-250<09CA09C809CA09CB000E09C809CA000E09C809D0001B>-333<0024004D004200540054>-250<005000510055004A0050004F>-250<06E20053>7<0046>7<005706E3>-249<004700500053>-250<004F0046>6<0058>-249<00450050>-7<00440056004E0046004F00550054000F>]TJ -0.994 0 0 1 36 91.218 Tm [<09C9000F09CD09CA000D>-250<09CA09C809C909D0000E09C809CC000E09CA09CE001B>-335<0026004F00490042004F00440046>-7<0045>-250<0045004600550046>-7<00440055004A0050004F>-250<0042004F0045>-251<005800420053004F004A004F0048>-250<00560054004A004F0048>-250<002D00560042>-250<00440050>-7<00450046>9<000F>]TJ -1 0 0 1 36 76.423 Tm [<09C9000F09CD09C8000F09CD000D>-250<09CA09C809C909D0000E09C809CC000E09C909C9001B>-333<002E004A004F00500053>-250<004300560048>-250<0939005900460054>-250<0009>16<00450050>-6<00440054>-250<0042004F0045>-250<00440050>-7<00450046>-250<0045004A0054004200480053>7<0046>-6<0046>-7<0045000A000F>]TJ -1 0 0 1 36 61.629 Tm [<09C9000F09CD09C8000D>-250<09CA09C809C909D0000E09C809CB000E09CA09D0001B>-333<002A004E00510053>7<0050>7<0057>8<0046>-6<0045>-250<004A004E004200480046>-250<00490042004F0045004D004A004F0048>-250<00440050004E004E0042004F00450054000D>-250<00540042004F00450043>-10<0050>6<0059000F>]TJ -0 g 0 G -/F95 10.44878 Tf -1 0 0 1 186.571 39.437 Tm [<0013>]TJ -0 g 0 G -ET - -endstream -endobj -14 0 obj -<< /Type /Page /Contents 15 0 R /Resources 13 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 12 0 R >> -endobj -13 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F95 8 0 R /F99 11 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -18 0 obj -<< /Length 8644 >> -stream -0 g 0 G -0 g 0 G -BT -/F95 13.62884 Tf -1 0 0 1 54 553.937 Tm [<0016000F>-333<0027>58<0022>34<00320054>]TJ -0 g 0 G -0 g 0 G -/F95 11.3574 Tf -1 0 0 1 54 535.054 Tm [<0032>29<000F>-607<00240042004F>-250<00550049004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<0043>-10<0046>-250<005600540046>-7<0045>-250<004700500053>-250<0026000E0043>-10<0050>-7<0050004C00540020>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 520.259 Tm [<0022000F>]TJ -0.997 0 0 1 71.036 520.259 Tm [<002F0050>10<000F>-333<0022004F0045000D>-251<0055004900420055>-250<004700460042005500560053>7<0046>-249<0058004A004D004D>-250<004F0046>6<0057>9<00460053>-250<0043>-10<0046>-250<0042004500450046>-7<0045000D>-250<00420054>-251<005500490046>-250<00550046>-7<00440049004F0050004D00500048005A>-250<004A0054>]TJ -1 0 0 1 71.036 505.465 Tm [<004A004F004900460053>8<0046004F0055004D005A>-250<004A004F00440050004E005100420055004A0043004D0046>10<000F>-333<0022>-250<0058>7<00500053>8<0045>-249<00510053>7<0050>-6<004400460054005400500053>-250<004A0054>-250<005A>7<005000560053>-249<00470053004A0046004F0045000F>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 490.67 Tm [<0032>29<000F>-607<0038004900420055>-250<0049004200510051>-7<0046004F0046>-7<0045>-250<00550050>-250<093A0050004200550054>-250<0042004F0045>-250<004D004A0054005500540020>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 475.875 Tm [<0022000F>-585<003600540046>-250<005500490046>-250<004F0046>7<0058>-250<004A004E004200480046>-250<00440050004E004E0042004F00450054000D>-250<00500053>-250<00540042004F00450043>-10<0050>7<0059>-250<004E0050>-7<00450046>10<000F>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 461.081 Tm [<0032>29<000F>-607<002E005A>-250<0055004900460054004A0054>-250<004200450057004A005400500053>-250<00550050004D0045>-250<004E004606DA>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 446.286 Tm [<0022000F>]TJ -1.02 0 0 1 71.036 446.286 Tm [<0034005500500051>-315<0053004A004800490055>-316<0055004900460053>7<0046>10<000F>-537<00350049004A0054>-315<00450050>-7<00440056004E0046004F0055>-316<0044004D004200540054>-316<004A0054>-315<0057>7<00460053>-14<005A>-316<0045004A093800460053>7<0046004F0055>-314<00470053>7<0050004E>]TJ -1 0 0 1 71.036 431.492 Tm [<0042004F005A00550049004A004F0048>-250<005600540046>-7<0045>-250<004700500053>-250<005500490046005400460054>-250<0042004F0045>-250<00500055004900460053>-250<00420044004200450046004E004A0044>-250<005100560043004D004A004400420055004A0050004F0054000F>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 416.697 Tm [<0032>29<000F>-607<002A0047>-250<002A>-250<005600540046>-250<0035004A004C003B>-250<004700500053>-250<00270046>7<005A004F004E0042004F>-250<0045004A0042004800530042004E0054000D>-250<005500490046004F06DA>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 401.903 Tm [<0022000F>-585<00280050>-250<004200580042005A>59<000F>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 387.108 Tm [<0032>29<000F>-607<002900420054>-250<00550049004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<0046>7<0057>8<00460053>-250<0043>-10<0046>-7<0046004F>-250<005600540046>-7<0045>-250<004700500053>-250<0042004F>-250<00420044005500560042004D>-250<004F0050>7<0057>8<0046004D0020>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 372.314 Tm [<0022000F>]TJ -1.02 0 0 1 71.036 372.314 Tm [<003A>71<00460054>-291<004A004F00450046>-7<0046>-7<00450002>-466<002A004F>-291<0022>33<00560048005600540055>-290<09CA09C809C909CF>-292<005500490046>-291<004200560055004900500053>-292<005100560043004D004A005400490046>-7<0045>-291<0042>-291<00440050004E0051004D004600550046>]TJ -0.98 0 0 1 71.036 357.519 Tm [<004F0050>7<0057>8<0046004D000D>-253<004A004F0044004D00560045004A004F0048>-253<004A00550054>-253<00440050>6<0057>8<00460053>62<000D>-253<00560054004A004F0048>-254<00550049004A0054>-253<00450050>-7<00440056004E0046004F0055>-254<0044004D004200540054000F>-339<0022004D004E005000540055>-254<0042004D004D>]TJ -0.995 0 0 1 71.036 342.725 Tm [<00500047>-252<005500490046>-251<00540046005500560051>-252<005600540046>-8<0045>-252<00450046004700420056004D00550054000F>-337<003500490046>-252<0939004D00460054>-252<000900550046>7<005900550043004D0050>-7<0044004C>-252<0042004F0045>-251<00440050>6<0057>8<00460053>17<000A>-251<0058>8<00460053>8<0046>]TJ -0.98 0 0 1 71.036 327.93 Tm [<005400560043004E004A005500550046>-7<0045>-252<00550050>-251<0042>-252<004E0042004B00500053>-252<0022004E00460053004A00440042004F>-252<0031>24<000F>11<0030>30<000F0025>30<000F>-251<005400460053>-15<0057004A00440046>-252<004A004F>]TJ -/F95 11.3574 Tf -0.98 0 0 1 293.018 327.93 Tm [<00310025002700100039>24<000E00120042001B0013001100110012>]TJ -/F95 11.3574 Tf -1.02 0 0 1 71.036 313.136 Tm [<004700500053004E00420055000D>-261<005500490046004F>-258<0046004D0046>-7<004400550053>7<0050004F004A00440042004D004D005A>-258<0053>7<0046>7<0057004A0046>7<0058>8<0046>-6<0045>-258<0042004F0045>-259<0042004400440046005100550046>-7<0045>]TJ -/F99 11.3574 Tf -1.02 0 0 1 310.307 313.136 Tm [<0050004F>-258<005500490046>-258<084A005300540055>]TJ -1.02 0 0 1 71.036 298.341 Tm [<0042005500550046004E00510055000F>]TJ -/F95 11.3574 Tf -1.02 0 0 1 115.412 298.341 Tm [<0022>-313<00510053004A004F00550046>-7<0045>-313<004400500051>6<005A>-313<005800420054>-313<004A004F>-313<005500490046>-314<00420056005500490050005306DF0054>-313<00490042004F00450054>-313<0058004A00550049004A004F>-314<0042>]TJ -1 0 0 1 70.616 283.547 Tm [<0058>8<0046>-7<0046004C000F>-333<002B005600540055>-250<004D004A004C0046>-250<0055004900420055000F>-333<0035>62<0050>-6<0050004C>-250<004E0050004F005500490054>-250<00550050>-250<00580053004A00550046>9<000D>-249<00500047>-250<004400500056005300540046>9<000F>]TJ -1 0 0 1 88.072 268.752 Tm [<00360051>-7<0045004200550046001B>-333<00340046>6<0057>8<004600530042004D>-249<00500055004900460053>-250<0042005600550049005000530054>-250<0053>7<00460051>-6<005000530055>-250<0054005600440044004600540054000F>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 253.958 Tm [<0032>29<000F>]TJ -1.009 0 0 1 71.036 253.958 Tm [<003800490046004F>-247<002A>-247<0058>7<0050004C0046>-247<00560051>-247<00550049004A0054>-247<004E00500053004F004A004F0048000D>-248<004E005A>-247<0049004600420045>-248<00470046004D0055>-247<004D004A004C0046>-248<0042>-247<00550050>-7<00450045004D00460053>-247<004900420045>]TJ -1.011 0 0 1 71.036 239.163 Tm [<0043>-10<0046>-7<0046004F>-247<0051>-7<00500056004F0045004A004F0048>-247<004A0055>-247<004A004F>-247<0042>-247<00540042004F00450043>-10<0050>6<0059000F>-329<002A>-247<0053>7<0050004D004D0046>-6<0045>-247<0050>6<0057>8<00460053>-246<0042004F0045>-247<004D0050>-7<0050004C0046>-7<0045>-247<00420055>-248<005500490046>]TJ -0.98 0 0 1 71.036 224.369 Tm [<004E00560048>-234<0054004900500055>-234<0050004F>-235<005500490046>-234<00580042004D004D000F>-333<002A0055>-235<005800420054>-234<0042>-235<0058>8<0050004E0042004F>-234<004A004F>-234<004900460053>-234<0047005000530055004A00460054>-235<0058004A00550049>-234<0042>-235<0045005300560048>]TJ -1.02 0 0 1 71.036 209.574 Tm [<004900420043004A0055>-264<0055004900420055>-265<005800420054>-265<004300420045000D>-269<0042004F0045>-265<0042004F>-264<004200550055004A0055005600450046>-265<0055004900420055>-265<005800420054>-264<0046>6<0057>8<0046004F>-264<0058>7<0050005300540046>10<000F>-384<003400490046>]TJ -0.98 0 0 1 71.036 194.779 Tm [<004900420045>-231<00540046>-7<0046004F>-231<0043>-10<00460055005500460053>-232<00450042005A0054000D>-235<004D004A004C0046>-232<005500490046>-231<0055004A004E0046>-231<002A>-231<00550050>-7<0050004C>-231<004900460053>-231<00550050>-231<005500490046>-231<0046004A0048004900550049>-232<00480053004200450046>]TJ -1.017 0 0 1 71.036 179.985 Tm [<00540050>-7<0044004C>-246<004900500051>9<000F>-329<003500490046004F>-246<002A>-247<004800500055>-247<00560051>10<000D>-246<00580042005400490046>-7<0045000D>-247<0042004F0045>-246<004500530042004800480046>-7<0045>-247<004E005A>-247<004D0050004F0046004D005A>-246<0043005600550055>]TJ -0.98 0 0 1 71.036 165.19 Tm [<00450050>7<0058004F>-240<00550050>-241<005500490046>-241<0050004F0046000E004E0042004F>-242<0045004600550046>-7<00440055004A0057>8<0046>-241<004200480046004F0044005A>-241<0055004900420055>-241<002A>-241<004B0050004C004A004F0048004D005A>-241<00440042004D004D0046>-7<0045>-241<004E005A>]TJ -1 0 0 1 71.036 150.396 Tm [<004E00460042004F0054>-250<00500047>-250<004D004A0057004A004F0048000F>-333<003A>70<00500056>-249<004C004F0050>6<0058>-249<0058004900420055>-250<002A>-250<004E00460042004F0020>]TJ -0 g 0 G -0 g 0 G -1 0 0 1 54 135.601 Tm [<0022000F>-585<003A>71<004600420049000F>-333<00340055004A0044004C>-250<0058004A00550049>-250<004E0046>9<000D>-249<004C004A0045000F>-333<00350049004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<004A0054>-250<004700500053>-250<005A>7<00500056000F>]TJ -0 g 0 G -/F95 10.44878 Tf -1 0 0 1 204.571 39.437 Tm [<0014>]TJ -0 g 0 G -ET - -endstream -endobj -17 0 obj -<< /Type /Page /Contents 18 0 R /Resources 16 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 12 0 R >> -endobj -16 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F95 8 0 R /F99 11 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -21 0 obj -<< /Length 32 >> -stream -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G - -endstream -endobj -20 0 obj -<< /Type /Page /Contents 21 0 R /Resources 19 0 R /MediaBox [ 0 0 396 612 ] /CropBox[0 0 396 612] - -/TrimBox[0 0 396 612] /Parent 12 0 R >> -endobj -19 0 obj -<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ProcSet [ /PDF ] >> +<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F95 8 0 R /F97 9 0 R /F98 10 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1 0 obj <<>> @@ -325,35 +133,34 @@ endobj 3 0 obj << /pgfprgb [/Pattern /DeviceRGB] >> endobj -22 0 obj -[ 13 [ 219 ] 15 [ 219 ] 66 [ 486 ] 68 [ 389 489 401 314 ] 73 [ 519 ] 77 [ 266 783 518 447 489 ] 83 [ 357 353 307 ] 87 [ 472 ] 89 [ 475 ] 2122 [ 564 ] ] +12 0 obj +[ 70 [ 401 ] 77 [ 266 ] 79 [ 518 447 ] 85 [ 307 ] 87 [ 472 ] ] endobj -24 0 obj -<< /Length 266 >> +14 0 obj +<< /Length 11 >> stream -/GÝ@ +… endstream endobj -25 0 obj -<< /Subtype /CIDFontType0C /Length 3317 >> +15 0 obj +<< /Subtype /CIDFontType0C /Length 1211 >> stream -LMQEIT+LibertinusSerif-ItalicKø ø!‹ øø øøø = ³ úÓûÌmú4BK " « $: %!^u…Š’LMQEIT+LibertinusSerif-Italic5.0Copyright Copyright 2012-2021 The Libertinus Project Authors.Libertinus Serif ItalicLibertinus SerifAdobeIdentity BDEFGIMNOPQSTUWYJM…¤/šH©^ƒ‰J¢soç n -= =N‹½ø콋½ø$½‹øˆùPüˆÛý÷>÷“÷>û“üø¿÷>û“û>û“÷z÷“÷>÷“ü’û\÷Àû>÷“÷èûêû÷w÷»ɸsšž†›‡š‡yoX\Vˆ‚Žƒ“…÷ §å¿³t£lmnxlûê€õÊ÷÷êgqjpqŸw¥®¦«©¤wžq@Â÷ÿªƒwÙÛ÷9ÙØø.øEŽp~Žc û%û1û1S˜<ßÀÃÂälj~a„tˆwx’q­É³³Ä¥”††’~fpx{ˆ‚—”‘§ž¸Ð÷Ë„…‹„ØyŠzŠ|Yûj1Z>7ki³ÃõÞ÷5ç ¡„ž‹!rKû@Æ÷ûªÞÝ÷QÐ÷eÓ̿λ•ˆ’‚_dcjVzxž}|žŸÇ÷)ÑãØ™§†j…‰ƒˆ†ˆ‡‰€…{•{œ¦¤Ÿ¤²ˆÄûcKq_aZVj>1j’^¢jn ­x´C¹ø¯÷^ª›•‹wÜÛ÷;ÙÎ÷í÷„q…s‡xx’q­É³³Ä¥”††’~fpx{ˆ‚—”‘§žõøc֚̕³‹’ˆŽ‚æpC~bˆˆsˆŒ‰ª‰˜“…u€‰z†ufûGŠ©n¤e ûû(û1T™2ãοº³ãÇŽ×1ZRGdk„ÅÃõÖ÷'籤Whtz]nVû4Ç÷úªÞÞ÷QÐ÷;÷[÷•½‹×±Œ‹‹Œ¤t¼CûBCû>û6³HÞÎÈ®×Æ–†…QRt‚[^l£æ‹ Œ“÷P÷?1"j?÷"®Â¨µ¯˜‚nû‹û‚¬øç²p¦÷€¬=øíØ÷Pøwû€O@~)xû5gRz€w~|}‡’•…˜‚xžuo‚xzu£sÏ´·Ÿ¶ª§²¡×²÷R›Ù›ÜšßŽœè”š“¸‹ ŒŽ‰†Øû–Ä’±–­—¦ɤ´œ¢–†vu“p­ª’£•³_­DoN|Zahbq>y4IˆxŠ„ƒ‰ƒŠˆˆ‰‰Ž‹ŽaÇdvøÇ÷^ª›•‹wø1Úf÷DÓ±÷:ÝÊÌƯ ™…l}‰xƒieû4ƒk‚bxx–}©»¸­Æ¹ª”ˆ…“}mqnw„ˆ—”¡‘¥±÷3“®¢ÇpŸdWWv!/È÷£šÌ•³‹’ˆŽ‚rpC~bˆˆsˆŒ‰ª‰˜“…u€‰z†uûü†wƒr{”€«f±Š·±”û»Çdvùª›•‹wèÚ<÷nJ÷²øÛRšÌ•³‹’ˆŽ‚bpC~bˆˆsˆŒ‰ª‰˜“…u€‰z†uL(üP„k„ixxr°¸Â¥Ö¸Œ•‡†’~gmkuƒ‡‘““Žš”³÷rÇdvøÇÿÿÒ€ÿ*€‹w÷÷)÷.ØíÜ|Øb€÷J÷ÕRû†wƒr{”€«±‰·±•³÷5÷Ùì«Ÿ‘„mŠs„l[û_†wƒr{”€«±Š·±”±÷1÷ ಪ«ž•„m€Šnƒlcdû1bƒb‚w~™Æ¨ݭ£”‰„~esopy†‰‘¤Ž–f€º÷F‘¢ªžÊm£lDTNBQŽ›Œ˜ÑmœoCJV?P‰Œ”N€•²˜²œ™ƒ’~k^„…\V€„ƒ€‘‚³ˆ—Š‘‚b€‚ˆ}…o`ÇdvøÇÿÿÒ€ÿ*€‹wó÷+÷*ÚNøE÷±÷3f“®¢ÇpŸdW`vû/ŠŒŽ”N˜°”¶š™ƒ’~k\…„\V„ƒ€‘‚³ˆ—Š‘‚ƒˆ|…oSû†wƒr{–€«±Š·±”±÷:fÝÊÂƯ ™†l…o„oeû4ƒk‚bxx–}©»»­Æ¹Ž”ˆ…“}mqnw„ˆ—N”¡‘¥û°ø¬ÙÞ÷qÞÙ÷6V˜û ÷«ªš¨â·Ïõ÷ -Óyåûû;<û1û Þ“å²÷&õ©›{oš—rŽfmc…5fS`ocyen`±ôCû}ÿ€ÿÿæ€ÿ€ÿÿõ€v÷u®ø¹ø?Ý\÷žø(”©—œ•ke‹_eƒ~PYgfmoh}”„¡¨¡§¢œ$ü_…o|k†xˆ†Š†Š…÷“÷>û“üø¿÷>û“û>û“÷z÷“÷>÷“ü’û\÷Àû>÷“÷èû4Ç÷úªÞÞ÷QÐ÷;÷[÷•½‹×±Œ‹‹Œ¤t¼CûBCû>û6³HÞÎÈ®×Æ–†…QRt‚[^l£æ‹ Œ“÷P÷?1"j?÷"®Â¨µ¯˜‚nû»Çdvùª›•‹wèÚ<÷nJ÷²øÛRšÌ•³‹’ˆŽ‚bpC~bˆˆsˆŒ‰ª‰˜“…u€‰z†uL(üP„k„ixxr°¸Â¥Ö¸Œ•‡†’~gmkuƒ‡‘““Žš”³`ÇdvøÇÿÿÒ€ÿ*€‹wó÷+÷*ÚNøE÷±÷3f“®¢ÇpŸdW`vû/ŠŒŽ”N˜°”¶š™ƒ’~k\…„\V„ƒ€‘‚³ˆ—Š‘‚ƒˆ|…oSû†wƒr{–€«±Š·±”±÷:fÝÊÂƯ ™†l…o„oeû4ƒk‚bxx–}©»»­Æ¹Ž”ˆ…“}mqnw„ˆ—N”¡‘¥û°ø¬ÙÞ÷qÞÙ÷6V˜û ÷«ªš¨â·Ïõ÷ +Óyåûû;<û1û Þ“å²÷&õ©›{oš—rŽfmc…5fS`ocyen`±ôû’Çdvø$²ñÚp÷NøAVˆxŠ„ƒ‰ƒŠˆˆ‰‰Ž‹ŽÑNû¤„k„lxgª¸Í´É­°˜ˆ„‘W]y{ˆ—”ŽŸ“­Æ÷›í—”¥€“(•¸ž”¨—œƒ•kg^f2”vøÝ‹wÝøI)íCÓ°÷Å×i÷}è}°fjQPVhГ„–Š¦§¢ ž•z_“µûˆ_“•w™–˜› žª­±»š ¨ ©¹È§Íš®—¯¯§~ždnz~s…Ž‡¤št‘v{_f=eX°~zg\}€ø &6…˜ø@˜™è–Θ©•û‚–—øA˜™è–Θ©•û“ :ff|/ ‹ ² × øÅ endstream endobj -23 0 obj -<< /Type /FontDescriptor /FontName /LMQEIT+LibertinusSerif-Italic /Flags 4 /FontBBox [ -1325 -312 1389 928 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle -12 /StemV 73 /XHeight 429 /FontFile3 25 0 R /CIDSet 24 0 R >> +13 0 obj +<< /Type /FontDescriptor /FontName /MYLNXL+LibertinusSerif-Italic /Flags 4 /FontBBox [ -1325 -312 1389 928 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle -12 /StemV 73 /XHeight 429 /FontFile3 15 0 R /CIDSet 14 0 R >> endobj -26 0 obj -<< /Length 974 >> +16 0 obj +<< /Length 787 >> stream %!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-LMQEIT-LibertinusSerif-Italic-0) -%%Title: (TeX-LMQEIT-LibertinusSerif-Italic-0 TeX LMQEIT-LibertinusSerif-Italic 0) +%%BeginResource: CMap (TeX-MYLNXL-LibertinusSerif-Italic-0) +%%Title: (TeX-MYLNXL-LibertinusSerif-Italic-0 TeX MYLNXL-LibertinusSerif-Italic 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin @@ -361,36 +168,23 @@ stream begincmap /CIDSystemInfo << /Registry (TeX) -/Ordering (LMQEIT-LibertinusSerif-Italic) +/Ordering (MYLNXL-LibertinusSerif-Italic) /Supplement 0 >> def -/CMapName /TeX-Identity-LMQEIT-LibertinusSerif-Italic def +/CMapName /TeX-Identity-MYLNXL-LibertinusSerif-Italic def /CMapType 2 def 1 begincodespacerange <0000> endcodespacerange 0 beginbfrange endbfrange -19 beginbfchar -<000D> <002C> -<000F> <002E> -<0042> <0061> -<0044> <0063> -<0045> <0064> +6 beginbfchar <0046> <0065> -<0047> <0066> -<0049> <0068> <004D> <006C> -<004E> <006D> <004F> <006E> <0050> <006F> -<0051> <0070> -<0053> <0072> -<0054> <0073> <0055> <0074> <0057> <0076> -<0059> <0078> -<084A> <00660069> endbfchar endcmap CMapName currentdict /CMap defineresource pop @@ -401,43 +195,44 @@ end endstream endobj -11 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LMQEIT+LibertinusSerif-Italic /DescendantFonts [ 27 0 R ] /ToUnicode 26 0 R >> +10 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MYLNXL+LibertinusSerif-Italic /DescendantFonts [ 17 0 R ] /ToUnicode 16 0 R >> endobj -27 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LMQEIT+LibertinusSerif-Italic /FontDescriptor 23 0 R /W 22 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +17 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MYLNXL+LibertinusSerif-Italic /FontDescriptor 13 0 R /W 12 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -28 0 obj -[ 27 [ 256 ] 32 [ 430 ] 37 [ 734 ] 56 [ 1028 ] 66 [ 506 ] 68 [ 456 561 489 ] 73 [ 619 322 ] 78 [ 905 616 551 581 ] 83 [ 428 427 358 598 ] ] +18 0 obj +[ 27 [ 256 ] 32 [ 430 ] 37 [ 734 ] 47 [ 740 ] 56 [ 1028 ] 66 [ 506 ] 68 [ 456 561 489 ] 73 [ 619 322 ] 78 [ 905 616 551 581 ] 83 [ 428 427 358 598 ] 88 [ 777 ] ] endobj -30 0 obj -<< /Length 11 >> +20 0 obj +<< /Length 12 >> stream -„€.cÞ +„€.cÞ€ endstream endobj -31 0 obj -<< /Subtype /CIDFontType0C /Length 3010 >> +21 0 obj +<< /Subtype /CIDFontType0C /Length 3373 >> stream -VDIGQQ+LibertinusSerif-BoldFø ø!‹ øø øøø= ³ ù§ûÜúŠ5â " ‚ $- %\q†ŽVDIGQQ+LibertinusSerif-Bold5.0Copyright Copyright 2012-2021 The Libertinus Project Authors.Libertinus Serif BoldLibertinus SerifAdobeIdentity %8BDEFIJNOPQSTUVM„ -„3ÈÅ<çZUõFêlñ ‚ -#V‹½ø콋½ø$½‹øˆùPüˆÛý÷>÷“÷>û“üø¿÷>û“û>û“÷z÷“÷>÷“ü’û\÷Àû>÷“÷èû½ƒ÷÷3÷Ç÷&ÇÇe«m³³­«±²k©ccikd÷¾e«m³³­«±²k©ccikdû÷ø¯¥÷|÷& ÌÈ÷ä÷øΧ®£·Ã£WQYwfhlÌDJ‹Rb|u‘¥¨”¤˜Ó®¦§Ÿ½°Ê¹ÕçDÈûàN]}rmioxthe¬w£©¢›¤䦂‘ Ð…ü”e«m³³­«±²k©ccikd÷I‰µøȵ÷÷ ÷­÷+÷M³Ý‰³ãî¡ÉÒ»µ¬Þñ÷Mû ÷,ûŠVaŠccû‹…‹u•…ˆ§‡8ü%8o‡Tˆ…‹u•…‹÷³Ð÷ ø.Â¥Ÿ¯÷Y¡û=û+ûJûM?Eq—Îøo”vùw¢­‘úû9÷9ÐøÓøùx‡o‹~û#ü'„q«°û÷ù¬¯»Ž‘‘‹¡…‘fŠ'ŠdbSŒf $……‹u‘…²‡¯„š`÷Pü¸v’š‰–•› “÷*ø#÷-ü#x’–‡š˜™’÷Pø”¨ Æ³§·Ž‘‘‹¡…‘jŠiŠhb\Œf $……‹u‘…Ä‚žvfûûäg|µ\ÇOÑ÷êµ·÷ %÷÷ +TBQIGK+LibertinusSerif-BoldFø ø!‹ øø øøø= ³ ù§ûÜúŠ9ä " í $1 %\q†ŽTBQIGK+LibertinusSerif-Bold5.0Copyright Copyright 2012-2021 The Libertinus Project Authors.Libertinus Serif BoldLibertinus SerifAdobeIdentity %/8BDEFIJNOPQSTUVXM„ +„5äyËví˜ ¦÷›  ¢ +3 +Ô †V‹½ø콋½ø$½‹øˆùPüˆÛý÷>÷“÷>û“üø¿÷>û“û>û“÷z÷“÷>÷“ü’û\÷Àû>÷“÷èû½ƒ÷÷3÷Ç÷&ÇÇe«m³³­«±²k©ccikd÷¾e«m³³­«±²k©ccikdû÷ø¯¥÷|÷& ÌÈ÷ä÷øΧ®£·Ã£WQYwfhlÌDJ‹Rb|u‘¥¨”¤˜Ó®¦§Ÿ½°Ê¹ÕçDÈûàN]}rmioxthe¬w£©¢›¤䦂‘ Ð…ü”e«m³³­«±²k©ccikd÷I‰µøȵ÷÷ ÷­÷+÷M³Ý‰³ãî¡ÉÒ»µ¬Þñ÷Mû ÷,ûŠVaŠccû‹…‹u•…ˆ§‡8ü%8o‡Tˆ…‹u•…‹÷³Ð÷ ø.Â¥Ÿ¯÷Y¡û=û+ûJûM?Eq—Î÷O”vªv¢vøù­÷½ø3½œù <‹†Òªø.äœÑ’‘‘‹¡…‘ZŠzŠa^vŒY $……‹u‘…Ñ„œˆ0û­r~}œû÷Ì2ôû7……‹u‘…¶ˆ©i‘qü5\2z†E„……‹u‘…¼ŒžŒ··Š½ $‘‘‹¡…‘E’zŽæ÷½••‘“„~–œ÷ãü"ŸrŸx‹®•Ž”øo”vùw¢­‘úû9÷9ÐøÓøùx‡o‹~û#ü'„q«°û÷ù¬¯»Ž‘‘‹¡…‘fŠ'ŠdbSŒf $……‹u‘…²‡¯„š`÷Pü¸v’š‰–•› “÷*ø#÷-ü#x’–‡š˜™’÷Pø”¨ Æ³§·Ž‘‘‹¡…‘jŠiŠhb\Œf $……‹u‘…Ä‚žvfûûäg|µ\ÇOÑ÷êµ·÷ %÷÷ ÷´÷»¼b’¦y·² ®°l‰—‡““~‡xu…¼÷$÷$2¨9BûaIo—u²¯¥¡£Š‘Š‘‰•‰••–Œ“—¬µ®yûHv´"jAn<F±gâ¨Å«¥¬Œ÷>ûwrr{y`|¨ª°ŽªÒ¢*Ó÷èµ°÷ø:â—‰ž€fcixn@PÁ÷ ÷¤ÂÀ°šdkŽpŽ¦w««¢¤ª¸UÆûû -#,û(J¢R²ff²¹|ÒÇ屓Í÷îµ€w÷¤˜‹w°÷ ÷B÷Î÷÷»sz‹Œ“†™°•Ç™Ð”‘‰Ÿ‰‘U€›ÄøV¶ÌŽ°‹”„‚f;€DˆˆŒ~‚ʆŠFûΑxsnûûûûP F¼eo¯¤}æշ™ ‘ºzvVuYdÃ÷ À‘¹žª¦œ¦›©¥¤ˆj£ûŠƒ‹‚ŒƒKá÷3³÷µ°÷û÷ ÷÷ìøC÷abU€eô=[¸í’Œ÷„£œ™àjèû'ì"û .û-Q N¶di±¼{ÒÐϮԽ˜†û’÷&Œ®±™Ÿ£›¦•–¦°q;…‹~‰‰ÍžvøÕ÷…˜‹wï÷÷<÷Üø¤÷÷0÷\½5fDfhR÷gìÌŽ°‹”„‚f;€DˆˆŒ€‚ʆŠFüJ8{‚Nˆ……‹u‘…µŒ¸ŒÂ»ªŠ¶ $‘‘‹¡…‘aŽ|”Þ÷a¥µ¬—³®yRû;7{‚bˆ……‹u‘…µŒ«Œ»Â·Š¶ $‘‘‹¡…‘ÜNŽ{”ßû{žvøRwõ÷ñ÷÷|÷÷[½Ã‹–‚‘}o€:ƒF‚‰…w…†•ƒRûT8€‰N†……‹u‘…µŒµŒÀÀ´Š¶ $‘‘‹¡…‘N€ŽÞûønj£j³¸¥¯¥©t¯a\tkm÷ôžvøÕzœí÷÷5÷÷5÷Ü÷x÷÷[‹£²®•œ³©yRû;7{‚bˆ……‹u‘…µŒ«Œ»»ªŠ¶ $‘‘‹¡…‘cŽz”ß÷0¤ŠŸˆ•ž±¶—›³§yRû;7{‚bˆ……‹u‘…µŒ«Œ»Â·Š¶ $‘‘‹¡…‘NŽ{”ß÷0÷c½5f7ckQ¶|c¨PgCekR¼ˆ©ˆ¢‹Ü—Šƒ}fO}F‚‰…w…†•ƒRûO8€‰N†……‹u‘…µŒµŒÀ¹§Š¶ $‘‘‹¡…‘aŽÞÊžvøÕí÷÷<÷÷x÷÷]¦³³Ÿ³©yRû;7{‚bˆ……‹u‘…µŒ«Œ»Â·Š¶ $‘‘‹¡…‘NŽ{”ß÷0÷\½5cD_eTˆ®‡©‹—Šƒ}fO}F‚‰…w…†•ƒRûO8€‰N†……‹u‘…µŒµŒÀ¹§Š¶ $‘‘‹¡…‘aŽÞ‰µøµ°÷ ÷Y÷ °÷cûó5÷ÒÆŸ°´¾¸œÏÃ÷2ìû)8Mn^de_zOP÷s÷WϹ:ûû \kg9k÷Õç›ÜΧûiv÷tµ÷íÎê÷÷F÷ ê÷Éü78€‰N†……‹u‘…µŒµŒÀÀ´Š¶ $‘‘‹¡…‘N€ŽÞ÷ €¡ …£÷,îï÷'ÃvÉd²®hYšWnUhkh…‰§ˆ¡‹—Šƒ}fO}F‚‰…w…†•ƒR÷ûˆ÷”‘‹‘¥¨°˜¢´»Yû 7m-4€r‘¦rûžv÷Ò÷í÷÷x÷ ¯–š˜š•“”’š”–‚“ƒ’œƒ¢¨§©µ¥m©ghemI]‡‰©†¼‹”Šƒ“}\V}I„‰…x…†•‚RûO8€‰N†……‹u‘…µŒµŒÀÀ´Š¶ $‘‘‹¡…‘N€ŽÞû²ø µÊ÷à÷»÷&Z\“e…žË{ÃØëµâ­ƒ¦t¤o«a¤]Ÿcœ}«¨¢žž¨®­kN¤ˆ–Œ•’¯‡±‚«™kr•TVYwkktt€opm—sžvªiÂh©}³y–gskkzp^[¹Ôv{ŽƒŠ{‡ûWÑ÷ؽ÷'”ã÷û÷û÷ðÊøF}|‡€~n†ŒŠÌ‰&ŠûYh”i yx¢¯‚£Âȧ§Ÿ—…‘•~r‡xuuœ½½Šöïð•™”ªˆ†äû Œ­ÎŽ¹‹‘ˆŽ†è„f€„{z„n…„‚„‚‡p;¸Õøwä÷÷5÷ø’÷÷Aߣœ‡–…‘yŠwŠxoJŒd $……‹u‘…¾†›„7ûM‹Œrbj‰ycmÑ÷;ߣœ‡–…‘yŠvŠyXeŒ` $……‹u‘…¹‰ 7û0!µUá¯Ô¨«Årx‹Œ“†™°•Ç™Ð”‘‰Ÿ‰‘U€›Äø &, –˜øD™˜™÷•®œ§“û‚¥*ˆFÂÿ ‹ ³ +#,û(J¢R²ff²¹|ÒÇ屓Í÷îµ€w÷¤˜‹w°÷ ÷B÷Î÷÷»sz‹Œ“†™°•Ç™Ð”‘‰Ÿ‰‘U€›ÄøV¶ÌŽ°‹”„‚f;€DˆˆŒ~‚ʆŠFûΑxsnûûûûP F¼eo¯¤}æշ™ ‘ºzvVuYdÃ÷ À‘¹žª¦œ¦›©¥¤ˆj£ûŠƒ‹‚ŒƒKá÷3³÷µ°÷û÷ ÷÷ìøC÷abU€eô=[¸í’Œ÷„£œ™àjèû'ì"û .û-Q N¶di±¼{ÒÐϮԽ˜†û’÷&Œ®±™Ÿ£›¦•–¦°q;…‹~‰‰ÍžvøÕ÷…˜‹wï÷÷<÷Üø¤÷÷0÷\½5fDfhR÷gìÌŽ°‹”„‚f;€DˆˆŒ€‚ʆŠFüJ8{‚Nˆ……‹u‘…µŒ¸ŒÂ»ªŠ¶ $‘‘‹¡…‘aŽ|”Þ÷a¥µ¬—³®yRû;7{‚bˆ……‹u‘…µŒ«Œ»Â·Š¶ $‘‘‹¡…‘ÜNŽ{”ßû{žvøRwõ÷ñ÷÷|÷÷[½Ã‹–‚‘}o€:ƒF‚‰…w…†•ƒRûT8€‰N†……‹u‘…µŒµŒÀÀ´Š¶ $‘‘‹¡…‘N€ŽÞûønj£j³¸¥¯¥©t¯a\tkm÷ôžvøÕzœí÷÷5÷÷5÷Ü÷x÷÷[‹£²®•œ³©yRû;7{‚bˆ……‹u‘…µŒ«Œ»»ªŠ¶ $‘‘‹¡…‘cŽz”ß÷0¤ŠŸˆ•ž±¶—›³§yRû;7{‚bˆ……‹u‘…µŒ«Œ»Â·Š¶ $‘‘‹¡…‘NŽ{”ß÷0÷c½5f7ckQ¶|c¨PgCekR¼ˆ©ˆ¢‹Ü—Šƒ}fO}F‚‰…w…†•ƒRûO8€‰N†……‹u‘…µŒµŒÀ¹§Š¶ $‘‘‹¡…‘aŽÞÊžvøÕí÷÷<÷÷x÷÷]¦³³Ÿ³©yRû;7{‚bˆ……‹u‘…µŒ«Œ»Â·Š¶ $‘‘‹¡…‘NŽ{”ß÷0÷\½5cD_eTˆ®‡©‹—Šƒ}fO}F‚‰…w…†•ƒRûO8€‰N†……‹u‘…µŒµŒÀ¹§Š¶ $‘‘‹¡…‘aŽÞ‰µøµ°÷ ÷Y÷ °÷cûó5÷ÒÆŸ°´¾¸œÏÃ÷2ìû)8Mn^de_zOP÷s÷WϹ:ûû \kg9k÷Õç›ÜΧûiv÷tµ÷íÎê÷÷F÷ ê÷Éü78€‰N†……‹u‘…µŒµŒÀÀ´Š¶ $‘‘‹¡…‘N€ŽÞ÷ €¡ …£÷,îï÷'ÃvÉd²®hYšWnUhkh…‰§ˆ¡‹—Šƒ}fO}F‚‰…w…†•ƒR÷ûˆ÷”‘‹‘¥¨°˜¢´»Yû 7m-4€r‘¦rûžv÷Ò÷í÷÷x÷ ¯–š˜š•“”’š”–‚“ƒ’œƒ¢¨§©µ¥m©ghemI]‡‰©†¼‹”Šƒ“}\V}I„‰…x…†•‚RûO8€‰N†……‹u‘…µŒµŒÀÀ´Š¶ $‘‘‹¡…‘N€ŽÞû²ø µÊ÷à÷»÷&Z\“e…žË{ÃØëµâ­ƒ¦t¤o«a¤]Ÿcœ}«¨¢žž¨®­kN¤ˆ–Œ•’¯‡±‚«™kr•TVYwkktt€opm—sžvªiÂh©}³y–gskkzp^[¹Ôv{ŽƒŠ{‡ûWÑ÷ؽ÷'”ã÷û÷û÷ðÊøF}|‡€~n†ŒŠÌ‰&ŠûYh”i yx¢¯‚£Âȧ§Ÿ—…‘•~r‡xuuœ½½Šöïð•™”ªˆ†äû Œ­ÎŽ¹‹‘ˆŽ†è„f€„{z„n…„‚„‚‡p;¸Õøwä÷÷5÷ø’÷÷Aߣœ‡–…‘yŠwŠxoJŒd $……‹u‘…¾†›„7ûM‹Œrbj‰ycmÑ÷;ߣœ‡–…‘yŠvŠyXeŒ` $……‹u‘…¹‰ 7û0!µUá¯Ô¨«Årx‹Œ“†™°•Ç™Ð”‘‰Ÿ‰‘U€›Ä÷t”vø2­•÷fø.÷øv÷ßx»·‹yŠx‹x,ûœˆ„‡‰‡•R÷>ŠŽŠŠŽ}µ…›Æ‘‘‹¡…‘fŠ`ŠXhXŒf $……‹u‘…Å„ŽxžX÷ûÐx’˜‰˜•ž “é÷‹ëûy’žˆ˜•œŽŸ“÷÷Åœ¶œ±Ã‘‘‹¡…‘uŠyŠqf`Œf $……‹u‘…Á‡qxZQû2‡…Œ‡•ø &, ˜øD™˜™÷•®œ§“û‚¥*ˆFÂÿ ‹ ³ ÷ ÷• ø½ endstream endobj -29 0 obj -<< /Type /FontDescriptor /FontName /VDIGQQ+LibertinusSerif-Bold /Flags 4 /FontBBox [ -1625 -328 1562 1014 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle 0 /StemV 81 /XHeight 433 /FontFile3 31 0 R /CIDSet 30 0 R >> +19 0 obj +<< /Type /FontDescriptor /FontName /TBQIGK+LibertinusSerif-Bold /Flags 4 /FontBBox [ -1625 -328 1562 1014 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle 0 /StemV 81 /XHeight 433 /FontFile3 21 0 R /CIDSet 20 0 R >> endobj -32 0 obj -<< /Length 946 >> +22 0 obj +<< /Length 974 >> stream %!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-VDIGQQ-LibertinusSerif-Bold-0) -%%Title: (TeX-VDIGQQ-LibertinusSerif-Bold-0 TeX VDIGQQ-LibertinusSerif-Bold 0) +%%BeginResource: CMap (TeX-TBQIGK-LibertinusSerif-Bold-0) +%%Title: (TeX-TBQIGK-LibertinusSerif-Bold-0 TeX TBQIGK-LibertinusSerif-Bold 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin @@ -445,20 +240,21 @@ stream begincmap /CIDSystemInfo << /Registry (TeX) -/Ordering (VDIGQQ-LibertinusSerif-Bold) +/Ordering (TBQIGK-LibertinusSerif-Bold) /Supplement 0 >> def -/CMapName /TeX-Identity-VDIGQQ-LibertinusSerif-Bold def +/CMapName /TeX-Identity-TBQIGK-LibertinusSerif-Bold def /CMapType 2 def 1 begincodespacerange <0000> endcodespacerange 0 beginbfrange endbfrange -18 beginbfchar +20 beginbfchar <001B> <003A> <0020> <003F> <0025> <0044> +<002F> <004E> <0038> <0057> <0042> <0061> <0044> <0063> @@ -474,69 +270,7 @@ endbfrange <0054> <0073> <0055> <0074> <0056> <0075> -endbfchar -endcmap -CMapName currentdict /CMap defineresource pop -end -end -%%EndResource -%%EOF - -endstream -endobj -10 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VDIGQQ+LibertinusSerif-Bold /DescendantFonts [ 33 0 R ] /ToUnicode 32 0 R >> -endobj -33 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VDIGQQ+LibertinusSerif-Bold /FontDescriptor 29 0 R /W 28 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> -endobj -34 0 obj -[ 374 [ 2000 ] ] -endobj -36 0 obj -<< /Length 47 >> -stream - -endstream -endobj -37 0 obj -<< /Subtype /CIDFontType0C /Length 472 >> -stream -ETXLAD+NovelDecoFøø ‹ øøøøøû ³ üû~ÁùÚø "„ $ %ˆ•ETXLAD+NovelDeco2.0Copyright 2017-2018 Robert Allgeyer. Copyright 2003-2012 Philipp H. Poll. Copyright 2012-2016 Khaled Hosny.NovelDecoAdobeIdentityvql½_ãUŸúPã`úêsùü™ŒŽ‹Ž‹ŽŠ‰Žýü™„Ž‚‹ƒ‹ƒˆ‚†„ûo†’ˆ”‹“‹“Ž”’ýý}‰ˆŠ‡‹ˆ‹ˆŒ‡ˆ újÁtvzpp z¢¢ œ¦¦vœtø &@˜‹ø§—øA˜—÷•®˜©•û‚–—øA˜—÷•®˜©•û‚– :–Âÿ ‘ -¯ -¯ Ú Ú’ -endstream -endobj -35 0 obj -<< /Type /FontDescriptor /FontName /ETXLAD+NovelDeco /Flags 4 /FontBBox [ -392 -234 1985 838 ] /Ascent 894 /CapHeight 537 /Descent -246 /ItalicAngle 0 /StemV 61 /XHeight 429 /FontFile3 37 0 R /CIDSet 36 0 R >> -endobj -38 0 obj -<< /Length 652 >> -stream -%!PS-Adobe-3.0 Resource-CMap -%%DocumentNeededResources: ProcSet (CIDInit) -%%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-ETXLAD-NovelDeco-0) -%%Title: (TeX-ETXLAD-NovelDeco-0 TeX ETXLAD-NovelDeco 0) -%%Version: 1.000 -%%EndComments -/CIDInit /ProcSet findresource begin -12 dict begin -begincmap -/CIDSystemInfo -<< /Registry (TeX) -/Ordering (ETXLAD-NovelDeco) -/Supplement 0 ->> def -/CMapName /TeX-Identity-ETXLAD-NovelDeco def -/CMapType 2 def -1 begincodespacerange -<0000> -endcodespacerange -0 beginbfrange -endbfrange -1 beginbfchar -<0176> <254C> +<0058> <0077> endbfchar endcmap CMapName currentdict /CMap defineresource pop @@ -548,54 +282,48 @@ end endstream endobj 9 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ETXLAD+NovelDeco /DescendantFonts [ 39 0 R ] /ToUnicode 38 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /TBQIGK+LibertinusSerif-Bold /DescendantFonts [ 23 0 R ] /ToUnicode 22 0 R >> endobj -39 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ETXLAD+NovelDeco /FontDescriptor 35 0 R /W 34 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +23 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TBQIGK+LibertinusSerif-Bold /FontDescriptor 19 0 R /W 18 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -40 0 obj -[ 2 [ 288 ] 9 [ 298 298 ] 13 [ 220 338 220 323 465 465 465 465 465 465 ] 27 [ 236 ] 32 [ 435 ] 34 [ 695 588 646 701 557 485 685 730 297 322 ] 45 [ 528 839 699 702 541 702 587 485 597 661 652 951 660 575 604 ] 66 [ 457 493 428 506 447 310 500 538 271 272 512 264 790 542 504 519 503 372 390 316 531 497 747 490 515 424 ] 1754 [ 742 ] 1759 [ 268 ] 1762 [ 375 375 ] 2360 [ 582 560 540 ] 2504 [ 465 465 465 465 465 465 465 465 465 465 ] ] +24 0 obj +[ 9 [ 298 298 ] 13 [ 220 338 220 323 ] 34 [ 695 588 646 701 557 ] 41 [ 730 297 322 ] 45 [ 528 839 699 702 ] 51 [ 587 ] 53 [ 597 661 652 ] 57 [ 660 ] 66 [ 457 493 428 506 447 310 500 538 271 ] 76 [ 512 264 790 542 504 519 503 372 390 316 531 497 747 490 515 ] 2361 [ 560 ] 2504 [ 465 465 465 465 465 ] 2510 [ 465 ] 2512 [ 465 ] ] endobj -42 0 obj +26 0 obj << /Length 315 >> stream - gþ¿÷ÿð?ÿÿð!0àÿÀ +g€>w—@?ïÿà@ú€ endstream endobj -43 0 obj -<< /Subtype /CIDFontType0C /Length 12156 >> +27 0 obj +<< /Subtype /CIDFontType0C /Length 8395 >> stream -VTIPMO+LibertinusSerif-RegularHø ø!‹ øø øøø= ³ úÓû”õú4Â Ò "/@ $º %"_w‡Œ”VTIPMO+LibertinusSerif-Regular5.0Copyright Copyright 2012-2021 The Libertinus Project Authors.Libertinus Serif RegularLibertinus SerifAdobeIdentity -  "#$%&'()*+-./0123456789:;BCDEFGHIJKLMNOPQRSTUVWXYZ[Úßâã 8 9 : È É Ê Ë Ì Í Î Ï Ð ÑTTM£ä&\ž·túyùn¢0ÃX»0ó¥ 4 ó -T -µ # ò œ õ },ß[ðw÷äõ°Eà‚ÎŽö}xFÇK0Š‘W¦f ¦ ; ¯![!Ý"ª#©$W$â% %@%¬&' 'Ï( (ã)>)¨*(*¨+!+ƒ+ß,q,ÒU‹½ø龋½ø$½‹øˆùNüˆÛý÷>÷’÷>û’üø½÷>û’û>û’÷z÷’÷>÷’üû\÷¿û>÷‘÷èûžõøÆwæõ÷$ù&snxUE™h”3“=‘1v…ŒŽ„••Ž”–Œ™‹Ç˜÷•á™µÌÁnžsVüûn£s¨¨££¨¨s£nnssnû”û`ú#·Þ·÷^û{÷dûH•“’Ž“j±û ÷÷›÷›÷ +YTEUQI+LibertinusSerif-RegularHø ø!‹ øø øøø= ³ úÓû”õú4Š Ñ " $‚ %"_w‡Œ”YTEUQI+LibertinusSerif-Regular5.0Copyright Copyright 2012-2021 The Libertinus Project Authors.Libertinus Serif RegularLibertinus SerifAdobeIdentity + "#$%&)*+-./035679BCDEFGHIJLMNOPQRSTUVWXYZ 9 È É Ê Ë Ì Î Ð88MŽÐ+Haô‰ìa$ãD¥âŒå˜ - ´ +4 E à ‚ Î Ž ö}xFǬ Ó"âˆ"·+×Y&%Ó•Ø3ÿ‘U‹½ø龋½ø$½‹øˆùNüˆÛý÷>÷’÷>û’üø½÷>û’û>û’÷z÷’÷>÷’üû\÷¿û>÷‘÷èû”û`ú#·Þ·÷^û{÷dûH•“’Ž“j±û ÷÷›÷›÷ ÷«¯ˆ•„’€Œû %.û;ûNû”ùGw÷?Þ÷’÷¸‡÷{ûd÷H‰ƒ„ˆƒ¬e÷ ûû›û›û -ûkgŽ’„–Š÷ ñè÷;÷Nûâû÷x÷²óêluvol¥ˆž‰œ…tvg]W~„’„Ç–Å»ÑÇq²cûl÷sdz÷–÷£÷s˜™§—•‡•ûo~ty‘‚”ûâõÄõĶn£s¨¨££¨¨s£nnssnû{ùwš÷ª÷¹ùbûýU´2®øº®²â÷eâ÷xØ÷ Ù÷îsà_Å®qa©U(-û -ûZ ¬'ÂTo§­}²øÝœ›…€—ªq¦?û/ˆL}X9uZ‚y.÷?â÷ŠÈ¹¸2‰¬øÕw÷gØ÷´÷÷ïnjȘ‰‹‡TiVr3b€”…ž¹¡‘žœŽsiûÚ8p†Eˆ……‹v‘…¼Œ¯ŒÁ»£Š½ $‘‘‹ …‘EŽzÞ2‹Ìø’®¿ÞAÖ@â÷BãÌÈøhvžy œ©¡“‰‘‰’Ô‰’…”“¤¥¯Ô¯¾r+KtWPOABä)'{[P‹¾«÷C«¹‰‹˜À•ÖŒ©…~‰DzzrgûF»ÐÏðìĶ·×÷3·:ÌûF9O2®øº®ºÔ÷FÙXãð÷køÓ¶³qKYQ>(}kœ‹˜èÄÕ{ûû2phX‚¢™~—wvvx{cßpÇ÷ õØ÷÷9²P•Šðݲ¢´À©„£s¤¡uhœWû'a+j}•w£®¬žËЗ¥2‰¬÷!ºøw÷£×øB÷o8÷¸½‹²“‰k„†…†‡L>ûû9/û#|Ž‘p©÷`/]e‹`ˆ……‹v‘…«Œ³Œ¹²±Š« $‘‘‹ …‘Zv‰ºçЙšž—•‡‘€û3÷´û´ûS¾ÝÒ÷Ðé2€®÷ѽ÷"Î’w÷Óäè÷Ó÷Q,YEOe~¤Ÿ|œ~zšvxxzwbàiÄ÷ãç÷ìHâû`f‚„yŸ÷;‡°«†»©­´؛τè…RU†VfgŽhiû´ŸÀ±¯̾`ûûÒ’õ÷TõÑõÑÇn£s¨¨££¨¨s£nnssn÷¾n£s¨¨££¨¨s£nnssnû õø¦¬¹ÏGÛõF¬çÞæ÷øЩ³£ÄıRJ\|ncfJP†P`]„“ˆ““”Ž’·£Œ£˜¤”œŸ›¢œº­É·ÚæIÇ%ÖVa}rnmsvoeh¤ƒ›žŸ—¢˜‰‘‡應‘šÚ©ü¥n£s¨¨££¨¨s£nnssn÷!‰¬÷fµø wŽ÷)÷/ÚÂ÷%˜‘£÷gÅû=—ie‡[ˆ……‹v‘…°ŒÂŒ²´±Š® $‘‘‹ …‘diŽz»ûbøЂ|p€~ûwü¬qMm…_ˆ……‹v‘…¥Œ¬Œ©´½Š° $‘‘‹ …‘eŽ\›´÷÷`u„Ž•ñ÷—‘éû¤­‰¬÷Á­÷‹­õà÷lÜièø÷(ùgUŒŒd……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…²ŒÁŒ°¯¥‰ß $ô÷[ÀïáëHÂ4¤ø½¤¸¿ÁÎnâûNhU‰g¶ûÍÐô÷Ä>1BoNû,E~¥ÈøDÀ‹•âøÃÔm%6Pm8Aç´øâ°°æ÷ùìä¹äÏ”†„‘€=DGl.û.÷,÷&á¢Ó¯¸Ƚŧ¿÷Â95¥—‡•Ž–‘†¿„»ÂX^³û6DlUPINc)#ûBôû&÷k÷'‰­øÙ­õàøë÷(ùgVŒŒc……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…²ŒÀŒ±°µ‰ò $÷!÷NË÷Š÷Nû-÷-ûTDT‰d¶üÅøt®®™¼÷lÒûCû.û^û Yû!)€Ÿ«Ž‹²÷°±Ïw£w÷T³wôàÚ÷­÷ý0÷H·—ŸÁÖÖ›cF¡—‰–•Ö†´|뉓ŠŒˆêˆzƒŠsû“mPŒŒc……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…Œ°ÇŒ¬÷k»Û‰‹™½šÍ“¾‘~ˆCwhP?ûa}›º÷qæàŽt^Ž‘… ‹‘‘Š¥Š§­§Œ­Œ£Ú…‘v‹……Tˆˆ~6Fžv÷Ù±Ïw£w÷T³wôàÚ÷¯÷×àŽt^Ž‘… ‹‘‘ꊤŠ¨­­Œ¥Œ¥Ú…‘v‹……Tˆˆ~6.÷HÁ—•·¸õ¤cF¡—–Ž“Ö†´|뉓ŠŒˆÚˆz†Šrû“kRŒŒc……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…®Œ½Œ¸¸¼Š® $‘‘‹ …‘EŽzÞ÷]÷¯÷ƒ¯÷Õ¯°ëø!àø ù&û;ûAûûpûH÷û÷S÷ -è¤ÅÏ€”†“–÷®œ•¨Ž‘‘‹£…‘sŠrŠcj\Œ_ $……‹s‘…‡¦‡cû-kiH…Uû27÷=÷÷C÷÷ ÷÷%´85¥–Š––‰µ†³{Ó•Of®û÷Džv÷×µ÷°wõà÷êàøþ÷ø%ޜю‘‘‹ …‘bŠXŠef[Œ_ $……‹v‘…шœ†8û4ûê÷4ޜю‘‘‹ …‘eŠbŠXYbŒe $……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…·Œ»Œ±¯¼Š· $‘‘‹ …‘EŽzÞ÷[÷êû[8z†Eˆ……‹v‘…¸Œ»Œ°°»Š· $‘‘‹ …‘EŽzÞû•žvùwõà÷S÷ø%ޜю‘‘‹ …‘_Š\ŠdjZŒ\ $……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…¸Œ¼Œ¯¯»Š¸ $‘‘‹ …‘EŽzÞû|û@¸ùy¬÷!à÷vøŸޜǎ‘‘‹ …‘eŠ`ŠdgVŒY $……‹v‘…Ûˆœ†8üNûHWojx}—š„—…‚˜r}mvugÀy¡¸ª“®´·°Å¿÷#q‹²øôwõà÷)÷i¦ç‰‹•½•Ì‘¿€‰CwfP!Ldyž¾ø2ޜю‘‘‹ …‘^Š\Šeg\Œ] $……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…Œ²ÄŒ­÷±–v¨vø¢÷û÷‹w›÷ -Œ°ø÷1Mù+÷:‡ŠJˆ……‹v‘…°Œ³Œ©©¹Š¬ $‘‘‹ …‘GŽˆ…Þmø9‡Á™Ï‘‘‹ …‘û‰ûhü‡ˆ‡‰‰ˆ“ˆKûaøû%……‹v‘…Ї‘‰„@Mcü0…OrR†……‹v‘…©Œ«Œ££³Š© $‘‘‹ …‘I†ªÃ£±ø%÷cü›„Ž‘ƒ‘‘’“U÷uø¥÷%–v¨vøü¬ñ¼ø)¼xøÀø”ûÛx‹€„‡|°nûëøGû……‹v‘…¶ˆ©h‘qü52z…E„……‹v‘…¶Œ¸Œ£¢¹Šµ $‘‘‹ …‘E’zæ÷Æ­‹š“‘–€uœ¸÷ñüM|–˜‚›™”—žø䜑ђ‘‘‹ …‘bŠ\Šsv]Œ_ $……‹v‘…xÑ„œ‡0÷(¯ø诰ëøIëù.÷Ý÷cû#÷ûGûVûû.ûVûY÷#û÷>÷ã»Ù³ġÓßûã÷¹÷öûû^ûG5"ûûû÷÷T÷fîàî~‰¬÷­÷­†wóà÷uèìóøŸü%8z†Eˆ……‹v‘…¸Œ¼Œ¯®ÆŠ½ $‘‘‹ …‘=sÞ÷>„¡£ˆ®÷JÂ÷ àÆdöûMeP„cÜfWŒŒc……‹v‘…ìшœ†8નš®ÓÐÐtûûW_*rcŽ€÷(ûeı·É­ø诰ëøIëù.÷Ý÷cû#÷ûGûVûû.ûVûI÷ û -÷+xNlT[g`„„…ƒ†ƒ²w—œ˜š˜™•™˜Ž“¶¯xu²pº½pÒʵ¥Ã²z—pugnacŸa¡\Y¡Q…„‹Š„½¯¼ «”ߙζ·Ë³Ä¡Óßûã÷¹÷öûû^ûG5"ûûû÷÷T÷fîà‰v÷¹­÷¹­†wóà÷lç¶÷Q÷÷=ßž|t™öûB\¨¶aÇšœ•’Š”‡“^r­¶qû÷f¶™å¿ô½z´g­¸[MŽL\a„gnh\ŒŒ\……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…¸ŒºŒ±±ºŠ· $‘‘‹ …‘¶EŽzÞÞø„ÈÓuû -ûDo*[÷y¨—®ÒF¯~÷/ø\­¾Ò÷‚߸øù “Qž)&2H!"â[ãiÇtÕo):^a;.O¶îux~‰†>q—Z¸Ê§t丶–¡®ů¯ÈËõ;º9ªO¡'±ßþÃÆìªMIŸ–‰˜Œ”’‡»‡§À¶‰¬øÓ²“w÷àÐ÷ò÷øË•±¯¡Öºq>œ–™Œ”°„¹†¾Š¸Œ‰ŠЈiû†<5°>û -Že‰‰‰Š‡^W€[‡•—Š—ÐÛŸ¹¥Í¼°•eNü8z†;ˆ……‹v‘…¼Œ¾Œ³±¾Š½ $‘‘‹ …‘;ŽzÞö´øÛ¬âà÷ö¼÷@øŸޚ؎‘‘‹ …‘\ŠZŠddbŒd $……‹v‘…Ljœ†8û¶û`÷dñ÷a¼÷÷F÷xۜǒ‘‘‹ …‘eŠbŠtvZŒ] $……‹v‘…Ö„œˆ:ûŠû|ûû=[b¨mZº‰×Ìí”vù¬Œ÷:÷î÷øTøúÕ†‹pvUû2ü%‡û4ø+tÇ‘˜Ï’‘‘‹ …‘cŠ^ŠgghŒj $……Œv‘…†“z¦F÷Yü”{‘’„•–’”™‘÷cø’žº›²Ê’‘‘‹ …‘mŠhŠtt^Œb $……‹v‘…ø!”vù¬÷4÷B÷ATÂ÷Ä÷ôù¾øÉû0üFˆŒûø:zÁ®Ž­Ž‘‘‹ …‘bŠ_ŠcjhŒk $……‹v‘…ìÀˆ¡l”q¢IŽ‚Šƒƒzûû¹†Œû&øN®¦®‘‘‹ …‘jŠ_ŠdhnŒn $……‹v‘…¸ˆ’ŠžU÷Pü±{‘€–˜‘•œ’÷)÷㟔Ž€z‘÷ûàz‘—–’–š÷]ø¯˜®¢ÂŽ‘‘‹ …‘nŠkŠqq_Œc $……‹v‘…ô´ˆ³ˆ|`õ‰¬øÛ¬Ž÷*û*ùý ÷E÷ª÷Dû7÷+Ðø®ñû-÷f˜…••”Œ””—÷÷EÊ®¸ª˜¸‘‘‹ …‘mŠfŠttaŒc $……‹v‘…·ˆž…sjûûCƒ……‡‡ˆ‡’†û÷8n³‡–ÃŽ‘‘‹ …‘fŠfŠcdjŒm $……Œv‘…µˆž†´P÷"û_“‘ƒ…‡‚…ƒû(ûZäi]k^‡……‹v‘…©Œ°Œ¢¢µŠ³ $‘‘‹ …‘_Žx£­÷÷M“‘‘‘Žˆƒ‘÷ûD§c€Sˆ……‹v‘…°Œ°Œ³²¬Š© $‘‘Š …‘ÐaŽz•aÅ ‰¬øÛ¬Œ÷>ÜàÁ÷Kû÷Ô÷å÷÷©Œ›œ©÷ ÷l§¾¡”¸‘‘‹ …‘ØoŠkŠttgŒk $……‹v‘…ô·ˆ›vcûûeƒ|†Œ‚›û÷asµ•ÃŽ‘‘‹ …‘gŠeŠcdjŒm $……Œv‘…µˆœ…®Q÷ûqnŽ€fû8z†;ˆ……‹v‘…¼Œ¿Œ²²½Š½ $‘‘‹ …‘Ô;ŽzÞ½‹±ø̲´ø­ø»‰ÕƗ¿„€Ž~lDrTû‰ûU‡zƒ”Ž‘”Ôõ÷L÷™÷ -÷, ¦Ž’–’†ƒl‰mûq\*Žf‡URƒbˆ•”‰– Ð±¯ÖŒ÷g‘ˆ…†ˆ…†„*ûûRûž%û,…ƒ‰ƒ„†™ø¦ï‰‹*´b»ø¬¯ÞKØ÷5Ù´÷¹»l‘–p½±¯œŸ l‰—‡”€‘…„z~nŠ²¹÷'÷"=¦B98URs—¢¨ ˜’Š’‰ŠŽŠ‘–ªµ–±­ºzû„ˆ‡ˆŠ5v´+sFVG9ÃqÑ®©“­·Ÿ›÷Mû~…„ƒ…vqitoYu³ª¸ ¹ÕžN­ˆvø·÷^©œ•‹wÙÚ÷iá§÷;ø……‡”÷L«Ì³‹’‡Ž‚sr@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<ü|dŠyˆ}§ƒ‡—‘‘•”“”•—‘‹–‚x¢©…®ñ÷ è÷3÷1Ö4`ezol’l¢¥©”¨ȽA*û]5,lv¡¤w÷Ž •˜–û¼ø¬°áø"懔ƒ‚Œ_i`u`BNÕ÷ ÷»ÍÍÆ“hhpŽ™‚  §˜ªÂR³+(!2û"ûÓ2÷ÇÀžÝ½[º„¦÷ï®÷^©œ•‹w²á÷pÚ§÷â½”Œ„Žs“h‹“ˆŒ‘k¡®šÈ’‘‘‹š…‘K‚ž¼øY̳‹’‡Ž‚³r@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<û„‰‰„‡bœjI_uec``qPAûÉ1÷§²°Ÿ³¼–Õx‰ƒ}kfk{rUSÆ÷Ó™³š ºªµŽŸ¯¤~tŸ™{Ž„l ¼÷c²÷ ¬°ß÷[áøèefn{Qga ¾lw¬¹Å÷ž‰—’‘–ßmåû4û8û,S™U¬ec­ºsÓ×Á®¿³ˆ•…Œûš÷Q÷žÑ”£±¸v7‚‡†€ûˆžvø²÷­ëÚ÷C÷÷ è”™”Ÿˆ†ûÄ÷.¹£¬©›h™y“–} œ£ Ÿœ€v›qqŽe7.Bû0cXy†ƒ~†ŒŠÐû 8{‡U‡……‹v‘…®Œ®Œ³³»Š® $‘‘‹ …‘=…ÞUû‚°÷QÈlv÷ª÷pÖUª‹w«ÐbÝAÀ÷ZÛÂØ øPøžŸ x›pq[ziqÔ “jŸP29O/U£l§p´`os{`igŸo¥~Õ0Uko]`4ÝpØ÷÷&Ì÷«|¤n£«dEŒfÒ`yr‰ˆsŠ|Š†nh™¶Ÿ‘ —œ}£§„²ãÜÂíº}¦n©•’Ÿ™˜’’ˆ‚‘Ø ƒ˜–Õ0ûÌü!ˆ–›‰˜ª§Ž™½µŠ{¨²u—}qC!e1g7¨Ï­¤¨®Ô ÷O÷µ.\xf7‚ÒËѤ¯ÂÊ­]8{žvø¿÷^©œ•‹wãÚ÷fÚÎ÷;÷² ”—“”°±¾¡²Ÿ ~t—•wpmû,9‡W††…‹v…§Œ­Œ³³¬Š¬ $‘‹ †‘S€Ý÷)‡¼t©¡zl—hZO~GNŠŠ‹ŠŠˆ‡†…—Œ÷uÖ̳‹’‡Ž‚ær@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<üI8‡Q‡……‹v‘…¬Œ°Œ³±¬Š§ $‘‘‹ …‘X‚Þû¯žvøI’‹w÷ï‹wåï3Úª÷I÷÷[ʽˋ†Žƒo€c‚F‚‰…{…†•…RûW8€ˆN†……‹v‘…¬Œ²Œ³³±Š¬ $‘‘‹ …‘ªN€Þ´0øqq£q£§£¦ £v§p¬sossû®ûs·øú’‹w÷ï‹wîï5Úª÷÷Ñû…û‡ûY€~’„•›u€vwyn¯}ž ¿Žª°º±§Ó÷Q÷gʽˋ†Žƒo€c‚F‚‰…{…ªÁ†–…R´}÷®q£q£§£¦ £v§p¬sossa‰¬÷F¤÷8¬÷f©œ•‹wáÚ÷5÷.çá÷8€‡S‡……‹v‘…¬Œ­Œ³®¬Š¢ $‘‘‹ …‘b€Þ➊™Š•ˆ–ƒ”‚—{Ô)¨d—xŒˆŒ‰ŽŸŒ¡ŒŸªªŠŸ $‘‘‹ …‘irp­û÷:‡ˆ‹ãæ©«®“³‘‘‹ …‘tŠoŠgefŒt $……‹v‘…Çsh‚tnliqxu{pxˆ÷ñë̳‹’‡Ž‚ór@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<û¶žvùF•‹wêÚ°ê÷8€†Nˆ……‹v‘…®Œ°Œ³³±Š¬ $‘‘‹ …‘NŽ€ÞøaÐ̳‹’‡Ž‚r@}cˆ‰ƒ{‘…Ň‘ˆ@÷€žvø¿ŽwéÚ÷SÚ÷SÚ¼÷>÷úŠ©‰¯†•‰‰Žƒo€q‚F‚‰…{…Á†–†QûW9~†T‡……‹v‘…©Œ±Œ³³ªŠ© $‘‘‹ …‘X€Ý÷8Ü ”—“”²³°Ÿª±§sHûB9ƒ†U‡†…‹v…¤Œ°Œ³³¬Š¤ $‘‹ †‘Y‚Ý÷3™‹™Š—À»¸˜²±¡uHûD9†W‡†…‹v…¤Œ°Œ³³®Š§ $‘‹ †‘T‚Ý÷2ä|Ñ3XMxTWˆˆ…†‰”´‚d«WQWi\a¼††…„Š—žvø¿Žwë×?Ú÷`ÚÔ÷L÷ú´…„…‰”Š¦‰²†•¬‰‰Žƒo€q‚F‚‰…{…Á†–†QûW9‡O†……‹v‘…©Œ³Œ³³©Š© $‘‘‹ …‘XÝ÷8Ì ”—“”°±¸¡²Ÿ ~t—•wpmû,9‡W††…‹v…©Œ«Œ³³¯Š© $‘‹ †‘S€Ý÷)‡»tª¡zl—hÔZS~GPY®ø®´á÷Žá´÷a%Ïû÷"˼¢¬­¸·ŸÊÈóR÷ û-IUp`fg`xQL÷Y÷[áÀ=û$ûJl\#i÷Øâ äåhûiv÷t­ø¹ŽwÛ×?Ú÷€áÚ÷0øŠ©‰¥†•Ö‰‰Žƒo€q‚F‚‰…{…Á†–†Qü?8€†Nˆ……‹v‘…®Œ°Œ³³»Š¬ $‘‘‹ …‘D€Þ÷˜Š•‡¤©…«ýœ²´º¹¦ÉÜêõ@í%]Xm^cÚ……‡‹Š•æžf«¥¹©¨ËÂCû9n%ûyh›yw‡‘¯÷J ”—™Xûiv÷t·yø­Žw®á÷uÚÖ÷îû8€‡Nˆ……‹v‘…®Œ°Œ³³±Š¬ $‘‘‹ …‘NŽ€ÞÎø¤™‡–€„…ƒ€ƒÖ~y‡ˆ“Ÿkd”aû1'û.Êû÷$¦¬‘•œ¶¢˜vsøŸu|sÖûzyŠ†~„tpŠ{Q4µ÷+óµÕÛ¶©¦r¡ûJžv÷ëíMÉŽwï×?Ú˜÷D÷ú‰³Š¥†•”‰‰Žƒo€q‚F‚‰…{…Á†–†QûW8‡M‡……‹v‘…®Œ²Œ³³¹Š® $‘‘‹ …‘EŽÞ÷¤¥—¢—›–¢¬—””‰€“Ä’—~œ£¢¤¤¨žy¨a\b_dt˜…€†“û8¬‰vø*¬‹w£zÒ÷!×j»÷ZŽ\a••Œª’‘‹‰’„¦¦‡°Ãò¦îÏZ³G¤¦O¢cšÂ´¯¢­¡Åƒ6˜‘…ŸŒ‘‘–Ž¯°Œ¬¦l[™WAH[KB¬lØkÞižv`Z[vfªdu˜–u¢€·…¤j…‘xŠ……û‚Â÷í²÷$”äÚ¶øA}‡ƒ~†ŒŠÆûÁDªo¹¹½¡·²‰•…‘Œwqmƒqp…©É÷‘ó•™”Ÿˆ†û ²̳‹‘ˆŽ†‡‚‡†‚€…†~ˆ‡ˆ„Ž’ûtº„¦ø +ûkgŽ’„–Š÷ ñè÷;÷Nûâû÷x÷²óêluvol¥ˆž‰œ…tvg]W~„’„Ç–Å»ÑÇq²cûl÷sdz÷–÷£÷s˜™§—•‡•ûo~ty‘‚”ûâõÄõĶn£s¨¨££¨¨s£nnssnû{ùwš÷ª÷¹ùbûýU´÷!‰¬÷fµø wŽ÷)÷/ÚÂ÷%˜‘£÷gÅû=—ie‡[ˆ……‹v‘…°ŒÂŒ²´±Š® $‘‘‹ …‘diŽz»ûbøЂ|p€~ûwü¬qMm…_ˆ……‹v‘…¥Œ¬Œ©´½Š° $‘‘‹ …‘eŽ\›´÷÷`u„Ž•ñ÷—‘éû¤­‰¬÷Á­÷‹­õà÷lÜièø÷(ùgUŒŒd……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…²ŒÁŒ°¯¥‰ß $ô÷[ÀïáëHÂ4¤ø½¤¸¿ÁÎnâûNhU‰g¶ûÍÐô÷Ä>1BoNû,E~¥ÈøDÀ‹•âøÃÔm%6Pm8Aç´øâ°°æ÷ùìä¹äÏ”†„‘€=DGl.û.÷,÷&á¢Ó¯¸Ƚŧ¿÷Â95¥—‡•Ž–‘†¿„»ÂX^³û6DlUPINc)#ûBôû&÷k÷'‰­øÙ­õàøë÷(ùgVŒŒc……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…²ŒÀŒ±°µ‰ò $÷!÷NË÷Š÷Nû-÷-ûTDT‰d¶üÅøt®®™¼÷lÒûCû.û^û Yû!)€Ÿ«Ž‹²÷°±Ïw£w÷T³wôàÚ÷­÷ý0÷H·—ŸÁÖÖ›cF¡—‰–•Ö†´|뉓ŠŒˆêˆzƒŠsû“mPŒŒc……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…Œ°ÇŒ¬÷k»Û‰‹™½šÍ“¾‘~ˆCwhP?ûa}›º÷qæàŽt^Ž‘… ‹‘‘Š¥Š§­§Œ­Œ£Ú…‘v‹……Tˆˆ~6÷Džv÷×µ÷°wõà÷êàøþ÷ø%ޜю‘‘‹ …‘bŠXŠef[Œ_ $……‹v‘…шœ†8û4ûê÷4ޜю‘‘‹ …‘eŠbŠXYbŒe $……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…·Œ»Œ±¯¼Š· $‘‘‹ …‘EŽzÞ÷[÷êû[8z†Eˆ……‹v‘…¸Œ»Œ°°»Š· $‘‘‹ …‘EŽzÞû•žvùwõà÷S÷ø%ޜю‘‘‹ …‘_Š\ŠdjZŒ\ $……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…¸Œ¼Œ¯¯»Š¸ $‘‘‹ …‘EŽzÞû|û@¸ùy¬÷!à÷vøŸޜǎ‘‘‹ …‘eŠ`ŠdgVŒY $……‹v‘…Ûˆœ†8üNûHWojx}—š„—…‚˜r}mvugÀy¡¸ª“®´·°Å¿÷#q‹²øôwõà÷)÷i¦ç‰‹•½•Ì‘¿€‰CwfP!Ldyž¾ø2ޜю‘‘‹ …‘^Š\Šeg\Œ] $……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…Œ²ÄŒ­÷±–v¨vø¢÷û÷‹w›÷ +Œ°ø÷1Mù+÷:‡ŠJˆ……‹v‘…°Œ³Œ©©¹Š¬ $‘‘‹ …‘GŽˆ…Þmø9‡Á™Ï‘‘‹ …‘û‰ûhü‡ˆ‡‰‰ˆ“ˆKûaøû%……‹v‘…Ї‘‰„@Mcü0…OrR†……‹v‘…©Œ«Œ££³Š© $‘‘‹ …‘I†ªÃ£±ø%÷cü›„Ž‘ƒ‘‘’“U÷uø¥÷%–v¨vøü¬ñ¼ø)¼xøÀø”ûÛx‹€„‡|°nûëøGû……‹v‘…¶ˆ©h‘qü52z…E„……‹v‘…¶Œ¸Œ£¢¹Šµ $‘‘‹ …‘E’zæ÷Æ­‹š“‘–€uœ¸÷ñüM|–˜‚›™”—žø䜑ђ‘‘‹ …‘bŠ\Šsv]Œ_ $……‹v‘…xÑ„œ‡0÷(¯ø诰ëøIëù.÷Ý÷cû#÷ûGûVûû.ûVûY÷#û÷>÷ã»Ù³ġÓßûã÷¹÷öûû^ûG5"ûûû÷÷T÷fîà‰v÷¹­÷¹­†wóà÷lç¶÷Q÷÷=ßž|t™öûB\¨¶aÇšœ•’Š”‡“^r­¶qû÷f¶™å¿ô½z´g­¸[MŽL\a„gnh\ŒŒ\……‹v‘…шœ†8ü%8z†Eˆ……‹v‘…¸ŒºŒ±±ºŠ· $‘‘‹ …‘¶EŽzÞÞø„ÈÓuû +ûDo*[÷y¨—®Ò¶‰¬øÓ²“w÷àÐ÷ò÷øË•±¯¡Öºq>œ–™Œ”°„¹†¾Š¸Œ‰ŠЈiû†<5°>û +Že‰‰‰Š‡^W€[‡•—Š—ÐÛŸ¹¥Í¼°•eNü8z†;ˆ……‹v‘…¼Œ¾Œ³±¾Š½ $‘‘‹ …‘;ŽzÞö´øÛ¬âà÷ö¼÷@øŸޚ؎‘‘‹ …‘\ŠZŠddbŒd $……‹v‘…Ljœ†8û¶û`÷dñ÷a¼÷÷F÷xۜǒ‘‘‹ …‘eŠbŠtvZŒ] $……‹v‘…Ö„œˆ:ûŠû|ûû=[b¨mZº‰×Ìí”vù¬Œ÷:÷î÷øTøúÕ†‹pvUû2ü%‡û4ø+tÇ‘˜Ï’‘‘‹ …‘cŠ^ŠgghŒj $……Œv‘…†“z¦F÷Yü”{‘’„•–’”™‘÷cø’žº›²Ê’‘‘‹ …‘mŠhŠtt^Œb $……‹v‘…õ‰¬øÛ¬Ž÷*û*ùý ÷E÷ª÷Dû7÷+Ðø®ñû-÷f˜…••”Œ””—÷÷EÊ®¸ª˜¸‘‘‹ …‘mŠfŠttaŒc $……‹v‘…·ˆž…sjûûCƒ……‡‡ˆ‡’†û÷8n³‡–ÃŽ‘‘‹ …‘fŠfŠcdjŒm $……Œv‘…µˆž†´P÷"û_“‘ƒ…‡‚…ƒû(ûZäi]k^‡……‹v‘…©Œ°Œ¢¢µŠ³ $‘‘‹ …‘_Žx£­÷÷M“‘‘‘Žˆƒ‘÷ûD§c€Sˆ……‹v‘…°Œ°Œ³²¬Š© $‘‘Š …‘ÐaŽz•aÅ*´b»ø¬¯ÞKØ÷5Ù´÷¹»l‘–p½±¯œŸ l‰—‡”€‘…„z~nŠ²¹÷'÷"=¦B98URs—¢¨ ˜’Š’‰ŠŽŠ‘–ªµ–±­ºzû„ˆ‡ˆŠ5v´+sFVG9ÃqÑ®©“­·Ÿ›÷Mû~…„ƒ…vqitoYu³ª¸ ¹ÕžN­ˆvø·÷^©œ•‹wÙÚ÷iá§÷;ø……‡”÷L«Ì³‹’‡Ž‚sr@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<ü|dŠyˆ}§ƒ‡—‘‘•”“”•—‘‹–‚x¢©…®ñ÷ è÷3÷1Ö4`ezol’l¢¥©”¨ȽA*û]5,lv¡¤w÷Ž •˜–û¼ø¬°áø"懔ƒ‚Œ_i`u`BNÕ÷ ÷»ÍÍÆ“hhpŽ™‚  §˜ªÂR³+(!2û"ûÓ2÷ÇÀžÝ½[º„¦÷ï®÷^©œ•‹w²á÷pÚ§÷â½”Œ„Žs“h‹“ˆŒ‘k¡®šÈ’‘‘‹š…‘K‚ž¼øY̳‹’‡Ž‚³r@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<û„‰‰„‡bœjI_uec``qPAûÉ1÷§²°Ÿ³¼–Õx‰ƒ}kfk{rUSÆ÷Ó™³š ºªµŽŸ¯¤~tŸ™{Ž„l ¼÷c²÷ ¬°ß÷[áøèefn{Qga ¾lw¬¹Å÷ž‰—’‘–ßmåû4û8û,S™U¬ec­ºsÓ×Á®¿³ˆ•…Œûš÷Q÷žÑ”£±¸v7‚‡†€ûˆžvø²÷­ëÚ÷C÷÷ è”™”Ÿˆ†ûÄ÷.¹£¬©›h™y“–} œ£ Ÿœ€v›qqŽe7.Bû0cXy†ƒ~†ŒŠÐû 8{‡U‡……‹v‘…®Œ®Œ³³»Š® $‘‘‹ …‘=…ÞUû‚°÷QÈlv÷ª÷pÖUª‹w«ÐbÝAÀ÷ZÛÂØ øPøžŸ x›pq[ziqÔ “jŸP29O/U£l§p´`os{`igŸo¥~Õ0Uko]`4ÝpØ÷÷&Ì÷«|¤n£«dEŒfÒ`yr‰ˆsŠ|Š†nh™¶Ÿ‘ —œ}£§„²ãÜÂíº}¦n©•’Ÿ™˜’’ˆ‚‘Ø ƒ˜–Õ0ûÌü!ˆ–›‰˜ª§Ž™½µŠ{¨²u—}qC!e1g7¨Ï­¤¨®Ô ÷O÷µ.\xf7‚ÒËѤ¯ÂÊ­]8{žvø¿÷^©œ•‹wãÚ÷fÚÎ÷;÷² ”—“”°±¾¡²Ÿ ~t—•wpmû,9‡W††…‹v…§Œ­Œ³³¬Š¬ $‘‹ †‘S€Ý÷)‡¼t©¡zl—hZO~GNŠŠ‹ŠŠˆ‡†…—Œ÷uÖ̳‹’‡Ž‚ær@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<üI8‡Q‡……‹v‘…¬Œ°Œ³±¬Š§ $‘‘‹ …‘X‚Þû¯žvøI’‹w÷ï‹wåï3Úª÷I÷÷[ʽˋ†Žƒo€c‚F‚‰…{…†•…RûW8€ˆN†……‹v‘…¬Œ²Œ³³±Š¬ $‘‘‹ …‘ªN€Þ´0øqq£q£§£¦ £v§p¬sossa‰¬÷F¤÷8¬÷f©œ•‹wáÚ÷5÷.çá÷8€‡S‡……‹v‘…¬Œ­Œ³®¬Š¢ $‘‘‹ …‘b€Þ➊™Š•ˆ–ƒ”‚—{Ô)¨d—xŒˆŒ‰ŽŸŒ¡ŒŸªªŠŸ $‘‘‹ …‘irp­û÷:‡ˆ‹ãæ©«®“³‘‘‹ …‘tŠoŠgefŒt $……‹v‘…Çsh‚tnliqxu{pxˆ÷ñë̳‹’‡Ž‚ór@}cˆ‰ƒ{‘…ŽŽ‹Ž·ˆ–‹<û¶žvùF•‹wêÚ°ê÷8€†Nˆ……‹v‘…®Œ°Œ³³±Š¬ $‘‘‹ …‘NŽ€ÞøaÐ̳‹’‡Ž‚r@}cˆ‰ƒ{‘…Ň‘ˆ@÷€žvø¿ŽwéÚ÷SÚ÷SÚ¼÷>÷úŠ©‰¯†•‰‰Žƒo€q‚F‚‰…{…Á†–†QûW9~†T‡……‹v‘…©Œ±Œ³³ªŠ© $‘‘‹ …‘X€Ý÷8Ü ”—“”²³°Ÿª±§sHûB9ƒ†U‡†…‹v…¤Œ°Œ³³¬Š¤ $‘‹ †‘Y‚Ý÷3™‹™Š—À»¸˜²±¡uHûD9†W‡†…‹v…¤Œ°Œ³³®Š§ $‘‹ †‘T‚Ý÷2ä|Ñ3XMxTWˆˆ…†‰”´‚d«WQWi\a¼††…„Š—žvø¿Žwë×?Ú÷`ÚÔ÷L÷ú´…„…‰”Š¦‰²†•¬‰‰Žƒo€q‚F‚‰…{…Á†–†QûW9‡O†……‹v‘…©Œ³Œ³³©Š© $‘‘‹ …‘XÝ÷8Ì ”—“”°±¸¡²Ÿ ~t—•wpmû,9‡W††…‹v…©Œ«Œ³³¯Š© $‘‹ †‘S€Ý÷)‡»tª¡zl—hÔZS~GPY®ø®´á÷Žá´÷a%Ïû÷"˼¢¬­¸·ŸÊÈóR÷ û-IUp`fg`xQL÷Y÷[áÀ=û$ûJl\#i÷Øâ äåhûiv÷t­ø¹ŽwÛ×?Ú÷€áÚ÷0øŠ©‰¥†•Ö‰‰Žƒo€q‚F‚‰…{…Á†–†Qü?8€†Nˆ……‹v‘…®Œ°Œ³³»Š¬ $‘‘‹ …‘D€Þ÷˜Š•‡¤©…«ýœ²´º¹¦ÉÜêõ@í%]Xm^cÚ……‡‹Š•æžf«¥¹©¨ËÂCû9n%ûyh›yw‡‘¯÷J ”—™Xûiv÷t·yø­Žw®á÷uÚÖ÷îû8€‡Nˆ……‹v‘…®Œ°Œ³³±Š¬ $‘‘‹ …‘NŽ€ÞÎø¤™‡–€„…ƒ€ƒÖ~y‡ˆ“Ÿkd”aû1'û.Êû÷$¦¬‘•œ¶¢˜vsøŸu|sÖûzyŠ†~„tpŠ{Q4µ÷+óµÕÛ¶©¦r¡ûJžv÷ëíMÉŽwï×?Ú˜÷D÷ú‰³Š¥†•”‰‰Žƒo€q‚F‚‰…{…Á†–†QûW8‡M‡……‹v‘…®Œ²Œ³³¹Š® $‘‘‹ …‘EŽÞ÷¤¥—¢—›–¢¬—””‰€“Ä’—~œ£¢¤¤¨žy¨a\b_dt˜…€†“û8¬‰vø*¬‹w£zÒ÷!×j»÷ZŽ\a••Œª’‘‹‰’„¦¦‡°Ãò¦îÏZ³G¤¦O¢cšÂ´¯¢­¡Åƒ6˜‘…ŸŒ‘‘–Ž¯°Œ¬¦l[™WAH[KB¬lØkÞižv`Z[vfªdu˜–u¢€·…¤j…‘xŠ……û‚Â÷í²÷$”äÚ¶øA}‡ƒ~†ŒŠÆûÁDªo¹¹½¡·²‰•…‘Œwqmƒqp…©É÷‘ó•™”Ÿˆ†û ²̳‹‘ˆŽ†‡‚‡†‚€…†~ˆ‡ˆ„Ž’ûtº„¦ø wãÚ÷XÚ¸÷m²ºŸ³¼”Œ„Žr“i‹“ˆŒ‘x¡®šÈ’‘‘‹š…‘K‚ž¼÷T©Ô‹ŽˆŽ††Š|Š|kgŒi $……‹v‘…¼ˆ˜I¸ûUx‰ƒ}kfe{rmY™ä÷J©Ô‹ŽˆŽ††Š|Š|kgŒi $……‹v‘…»‡™€JûTF©HîR”vø.¬’÷/÷i÷ ÷Ùø"Á‡‘vX:ûX{d†‹{µC÷Uy»‡—À’‘‘‹ …‘jŠhŠjjmŒm $……‹v‘…À…’{ŸX÷ûÐ|‘‘…˜•’‘œ’÷÷Íž·–¤Ã‘‘‹ …‘wŠsŠqjiŒr $……‹v‘…÷U”vø.¬’÷.ò÷%÷i÷ -÷_ø"‘‘‹ …‘mŠhŠgepŒq $……‹v‘…º†– W÷û×}‘“…•”“‘›’ð÷ŠòûŒ}‘“…•”“‘š‘÷÷Ñ›´œ§¾Ž‘‘‹ …‘wŠuŠmmaŒm $……‹v‘…Ö‡n}h7ûdr‡‹ƒ 5÷oxº•À‘‘‹ …‘mŠcŠmrjŒm $……‹v‘…º‡—n^‘{EûE~j‰Š~«;÷bx»Œ›»ŽK‰¬÷ ã÷¬œ÷û÷9û6÷)¯Ò¢÷:û+÷4û÷¦@÷J÷út­’Œ¸‘‘‹ …‘pŠ_ŠmmmŒq $……‹v‘…­ˆ§z§bâû„‹ˆ‡†¨@7ûcXuˆh‰……‹v‘…ŸŒ¡Œ©©§Š¥ $‘‘‹ …‘ò€gƒ¡«Êæ“—Š‘‚Å;®[{‰kˆ……‹v‘…©Œ¬Œ¯±¦Š£ $‘‘‹ …‘^Ž|ŽcÄ1÷‡‘ŠŽ‘¨@ßö°º£¯Ž‘‘‹ …‘©wŠtŠmmoŒq $……‹v‘…ä@°‡–ˆsiJ0„‡Œƒ–dû|Øø½¬—÷-÷@÷?û÷è÷`û4›§˜§—©Û÷U¸ò¿÷Ÿµ™›º‘‘‘‹ …‘ðwŠtŠomlŒm $……‹v‘…諈«…{g(ûy„{‚ˆƒŸ2÷dyµ†žÃ‘‘‹ …‘fŠcŠgipŒw $……‹v‘…³†˜‚¥N÷û›”wš]ojo|lw€}‚r}‡Ž€n|m~vŸ{¦ ³“˯û‹­{vÿŒ€ÿ#€°ø°ÒøK‰‡‡‰Š^†h‚Z”‡—‰—ŽŸÔªœ©Œ÷ŽGû'û$="‚‹ˆ†„“†šp÷̈—­˜¿’½…°}nrVvuWŠûÕéó÷1Éñš¤Ž“†Ž„†o‰nûKk|÷P÷‚¼®ù,¼÷‚ù˜˜Ÿ—”ˆ“€ý}wƒŽ‚–û²ùNw÷0²÷ùNluvol¥ˆž‰œ…tvg]W~„’„Ç–Å»ÑÇq²cûGø÷x»²Ú”©²Ú”Ø÷øª¡ §«q”yŽxz‘¢ø ¯¹¿˜•‰’„’O€Q[EØO¥d³÷1ª¡ §«q”yŽxz‘¢ ¯¹¿˜•‰’„’O€Q[EO¥d³ûGùNw÷²÷ -²ôùNluvol¥ˆž‰œ…tvg]W~„’„Ç–Å»ÑÇq²c÷1luvol¥ˆž‰œ…tvg]W~„’„Ç–Å»ÑÇq²c§žvø²÷r©y®åÚ÷[ÚÜøS÷÷ ç•™”Ÿˆ†ûÀŸŒ¸‘­Ô™¥”¡£ }w”v••x¦ŸššŸ´]¬AfRuViì£~^­;pq„vFcjDûZy†ƒ~†ŒŠÎû 8€‡U‡……‹v‘…¬Œ¯Œ¯«­Š« $‘‘‹ …‘]~Þ÷ ÷[û 8€‡_‡……‹v‘…¨Œ«Œ­«¶Š¶ $‘‘‹ …‘ÜG€ÞFøN‚gŠdwcû[”ìÏ“®‘žÛ ¸–š®sr–w””w¥ÜŽŒŒŒ‘žvø²˜w÷†­éÚ÷nÚÜøj÷÷g¼²Ë‹…‡ÜmnŠhûYÄê­Þ϶­€b“Y• |ª¡ Ÿ É6».]Ty[baZ‚N=|Zy†ƒ~†ŒŠÎû 8€‡U‡……‹v‘…­Œ¯Œ®®¸Š¬ $‘‘‹ …‘KÞ÷ ÷Gª“wXûY8‡T‡……‹v‘…®Œ¯Œ¯®²Š° $‘‘‹ …‘N€Þ}žvø²÷­•éÚ>Ö÷^ÚêøX÷øaÚÌŒ³‹æ’‡Ž‚~ƒr€{‡šu]“h7$Bû:mêXy†ƒ~†ŒŠÎû 8€‡U‡……‹v‘…­Œ°Œ­¯°Š® $‘‘‹ …‘S~ŽÞ÷ è”™”Ÿˆ†æûº÷.Ê­¬©¯{j˜‘~•—‡†Š€‚üM8‚†Yˆ……‹v‘…©Œ©Œ²¶­Š« $‘‘‹ …‘êS}Þ2®ø®«ã÷râ÷zøKû22ûû'á9÷÷ÞÞ÷&÷BÝûhߧCûûu:19oÜ÷÷ -±ÎÓ2‰¬ø%•÷jØ÷j÷8p†Eˆ……‹v‘…¼Œ¯ŒÁ»£Š½ $‘‘‹ …‘EŽzÞ÷[ÇŽ¾‹“†‚Z{aƒ7yŒ’‚Ž¨¥Ž¡›€W2‹Â÷è·÷³ä÷ºÂû÷÷ÅĤ³¹Èbº&,NXWz’ƒ—‡šˆÀ ¼ ¼¹¦oVQxpû$û"–tŒ•ÁŒ¤÷(³­ŠŠœª•¼Å‚‘‚‹‚Œ~nVs……R2ûI®øº®¼Ô÷FÙXãð÷mø(¶³qKYQ>(}kœ‹˜èÄÕ{ûû2phX‚¢™~—wvvx{cßpÇ÷ õØ÷÷9²P•Šðݲ¢´À©„£s¤¡uhœWû'a+j}•w£®¬žËЗ¥2ûB¬÷!ºøw÷ž×ø3ºB÷¸½‹²“‰k„†„‡‡G>ûû6Nû&|Ž‘p©÷V/]e‹`ˆ……‹v‘…«Œ³Œ¹²§Š« $‘‘‹ …‘Z€‰ºçÆ™šž—•‡‘€û)÷´û´ûI«àÛ÷Ðé2ûK®÷ѽ÷"Ù‡w÷Òäè÷Òœ,YEOe~¤Ÿ|œ~zšvxxzwbàiÄ÷ãç÷ìHâû`f‚„yŸ÷;‡°«†»©­´؛τè…RU†VØfgŽhiû´ŸÀ±¯è̾`û2€®÷Æ®»Þ÷gÞ÷(÷ë¦æËð÷½—‡”ƒ&mMaSJMCl0<û_÷cØ÷Á÷áá]Øûqdƒ}m‚g¡¬¬Œœí¡+YûaYZLR­÷?¢¥‘¨2øÌ–wÆø  ÷Fø÷G=ûV<ûWGû,“„ÏŽÄ÷>Â÷:÷÷¥`{— †zu…eûbi•yˆŠ‹ˆŠ[€OƒW–ˆ•Š–ŒÛ¡¬’«2®øº®¹ÎaÒ÷IÑ\ÔèøøyÓSÀ)Ø%IN>S¦bÈe¥{än|pyrubgz^d%ÓUõ÷Ëë×År¾V«D¶躢׿Ëäû;ü`^Gªå©˜ÑáĺoÉe¤\['@z^Ø“øºÌ£`]UV^pwlžL´„¬ª¹«±Ç2Ê®÷Æ®²Þ÷gÞ÷Ðàp0K&ûY‚“†ð©ÉµÃÌÉÓªæÚ÷_û³>ûUû55¹>÷¥²“™©”¯ujjŠz)uë½÷µ½¼ÊÄiû?u‰p…nø &(/T—øA˜—÷•®˜©•û‚–:–Âÿ ‹ ¯ +÷_ø"‘‘‹ …‘mŠhŠgepŒq $……‹v‘…º†– W÷û×}‘“…•”“‘›’ð÷ŠòûŒ}‘“…•”“‘š‘÷÷Ñ›´œ§¾Ž‘‘‹ …‘wŠuŠmmaŒm $……‹v‘…Ö‡n}h7ûdr‡‹ƒ 5÷oxº•À‘‘‹ …‘mŠcŠmrjŒm $……‹v‘…º‡—n^‘{EûE~j‰Š~«;÷bx»Œ›»ŽK‰¬÷ ã÷¬œ÷û÷9û6÷)¯Ò¢÷:û+÷4û÷¦@÷J÷út­’Œ¸‘‘‹ …‘pŠ_ŠmmmŒq $……‹v‘…­ˆ§z§bâû„‹ˆ‡†¨@7ûcXuˆh‰……‹v‘…ŸŒ¡Œ©©§Š¥ $‘‘‹ …‘ò€gƒ¡«Êæ“—Š‘‚Å;®[{‰kˆ……‹v‘…©Œ¬Œ¯±¦Š£ $‘‘‹ …‘^Ž|ŽcÄ1÷‡‘ŠŽ‘¨@ßö°º£¯Ž‘‘‹ …‘©wŠtŠmmoŒq $……‹v‘…ä@°‡–ˆsiJ0„‡Œƒ–dû|Øø½¬—÷-÷@÷?û÷è÷`û4›§˜§—©Û÷U¸ò¿÷Ÿµ™›º‘‘‘‹ …‘ðwŠtŠomlŒm $……‹v‘…諈«…{g(ûy„{‚ˆƒŸ2÷dyµ†žÃ‘‘‹ …‘fŠcŠgipŒw $……‹v‘…³†˜‚¥N÷û›”wš]ojo|lw€}‚r}‡Ž€n|m~vŸ{¦ ³“˯‘žvø²˜w÷†­éÚ÷nÚÜøj÷÷g¼²Ë‹…‡ÜmnŠhûYÄê­Þ϶­€b“Y• |ª¡ Ÿ É6».]Ty[baZ‚N=|Zy†ƒ~†ŒŠÎû 8€‡U‡……‹v‘…­Œ¯Œ®®¸Š¬ $‘‘‹ …‘KÞ÷ ÷Gª“wXûY8‡T‡……‹v‘…®Œ¯Œ¯®²Š° $‘‘‹ …‘N€Þ2®ø®«ã÷râ÷zøKû22ûû'á9÷÷ÞÞ÷&÷BÝûhߧCûûu:19oÜ÷÷ +±ÎÓ2‰¬ø%•÷jØ÷j÷8p†Eˆ……‹v‘…¼Œ¯ŒÁ»£Š½ $‘‘‹ …‘EŽzÞ÷[ÇŽ¾‹“†‚Z{aƒ7yŒ’‚Ž¨¥Ž¡›€W2‹Â÷è·÷³ä÷ºÂû÷÷ÅĤ³¹Èbº&,NXWz’ƒ—‡šˆÀ ¼ ¼¹¦oVQxpû$û"–tŒ•ÁŒ¤÷(³­ŠŠœª•¼Å‚‘‚‹‚Œ~nVs……R2ûI®øº®¼Ô÷FÙXãð÷mø(¶³qKYQ>(}kœ‹˜èÄÕ{ûû2phX‚¢™~—wvvx{cßpÇ÷ õØ÷÷9²P•Šðݲ¢´À©„£s¤¡uhœWû'a+j}•w£®¬žËЗ¥2ûB¬÷!ºøw÷ž×ø3ºB÷¸½‹²“‰k„†„‡‡G>ûû6Nû&|Ž‘p©÷V/]e‹`ˆ……‹v‘…«Œ³Œ¹²§Š« $‘‘‹ …‘Z€‰ºçÆ™šž—•‡‘€û)÷´û´ûI«àÛ÷Ðé2€®÷Æ®»Þ÷gÞ÷(÷ë¦æËð÷½—‡”ƒ&mMaSJMCl0<û_÷cØ÷Á÷áá]Øûqdƒ}m‚g¡¬¬Œœí¡+YûaYZLR­÷?¢¥‘¨2®øº®¹ÎaÒ÷IÑ\ÔèøøyÓSÀ)Ø%IN>S¦bÈe¥{än|pyrubgz^d%ÓUõ÷Ëë×År¾V«D¶躢׿Ëäû;ü`^Gªå©˜ÑáĺoÉe¤\['@z^Ø“øºÌ£`]UV^pwlžL´„¬ª¹«±Çø &( £—øA˜—÷•®˜©•û‚–:–Âÿ ‹ ¯ Ú Ú’ ø¾ endstream endobj -41 0 obj -<< /Type /FontDescriptor /FontName /VTIPMO+LibertinusSerif-Regular /Flags 4 /FontBBox [ -1325 -256 1269 928 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle 0 /StemV 73 /XHeight 429 /FontFile3 43 0 R /CIDSet 42 0 R >> +25 0 obj +<< /Type /FontDescriptor /FontName /YTEUQI+LibertinusSerif-Regular /Flags 4 /FontBBox [ -1325 -256 1269 928 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle 0 /StemV 73 /XHeight 429 /FontFile3 27 0 R /CIDSet 26 0 R >> endobj -44 0 obj -<< /Length 1883 >> +28 0 obj +<< /Length 1483 >> stream %!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) -%%BeginResource: CMap (TeX-VTIPMO-LibertinusSerif-Regular-0) -%%Title: (TeX-VTIPMO-LibertinusSerif-Regular-0 TeX VTIPMO-LibertinusSerif-Regular 0) +%%BeginResource: CMap (TeX-YTEUQI-LibertinusSerif-Regular-0) +%%Title: (TeX-YTEUQI-LibertinusSerif-Regular-0 TeX YTEUQI-LibertinusSerif-Regular 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin @@ -603,39 +331,28 @@ stream begincmap /CIDSystemInfo << /Registry (TeX) -/Ordering (VTIPMO-LibertinusSerif-Regular) +/Ordering (YTEUQI-LibertinusSerif-Regular) /Supplement 0 >> def -/CMapName /TeX-Identity-VTIPMO-LibertinusSerif-Regular def +/CMapName /TeX-Identity-YTEUQI-LibertinusSerif-Regular def /CMapType 2 def 1 begincodespacerange <0000> endcodespacerange 0 beginbfrange endbfrange -83 beginbfchar -<0002> <0021> +55 beginbfchar <0009> <0028> <000A> <0029> <000D> <002C> <000E> <002D> <000F> <002E> <0010> <002F> -<0011> <0030> -<0012> <0031> -<0013> <0032> -<0014> <0033> -<0015> <0034> -<0016> <0035> -<001B> <003A> -<0020> <003F> <0022> <0041> <0023> <0042> <0024> <0043> <0025> <0044> <0026> <0045> -<0027> <0046> -<0028> <0047> <0029> <0048> <002A> <0049> <002B> <004A> @@ -643,17 +360,11 @@ endbfrange <002E> <004D> <002F> <004E> <0030> <004F> -<0031> <0050> -<0032> <0051> <0033> <0052> -<0034> <0053> <0035> <0054> <0036> <0055> <0037> <0056> -<0038> <0057> <0039> <0058> -<003A> <0059> -<003B> <005A> <0042> <0061> <0043> <0062> <0044> <0063> @@ -663,7 +374,6 @@ endbfrange <0048> <0067> <0049> <0068> <004A> <0069> -<004B> <006A> <004C> <006B> <004D> <006C> <004E> <006D> @@ -679,24 +389,14 @@ endbfrange <0058> <0077> <0059> <0078> <005A> <0079> -<005B> <007A> -<06DA> <2014> -<06DF> <2019> -<06E2> <201C> -<06E3> <201D> -<0938> <00660066> <0939> <00660069> -<093A> <0066006C> <09C8> <0030> <09C9> <0031> <09CA> <0032> <09CB> <0033> <09CC> <0034> -<09CD> <0035> <09CE> <0036> -<09CF> <0037> <09D0> <0038> -<09D1> <0039> endbfchar endcmap CMapName currentdict /CMap defineresource pop @@ -708,72 +408,56 @@ end endstream endobj 8 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VTIPMO+LibertinusSerif-Regular /DescendantFonts [ 45 0 R ] /ToUnicode 44 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YTEUQI+LibertinusSerif-Regular /DescendantFonts [ 29 0 R ] /ToUnicode 28 0 R >> endobj -45 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VTIPMO+LibertinusSerif-Regular /FontDescriptor 41 0 R /W 40 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +29 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YTEUQI+LibertinusSerif-Regular /FontDescriptor 25 0 R /W 24 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -12 0 obj -<< /Type /Pages /Count 4 /Kids [ 6 0 R 14 0 R 17 0 R 20 0 R ] >> +11 0 obj +<< /Type /Pages /Count 1 /Kids [ 6 0 R ] >> endobj -46 0 obj -<< /Type /Catalog /Pages 12 0 R /Metadata 4 0 R/OutputIntents [ <> ] >> +30 0 obj +<< /Type /Catalog /Pages 11 0 R /Metadata 4 0 R/OutputIntents [ <> ] >> endobj -47 0 obj -<< /Title(Novel\040Document\040Class)/Creator(LuaLaTeX\040with\040novel\040and\040microtype)/CreationDate(D:20231109113337-08'00')/ModDate(D:20231109113337-08'00')/Producer(LuaLaTeX\040with\040novel-pdfx\040and\040hyperref)/Trapped/False/GTS_PDFXVersion(PDF/X-1a:2001)/GTS_PDFXConformance(PDF/X-1a:2001) >> +31 0 obj +<< /Title(Novel\040Document\040Class)/Creator(LuaLaTeX\040with\040novel\040and\040microtype)/CreationDate(D:20240131112616-08'00')/ModDate(D:20240131112616-08'00')/Producer(LuaLaTeX\040with\040novel-pdfx\040and\040hyperref)/Trapped/False/GTS_PDFXVersion(PDF/X-1a:2001)/GTS_PDFXConformance(PDF/X-1a:2001) >> endobj xref -0 48 +0 32 0000000000 65535 f -0000030193 00000 n -0000030213 00000 n -0000030233 00000 n +0000011455 00000 n +0000011475 00000 n +0000011495 00000 n 0000000020 00000 n -0000011141 00000 n -0000010989 00000 n +0000011312 00000 n +0000011160 00000 n 0000002644 00000 n -0000057968 00000 n -0000042381 00000 n -0000040387 00000 n -0000035457 00000 n -0000058333 00000 n -0000020729 00000 n -0000020574 00000 n -0000011296 00000 n -0000029721 00000 n -0000029566 00000 n -0000020862 00000 n -0000030101 00000 n -0000029946 00000 n -0000029854 00000 n -0000030286 00000 n -0000034181 00000 n -0000030454 00000 n -0000030780 00000 n -0000034423 00000 n -0000035616 00000 n -0000035821 00000 n -0000039142 00000 n -0000035977 00000 n -0000036048 00000 n -0000039381 00000 n -0000040544 00000 n -0000040747 00000 n -0000041443 00000 n -0000040780 00000 n -0000040887 00000 n -0000041669 00000 n -0000042526 00000 n -0000042718 00000 n -0000055784 00000 n -0000043169 00000 n -0000043544 00000 n -0000056025 00000 n -0000058127 00000 n -0000058415 00000 n -0000058742 00000 n +0000030768 00000 n +0000019426 00000 n +0000014082 00000 n +0000031133 00000 n +0000011548 00000 n +0000012993 00000 n +0000011627 00000 n +0000011698 00000 n +0000013235 00000 n +0000014241 00000 n +0000014446 00000 n +0000018153 00000 n +0000014624 00000 n +0000014696 00000 n +0000018392 00000 n +0000019582 00000 n +0000019785 00000 n +0000028984 00000 n +0000020130 00000 n +0000020505 00000 n +0000029225 00000 n +0000030927 00000 n +0000031194 00000 n +0000031521 00000 n trailer -<< /Size 48 /Root 46 0 R /Info 47 0 R /ID [ <6D282F68DAD0E257966ED9A7FE1025D7> <6D282F68DAD0E257966ED9A7FE1025D7> ] >> +<< /Size 32 /Root 30 0 R /Info 31 0 R /ID [ <98EE0E1A7196CAA99E8C791E24184A8B> <98EE0E1A7196CAA99E8C791E24184A8B> ] >> startxref -59066 +31845 %%EOF diff --git a/macros/luatex/latex/novel/doc/novel.tex b/macros/luatex/latex/novel/doc/novel.tex index 42ce289628..e61e9c0226 100644 --- a/macros/luatex/latex/novel/doc/novel.tex +++ b/macros/luatex/latex/novel/doc/novel.tex @@ -12,7 +12,7 @@ % novel.pdf (if present) have read/write permissions for any user. % Otherwise, compile may fail at the point where files are written. -\documentclass{novel} % v. 1.83. +\documentclass{novel} % v. 1.86. % Almost all settings are defaults. \SetHeadFootStyle{3} \SetTitle{Novel Document Class} % only footer, with page number @@ -20,111 +20,49 @@ % However, not every P.O.D. service needs PDF/X these days. \SetPDFX[CGATSTR001]{X-1a:2001} \begin{document} +\thispagestyle{empty} \begin{ChapterStart}[8] \vspace{\nbs} % \nbs is normal baselineskip \ChapterTitle{NOVEL} \vspace{\nbs} \ChapterSubtitle{A Document Class for the Rest of Us} -\ChapterDeco[4]{\decoglyph{n9548}} +{\centering Version 1.86 (January 2024)\par} \end{ChapterStart} -\textbf{Where is the documentation??} It is in HTML format, and cannot be retrieved via \textit{texdoc}. If you have this package installed, look for (texroot)/doc/lualatex/novel/novel-documentation.html. If you are online, go to the CTAN page at https://ctan.org/pkg/novel and click ``Package Documentation (HTML).'' +\textbf{Where is the documentation??} It is HTML.\\ +(texroot)/doc/lualatex/novel/novel-documentation.html. \scenebreak -\textbf{Description:} The \emph{novel} document class is for writers of original fiction, to be printed to paper, with attention to the requirements of the print-on-demand market. Non-color interiors and color covers are supported. Images are supported, but only as they might be used in fiction, not picture books. +\textbf{News:} This document class was first privately used in 2014. +Then, in 2018, it was improved, documented, and released. It has been +maintained through TeXlive 2023. It is expected to work in the future, but is +no longer maintained by its original creator.\par +Changes in print-on-demand technology have made many parts of this code +irrelevant. There are also a few commands that require graphic design +experience for proper usage. And a few settings, which should be simple and +obvious, are complex and arcane.\par +If \emph{novel} works for you, good. But if you are simply writing a fiction +novel, nothing fancy, then see if CTAN and TeXlive have a package named +\emph{novelette}. As of late January 2024, the package is in beta test +(not released yet). If the package exists and can be installed, then you +should prefer \emph{novelette}. -If your work is an E-book, or uses interior color other than gray, or is academic, then this document class is not for you. - -But if you are writing a detective novel, or science fiction, or a collection of short stories, then read on! - -\QuickChapter{1. Features} - -Throughout, it is assumed that the purpose of your writing is a commercially printed book of fiction. - -A new \emph{novel} is pre-configured to produce a standard trade book size of 5.5in W x 8.5in H, with layout margins that are likely to be acceptable to the most widely-used print services. The file you are now reading is in this format. But if that is not the size or layout you want, then there are commands that configure just about anything, using standard terminology and understandable purpose. Best of all, the HTML documentation comes with images and examples, so you know what you are doing. - -Almost everything is pre-configured to “just work,†even the choice of fonts. The chosen compiler is LuaLaTeX, and Open Type fonts are loaded using \textit{fontspec} technology. If you prefer to use a professional font, it will be easy to load and use in utf-8. - -Many standard LaTeX commands are disabled. This will be surprising at first. But \emph{novel} is focused on one thing only. Anything that might interfere with that purpose may have been tossed aside. So, be sure that you read the documentation! If you take an existing LaTeX document and just change the class to \emph{novel,} it is very unlikely to work as expected. - -Many new commands are provided. They are focused on the needs of print fiction writers, period. And, \emph{novel} has built-in PDF/X technology that exceeds the capabilities currently available via other LaTeX packages. - -\QuickChapter{2. Complete Documentation} - -What you are reading now, is only an introduction. The complete documentation is in HTML format, directly written in HTML rather than extracted from code. There are numerous examples and images, too detailed to be presented as PDF. - -\QuickChapter{3. License} - -The LaTeX code, and accompanying documentation, is released under the LateX Project Public License, version 1.3c. - -The companion font(s) is(are) licensed under the SIL Open Font License, version 1.1. - - - -\QuickChapter{4. Version} - -\noindent 1.83, 2023-11-09: Minor typo corrected. - -\noindent 1.82, 2023-08-26: Added user setting for default indent. - -\noindent 1.81, 2023-03-25: Bug fixes. Also 1.81a, 1.81b. - -\noindent 1.80, 2023-02-08: Class option ``rev'' for new documents. - -\noindent 1.52, 2018-04-26: Enhanced detection and warning using Lua code. - -\noindent 1.50.5, 2018-04-11: Minor bug fixes (docs and code disagreed). - -\noindent 1.50, 2018-03-28: Improved image handling commands, sandbox. - -\clearpage - -\QuickChapter{5. FAQs} - -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{Q. }Can this document class be used for E-books? -\end{adjustwidth} -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{A. }No. And, that feature will never be added, as the technology is inherently incompatible. A word processor is your friend. -\end{adjustwidth} - -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{Q. }What happened to floats and lists? -\end{adjustwidth} -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{A. }Use the new image commands, or sandbox mode. -\end{adjustwidth} - -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{Q. }My thesis advisor told me--- -\end{adjustwidth} -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{A. }Stop right there. This document class is very different from anything used for theses and other academic publications. -\end{adjustwidth} +\scenebreak -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{Q. }If I use TikZ for Feynman diagrams, then--- -\end{adjustwidth} -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{A. }Go away. -\end{adjustwidth} +\textbf{Description:} The \emph{novel} document class is for writers of +original fiction, to be printed to paper, with attention to the requirements +of the print-on-demand market. Non-color interiors and color covers are +supported. Images are supported, but only as they might be used in fiction, +not picture books. -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{Q. }Has this document class ever been used for an actual novel? -\end{adjustwidth} -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{A. }Yes indeed! In August 2017 the author published a complete novel, including its cover, using this document class. Almost all of the setup used defaults. The files (textblock and cover) were submitted to a major American P.O.D. service in \lnum{PDF/X-1a:2001} format, then electronically reviewed and accepted \textit{on the first attempt.} A printed copy was in the author's hands within a week. Just like that. Took months to write, of course.\par -Update: Several other authors report success. -\end{adjustwidth} +If your work is an E-book, or uses interior color other than gray, or is +academic, then this document class is not for you. -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{Q. }When I woke up this morning, my head felt like a toddler had been pounding it in a sandbox. I rolled over and looked at the mug shot on the wall. It was a woman in her forties with a drug habit that was bad, and an attitude that was even worse. She had seen better days, like the time I took her to the eighth grade sock hop. Then I got up, washed, and dragged my lonely butt down to the one-man detective agency that I jokingly called my means of living. You know what I mean? -\end{adjustwidth} -\begin{adjustwidth}{\parindent}{0pt} -\backindent\makebox[\parindent][l]{A. }Yeah. Stick with me, kid. This document class is for you. -\end{adjustwidth} +But if you are writing a detective novel, or science fiction, or a collection +of short stories, then you are in the right place. +\makeatletter\nocle@rtoendtrue\makeatother % For developer only. \end{document} diff --git a/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo b/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo index f1e054428e..11bdaa8169 100644 --- a/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo +++ b/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo @@ -2,7 +2,7 @@ %% The values of the arguments are public industry standards. %% \ProvidesFile{novel-CGATSTR001.clo}% -[2023/11/09 any version. (novel Output Intent CGATS TR 001)] +[2024/01/31 any version. (novel Output Intent CGATS TR 001)] %% % Typically used in the USA. diff --git a/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty b/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty index 86b499397c..f65aadd3e2 100644 --- a/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty +++ b/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty @@ -6,7 +6,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-CalculateLayout.sty}% -[2023/11/09 v1.83 LaTeX file (layout calculations)] +[2024/01/31 v1.86 LaTeX file (layout calculations)] %% %% diff --git a/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty b/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty index b4b581d57d..4797893f96 100644 --- a/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty +++ b/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty @@ -6,7 +6,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-ChapterScene.sty}% -[2023/11/09 v1.83 LaTeX file (chapter and scene macros)] +[2024/01/31 v1.86 LaTeX file (chapter and scene macros)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel-DropCap.sty b/macros/luatex/latex/novel/lualatex/novel-DropCap.sty index d09c9bd5bc..eabd28f127 100644 --- a/macros/luatex/latex/novel/lualatex/novel-DropCap.sty +++ b/macros/luatex/latex/novel/lualatex/novel-DropCap.sty @@ -9,7 +9,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-DropCap.sty}% -[2023/11/09 v1.83 (Drop Caps)] +[2024/01/31 v1.86 (Drop Caps)] \NeedsTeXFormat{LaTeX2e}[1999/12/01] % % diff --git a/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo b/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo index 714f075865..ae70e33988 100644 --- a/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo +++ b/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo @@ -1,7 +1,7 @@ %% This is file `novel-FOGRA39.clo', part of `novel' document class. %% The values of the arguments are public industry standards. \ProvidesFile{novel-FOGRA39.clo}% -[2023/11/09 any version. (novel Output Intent FOGRA39)] +[2024/01/31 any version. (novel Output Intent FOGRA39)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel-FileData.sty b/macros/luatex/latex/novel/lualatex/novel-FileData.sty index 9e5d60cce4..3225480cff 100644 --- a/macros/luatex/latex/novel/lualatex/novel-FileData.sty +++ b/macros/luatex/latex/novel/lualatex/novel-FileData.sty @@ -6,7 +6,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-FileData.sty}% -[2023/11/09 v1.83 LaTeX file (File Data settings)] +[2024/01/31 v1.86 LaTeX file (File Data settings)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel-Fonts.sty b/macros/luatex/latex/novel/lualatex/novel-Fonts.sty index c686586254..1d4f787dee 100644 --- a/macros/luatex/latex/novel/lualatex/novel-Fonts.sty +++ b/macros/luatex/latex/novel/lualatex/novel-Fonts.sty @@ -6,7 +6,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-Fonts.sty}% -[2023/11/09 v1.83 LaTeX file (font settings and defaults)] +[2024/01/31 v1.86 LaTeX file (font settings and defaults)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty b/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty index 2e46f31729..528a59ac26 100644 --- a/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty +++ b/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty @@ -7,7 +7,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-Footnotes.sty}% -[2023/11/09 v1.83 LaTeX file (commands for footnotes and endnotes)] +[2024/01/31 v1.86 LaTeX file (commands for footnotes and endnotes)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty b/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty index 7a3825ac54..24f3b82c25 100644 --- a/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty +++ b/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty @@ -6,7 +6,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-HeadFootStyles.sty}% -[2023/11/09 v1.83 LaTeX file (header and footer layouts and styles)] +[2024/01/31 v1.86 LaTeX file (header and footer layouts and styles)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel-Images.sty b/macros/luatex/latex/novel/lualatex/novel-Images.sty index 3e5dd85f2c..67b19ff865 100644 --- a/macros/luatex/latex/novel/lualatex/novel-Images.sty +++ b/macros/luatex/latex/novel/lualatex/novel-Images.sty @@ -6,7 +6,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-Images.sty}% -[2023/11/09 v1.83 LaTeX file (image placement)] +[2024/01/31 v1.86 LaTeX file (image placement)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel-JC200103.clo b/macros/luatex/latex/novel/lualatex/novel-JC200103.clo index ba365d2b83..4493bbc322 100644 --- a/macros/luatex/latex/novel/lualatex/novel-JC200103.clo +++ b/macros/luatex/latex/novel/lualatex/novel-JC200103.clo @@ -2,7 +2,7 @@ %% The values of the arguments are public industry standards. %% \ProvidesFile{novel-JC200103.clo}% -[2023/11/09 any version. (novel Output Intent JC200103)] +[2024/01/31 any version. (novel Output Intent JC200103)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty b/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty index c111fa9664..202d59d520 100644 --- a/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty +++ b/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty @@ -6,7 +6,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-LayoutSettings.sty}% -[2023/11/09 v1.83 LaTeX file (layout settings)] +[2024/01/31 v1.86 LaTeX file (layout settings)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty b/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty index db61189794..ac46313892 100644 --- a/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty +++ b/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty @@ -6,7 +6,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-PostLayout.sty}% -[2023/11/09 v1.83 LaTeX file (post-layout modifications)] +[2024/01/31 v1.86 LaTeX file (post-layout modifications)] %% %% diff --git a/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty b/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty index 5cf4894ac5..1a80d93e5b 100644 --- a/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty +++ b/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty @@ -11,7 +11,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-Sandbox.sty}% -[2023/11/09 v1.83 LaTeX file (used only with sandbox class option)] +[2024/01/31 v1.86 LaTeX file (used only with sandbox class option)] %% %% diff --git a/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty b/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty index 7f204192db..ff0bcf6fdc 100644 --- a/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty +++ b/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty @@ -6,7 +6,7 @@ %% License URL: https://www.latex-project.org/lppl/lppl-1-3c/ %% \ProvidesFile{novel-TextMacros.sty}% -[2023/11/09 v1.83 LaTeX file (text macros usable within document body)] +[2024/01/31 v1.86 LaTeX file (text macros usable within document body)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel-microtype.cfg b/macros/luatex/latex/novel/lualatex/novel-microtype.cfg index d8bde1da88..b44dd08441 100644 --- a/macros/luatex/latex/novel/lualatex/novel-microtype.cfg +++ b/macros/luatex/latex/novel/lualatex/novel-microtype.cfg @@ -10,7 +10,7 @@ %% ------------------------------------------------------------------------ %% \ProvidesFile{novel-microtype.cfg}% -[2023/11/09 any version. (default microtype configuration for novel class)] +[2024/01/31 any version. (default microtype configuration for novel class)] %%% --------------------------------------------------------------------------- %%% FONT SETS diff --git a/macros/luatex/latex/novel/lualatex/novel-pdfx.sty b/macros/luatex/latex/novel/lualatex/novel-pdfx.sty index 1fb6e7e876..0295f1cc70 100644 --- a/macros/luatex/latex/novel/lualatex/novel-pdfx.sty +++ b/macros/luatex/latex/novel/lualatex/novel-pdfx.sty @@ -16,7 +16,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesFile{novel-pdfx.sty}% -[2023/11/09 v1.83 LaTeX file (PDF/X support for novel class)] +[2024/01/31 v1.86 LaTeX file (PDF/X support for novel class)] % This package supports, and is part of, class `novel'. % No support for anything but LuaLaTeX. diff --git a/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty b/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty index 5ae2bb10f3..9fb3e13686 100644 --- a/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty +++ b/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty @@ -14,7 +14,7 @@ %% ---------------------------------------------------------------------------- %% \ProvidesFile{novel-xmppacket.sty}% -[2023/11/09 any version. (novel XMP packet template)] +[2024/01/31 any version. (novel XMP packet template)] %% diff --git a/macros/luatex/latex/novel/lualatex/novel.cls b/macros/luatex/latex/novel/lualatex/novel.cls index 5faf86342a..4f860e0f75 100644 --- a/macros/luatex/latex/novel/lualatex/novel.cls +++ b/macros/luatex/latex/novel/lualatex/novel.cls @@ -8,14 +8,21 @@ %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] % Actually needs LuaLaTeX, at least version 0.95 from TeXLive 2016. -\ProvidesClass{novel}[2023/11/09 v1.83 LaTeX document class] +\ProvidesClass{novel}[2024/01/31 v1.86 LaTeX document class] %% -%% Version 1.83: Minor typo corrected. + +%% During the years since `novel' was introduced, there have been +%% many changes in print-on-demand. Also, `novel` offers some +%% features that are rarely used, bloating the code and documentation. +%% Although `novel` still works (as of late 2023), it is more complicated +%% than necessary for ordinary popular fiction. Unless you really need `novel', +%% try `novelette' instead. Available early 2024. Easier to use. + %% In addition to a minimal LaTeX setup, with luatex, you will need these: %% textpos magaz xcolor adjustbox eso-pic pdfpages unicode-math fp iftex %% libertinus-fonts makecmds xkeyval lm-math xstring xifthen silence -%% collectbox pgf lipsum wrapfig pdflscape polyglossia microtype hyperref +%% collectbox pgf lipsum wrapfig pdflscape microtype hyperref polyglossia %% You will need language support, for your language(s). %% If using lipsum, you will need hyphen-latin. @@ -26,6 +33,8 @@ %% It cannot be used for e-books or for journal publication. %% It is not suitable for most non-fiction, because routine academic features %% such as bibiography and automatic sectioning are defeated. +%% Only use it for ORIGINAL works, where you can edit your text. If your +%% purpose is a reprint of someone else's work, then `novel' is not for you. %% %% There are pre-configured layouts for the most commonly used choices of %% trim size (finished book width and height), and internal layout consistent @@ -100,7 +109,7 @@ \newlength\@tempLength % scratch length for local calculations \newif \if@tempTF % scratch boolean for local tests - +\newif \ifnocle@rtoend % Only developer uses true. %% Global lengths are often passed around in `novel'. %% But \setlength is not always global in effect. @@ -327,11 +336,11 @@ %% Physical Layout Commands and Settings. %% ---------------------------------------------------------------------------- %% Define user commands that over-ride class option pre-configured settings. -%% Also sets a variety of miscellaneous lengths:s \parsep, \parindent, etc. +%% Also sets a variety of miscellaneous lengths: \parsep, \parindent, etc. \RequirePackage{novel-LayoutSettings} -%% Language support. +%% Use polyglossia: %% ---------------------------------------------------------------------------- \RequirePackage{polyglossia} \setdefaultlanguage[variant=american]{english} % may be changed by user @@ -621,7 +630,7 @@ \string\xdef\string\@AllGoodImages{\@AllGoodImages}^^J% \string\xdef\string\@UnknownImages{\@UnknownImages}^^J% }% - \cleartoend% adds 1 or 2 blanks, for final verso blank + \ifnocle@rtoend\else\cleartoend\fi% \fi% \fi% } diff --git a/macros/tex-in-practice b/macros/tex-in-practice deleted file mode 120000 index 71c9f5d5ab..0000000000 --- a/macros/tex-in-practice +++ /dev/null @@ -1 +0,0 @@ -tip \ No newline at end of file diff --git a/macros/tip b/macros/tip deleted file mode 120000 index cec823dcc8..0000000000 --- a/macros/tip +++ /dev/null @@ -1 +0,0 @@ -../info/examples/tip \ No newline at end of file diff --git a/obsolete/info/whatstex/lit.dat b/obsolete/info/whatstex/lit.dat new file mode 120000 index 0000000000..1f6378b9c6 --- /dev/null +++ b/obsolete/info/whatstex/lit.dat @@ -0,0 +1 @@ +../../macros/blu/lit.dat \ No newline at end of file diff --git a/obsolete/info/whatstex/lit.sel b/obsolete/info/whatstex/lit.sel new file mode 100644 index 0000000000..c86c021f8e --- /dev/null +++ b/obsolete/info/whatstex/lit.sel @@ -0,0 +1,124 @@ +%The list of selected references: +%Target Overview.tex 30 sept 93 +%\ls\amsa +\ls\amsb +\ls\amsc +\ls\amsd +\ls\amse +\ls\amsf +\ls\amsg +\ls\amsh +\ls\amsi +\ls\amsj +\ls\aps +\ls\beebenhfa +\ls\beebenhfb +\ls\beebenhfc +\ls\beebenhfd +\ls\beetonbn +\ls\bestr +\ls\bodenheimerb +\ls\botwaylc +\ls\braamsjl +\ls\bruinr +\ls\bryanm +\ls\buergerd +\ls\chemtex +\ls\cheswickb +\ls\clarkmb +\ls\clarkmc +\ls\clarkmd +\ls\cms +\ls\commacm +\ls\dobrowolskiae +\ls\dolw +\ls\doobma +\ls\drilcon +\ls\durstlka +\ls\durstlkc +\ls\dysonmc +\ls\furutar +\ls\goossensma +\ls\goossensmb +\ls\greenwadegd +\ls\haralambousy +\ls\hendersondb +\ls\herwijnene +\ls\hoenigaj +\ls\hoenigajc +\ls\hoenigajd +\ls\hooverazb +\ls\hooverazc +\ls\horakk +\ls\hornbkp +\ls\hosekd +\ls\jonesdm +\ls\kelleram +\ls\knuthdecb +\ls\knuthdecc +\ls\knuthded +\ls\knuthdee +\ls\knuthdeg +\ls\knuthdeib +\ls\knuthdej +\ls\kolodziejska +\ls\kopkah +\ls\laancga +\ls\laancgc +\ls\laancgd +\ls\laancge +\ls\laancgg +\ls\laancgga +\ls\laancgh +\ls\laancgi +\ls\laancgj +\ls\laancgk +\ls\laancgl +\ls\laancgm +%\ls\laancgn +\ls\laancgo +\ls\laancgp +\ls\laancgq +\ls\laancgs +\ls\lamportla +\ls\lamportlb +\ls\lamportlc +\ls\lavaudma +\ls\mattese +\ls\mittelbachfc +\ls\mittelbachfd +\ls\mittelbachff +\ls\mittelbachffb +\ls\mittelbachfg +\ls\oostrump +\ls\quinlre +\ls\rahtzspq +\ls\ramekmb +\ls\salomondg +\ls\samuelal +\ls\schrodj +\ls\sewellw +\ls\southallra +\ls\southallrb +\ls\sowafb +\ls\spivakmda +\ls\spivakmdb +\ls\spivakmdc +\ls\swansone +\ls\taylorp +\ls\tobing +\ls\treebusk +\ls\tugpub +\ls\tutelaersp +\ls\urbanm +\ls\vensej +\ls\williamst +\ls\winninkjj +\ls\winogradt +\ls\youngenra +\ls\youngenrb +\ls\youngenrc +\ls\zbikowskir +\ls\zlatuskaja +\ls\zlatuskajb +\endinput \ No newline at end of file diff --git a/obsolete/info/whatstex/wots.tex b/obsolete/info/whatstex/wots.tex new file mode 100644 index 0000000000..d342f0f638 --- /dev/null +++ b/obsolete/info/whatstex/wots.tex @@ -0,0 +1,2956 @@ +%What is TeX and METAfont all about? C.G van der Laan, cgl@risc1.rug.nl +\documentstyle[bezier]{article} %Version 1.1 Jan 94 +\def\Dash{---} +\def\dash{--} +\def\address#1{#1}\def\netaddress#1{}\def\network#1{} + +%Needed files: abr.tex, btable.tex, ds.pic, icon.tex, lit.dat, lit.sel, +% lus.pic, math.tex, pic.pic (tugboat.sty/cmn) +%In final version all these files have been included, however. +%\input{abr.tex} %Abbreviations from TUGboat.cmn +%\input{icon.tex} %Icon macros +%\input{manmac.cgl}%Some boxing macros from manmac +%Input at the appropriate place +% ds.pic , picture inspired by David Salomon +% lus.pic , picture from lustrum paper +% pic.pic , picture from Furuta +%Input along the way (within \begingroup ... \endgroup) +% btable.tex, bordered tabl macro (redefines \multispan!!!) +% math.tex , multipositioning of \eqalign (redefines centering needed) +% lit.dat , literature database (at the end) +% lit.sel , literature reference names pointing to the database. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcount\TestCount +\def\smc{\tensmc} +\def\SMC{\ninerm} +\font\tensmc=cmcsc10 +% +% ***** abbreviations and logos ***** +% + +\def\AllTeX{(\La)\TeX} + +\def\AMS{American Mathematical Society} + +\def\AmS{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox + {\the\textfont2 M}\kern-.125em{\the\textfont2 S}} +\def\AmSTeX{\AmS-\TeX} + +\def\aw{A\kern.1em-W} +\def\AW{Addison\kern.1em-\penalty\z@\hskip\z@skip Wesley} + +\def\BibTeX{{\rm B\kern-.05em{\smc i\kern-.025emb}\kern-.08em\TeX}} + +\def\CandT{{\sl Computers \& Typesetting}} + +\def\DVItoVDU{DVIto\kern-.12em VDU} + +\def\ISBN{{\SMC ISBN} } + +% Japanese TeX +\def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}} + +\def\JoT{{\sl The Joy of \TeX}} + +\def\LAMSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont2 A}% + \kern-.2em\lower.376ex\hbox{\the\textfont2 M}\kern-.125em + {\the\textfont2 S}-\TeX} + +% note -- \LaTeX definition is from LATEX.TEX 2.09 of 7 Jan 86, +% adapted for additional flexibility in TUGboat +%\def\LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex +% \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX} +% note -- broken in two parts, to permit separate use of La, +% as in (La)TeX +\def\La{\TestCount=\the\fam \leavevmode L\raise.42ex + \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}} +\def\LaTeX{\La\kern-.15em\TeX} + +% for Robert McGaffey +\def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}} + +\font\manual=logo10 % font used for the METAFONT logo, etc. +\def\MF{{\manual META}\-{\manual FONT}} +\def\mf{{\smc Metafont}} +\def\MFB{{\sl The \slMF book}} + +% multilingual (INRS) TeX +\def\mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX} + +\def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}MF} +\def\PCTeX{PC\thinspace\TeX} +\def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}\TeX} + +\def\Pas{Pascal} + +\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} +\def\PiCTeX{\PiC\kern-.11em\TeX} + +\def\plain{{\tt plain}} + +\def\POBox{P.\thinspace O.~Box } +\def\POBoxTUG{\POBox\unskip~9506, Providence, RI~02940} + +\def\PS{{Post\-Script}} + +\def\SC{Steering Committee} + +\def\SGML{{\SMC SGML}} + +\def\SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}} + +\def\slMF{\MF} +% Use \font\manualsl=logosl10 instead, if it's available, +% for \def\slMF{{\manualsl META}\-{\manualsl FONT}} + +% Atari ST (Klaus Guntermann) +\def\stTeX{{\smc st\rm\kern-0.13em\TeX}} + +\def\TANGLE{{\tt TANGLE}} + +\def\TB{{\sl The \TeX book}} +\def\TP{{\sl \TeX\/}: {\sl The Program\/}} + +\def\TeX{T\hbox{\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX}} + +\def\TeXhax{\TeX hax} + +% Don Hosek +\def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}\kern-.2267emG} + +%\def\TeXtures{\TestCount=\the\fam +% \TeX\-\hbox{$\fam\TestCount\scriptstyle TURES$}} +\def\TeXtures{{\it Textures}} +\let\Textures=\TeXtures + +\def\TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT} + +\def\ttn{{\sl TTN}} +\def\TTN{{\sl \TeX{} and TUG NEWS}} + +\def\tubfont{\sl} % redefined in other situations +\def\TUB{{\tubfont TUGboat\/}} + +\def\TUG{\TeX\ \UG} + +\def\UG{Users Group} + +\def\UNIX{{\SMC UNIX}} + +\def\VAX{\leavevmode\hbox{V\kern-.12em A\kern-.1em X}} +\def\VorTeX{V\kern-2.7pt\lower.5ex\hbox{O\kern-1.4pt R}\kern-2.6pt\TeX} + +\def\XeT{\leavevmode\hbox{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT}} + +\def\WEB{{\tt WEB}} +\def\WEAVE{{\tt WEAVE}} +%******************************************************************** +\def\icmat#1#2{%ICon MATrix(rectangular) +%#1 is ht of icon matrix, e.g. 4 +%#2 is wd of icon matrix, e.g. 2 +\vbox to#1\unitlength{\hrule + \hbox to#2\unitlength{\vrule + height#1\unitlength\hfil\vrule}% + \hrule}% +}%end icmat +% +\def\icurt#1#2{%IConUpperRightTriangle +%#1 is ht of icon matrix, with UT +%the upper triangular part, e.g. 4 +%#2 is wd of icon (upper triangular) +%matrix, e.g. 2 +\vbox to #1\unitlength{\hrule + \hbox{\picture(#2,#2)% + \put(0,#2){\line(1,-1){#2}}% + \endpicture\vrule}% + \vfil}% +}%end icurt +% +\def\icllt#1#2{%IConLowerLeftTriangle +%#1 is ht of icon matrix, with LT +%the lower triangular part, e.g. 4 +%#2 is wd of icon (lower triangular) +%matrix, e.g. 2 +\vbox to #1\unitlength{\vfil + \hbox{\vrule\picture(#2,#1)% + \put(0,#2){\line(1,-1){#2}}% + \endpicture}% + \hrule}% +}%end icllt +% +\def\icuh#1#2#3{%IConUpperHessenberg +%#1 is size of icon matrix, with UH +% the upper Hessenberg part, e.g. 4 +%#2 is wd of icon (upper Hesenberg) +% matrix, e.g. 1 +%#3 is size Lower Left triangular part, +% #1-#2 (for simplicity the latter is added, +% could have been calculated, perhaps some +% inconsistency test could be incorporated) +\vbox to #1\unitlength{\offinterlineskip + \hrule + \hbox to#1\unitlength{\vrule height% + #2\unitlength depth0pt\relax + \hfil\vrule}% + \hbox to#1\unitlength{\picture(#3,#3)% + \put(0,#3){\line(1,-1){#3}}\endpicture + \hfil\vrule}% + \hbox to#1\unitlength{\hfil\vrule + width#2\unitlength height.2pt\relax}% + }% +}%end icuh +% +\def\hidehrule#1#2{\kern-#1\hrule + height#1 depth#2 \kern-#2 } +\def\hidevrule#1#2{\kern-#1{\dimen0=#1 + \advance\dimen0 by#2\vrule width\dimen0}% + \kern-#2 } +% \makeblankbox puts rules at the edges of +% a blank box whose dimensions are those +% of \box0 (assuming nonnegative wd,ht,dp) +% #1 is rule thickness outside, +% #2 is rule thickness inside +\def\makeblankbox#1#2{\hbox{\lower\dp0 + \vbox{\hidehrule{#1}{#2}% + \kern-#1% overlap the rules at the corners + \hbox to\wd0{\hidevrule{#1}{#2}% + \raise\ht0\vbox to #1{}% set the vrule height + \lower\dp0\vtop to #1{}% set the vrule depth + \hfil\hidevrule{#2}{#1}}% + \kern-#1\hidehrule{#2}{#1}}}} +\def\maketypebox{\makeblankbox{0pt}{1pt}} +\def\makelightbox{\makeblankbox{.2pt}{.2pt}} +\def\<#1>{$\langle#1\rangle$} +\def\cs#1{{\tt\char92#1}} +% +\def\mm{{\tt manmac}} +\def\mmt{{\tt manmac.sty}} +%For abstracting and customizing +%\def\head*#1*{\chapter*{#1}} +%\def\subhead*#1*{\section*{#1}} +%\def\subsubhead*#1*{\subsection*{#1}} +%\def\ftn#1{\footnote{#1}} +\let\ea=\expandafter \let\ag=\aftergroup \let\nx=\noexpand +%Customize footer +\def\pfoottext{NLUUG meeting Fall '93} +% +\begin{document} + +\title{What is \TeX{} and METAfont all about?} +%\thanks{Paper to be presented at NLUUG meeting of 2 November, 1993.} +\author{Kees van der Laan} +\address{Hunzeweg 57, 9893 PB\\ + Garnwerd, Groningen (NL)\\ + +31 5941 1525} +\netaddress[\network{Internet}]{cgl@risc1.rug.nl} +\overfullrule0pt +%\begin{abstract} +%A survey of +% \TeX, +% its flavours, and +% its twin sister \MF{}, +%within the context of Electronic Publishing, +%is given. +%\end{abstract} +\maketitle +%\paragraph*{Keywords:}{\small \AmSTeX, +%education, electronic publishing, (La)\TeX, METAfont, (encapsulated) \PS, +% SGML, hypertext.} +\section*{Contents}% +\begingroup\small +Introduction\\ +-- \TeX{} etc.{} tools\\ +-- Importance\\ +-- \TeX's flavours, drivers, and fonts\\ +-- Descriptive mark-up\\ +-- \TeX{} its author, users, and publishers\\ +-- \TeX\ and other EP tools\\ +-- Trends\\ +-- Examples: generic format, and\\ +\phantom{--} in the small math, tables, and graphics\\ +-- Front \& back matter \\ +-- Guidelines for choosing\\ +Acknowledgements, Conclusions, References. +\endgroup +\section*{Introduction} +This work about computer-assisted typesetting by \AllTeX{} and \MF{} +in context, is aimed at a broad audience. +Novice users \`a la +BLU\footnote{BLU is Knuth's nickname for the innocent user, the so-called + Ben Lee User of the \TeX book fame, with BLUe its cousin, adopted by me. + Nowadays we would say Beginning \LaTeX\ User.} +who like to become informed what it is all about, +advanced \LaTeX\ users who hardly have heard of \mm, +and mathematicians and publishers who will find the offerings +of the \AMS{} interesting. + +There have been published many notes, articles and books about \TeX. +Advanced ones exploring \TeX's limits, and also contributions at +the survey and introductory level. +The latter deal with +the macroscopic mark-up features as well as +the microscopics of automatic kerning, + for example with A and V in AV, +the automatic handling of ligatures, +the automatic justification and hyphenation +supported by hyphenation tables, and the formatting of +math, tables and graphics. +They also boast of the quality which can be +obtained when formatting the typographic teasers: +math, tables and graphics. + +In the \TeX niques series we have the +tutorials: +A gentle introduction to \TeX, by Michael Doob, and +First grade \TeX, by Arthur Samuel. +For \LaTeX\ there is: An introduction to \LaTeX, by Michael Urban, +and---for the Dutch speaking community---Publiceren met \LaTeX, by +de Bruin. +Also noteworthy is Hoenig's \TeX\ for new users, and +the introduction chapter in Salomon's courseware Insights and Hindsights. +For \MF{} see Henderson's An introduction to \MF{}, +Tobin's \MF{} for beginners, and Knuth's +introductory article on the issue in TUGboat. +A survey with respect to EP tools (Electronic Publishing) is +Document Formatting Systems: +Survey, Concepts and Issues, by Furuta and co-authors. + +For trying it out and working with it, the user groups +distribute PD versions of (La)\TeX{} as well as +integrated working environments for PCs, +with all kinds of bells-and-whistles added. +Ubiquitous is Mattes' PD em\TeX, and the working environments + As\TeX{} (apart from Framework it is + in the Public Domain), next to the Dutch 4\TeX{} (which is shareware). + +This paper relates \TeX{} and \MF{} to EP, +SGML and the like, as a helicopter view, and accounts for the many +activities of its users. +At the end an annotated bibliography has been supplied. + +\paragraph*{Conventions and notations.} +I adhered to the historical development of \TeX\ et cetera, +and did not order the tools with respect to perceived importance. +The latter is a matter of taste and definitely time-dependent. + +The Contents list is not a one-to-one mapping of the section titles. +It is used to stress the main items and their treatment within a logical +hierarchy. +I clustered some section titles and subsection titles, whenever +convenient, to enhance readability. +The aim was to convey the contents and not so much the form, +to paraphrase Marvin Minsky. + +Because it is a `helicopter' view I need to refer to other work. +This has been done a little loose via the name of the +(first) author and the title, or keywords form the title. +The reader can easily spot from the supplied list of references +which work is hinted at. +Just start by the author name and look for the matching title. +I also did not bother about traditions which require that book titles are set +in italics or so. In my opinion to find out whether it is a book, a report or +a journal article follows easily from the ISBN number if provided, +respectively the journal name. +Hereby I assume that readers are familiar with some +journal names, for example TUGboat, the journal of the \TeX\ Users Group. + +For common words in the \TeX\ arcana\Dash like \TeX, \LaTeX, +\AMS, et cetera\Dash I adopted the TUGboat +typesetting conventions by using their macros for formatting these names. +File names are set in the \cs{tt} font. + +\section{\TeX{} etc.{} tools} +First of all \TeX\ etc.\ has been around for some fifteen years, +and many of its users have contributed to the components +and to the porting to many platforms, +with the result that it is +not easy to really survey the whole complex. + +Going back to the roots we can say that +\TeX\ is a program for formatting documents, +born as a twin with its sister \MF, for creating fonts. +\TeX\ and \MF{} have been designed to facilitate the +high-quality computer-assisted production of books. +A more modern way of talking is that \TeX\ is +a mark-up language with \MF{} the accompanying +tool for designing the needed graphics, starting with the fonts. + +A nice survey of the most important components and files when working with +\TeX\ is supplied by the accompanying diagram,\footnote{Inspired by + Salomon's diagram as supplied in his courseware: Insights and Hindsights.} +which illustrates the two main fields: font design and typesetting, with +the relations between the components and files, all in one, and abstracting +from details. + +\noindent +%Version Aug 93 cgl@risc1.rug.nl +\begingroup%Basically Salomon's diagram +%\Large\setlength{\unitlength}{3ex} + \setlength{\unitlength}{3.8ex} +\begin{picture}(14,16)(-.5, -3) +%1st column +\put(1, 0){\line(0, 1){1.5}} +\put(1, 2){\oval(2, 1)} +\put(1, 2){\makebox(0, 0){.pk}} +\put(1, 4){\vector(0, -1){1.5}} +\put(-.5, 4){\framebox(3, 1){METAfont}} +\put(1, 6.5){\vector(0, -1){1.5}} +\put(1, 7){\oval(2, 1)} +\put(1, 7){\makebox(0, 0){.mf}} +%second column +\put(7.5, -.5){\framebox(2, 1){driver}} +\put(9.6, .6){\line(-1, 0){.5}} +\put(9.6, .6){\line( 0, -1){.5}} +\put(9.7, .7){\line(-1, 0){.5}} +\put(9.7, .7){\line( 0, -1){.5}} +\put(8.5, 1.25){\vector(0, -1){.75}} +\put(8.5, 2){\oval(2, 1)} +\put(8.5, 2){\makebox(0, 0){.dvi}} +\put(8.5, 4){\vector(0, -1){1.5}} +\put(7.5, 4){\framebox(2, 1){\TeX}} +%Manmac +\put(9.75, 5.25){\line(-1, 0){1.25}} +\put(9.75, 5.25){\line( 0, -1){.5}} +\put(9.75, 4.75){\line(-1, 0){.25}} +\put(9.8, 4.75){{\tiny manmac}} +%LaTeX +\put(10, 5.5){\line(-1, 0){1.25}} +\put(10, 5.5){\line( 0, -1){.5}} +\put(10, 5){\line(-1, 0){.25}} +\put(8.75, 5.5){\line( 0, -1){.25}} +\put(10.1, 5){{\tiny \LaTeX}} +\put(10.25, 5.75){\line(-1, 0){1.25}} +\put(10.25, 5.75){\line( 0, -1){.5}} +\put(10.25, 5.25){\line(-1, 0){.25}} +\put(9, 5.75){\line( 0, -1){.25}} +\put(10.35, 5.35){{\tiny AMS-(La)\TeX}} +% +\put(10.35, 5.85){\hbox{.}\kern.1ex +\raise.5ex\hbox{.}\kern.1ex\raise1ex\hbox{.}} +% +\put(8.5, 6.5){\vector(0, -1){1.5}} +\put(8.5, 7){\oval(2, 1)} +\put(8.5, 7){\makebox(0, 0){.tex}} +% +\multiput(8.5, 9)(0, -.415){3}{\line(0, -1){.25}} +\put(8.5, 8.7){\vector(0, 1){.3}} +\put(8.5, 7.8){\vector(0, -1){.3}} +\put(7.5, 9){\framebox(2, 1){editor}} +%Spelling checker +\put(9.75, 10.25){\line(-1, 0){1.25}} +\put(9.75, 10.25){\line( 0, -1){.5}} +\put(9.75, 9.75){\line(-1, 0){.25}} +\put(9.85, 9.75){{\tiny spell}} +%Style checker +\put(10, 10.5){\line(-1, 0){1.25}} +\put(10, 10.5){\line( 0, -1){.5}} +\put(10, 10){\line(-1, 0){.25}} +\put(8.75, 10.5){\line( 0, -1){.25}} +\put(10.1, 10){{\tiny style}} +% +\put(10.1, 10.6){\hbox{.}\kern.1ex +\raise.5ex\hbox{.}\kern.1ex\raise1ex\hbox{.}} +% +\put(8.5, 11.5){\vector(0, -1){1.5}} +\put(8.5, 12){\oval(2, 1)} +\put(8.5, 12){\makebox(0, 0){copy}} +%basis +\put(1, 0){\vector(1, 0){6.5}} +\put(9.5, 0){\vector(1, 0){1.5}} +\put(11, -.75){\framebox(2, 1.5){}} +\put(11.25, -.4){\shortstack{\small printer\\\small screen}} +%middle +\multiput(5, 5.25)(0, 1){3}{\line(0,1){.5}} +\multiput(5, .25)(0, 1){4}{\line(0,1){.5}} +\multiput(5, -1.75)(0, 1.3){2}{\line(0,1){.2}} +% +\put(3.5, -1.250){\dashbox{.25}(3, .5){{\tiny \PS}}} +\multiput(6.5, -1)(.45, 0){4}{\line(1,0){.25}} +\put(8.5, -1){\line( -1, 0){.2}} +% +\put(8.5, -1){\vector(0, 1){.5}} +\put(2.5, 4.5){\vector(1, 0){1.5}} +\put(5, 4.5){\oval(2, 1)} +\put(5, 4.5){\makebox(0, 0){.tfm}} +\put(6, 4.5){\vector(1, 0){1.5}} +\put(9.5, 4.5){\vector(1, 0){1.5}} +\put(12, 4.5){\oval(2, 1)} +\put(12, 4.5){\makebox(0, 0){.log}} +%base line +\put(.51,-1.75){\vector(-1, 0){1}} +\put(2.25, -1.75){\makebox(0, 0){Fonts}} +\put(3.9,-1.75){\vector( 1, 0){1}} +\put(6.1,-1.75){\vector(-1, 0){1}} +\put(9, -1.75){\makebox(0, 0){Typesetting}} +\put(11.9,-1.75){\vector(1, 0){1}} +\end{picture} +\endgroup + +\noindent That is +\begin{itemize} +\item the flow from copy to printed results +\item where the editor and its associated tools come in +\item the location of \TeX\Dash its flavours, and add-ons\Dash at the heart +\item what is used from \MF{} and where +\item the printer independence via various drivers +\item at what level \PS{} can be included. +\end{itemize} +The important files are indicated by their extensions and are +depicted within ovals. What holds for creating the \verb|.tex| file +holds also for the \verb|.mf| file.\footnote{Not mentioned are vir\TeX\ + and ini\TeX. Erik-Jan Vens communicated the following functionalities + on the TeX-nl network: `Ini\TeX\ allows preparing and fast loading + of {\tt .fmt} files. Vir\TeX\ is a program that can accept fast + your macros and then do the typesetting job proper.'} + +\subsection{Working environments.} +The needed tools are nowadays embedded in +computer-assisted (scientific) working environments. +At first sight this seems trivial, but it is really handy that the tools +are integrated, also with non-formatting applications per se, such +as email, database applications and the old running of C or FORTRAN programs. +A model of thinking is that, for example, a thesis is prepared and all +the simulations and calculations are done as a side-step of the main work: +publishing! That is document preparation, formatting, typesetting, and +dissemination. +The graphics-oriented PCs like Macintosh and Atari paved the way. +Nowadays the 486-based PCs with their (graphics) window facilities allow +this way of working too. + +\subsection{Installation.} +The products are usually accompanied by their installation documentation. +Famous, and top class, are the AMS installation Guides. +With the PD PC versions the idea is to supply turn-key scripts so that +the installation goes automatically. +>From those distributed by the TUG/LUGs the only nice one +I have seen is the GUTenberg PD PC set and installation guide, +prepared by Lavaud. Installation of the working environments is more +complicated, because of the many components. + +\subsection{Lifetime.} +The kernel \TeX\ and \MF{} +programs have been designed with flexibility and portability in mind. +Knuth envisioned that the two could be used a hundred years from now, +just as we do today, with the same +input and results!\footnote{Or better.} +In order to make this possible Knuth +\begin{itemize} +\item invented the \WEB{} literate programming way of working +\item documented the programs (open system) well +\item worked hard on making the systems error free +\item delivered the twins into the public domain, and +\item froze the kernels. +\end{itemize} +Because of these goodies the user community could port the systems +to any conceivable platform, and add layers on top +to adjust for users' wishes and demands. All-in-all one can say +that the twins are portable in place and time, are powerful, useful, +and will serve a lifetime. + +The working environments suffer from a much shorter lifetime. +Read: need continuous maintenance and that is something, especially in +a volunteer-based world. +It is always +a matter of the right balance: how fast do I need to do the day-to-day +work and how often do I wish to upgrade the working environment. + +\section{Importance} +>From the computer science point of view +\TeX\ and \MF{} are big research achievements +in how software engineering should be done, +if not for the literate programming way of software design and creation. +Top-class algorithms for line-breaking, hyphenation and page make-up +have been incorporated. +It is designed to be device-independent. +That Knuth succeeded so well in his basic research can be witnessed +by the many publications which +have been built upon his Computer and Typesetting works, +and the many honorary degrees he has received. + +>From the users' point of view \TeX\ etc.\ +is relevant because of the quality which +can be obtained when used as a formatter. +\TeX\ is an open and freely available system. +It has been frozen, and delivered into the public domain to serve +for a lifetime. +That Knuth succeeded here so well can be distilled from the many organized +users of \AllTeX\ world-wide, and perhaps the tenfold more who +just use the systems. + +Its weakness is that \TeX\ proper does {\em not\/} have easy user guides. +This weakness has been compensated for by efforts like \LaTeX, +\AmSTeX/\LaTeX, and the styles from publishing houses and their user and +installation guides. +%\begin{quote} +Perhaps an unexpected side-effect of \TeX\ is that it is so heavily used +with alphabets different from Latin, and even with scripts +which run from right to left (Hebrew) or scripts which run vertically +(Japanese), not to mention specific hyphenation patterns. +%\end{quote} +That \TeX\ allows for these usages might give an idea of its power. + +>From the publishers' point of view \TeX\ has the potential of being used +for producing complex scientific documents cost-effectively. +This is the current practice of the \AMS, +and the American Physical Society, APS for short. +They supply authors with +\begin{itemize} +\item user and installation guides +\item fonts +\item style files +\item templates, and +\item support, in general. +\end{itemize} + +\paragraph*{The advantages}can be summarized as +\begin{itemize} +\item high-quality craftsman tool +\item lingua franca for exchange of typographically complex documents +\item stability (\TeX{} kernel has been frozen) +\item open system +\item available for nearly all platforms +\item in the public domain +\item portable, flexible, extensible, \ldots +\item 7.5--10k organized users world-wide +\item cost-effective production tool. +\end{itemize} + +\paragraph*{Disadvantages}are there any? +Of course there are. But it is questionable +whether one should talk about disadvantages. +Perhaps one should talk more in terms of incompleteness. +\begin{quote} +What is felt like an omission can be added, +because it is an extensible system. +\end{quote} +I for one miss that \mmt---Knuth's macros for formatting his books---doesn't +take a user guide, nor does plain \TeX. +Of course there is the \TeX book---the bible for the \TeX ies---but that does +{\em not\/} hide the details---it is all there, for the beginner as +well as for the advanced macro writer---which is confusing +and simply too much for a novice. In summary +\begin{itemize} +\item \AllTeX\ is not + WYSIWYG-like\footnote{Usually commercial.} +\item unusual macro language\footnote{It is always a matter of education, + and after that the {\em un\/}usual issues metamorphose into paradigms.} +\item complex: $\approx$ 1k commands, parameters, \ldots\footnote{Abstraction, + subsetting and user guides\Dash like those of \AmSTeX\Dash are needed. + Tools which concentrate on the publishing goal and not so much on + understanding and learning the formatting language per se.} +\end{itemize} +So its incompleteness is a challenge to all of us, to fill it up. + +It is true, however, that professionals have found some niches which deserve +further research and development. Surveys on these items are provided in +the E-\TeX\ paper by Mittelbach, and the New Typesetting System efforts +initiated by the German-speaking users group DANTE. +Also noteworthy is the effort to improve +\LaTeX\ via the so-called \LaTeX3 (better known as lxiii) project. + +One can also argue that delving into these details is sub-optimization, +concentrating too much on the mapping onto paper. Bigger issues are +related to the multi-media aspects, let us say to represent information +in a flexible way such that it can be processed by various technologies, +into forms suited for various users, their circumstances and their +tastes, limited only by their senses. +I like to call this {\em real\/} applied information technology: +information to be accessed by the masses. + +\section{\TeX's flavours} +\TeX\ has gotten its children already, like \mm, \LaTeX, and +\AmSTeX/\LaTeX, to name but a few. +As usual with children they live their own lives. +For \TeX\ this means that they have the confusing +side-effect of not being completely compatible. +In spite of this incompatibility reality has it that authors and publishers +make their choice---\TeX-based, or \LaTeX-oriented---and therefore +the incompatibilities don't hinder most of us. + +\paragraph*{\mmt} is a set of macros +written and used by Knuth to format his magnum opus: +The Art of Computer Programming, +his Computers and Typesetting series, +and so on. For an account see my Manmac BLUes. + +\paragraph*{\LaTeX}stresses the higher-level approach of descriptive mark-up +and hides the formatting details as much as possible from an author. +Because of the rigorous way this has been implemented, +it is hard to customize the prefab styles. + +Leslie Lamport's manual, \LaTeX, A Document Preparation System, +exhibits the functionalities +\begin{itemize} +\item prefab styles: article, book, letter, report, slides +\item automatic (symbolic) numbering and cross-referencing +\item multi-column formatting, with its embedded 1-column occasionally + for tables and figures +\item automatic generation of ToC, LoT, LoF +\item picture environment +\item bibliography environment. +\end{itemize} + +\paragraph*{\AmSTeX/\LaTeX}are the tools of the +pace-setting American Mathematical Society. This publisher adopted +and supported the \TeX\ development from the beginning. (See below +under \TeX\ and its publishers.) + +\paragraph*{\LAMSTeX} reimplemented in a flexible way + the descriptive \LaTeX\ approach, next to + a general automatic numbering and symbolic referencing scheme, + advanced table macros, and + sophisticated commutative diagram macros. + See my review of Spivak's \oe uvre + for more details about the Joy of \TeX\ and \LAMSTeX---The Synthesis. + +\paragraph*{In summary} +\begin{itemize} +\item \mmt, Knuth's format +\item \LaTeX, descriptive mark-up, and user's guide +\item \AmSTeX/\LaTeX\ styles and fonts, with support +\item \LAMSTeX +\item TUGboat styles +\item PD software and working environments +\end{itemize} + +\section{\TeX's drivers} +Normally the drivers come with your \TeX\ when you buy it. +With the PD versions, users have to be aware of the PD available drivers, +for the various PCs and printers, +unless your user group provides you with an +integrated working environment which contains all. +For a survey of the available `Output device +drivers' see Hosek's paper in TUG's resource directory. +He details drivers for +\begin{itemize} +\item laser xerographic and electron-erosion printers +\item impact printers and miscellaneous output devices +\item phototypesetters +\item screen previewers +\end{itemize} +\noindent and ends up with supplier information. +Joachim Schrod reported in TUGboat 13, 1, +(early 1992) from the TUG DVI driver standards committee. + +Well-known is the PD Beebe driver family. em\TeX\ comes with some +drivers for dot matrix printers and the HP LaserJets. + +At the TUG '92 meeting the attendees were surprised by Raman's paper +`An audio view of (La)\TeX\ documents.' It has all to do with +representing the contents of a publication for the blind. + +With respect to \PS\ the \verb|dvitops| driver is important. Formerly, +I also used \verb|dvitodvi| in order to print out selected pages. +Now I use \mm's facility to do that which is essential +simpler for that purpose because it ships out only the required pages. + +\section{\TeX{} and fonts} +>From the beginning Knuth provided \TeX\ with the computer modern family of +fonts. These fonts can be generated, and varied via \MF, +by adjusting some parameters. +Since the introduction of the virtual font concept, in revision '89 +better known as \TeX{} version 3, +many industrial fonts can be used as well. +Via this mechanism, font elements can be combined at the driver level. +The need for handling in a flexible way the positioning of diacritical marks +was the incentive for adding the virtual font concept, to make it +feasible to handle languages with their own special placements of +diacritical marks without the need to +regenerate complete new fonts. +The other way is to generate complete font tables for every language, +which is a perfectly acceptible way of doing it, +but will entail many font tables and +of larger size.\footnote{Reality has it that the \TeX\ community standardized + on the 256-character DC font tables, to allow for some special characteres, + like the use of the ij in Dutch. See Haralambous' paper in TTN 1, 4. + An entirely different approach is needed for the Japanese ideograms, + that is symbols representing things or ideas. At present there are some + 6,353 kanji characters available on various types of computers known + as JIS level 1 or 2 (Japanese Industrial Standard is akin to ASCII.) +} + +However, since \TeX\ is used for more and more applications +the need for more fonts\Dash different shapes, sizes and so on\Dash +has emerged. +Using standard bitmap technology much computer memory is needed. +Reality has it that scaling fonts linearly does not yield +pleasing results. +To compensate for this the intelligent scalable fonts technology emerged% +---near-linear and intelligent, that is with some enhancements---% +as opposed to the classical memory-consuming bitmap fonts, extended by +the linear scaling as such. + +Also the mark-up for fonts has gotten a new dimension: the linear space of +available fonts is seen as a 4-dimensional space governed by the coordinates +family, serie, shape, and size. The approach goes with the buzzword NFSS, +New Font Selection Scheme (See Goossens, Mittlebach and Samarin). + +\paragraph*{Which fonts can be used with \TeX?} +The following classes of {\em text\/} fonts can be used with \TeX +\begin{itemize} +\item CM, the native Computer Modern +\item 14,000 fonts in industry standard Adobe type 1 +\item several hundreds in formats such as TrueType. +\end{itemize} +(Very) few fonts can be used with math, +because of the specialities of the +font characteristics \TeX\ assumes. +However, the following fonts can be used with math +\begin{itemize} +\item CM math, the native Computer Modern +\item lucida math +\item lucida newmath +\item mathtimes. +\end{itemize} +For more details see Horn's Scalable outline fonts paper, and for Japanese +Fujiura in TTN 1, 2. + +\section{Descriptive mark-up} +Since the start of computer-assisted typography attention has been paid +to abstraction from details, to the principle of the +{\em separation of concerns}. + +Leading in this area is the SGML approach.\footnote{The relation + between SGML and \TeX\ will be discussed later.} +It is argued that +\begin{quote} +authors should concentrate on the contents\Dash and inherently on the +structure\Dash of their documents, leaving the details for formatting +to the publisher. +\end{quote} + +\paragraph*{Example:}(Call for papers, Furuta) +\begingroup\small\begin{verbatim} +\input cfp.tex%contains format and macros +%next copy proper +The aim of this paper... + +Paper are solicited on ... +\lstitm Picture editing +\lstitm Text processing +\lstitm Algorithms and software... + +Detailed abstracts should not ... + +Duration of presentation... +\bye +\end{verbatim}\endgroup +The above example is a mixture of natural input, where blank lines +have an intuitive but context-dependent meaning, and of +handling trivia automatically behind the scenes. +An example of a default is the heading. + +For this format the heading is always the same, +so there is no need for a user to provide it each time the format +is used. It comes along with the format. +So do the fonts used and the shortcuts +like \verb|\def\lstitm{\item{--} }|. + +My approach looks simpler than Furuta's\Dash in that paper all the low-level + formatting details were there\Dash +because I applied the principle of the separation of concerns +and abstracted from the low-level formatting details. +The point I'd like to make is that it is possible to hide +formatting details, to account for these separately and at a lower level. +I like to call this approach generic, because the mark-up is customized +at a lower level to the suited tool. + +\section{\TeX\ and its author} +Don Knuth started the design of \TeX\ in 1978. +The first major revison dates back to 1982. +The final version is dated 1989, and called \TeX\ version $\pi$.\footnote{% + Essentially version 3, but because reality has it that even Knuth + `makes errors' he allows for adjusted versions denoted by the decimals of + $\pi$: 3.1, 3.14, 3.141, et cetera.} +It is all a side-step(!) of his magnus opus: The Art of Computer Programming, +of which three volumes have appeared of the envisioned seven. +Because of the rapid development in computer science volume four consists of +three books already. + +In designing and developing \TeX, +Knuth adhered to several software engineering paradigms like: +portability, flexibility, robustness, and not to +forget correctness and documentation.\footnote{The software crises of the + seventies suffered much from inadequate documentation.} +In order to do this gracefully +he coined the words {\em literate programming}, +and provided en-passant tools for practical use! +In fact \TeX\ can be seen as +a real-life and significant example of literate programming. + +In designing \TeX\ he adopted and developed the following +\begin{itemize} +\item boxes, glue and penalties as building blocks +\item paragraph-wise searching for line-breaks +\item page mapping via the OTR,\footnote{A buzzword to denote the + output routine which performs this task.} + optimizing for least penalties +\item device-independent output, to be printed, typeset, or viewed, + by independent driver programs +\item virtual fonts. +\end{itemize} +\noindent \TeX\ was developed as a side-step. \MF{} can be seen as +an off-off-spring. + +\section{\TeX{} and its users} +It is unknown how many people use \AllTeX, and for what purposes. +We know, however, that it is used all over the world, to typset +\begin{itemize} +\item scientific documents, exchange + and publish such documents\footnote{For an impression of + published books formatted via \TeX\ see Beebe's bibliography + in the TUG resource directory.} +\item documents which require special fonts and layout + conventions, like Japanese, Arabic, Hebrew and so on +\item transparencies and slides +\item material associated with a + hobby (bridge, chess, crosswords, go, music, and add yours). +\end{itemize} +\noindent A great virtue of the users' action is +\begin{itemize} +\item the porting to various platforms +\item to provide macros, fonts and formats +\item to maintain \LaTeX +\item to ponder about and develop New Typsetting Systems +\item to develop and maintain integrated working environments. +\end{itemize} + +\paragraph*{The user groups.}We also know that many users have +organized themselves into user groups, +to start with the original \TeX\ Users Group (TUG), +and more recently into so-called LUGs---language-oriented +local user groups. +The Dutchies are organized since 1988 as the NTG, +Nederlandstalige \TeX\ Gebruikersgroep, that is Dutch language-oriented +\TeX\ Users' Group. We enjoy some 225 members of whom are 30 institutions. +\\ +World-wide some 7.5--10k users are organized. +\\ +The benefits of being organized, apart from those which come +from cooperation and sharing in general, are +\begin{itemize} +\item meetings +\item TUGboat, newsletter, casu quo bulletins, `specials' +\item resource directory (information about the (La)\TeX\ working environments + of members, their addresses and similar things) +\item TUGboat styles +\item assistance\\ + -- archives\\ + -- BBS (Bulletin Board Services) \\ + -- digests \\ + -- FAQs (Frequently Asked QuestionS) +\item courses +\item PD sets (Public Domain) +\item distributing point books (tutorials), software. +\end{itemize} +\noindent +Moreover, the user groups stimulate and support research and development, +such as the projects: \TeX HaX, \BibTeX, +and more recently \LaTeX3, and NTS. +>From the social side we have the TUG bursary fund, +to grant attendence for a TUG meeting for those TUG members who can't +afford it, next to the Knuth Scholarship award. The latter is a competition +which rewards the winner with attending a meeting for free. + +\paragraph*{Some addresses?} +\begin{quote} +TUG: Balboa Building, Room 307, 735 State Street, Santa Barbara, Ca 93101, USA, + {\tt tug@tug.org}\\[1ex] +NTG: Postbus 394, 1740 AJ Schagen, {\tt ntg@nic.surfnet.nl}. +\end{quote} +For other addresses consult the resource directory of TUG, or +your friendly NTG around the corner. + +\subsection{Add-ons}have been provided by the user communities. +They have also supplied mutual support, and have provided logistic facilities. +The latter is not restricted to \AllTeX\ proper. +It is about the general use of the electronic networks +\begin{itemize} +\item exchange via e-mail +\item electronic digests and list servers +\item the file servers, which store all the macro and style files. +\end{itemize} +Really, very nice goodies! The proper add-ons concern +\begin{itemize} +\item porting the complex to every system, especially the affordable + and widespread PCs +\item macro and style files\footnote{A survey of what is provided is contained + in the so-called Jones' index, and Beebe's TUGlib.} +\item extra fonts, casu quo font couplings via virtual font scripts +\item WYSIWYG user interfaces (commercial) +\item \TeX-based PD/shareware working environments +\item language-specific issues (hyphenation patterns, reserved words, \ldots) +\item drivers for new printers +\item \PS{} etc.{} inclusion at the dvi level. +\end{itemize} +And the end is not yet in sight. + + +\section{\TeX{} and the publishers} +The importance of the \AMS{} effort is that the AMS is leading in how (La)\TeX\ +can be used cost-effectively as a +high-quality tool in a production environment: +publishers cooperating with authors. + +As I understand it the American Physical Society is following +the AMS approach. + +At the TUG '91 meeting at Boston, it was estimated that commercial publishers +handle some 5 to 10\% of their (scientific) production via (La)\TeX. + +And in the CIS---Commonwealth of Independent States, the former Russia---MIR +has adopted the AMS approach as well. +And then there is the Ukraine group to be founded officially this fall, +and undoubtedly more to follow. +% +\paragraph*{The \AMS}do their +complete production via \TeX: $\approx$100,000 pages/year, + and provide authors with +\begin{itemize} +\item (generic) styles +\item macros, and fonts +\item user guides +\item support (keyboarding, mark-up, fine-tuning). +\end{itemize} +The approach can be depicted by the following scheme +$$\hbox{\vbox{\lineskip.5\lineskip +\hbox to15ex{\hss author(\TeX)\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\tt amsppt.sty\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\tt amstex.tex\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\TeX\hss} +}\qquad\qquad\qquad\qquad\vbox{\lineskip.5\lineskip +\hbox to15ex{\hss author(\LaTeX)\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\tt amsart.sty\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\llap{{\tt amstex.sty}$\,% +\rightarrow\;$}\LaTeX\hss} +\hbox to15ex{\hss$\downarrow$\hss} +\hbox to15ex{\hss\TeX\hss} +}}$$ +They also supply fonts: Euler, Fraktur, \ldots + +For more details +consult the AMS sources or see my AMS BLUes paper on the issue. + +\paragraph*{The American Physical Society}handle some 20\% +of their production via \LaTeX. They cooperate with The Optical +Society of America and the American Institute of Physics. +Their style is called REV\TeX. + +\paragraph*{MIR}publishers Moscow---the driving force +behind CyrTUG, the Cyrillic language-oriented \TeX\ +users group\footnote{See also `News about CyrTUG and Russian \TeX\ Users' + in TTN 2, 1.}---translated Spivak's The Joy of \TeX\ +into Russian among others. +I would not be surprised to hear that they do the +production of their scientific documents with \TeX\ too, completely. +They have the knowledge and \TeX nology. And \TeX- and \MF-based +technology does not require much hard currency for investment. + +\paragraph*{JTUG?}And what is going on in Japan? +The JTUG has at least .5k members.\footnote{See also `Update of \TeX\ in Japan' + TTN 1, 2.} They have translated among others the \TeX book and the + \LaTeX\ manual into Japanese. +Some years ago I received a Japanese newspaper set by J\TeX! + +\section{\TeX\ and other EP tools} +Furuta gives a good account of the history and early tools +in relation with computer-assisted typesetting. However, since the appearance +of that paper +\begin{itemize} +\item the laser printer technology has taken off +\item many computer-based fonts have emerged +\item thinking in structures has gotten more interest (SGML) +\item the DTP (Desktop Publishing) credo has come into existence, and +\item hardware prices have continued to spiral down. +\end{itemize} +Everybody can afford a PC, a laser(jet) printer, and some software (especially +Word{\em whatever\/} or the PD \AllTeX). % and publish (or perish). ;-))) + +\subsection{\TeX\ and intelligent editors.} +Keyboarding compuscripts in (La)\TeX\ can be assisted by editors which +are (La)\TeX\ intelligent, and next, to use templates as `fill-in' forms. +An example is Beebe's \LaTeX-intelligent emacs. +This approach can prevent errors like the level 1 or so endings, or +non-matching braces and the like. +At this level we can also make use of spelling checkers and style +assistants. + +\subsection{Word{\it whatever\/} and \TeX?} +It is true that Word-you-name-it, has made the use of computers more popular. +They replaced the typewriters, don't forget that. And of course that was a +step forward. These are the tools the masses are using because of the +sufficient and improved quality which can be obtained. +This must be seen in context of course: most of the publications +are just in-house reports, memos and the like. + +\begin{quote} +For high-quality typesetting a \TeX-like tool, +high-resolution fonts and ipso facto printer, or viewer, +are needed. +\end{quote} +\noindent +Because wordprocessors are so widespread and heavily used, it can be +anticipated that users start from there and +need \TeX's formatting capabilities now and then. +For that group there exist conversion software: +the public domain DRILCON +and the commercial K-Talk. +Simpler, and better when it concerns complex structured copy, +is to +\begin{quote} +output in ASCII from Word{\it whatever\/} +and insert \AllTeX\ mark-up. +\end{quote} +\noindent And, of course, the wordprocessor can always be used as an editor +for \TeX, with taking advantage of the integrated spelling checker. + +\subsection{Troff or \TeX?} +Troff preceded \TeX. It comes with UNIX. +Both have been in use for the last decade. +To begin with Knuth built upon troff, scribe and similar tools. +On the other hand the troff add-ons have learned from \TeX. +So there has been mutual influence. + +With respect to the functionality the tools are comparable. Both aim at +computer-assisted typography. But there is also a world of difference. +Basically the difference is that troff is a program which can be +extended by independent preprocessors, and \TeX\ is an extensible +language itself, with plain \TeX---the kernel program---device independent, +that is the mapping on the media has to be done by independent drivers. +That the latter was not in troff +can be discerned from the subsequent nroff\Dash with accompanying neqn\Dash +and finally, di-roff, device-independent roff. +Furthermore, remember that \TeX\ is just one of the twins. + +Rumour has it that interest in troff weakened because +the early PCs did not come with UNIX, and that +the kernel has remained undocumented (Its author Ossanna +died in an accident.) +The following table is supplied to indicate roughly the differences. + +\begingroup\tiny +%\input{btable.tex} +%C.G. van der Laan, Hunzeweg 57, 9893PB, Garnwerd. Holland. 05941-1525. +%btable.tex version 1, 17/7/92 author: cgl@risc1.rug.nl +\newbox\tbl\let\ea=\expandafter +%Cell vertical size, row height and depth (separation implicit), +\newdimen\cvsize\newdimen\tsht\newdimen\tsdp\newdimen\tvsize\newdimen\thsize +%Parameter setting macros: Rules +\def\hruled{\def\lineglue{\hrulefill}\def\colsep{} \def\rowsep{\hrule} + \let\rowstbsep=\colsep\let\headersep=\rowsep} +\def\vruled{\def\lineglue{\hfil} \def\colsep{\vrule}\def\rowsep{} + \let\rowstbsep=\colsep\let\headersep=\hrule} +\def\ruled {\def\lineglue{\hrulefill}\def\colsep{\vrule}\def\rowsep{\hrule} + \let\rowstbsep=\colsep\let\headersep=\rowsep} +\def\nonruled{\def\lineglue{\hfil} \def\colsep{} \def\rowsep{} + \def\rowstbsep{\vrule}\def\headersep{\hrule}} +\def\dotruled{\def\lineglue{\dotfill}\def\rowsep{\hbox to\thsize{\dotfill}} +\def\colsep{\lower1.5\tsdp\vbox to\cvsize{% +\leaders\hbox to0pt{\vrule height2pt depth2pt width0pt\hss.\hss}\vfil}} +\let\rowstbsep=\colsep\let\headersep=\rowsep} +%Parameter setting macros: Controling positioning +\def\ctr{\def\lft{\hfil}\def\rgt{\hfil}}%Centered +\def\fll{\def\lft{} \def\rgt{\hfil}}%Flushed left +\def\flr{\def\lft{\hfil}\def\rgt{}} %Flushed right +%Parameter setting macros: Framing +\def\framed{\let\frameit=\boxit} +\def\nonframed{\def\frameit##1{##1}} +\def\dotframed{\let\frameit=\dotboxit} +% +\def\btable#1{\vbox{\let\rsl=\rowstblst%Copy +\ifx\empty\template\ifx\empty\rowstblst + \def\template{\colsepsurround\lft####\rgt&&\lft####\rgt\cr} + \else\def\template{\colsepsurround####\hfil&&\lft####\rgt\cr}\fi + \fi +\tsht=.775\cvsize\tsdp=.225\cvsize +\def\tstrut{\vrule height\tsht depth\tsdp width0pt} +%Logical mark up of column and row separators, via use of +\def\cs{&\colsepsurround\colsep\colsepsurround&} +\def\prs{&\colsepsurround\lineglue&} \def\srp{&\lineglue\colsepsurround&} +\def\rs{\colsepsurround\tstrut\cr + \ifx\empty\rowsep\else\noalign{\rowsep}\fi + \ifx\empty\rowstblst\else\ea\nxtrs\fi} +\def\grs{\colsepsurround\tstrut\cr\ghostrow} +\def\rss{&\colsepsurround\rowstbsep\colsepsurround&} +\def\hs{\colsepsurround\tstrut\cr + \ifx\empty\headersep\else\noalign{\headersep}\fi + \ifx\empty\rowstblst\else\ea\nxtrs\fi} +\preinsert +\setbox\tbl=\vbox{\tabskip=0pt\relax\offinterlineskip +\halign{\span\template\ifx\empty\first\ifx\empty\rowstblst\else +\ifx\empty\header\else\ea\rss\fi\fi\else\first\ea\rss\fi +\ifx\empty\header\ifx\empty\first\if\empty\rsl\else\ea\nxtrs\fi + \else\ea\hs\fi +\else\header\ea\hs\fi +#1\colsepsurround\tstrut\crcr} } %end \setbox +\postinsert +\ifx\caption\empty\else\hbox to\thsize{\strut\hfil\caption\hss}\captionsep\fi +\frameit{\copy\tbl} +\ifx\footer\empty\else\footersep\hbox{\vtop{\noindent\hsize=\thsize% +\footer}}\fi }} %end \btable +%Defaults +\cvsize=4ex\tsht=.775\cvsize\tsdp=.225\cvsize\def\colsepsurround{\kern.5em} +\def\caption{}\def\first{}\def\header{}\def\rowstblst{}\def\footer{}\def\data{} +\def\captionsep{\medskip} \def\headersep{\hrule} +\def\footersep{\smallskip} \def\rowstbsep{\vrule} +\def\preinsert{} +\def\postinsert{\global\thsize=\wd\tbl + \global\tvsize=\ht\tbl\global\advance\tvsize by\dp\tbl} +\ctr\nonruled\nonframed\def\template{}\def\ghostrow{} %end Defaults +%Auxiliaries +\def\boxit#1{\vbox{\hrule\hbox{\vrule\vbox{#1}\vrule}\hrule}} +\def\dotboxit#1{\vbox{\offinterlineskip\hbox to\thsize{\dotfill}% +\hbox{\lower\tsdp\vbox to\tvsize{% +\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}% +\vbox{#1}\lower\tsdp\vbox to\tvsize{% +\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}}% +\hbox to\thsize{\dotfill}}} +%And to account for logical columns with \multispan +\def\spicspan{\span\omit} +\def\multispan#1{\omit\mscount=#1\multiply\mscount by2 \advance\mscount by-1 +\loop\ifnum\mscount>1 \spicspan\advance\mscount by-1 \repeat} +%To process FIFO, an improved version is available +\def\bfifo#1{\ifx\efifo#1\else\def\nxt{\process#1\bfifo}\ea\nxt\fi} +\def\process#1{\hbox to0pt{\hss#1\hss}\kern.5ex} +%To handle the row stub list: \rsl +\def\nxtrs{\ifx\empty\rsl%\let\nxtel=\relax +\else\def\nxtel{\ea\nrs\rsl\srn}\ea\nxtel\fi}%next Row Stub +\def\nrs#1#2\srn{\gdef\rsl{#2}#1\rss} %end btable.tex +%%%%btable end%%%% +% +\def\data{%Costs\cs +PD \cs licensed via UNIX\rs +%Availability\cs +all platforms \cs under UNIX \rs +%Documentation\cs +\TeX book (also on-line)\cs On-line manual \rs +%Fonts \cs +METAfont's CM, virtual fonts \cs ?\rs +%Design \cs +open system \cs kernel undocumented\rs +%Printers \cs +device independent \cs di-roff approach\rs +%Flexibility \cs +complete \cs ?\rs +%Extensibility \cs +macros \cs preprocessors\rs +%Mark-up\cs +formats and styles\cs ms macros\rs +%Coding \cs +uniform in \WEB{} \cs C\rs +%Future \cs +kernel frozen, users augment \cs frozen\rs +%Acceptance \cs +users, AMS, APS, \ldots \cs users, ?\rs +} +\def\header{\AllTeX\cs T/Di-roff} +\def\rowstblst{{% +Costs}{% +Availability}{% +Documentation}{% +Fonts }{% +Design }{% +Printers }{% +Flexibility }{% +Extensibility }{% +Mark-up }{% +Coding }{% +Future }{{% +Acceptance }}} +$$\fll\btable\data$$ +\endgroup + +\subsection{SGML and \TeX?} +SGML stands for Standardized Generalized Mark-up Language. +It is an effort to formalize mark-up, and is defined as a meta-language +to define the mark-up language of each publication series into +so-called Document Type Definitions, DTDs for short. + +SGML is part of a huge standardization effort supported by the +US military via the CALS initiative. Other components are: FOSI---Formatted +Output Specification Instance\footnote{See Dobrowolski's paper.}---and +DSSSL.\footnote{See Bryan's paper.} +It is not so much a question of +\begin{quote}\TeX\ {\em or\/} SGML, +but more \TeX\ {\em and\/} SGML. +\end{quote} +\noindent +\TeX\ formats can learn a lot from the SGML approach and on the other hand +SGML needs a formatter when it is used to print documents. +This cooperative approach is known as +\begin{quote} +SGML the front-end, +\AllTeX\ the back-end. +\end{quote} +\noindent A diagram about the SGML-\TeX\ relation is +supplied in the accompanying picture. + +\newcount\leg +\begin{figure}[hbt] +\begin{center} +\begingroup\small +\setlength{\unitlength}{2.5ex} +\begin{picture}(20,23)(-10, 0) +\put(-7,\the\leg){\framebox(4,2){(La)\TeX}} +\put(-2,\the\leg){\framebox(4,2){TROFF}} +\put(3,\the\leg){\framebox(4,2){\ldots}} +\advance \leg by 4 +%hark +\put(-5,\the\leg){\vector(0,-1){1.75}} +\put(0,\the\leg){\vector(0,-1){1.75}} +\put(5,\the\leg){\vector(0,-1){1.75}} +\put(-5,\the\leg){\vector(1,0){5}} %backarrow +\put( 0,\the\leg){\line(1,0){5}} +%converters +\put(5.5,\the\leg){\vtop to 0pt{\hbox{Specific} + \hbox{format file}\vss + } + } +\put(0,\the\leg){\vector(0, 1){1}} %backarrow +\advance \leg by 1 +\put(-4,\the\leg){\framebox(8,2){% + \shortstack[c]{%\footnotesize + Generic markup\ \\ + %\footnotesize + $\Rightarrow$\ procedural} } + } +\advance \leg by 2 +\put(4.2,\the\leg.2){\line(0, -1){1}} +\put(4.2,\the\leg.2){\line(-1, 0){1}} +\put(4.4,\the\leg.4){\line(0, -1){1}} +\put(4.4,\the\leg.4){\line(-1, 0){1}} +\put(4.6,\the\leg.2){{\tiny Formats}} +% +\advance \leg by 1 +\put(0,\the\leg.5){\vector(0,-1){1.5}} +\put(0,\the\leg.5){\vector(0, 1){0}} %backarrow head +%applications +\advance \leg by 1 +\put(-10,\the\leg){\makebox(0,0){Exchange}} +\put(-5,\the\leg){\makebox(0,0){Storage}} +\put(0,\the\leg){\makebox(0,0){Publication}} +\put(5,\the\leg){\makebox(0,0){Database}} +\put(10,\the\leg){\makebox(0,0){\vtop to 0pt{\hbox{(Text-)} + \hbox{analysis}\vss} + } + } +%hark +\advance \leg by 2 +\put(0,\the\leg){\vector(0,-1){1.25}} +\put(-5,\the\leg){\vector(0,-1){1.25}} +\put(-10,\the\leg){\vector(0,-1){1.25}} +\put(5,\the\leg){\vector(0,-1){1.25}} +\put(10,\the\leg){\vector(0,-1){1.25}} +\put(-10.5,\the\leg){\line(1,0){21}} +\put(11.25,\the\leg){\makebox(0,0){\dots}} +\put(-11.25,\the\leg){\makebox(0,0){\dots}} +\advance \leg by 2 +\put(0,\the\leg){\line(0,-1){2}} +\put(0,\the\leg){\vector(0,1){0}} %back (up) arrow head +\put(-7.5,\the\leg){\framebox(15,1){Complete, correct SGML +document}} +\advance \leg by 2 +\put(.5,\the\leg.25){Parser} +\advance \leg by 2 +\put(0,\the\leg){\vector(0,-1){3}} +%\advance \leg by 1 +\put(-7.5,\the\leg){\framebox(15,3){ + \shortstack[l]{\verb==\\ + \verb==\\ + \verb== } + } + } +\advance \leg by 3 +%\corners +\put(7.7,\the\leg.2){\line(0,-1){2}} +\put(7.7,\the\leg.2){\line(-1,0){2}} +\put(7.9,\the\leg.4){\line(0,-1){2}} +\put(7.9,\the\leg.4){\line(-1,0){2}} +\put(8.1,\the\leg.2){{\tiny DTDs}} +% +\advance \leg by 1 +\put(.5,\the\leg){Editor} +\advance \leg by 1 +\put(0,\the\leg.5){\vector(0,-1){2.5}} +\advance \leg by 1 +\put(0,\the\leg){\framebox(0,0){\strut ``Copy''}} +\end{picture} +\endgroup% \small/\Large +\end{center} +%\caption{Relation SGML and (La)\TeX} +\end{figure} +% +\subsection{SGML and Hypermedia?} The following has been contributed +by Gerard van Nes (from SGML FAQs and +Personal Computer Word, March 1992) +\begin{quote} +`HyTime---Hypermedia/Time-based Structuring Language (ISO/IEC 10744). +HyTime is a standard neutral markup language for representing hypertext, +multimedia, hypermedia and time- and space-based documents in terms of their +logical structure. Its purpose is to make hyperdocuments interoperable +and maintainable over the long term. HyTime can be used to represent +documents containing any combination of digital notations. HyTime is +parsable as Standard Generalized Markup Language. +HyTime was accepted as a full International Standard in spring 1992. + +SGML's hypermedia capabilities have been beefed up in the SGML standard +extension HyTime. Although it started out in life as a specific set of +standards for representing music, it was soon realised that these could +be generalised for multimedia. HyTime provides +\begin{itemize} +\item SGML itself +\item Extended Hyperdocument management facilities, including support for + various types of hyperlink +\item A Coordinate Addressing Facility which positions and synchronises + on-screen events. This allows authors to specify how hypermedia + documents are to be rendered +\item Better version-control of comments and activity-tracking policy support. +\end{itemize} +HyTime has been adapted as the basis for hyperlinking in the US +Department of Defense's Interactive Electronic Technical Manual project. +HyTime is an extension of SGML, providing a set of syntactic constructs: +it doesn't specify a processing system.' +\end{quote} +\noindent Sounds very promising! + + +\subsection{\TeX\ within the context of EP.} +When we think about Electronic Publishing we can't avoid being +aware of the life-cycle of publications. +This obeys the biological invariant: produce, consume and reuse. +\subsection*{Life-cycle: producing.} +The production process has all to do with the dimensions + +\begingroup +\setlength{\unitlength}{1ex} +\begin{picture}(18,15)(2, -1) +\put(5,5){\vector(1,0){5}} +\put(5,5){\vector(0,1){5}} +\put(5,5){\vector(-1,-2){2.5}} +%Text +\put(11,5){Place} +\put(6,10){Representation} +\put(4,0){Time} +\end{picture} +\endgroup + +\noindent and with the characteristics +\begin{itemize} +\item representation of the contents, that is the typesetting proper aspects +\item logistics, that is distribution and selling points---the place dimension +\item reuse, that is the time aspect, when + (parts of) document are reused. +\end{itemize} +The flow can be depicted via + +$$\vbox{\halign{&\enspace\hfil#\hfil\cr +Produce&$\rightarrow$&Distribute&$\rightarrow$&Consume\cr +$\uparrow$&&$\uparrow$&&$\downarrow$\cr +reuse&$\leftarrow$&retrieve&$\leftarrow$&store\cr}}$$ + +\noindent +The big features are the unambiguous mark-up of copy via \AllTeX\ +and the lifetime of the \TeX\ kernel. Therefore storing documents +formatted by \TeX, leaves the reuse aspect open. Reality has it that +documents formatted via \TeX\ are easily redistributed via the electronic +networks, because it is all in ASCII, and \TeX\ is everywhere, so are its +drivers. + +My day-to-day reuse is transforming reports into articles and these +into transparencies. +In this work it is the other way round I'm recollecting elements I have set +earlier. Similarly with the book I'm working on Publishing with \TeX. +Actually my first work in the document preparation area, +in the early eighties, was called `Van rapport naar tranparant.' +% +\subsection*{Life-cycle: consuming.} +\TeX's drivers have not paid attention to other representations as yet, +although an exception is a driver for the blind. +Difficulties in formatting languages different from English have been +exercised in recent years. Undoubtedly research will be devoted +to the aspects hinted at in the diagram given below with the dimensions + +\begingroup +\hbox{\setlength{\unitlength}{1ex} +\begin{picture}(18,14)(2, -1) +\put(5,5){\vector(1,0){5}} +\put(5,5){\vector(0,1){5}} +\put(5,5){\vector(2,-1){5}} +\put(5,5){\vector(-1,-2){2.5}} +%Text +\put(11,5){Level} +\put(11,2.5){Media} +\put(6,10){Senses} +\put(4,0){Language} +\end{picture}%\quad +\vbox to3.5\baselineskip{\halign{#\hfil:&\enspace#\hfil\cr +Senses& eyes, ears, tactile\cr +Level&abridged, full, \ldots\cr +Language&English, Dutch, \ldots\cr} +\vss}}% +\endgroup + +\noindent and with the characteristics +\begin{itemize} +\item choice of consumer language independent of the submitted language, + that is automatic translation +\item choice of representation, that is for example voice + output from written submission. +\end{itemize} +\noindent +Of course the above aspects will +keep research busy for some time to come. +This is the direction multi-media development will go. + +\section{Trends} +Adobe has been the trendsetter of the last decade with respect to new +EP technologies. Recently, I heard about their +PDF---Portable Document Format---which is at the heart of their +Acrobat. Very promising, if not for the tools which come along +with this product. + +I believe that the multi-media information technology will take off in +the next century. +Much is known under the buzzword hypertext. +See the special issue of the Communications of the ACM for +an introductory survey. +As a \TeX ie it is fun to ponder about what niche +there will be for \TeX. At the various TUG meetings people are concerned +about the future of \TeX\ and share their doubts and optimisms. +>From that the following anthology +\begin{itemize} +\item \LaTeX\ is the future, forget about \TeX +\item make \AllTeX\ available on low-cost machines +\item embed \TeX\ etc. in working environments +\item improve \TeX, in short keep it alive +\item provide WYSIWYG user interfaces +\item increase the number of (organized) \AllTeX\ users +\item get \AllTeX\ accepted by publishers (formats, support, fonts, + and the like) +\item get \AllTeX\ accepted by other communities: SGML, + scientific societies +\item provide user guides and templates +\item education is paramount +\item keep it simple and small is beautiful. +\end{itemize} +\noindent and so on. +\paragraph*{Prophecy.} +The demand on IT will be that +\begin{quote} +people can access cost-effectively, and easily, +from their homes the information they need in a representation they wish. +\end{quote} +I envision that the following technologies will influence each other +in realizing the stated prophecy +\begin{itemize} +\item \TeX's role? Embedded in a Hypertext approach? +\item Increased self-publishing +\item Electronic Production \& Consumption \\ + + Photography\\ + + CD\\ + + TV/Radio, video\\ + + PC \\ + + Phone, fax, email \\ + + Holography \\ + + \ldots +\item Involvement of linguists and behaviourists +\end{itemize} +\noindent with the functionalities +\begin{itemize} +\item Various inputs (o.a. voice, photography, \ldots) +\item Diverse outputs +(language, level, media and representation,\ldots) +\end{itemize} +Some years ago I day-dreamed about holographic-based true 3-D `displays,' +as a generalization of computer-assisted interactive TV. +Science-fiction? Wait and see, or better hang on and make it happen! + +\section{Examples} +With a publication we have two main issues: macroscopic and microscopic. +With the first I mean the aspects which govern the total outer level of +a publication, let us say to look upon it as a tree consisting of +\begin{itemize} +\item front matter (front pages (title etc.), publication characteristics, + foreword, table of contents and the like) +\item copy proper (the chapters and their substructures), + and +\item back matter (appendixes with references, index, and other special + items). +\end{itemize} +\noindent These macroscopic aspects are accounted for in so-called formats or +style files. + +The microscopic aspects deal with formatting in the small within paragraphs, +the complex mark-up of math, tables and graphics. + + +Another basic way to look at the matter is that it has all to do with +\begin{quote} +positioning of typographical elements on pages. +\end{quote} +\noindent The following examples, +biased by my own (scientific) needs, are in the main about +\begin{itemize} +\item formats, generic and special +\end{itemize} +\noindent and deal in the small with +\begin{itemize} +\item special texts like programs +\item (displayed) math (formulae, matrices, \ldots) +\item tables +\item graphics +\item bibliographies, and +\item indexes. +\end{itemize} +\noindent So nothing in here about the use of \TeX\ for +non-Latin languages and the design and generation of the needed fonts, +simply because I don't speak them. +I also refrained from including examples about the hobby use---games---% +without a serious reason. +See NTG's PR set for the latter. +See the works of Haralambous with respect to non-Latin languages, and +the work of Horak for (math) \MF{} examples. + +\subsection{Examples: formats.} +In this section some detailed formatting examples are provided. + +I will consider \LaTeX\ as formatter for a rudimentary +house-style, followed by a generic approach customized to \mm{} and \LaTeX's +report style. + +\paragraph*{House-style.} +\LaTeX\ is heavily used for this {\em as-is} +\begingroup\small\begin{verbatim} +\documentstyle[options]{house} +%preamble +\begin{document} +%front matter +\title{...} +... +\begin{abstract} +... +\end{abstract} +\tableofcontents +\listoffigures +\listoftables +%copy proper +%\section, \subsection structuring with +%paragraphs with (displayed) math, tables +%and graphics. +%back matter +\begin{thebibliography}{xxx} +\bibitem{dek84} Knuth, D.E (1984):... +... +\end{thebibliography} +%Index material (\makeindex tool) +\end{document} +\end{verbatim}\endgroup +Options are, for example, +the number of columns,\footnote{It is not true in general that switching from + 1-column into 2-column format can be done without altering the mark-up + of displayed math, tables or figures. + At least one must change locally back into + 1-column format, or one has to scale the document element into smaller + size as was done in this paper.} +the size of the used fonts, +the paper size, and the like. + +As style files there are next to report, +the styles book, article, letter, and so on.\footnote{\LaTeX's \SliTeX\ +is a bit different. One can't simply switch from report into slides.} + + +\paragraph*{Generic mark-up.} +Many users start nowadays via \LaTeX. Sooner or later the demand for +a generic approach pops up. +Then the user wishes to +abstract from the concrete formatter and +use some higher-level mark-up for the global structuring commands, customizable +to a concrete formatter of choice.\footnote{This sounds like SGML, but without + its generality and its overhead. I like to call this `SGML on your mind + and \TeX\ in your hands.'} + +The idea is that the {\em user\/} mark-up at the outer level is +as independent as possible from the concrete formatter. +\begin{quote} +A generic approach is needed because of +the variety of environments we live in +and because of their rapid change. +\end{quote} +For the generic approach to become realistic, and to handle it gracefully, +I assume that +\begin{itemize} +\item the opening part is available for the various formats as + templates +\item the copy proper uses as structuring commands \verb|\head| and + the like +\item for the detailed formatting plain \TeX\ is used, + so that this can be used in + \AllTeX\ (math, tables, and graphics) +\item for the end matter a generic approach for the bibliography---see + my BLUe's Bibliography paper---is used +\item for index preparation a non-specific tool is used. +\end{itemize} +With the above a generic approach for a house-style is +\begingroup\small\begin{verbatim} +%Front matter +\opening%To be replaced by template +%Copy proper +% Structured via \head{...} and the like +% with detailed plain mark-up: math, tables, +% line diagrams,... +%Back matter + \bibliography + \index +\closing +\end{verbatim}\endgroup +\vskip1ex +\noindent Customization to \mm.\\ +\mm{} is flexible, and alas too much overlooked, +because it lacks a user guide. +Customization of the generic approach to manmac +goes along the following lines to give you an +impression. (Not tested!) +\begingroup\small\begin{verbatim} + \input manmac + \input manmac.cus%manmac customization + \input man.tem %manmac template + \input toc %table of contents + \input cover %see my manmac blues + %Copy proper + %Back matter + \closing +\end{verbatim}\endgroup +\noindent with in \verb|manmac.cus| +\begingroup\small\begin{verbatim} + %Customization of manmac + %Redefine \beginchapter also non-outer + \def\beginchapter#1 #2#3.#4\par{% + \def\hl{\gdef\hl{\issue\hfil\it\rhead}} + \headline{\hl} + \def\\{ }\xdef\rhead{#4} + {\let\\\cr\halign{\line{\titlefont + \hfil##\hfil}\\#1 #2#3 #4\unskip\\}} + \bigskip\tenpoint\noindent\ignorespaces} + \def\endchapter{\vfill\eject} + % + \newcnt\chpcnt \newcnt\seccnt + \def\head#1{\endchapter\beginchapter + \advance\chpcnt1 \seccnt0 + {} {}\the\chpcnt. #1\endgraf} + \def\subhead#1{\beginsection\advance\seccnt1 + \the\seccnt. #1\endgraf} + \def\bibliography{\beginchapter Bibliography + {}{}.{}\endgraf} + \def\closing{\bye} +\end{verbatim}\endgroup +\noindent and with in \verb|manmac.tem| +\begingroup\small\begin{verbatim} +\def\opening{ + \def\issue{% + MAPS Special 93.x %issue + }\def\title{% + MAPS Special Template %title + }\def\abstract{% + A template for MAPS Special is provided. + }\def\keywords{% + manmac, MAPS, NTG %keywords + } +} +\end{verbatim}\endgroup +\noindent In my Manmac BLUes paper I have worked out a prototype, directed +to customization of \mm. +\begin{quote} +Actually there it was the other way round: +I started from Manmac formatting and abstracted +into independent structures. +\end{quote} +In Manmac BLUes I also worked out \verb|cover|. +Too much detail here. +\vskip1ex +\noindent Customization to \LaTeX.\\ +The `title part'-template is inserted instead of \verb|\opening|, +edited to suit the publication at hand. +In \verb|latex.cus| the macros are supplied to customize the generic +mark-up to \LaTeX. +\begingroup\small\begin{verbatim} +%Begin LaTeX report \opening template +\documentstyle{report} +\input{latex.cus} +\begin{document} +\begin{title}...\end{title} +... +%end LaTeX \opening template +%Copy proper +... +%Back matter +\bibliography +\closing +\end{verbatim}\endgroup +\noindent with in \verb|latex.cus| +\begingroup\small\begin{verbatim} +\def\head#1{\chapter{#1}} +\def\subhead#1{\section{#}} +\def\bibliography{\appendix + \section*{Bibliography} + \input{lit.dat} + %\input{lit.tex} + \frenchspacing + \def\ls#1{\nul\\#1}%simple + \input{lit.sel} +} +\def\closing{\end{document}} +\end{verbatim}\endgroup +\noindent +The above ideas came to mind when working on this paper. +They deserve development, because it has all to do with the +\begin{quote} +user$\leftrightarrow$environment interaction, +\end{quote} +which has always been important. + +\paragraph*{Special texts}are computer programs. +First we like that these +reflect the structure and different quantities (constants, variables, +reserved words, comments etc.) of the program. Second we like that the +programs remain correct while formatting them (meaning: humans hands-off!). +These kind of texts come at two levels +\begin{itemize} +\item the small examples (less than a dozen of lines or so) + which are part of courseware, and +\item the documentation (and listings) of real-life programs. +\end{itemize} +Current practice is that for the first it does not really matter what you use. +For a survey see the compilation of Van Oostrum. +For the second Knuth developed \WEB, which stimulates a programmer to +design and {\em document\/} his program from the beginning, by rewarding him +with pretty-\TeX\ printing of it all via \TANGLE. Actually the hierarchical +way of working has been replaced by a relational approach, with the +documentation related to the various items of a program. +For a survey see Knuth's literal programming article of 1984. + +\subsection{Examples: math.} +The \TeX book has devoted at least 4 chapters to math mark-up: +typing math formula, +more about math, +fine points of math typing, and +displayed equations. + +See also my Math into BLUes paper for % an anthology of pitfalls. +a survey and how to cope with situations which go wrong---not so much that +\TeX\ complains, but the results are different +from what we expected---by innocent mark-up. + +\paragraph*{Displayed math}via (plain) \TeX. +A display is marked up by \$\$ at the beginning and the end. +Within a display the following is generally used +\begin{itemize} +\item just math mark-up +\item \verb|\displaylines|, for multi-liners +\item \verb|\(l)eqalign|, for aligned formulas\footnote{(l) denotes that + the numbering appears at the left instead of the default right.} +\item \verb|\(l)eqalignno|, similar to the above, but numbering per line. +\end{itemize} +For numbering there is the primitive \verb|\eqno|. +\vskip1ex\noindent +>From a user point of view the following are representative structures +\begingroup%local +%From plain; in LaTeX context the defs below should be grouped +\newskip\centering \centering=0pt plus 1000pt minus 1000pt +\catcode`\@=11 +\newdimen\netdpw +%The next is necessary because LaTeX redefined it!!!!!; +%\equalign with numbering went wrong! +% +\def\eqalign#1{%Changed TB361: dynamic number of alignment positions +%\, Had to be removed for two-column output, see TB189 (top) +\vcenter{\openup1\jot\m@th + \ialign{\strut\hfil$\displaystyle{##}$&& %Change is extra & + $\displaystyle{{}##}$\hfil\crcr + #1\crcr}}\,} +\def\eqalignno#1{\displ@y \tabskip=\centering + \halign to \displaywidth{\hfil$\displaystyle{##}$\tabskip=0pt + &$\displaystyle{{}##}$\hfil\tabskip=\centering + &\llap{$##$}\tabskip=0pt\crcr + #1\crcr}} +\def\leqalignno#1{\displ@y \tabskip=\centering + \halign to \displaywidth{\hfil$\displaystyle{##}$\tabskip=0pt + &$\displaystyle{{}##}$\hfil\tabskip=\centering + &\kern-\displaywidth\rlap{$##$}\tabskip=\displaywidth\crcr + #1\crcr}} +\def\midinsert{\bgroup\smallskip} +\def\endinsert{\smallskip\egroup} +\catcode`\@=12 + +%Display math examples for Mededelingen van het Wiskundig Genootschap, +%13/4/92, cgl@rug.nl +\def\com#1{{\tt\char92#1}} +% +%Essential ways of formula numbering num.tex +\begin{itemize} +\item Labeled 1-line +$$\sin2x=2\sin x\, \cos x + \eqno(\hbox{TB186})$$ +\item Three lines, second flushed right +(relevant for 2-column printing) +$$\displaylines{F(z)= +a_0+{a_1\over z}+{a_2\over z^2}+\cdots + +{a_{n-1}\over z^{n-1}}+R_n(z),\cr + \hfill n=1,2,\dots\,,\cr +\hfill F(z)\sim\sum_{n=0}^\infty a_nz^{-n}, + \quad z\to\infty\qquad\qquad\hfill + \llap{(TB ex19.16)}\cr}$$ +\item Two lines aligned, with middle labeling +$$\eqalign{\cos2x&=2\cos^2x-1\cr + &=\cos^2x-\sin^2x\cr} + \eqno(\hbox{TB193})$$ +\item Two lignes aligned, with labeling per line +$$\eqalignno{ +\cosh2x&=2\cosh^2x-1&(\hbox{TB192})\cr + &=\cosh^2x+\sinh^2x\cr}$$ +\end{itemize} +\noindent obtained via +\begingroup\small\begin{verbatim} +\begin{itemize} +\item Labeled 1-line +$$\sin2x=2\sin x\, \cos x + \eqno(\hbox{TB186})$$ +\item Three lines, second flushed right +(relevant for 2-column printing) +$$\displaylines{F(z)= +a_0+{a_1\over z}+{a_2\over z^2}+\cdots + +{a_{n-1}\over z^{n-1}}+R_n(z),\cr + \hfill n=1,2,\dots\,,\cr +\hfill F(z)\sim\sum_{n=0}^\infty a_nz^{-n}, + \quad z\to\infty\qquad\qquad\hfill + \llap{(TB ex19.16)}\cr}$$ +\item Two lines aligned, + with middle labeling +$$\eqalign{\cos2x&=2\cos^2x-1\cr + &=\cos^2x-\sin^2x\cr} + \eqno(\hbox{TB193})$$ +\item Two lignes aligned, + with labeling per line +$$\eqalignno{ +\cosh2x&=2\cosh^2x-1&(\hbox{TB192})\cr + &=\cosh^2x+\sinh^2x\cr}$$ +\end{itemize} +\end{verbatim}\endgroup + +\paragraph*{Matrices}via (plain) \TeX. +The examples show paradoxically that for practical use +we not only need \cs{matrix}, but +\begin{itemize} +\item \verb|\atop|, to stack elements on top of each other +\item \verb|\bordermatrix|, for bordered matrices, and this embedded within + \verb|\displaylines| +\item \verb|\halign|, to handle partitioning, and +\item some macros tailored to our situations, like the icon set. +\end{itemize} +%Samples for TeXing matrices for Mededelingen Wiskundig Genootschap%cgl@rug.nl +\noindent Examples +\begin{itemize} +\item {Hypergeometric function} +$$M_n(z)={}_{n+1}F_n\biggl({k+a_0, + \atop\phantom{kc_1}} + {k+a_1,\dots,k+a_n + \atop k+c_1,\dots,k+c_n};z\biggr)$$ +via +\begingroup\small\begin{verbatim} +$$M_n(z)={}_{n+1}F_n\biggl({k+a_0, + \atop\phantom{kc_1}} + {k+a_1,\dots,k+a_n + \atop k+c_1,\dots,k+c_n};z\biggr)$$ +\end{verbatim}\endgroup + +\item {Some matrix icons}, Wilkinson (1965) +%LaTeX use of linefonts for diag lines +\setlength{\unitlength}{1ex} +$$\icmat44\kern\unitlength\icllt44= + \icllt44\icuh413\qquad AL=LH$$ +$$\icmat63=\icmat63 +\kern\unitlength\icurt63\qquad A=QR$$ +%rectangular matrix\hfill$\icmat64$\\ +%lower left triangular matrix\hfill $\icllt44$\\ +%upper right triangular matrix \hfill$\icurt44$\\ +%upper Hessenberg f form \hfill $\icuh413$ +via +\begingroup\small\begin{verbatim} +$$\icmat44\kern\unitlength\icllt44= + \icllt44\icuh413\qquad AL=LH$$ +$$\icmat63=\icmat63 +\kern\unitlength\icurt63\qquad A=QR$$ +\end{verbatim}\endgroup + +\noindent See for the matrix icon macros my paper on the issue. +% +\item {Matrix reductions}, +Wilkinson(1965, p357) %---i.e.\ Math `hyphenation' +$$\displaylines{\indent +\bordermatrix{& &\rm A & \cr + &\times&\times&\times\cr + &\times&\times&\times\cr + &\times&\times&\times\cr} +\bordermatrix{& &\rm N & \cr + &1& & \cr + &0&1 & \cr + &0&\times&1\cr}\hfill\cr +\hfill= +\bordermatrix{& &\rm N & \cr + &1& & \cr + &0&1 & \cr + &0&\times&1\cr} +\bordermatrix{& &\rm H & \cr + &\times&\times&\times\cr + &\times&\times&\times\cr + &0 &\times&\times\cr} +}$$ +via +\begingroup\small\begin{verbatim} +$$\displaylines{\indent +\bordermatrix{& &\rm A & \cr + &\times&\times&\times\cr + &\times&\times&\times\cr + &\times&\times&\times\cr} +\bordermatrix{& &\rm N & \cr + &1& & \cr + &0&1 & \cr + &0&\times&1\cr}\hfill\cr +\hfill= +\bordermatrix{& &\rm N & \cr + &1& & \cr + &0&1 & \cr + &0&\times&1\cr} +\bordermatrix{& &\rm H & \cr + &\times&\times&\times\cr + &\times&\times&\times\cr + &0 &\times&\times\cr} +}$$ +\end{verbatim}\endgroup% +\item {Partitioning}, +Wilkinson(1965, p291) +$$P_r=\left(\vcenter{ + \offinterlineskip\tabskip0pt + \halign{ + \vrule height3ex depth1ex width 0pt + \hfil$\enspace#\enspace$\hfil + \vrule width.1pt\relax + &\hfil$\enspace#\enspace$\hfil\cr + I_{n-r}&0\cr + \noalign{\hrule height.1pt\relax} + 0 &I-2v_rv_r^T\cr} + }\right) $$ +via +\begingroup\small\begin{verbatim} +$$P_r=\left(\vcenter{ + \offinterlineskip\tabskip0pt + \halign{ + \vrule height3ex depth1ex width 0pt + \hfil$\enspace#\enspace$\hfil + \vrule width.1pt\relax + &\hfil$\enspace#\enspace$\hfil\cr + I_{n-r}&0\cr + \noalign{\hrule height.1pt\relax} + 0 &I-2v_rv_r^T\cr} + }\right) $$ +\end{verbatim}\endgroup +\end{itemize} +\endgroup + +\begingroup\noindent +Next some examples without the mark-up, just the +results, because they are real teasers. +\begin{itemize} +\item Braces and Matrices, Wilkinson(1965, p199) +$$\vcenter{ + \hbox{${\scriptstyle\phantom{n{-}}p} + \left\{\vrule height4.5ex width0pt + depth 0pt\right.$}\vglue3ex\relax + \hbox{${\scriptstyle n{-}p} + \left\{\vrule height3.0ex width0pt + depth 0pt\right.\kern2pt$} + \vglue.5ex\relax + } +\bordermatrix{&\multispan4{\hfil +$\overbrace{\vrule height0pt width10.5ex + depth0pt}^p$}\hfil + &\multispan3{\enspace\hfil +$\overbrace{\vrule height0pt width7.5ex + depth0pt}^{n-p}$}\hfil\cr +&\times&\times&\times&\times&\times& + \times&\times\cr +&0 &\times&\times&\times&\times& + \times&\times\cr +&0 &0 &\times&\times&\times& + \times&\times\cr +&0 &0 &0 &\times&\times& + \times&\times\cr +&0 &0 &0 &0 &\times& + \times&\times\cr +&0 &0 &0 &0 &\times& + \times&\times\cr +&0 &0 &0 &0 &\times& + \times&\times\cr +}$$ +\item +Matrices, braces, (dotted) partitioning +and icons; space efficient variant +%The simplest way is to make the 22-element +%separate, and measure the sizes. +%Subsequently one easily couples these +%sizes to the sizes of the braces. +%Hard things: automatic coupling, +%vertical dotted lines. +% +\def\vdts{\vbox{\baselineskip4pt + \lineskiplimit0pt + \vglue2pt\hbox{.}\hbox{.}\hbox{.}}}% +$$ +\vcenter{\offinterlineskip%No interline +% space in between parts +\halign{\hfil$#$&\hfil$#$\hfil\cr%2-column +%first row with braces, element 11 empty +{}&\hfil\enspace\mathop{\hbox to.9cm% + {\downbracefill}}\limits^{\vbox{\hbox{ + $\scriptstyle p$}\kern2pt}} + \enspace\hfil\mathop{\hbox to.6cm% + {\downbracefill}}\limits^{\vbox{\hbox to + 0pt{\hss$\scriptstyle n-p$\hss}\kern2pt}}% + \enspace\hfil\cr % end first row +%Separation between first (border) row and +%rest +\noalign{\vglue1ex} +%first column with braces +\vcenter{\vfil + \hbox{${\scriptstyle p}\left\{\vbox + to.8cm{}\right.$}\vfil\vglue2ex\vfil + \hbox{\llap{$\scriptstyle n{-}$}% + ${\scriptstyle p}\left\{\vbox to.5cm{} + \right.$}\vfil} +&%22-element is the matrix proper +\left(\vcenter{\offinterlineskip +\halign{\hfil$#$\hfil&\hfil$#$\hfil& +\hfil$#$\hfil&\hfil$#$\hfil +\tabskip=.5\tabskip&\vdts#& +\tabskip=2\tabskip +\hfil$#$\hfil&\hfil$#$\hfil& +\hfil$#$\hfil\cr%end template +\times&\times&\times&\times&&\times& + \times&\times\cr +0 &\times&\times&\times&&\times& + \times&\times\cr +0 &0 &\times&\times&&\times& + \times&\times\cr +0 &0 &0 &\times&&\times& + \times&\times\cr +\noalign{\vglue1ex} +\multispan8\dotfill\cr +0 &0 &0 &0 &&\times& + \times&\times\cr +0 &0 &0 &0 &&\times& + \times&\times\cr +0 &0 &0 &0 &&\times& +\times&\times\cr}%end halign (22) +}%end vcenter +\right)\cr %end 22-element +%Separation between last (border) row +%and rest +\noalign{\vglue1ex} +{}&\hfil\enspace\mathop{\hbox to.9cm{% + \upbracefill}}\limits_{\vbox{\kern2pt + \icurt42}} + \enspace\hfil + \mathop{\hbox to.6cm{% + \upbracefill}}\limits_{\vbox{\kern2pt + \icmat4{1.5}}}\enspace\hfil% +\cr % end last row +}%end halign +}%end vbox +$$ +\item Other interesting two-dimensional +structures are commutative diagrams. Consult for those Spivak's +\LAMSTeX.\footnote{Within the graphics section I + have supplied a simple example, however.} + +\noindent Interestingly enough, simple commutative diagrams are done by +\verb|\matrix|, while I would expect some graphic commands. +\end{itemize} +\endgroup + +\subsection{Examples: tables.} +For (full) rectangular tables \verb|\halign| or \verb|\valign| is generally +used, when they fit on the page. +Because of determining automatically the page breaks it might happen that +the page builder would like to split a table. Generally this is bad +typography, because we like to maintain the summary character of a table +all on one page.\footnote{When the latter is not important, for example for + tables of values which goes on for pages, we can modify + the row separator into a separator which allows line breaks. + For tables which don't fit on a page + there are special macros, like {\tt supertabular.sty}.} +A table smaller than the page should fit and in order to let that happen +we generally allow tables to float, that is they may be shifted around +a bit by the page builder. +For a survey on the issue see my Table Diversions paper, which also contains +a macro for handling bordered tables---the {\tt btable} macro (some 80 lines), +and used in this work (see later). + + Another important class of tables are the so-called trees. One can argue +whether they are tables or belong to graphics. Br\"uggeman-Klein has provided +a package called Tree\TeX. The user-interface looks good, +although I have not had any personal experience with it myself yet. + +\paragraph*{Simple tables}via (plain) \TeX. +When I read Furuta a decade ago, I was impressed by the ease of mark-up +for tables via the tbl preprocessor of troff.\footnote{Because of + that I was in favour of troff and its preprocessors. + Happily a math professor stressed the importance of \TeX, and because + UNIX was not widely available at the University, I entered \TeX-land.} +Below I'll show that a similar functionality---and some more, I also + abstracted from the kinds of rules, and the positioning of the elements---% +is provided with respect to tables +by my btable macro for the class of bordered tables, +where the (possibly complicated) headers are treated separately +and independently from the (proper) table data, and the rowstub list. + +\begingroup +%\input{btable.tex} +%btable.tex version 1, 15/7/92 author: cgl@rug.nl +%Table Diversions is Published in EuroTeX92 proceedings, and MAPS92.2 +%The article discusses typsetting tables via plain, surveys related work, +%introduces btable.tex, and provides a discipline for typesetting cell-blocks. +%Example of use (from the article) +%\def\data{2\cs7\cs6\rs +% 9\cs5\cs1\rs +% 4\cs3\cs8} +%\ruled\framed\btable\data +%Below is the btable macro listed +\newbox\tbl\let\ea=\expandafter +%Cell vertical size, row height and depth (separation implicit), +\newdimen\cvsize\newdimen\tsht\newdimen\tsdp\newdimen\tvsize\newdimen\thsize +%Parameter setting macros: Rules +\def\hruled{\def\lineglue{\hrulefill}\def\colsep{} \def\rowsep{\hrule} + \let\rowstbsep=\colsep\let\headersep=\rowsep} +\def\vruled{\def\lineglue{\hfil} \def\colsep{\vrule}\def\rowsep{} + \let\rowstbsep=\colsep\let\headersep=\hrule} +\def\ruled {\def\lineglue{\hrulefill}\def\colsep{\vrule}\def\rowsep{\hrule} + \let\rowstbsep=\colsep\let\headersep=\rowsep} +\def\nonruled{\def\lineglue{\hfil} \def\colsep{} \def\rowsep{} + \def\rowstbsep{\vrule}\def\headersep{\hrule}} +\def\dotruled{\def\lineglue{\dotfill}\def\rowsep{\hbox to\thsize{\dotfill}} +\def\colsep{\lower1.5\tsdp\vbox to\cvsize{% +\leaders\hbox to0pt{\vrule height2pt depth2pt width0pt\hss.\hss}\vfil}} +\let\rowstbsep=\colsep\let\headersep=\rowsep} +%Parameter setting macros: Controling positioning +\def\ctr{\def\lft{\hfil}\def\rgt{\hfil}}%Centered +\def\fll{\def\lft{} \def\rgt{\hfil}}%Flushed left +\def\flr{\def\lft{\hfil}\def\rgt{}} %Flushed right +%Parameter setting macros: Framing +\def\framed{\let\frameit=\boxit} +\def\nonframed{\def\frameit##1{##1}} +\def\dotframed{\let\frameit=\dotboxit} +% +\def\btable#1{\vbox{\let\rsl=\rowstblst%Copy +\ifx\empty\template\ifx\empty\rowstblst + \def\template{\colsepsurround\lft####\rgt&&\lft####\rgt\cr} + \else\def\template{\colsepsurround####\hfil&&\lft####\rgt\cr}\fi + \fi +\tsht=.775\cvsize\tsdp=.225\cvsize +\def\tstrut{\vrule height\tsht depth\tsdp width0pt} +%Logical mark up of column and row separators, via use of +\def\cs{&\colsepsurround\colsep\colsepsurround&} +\def\prs{&\colsepsurround\lineglue&} +\def\srp{&\lineglue\colsepsurround&} +\def\rs{\colsepsurround\tstrut\cr + \ifx\empty\rowsep\else\noalign{\rowsep}\fi + \ifx\empty\rowstblst\else\ea\nxtrs\fi} +\def\rss{&\colsepsurround\rowstbsep\colsepsurround&} +\def\hs{\colsepsurround\tstrut\cr + \ifx\empty\headersep\else\noalign{\headersep}\fi + \ifx\empty\rowstblst\else\ea\nxtrs\fi} +\preinsert +\setbox\tbl=\vbox{\tabskip=0pt\relax\offinterlineskip +\halign{\span\template\ifx\empty\first\ifx\empty\rowstblst\else +\ifx\empty\header\else\ea\rss\fi\fi\else\first\ea\rss\fi +\ifx\empty\header\ifx\empty\first\if\empty\rsl\else\ea\nxtrs\fi + \else\ea\hs\fi +\else\header\ea\hs\fi +#1\colsepsurround\tstrut\crcr} }%end setbox +\postinsert +\ifx\caption\empty\else\hbox to\thsize{\strut\hfil\caption\hss}\captionsep\fi +\frameit{\copy\tbl} +\ifx\footer\empty\else\footersep\hbox{\vtop{\noindent\hsize=\thsize% +\footer}}\fi }} +%Defaults +\cvsize=4ex\tsht=.775\cvsize\tsdp=.225\cvsize\def\colsepsurround{\kern.5em} +\ctr\nonruled +\def\caption{}\def\first{}\def\header{}\def\rowstblst{}\def\footer{}\def\data{} +\def\captionsep{\medskip} \def\headersep{\hrule} +\def\footersep{\smallskip} \def\rowstbsep{\vrule} +\def\preinsert{} +\def\postinsert{\global\thsize=\wd\tbl + \global\tvsize=\ht\tbl\global\advance\tvsize by\dp\tbl} +\ctr\nonruled\nonframed\def\template{} %end Defaults +%Auxiliaries +\def\boxit#1{\vbox{\hrule\hbox{\vrule\vbox{#1}\vrule}\hrule}} +\def\dotboxit#1{\vbox{\offinterlineskip\hbox to\thsize{\dotfill}% +\hbox{\lower\tsdp\vbox to\tvsize{% +\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}% +\vbox{#1}\lower\tsdp\vbox to\tvsize{% +\leaders\hbox to0pt{\hss\vrule height2pt depth2pt width0pt.\hss}\vfil}}% +\hbox to\thsize{\dotfill}}} +%And to account for logical columns with \multispan +\def\spicspan{\span\omit} +\def\multispan#1{\omit\mscount=#1\multiply\mscount by2 \advance\mscount by-1 +\loop\ifnum\mscount>1 \spicspan\advance\mscount by-1 \repeat} +%To process FIFO +\def\bfifo#1{\ifx\efifo#1\let\nxt=\relax\else\def\nxt{\process#1\bfifo}% + \fi\nxt}%end \bfifo +\def\process#1{\hbox to0pt{\hss#1\hss}\kern.5ex} +%To handle row stub list +\def\nxtrs{\ifx\empty\rsl%\let\nxtel=\relax +\else\def\nxtel{\ea\nrs\rsl\srn}\ea\nxtel\fi}%next Row Stub +\def\nrs#1#2\srn{\gdef\rsl{#2}#1\rss} %end btable.tex +% +\def\data{11\cs12\rs21\cs22} +\begin{itemize} +\item just framed data + $$\vcenter{\framed\btable\data}$$ +\item add header and rowstubs + \def\header{\multispan2\hfill + Header\hfill} + \def\rowstblst{{$1^{st}$ row}% + {{$2^{nd}$ row}}} + $$\vcenter{\btable\data}$$ +\item add caption and footer, + vary via dotted lines + \def\caption{Caption}\def\footer{Footer} + $$\vcenter{\dotruled\btable\data}$$ +\item vary with ruled and framed + $$\vcenter{\ruled\framed\btable\data}$$ +\end{itemize} +via +\begingroup\small\begin{verbatim} +\def\data{11\cs12\rs21\cs22} +\begin{itemize} +\item just framed data + $$\vcenter{\framed\btable\data}$$ +\item add header and rowstubs + \def\header{\multispan2\hfill + Header\hfill} + \def\rowstblst{{$1^{st}$ row}% + {{$2^{nd}$ row}}} + $$\vcenter{\btable\data}$$ +\item add caption and footer, + vary via dotted lines + \def\caption{Caption}\def\footer{Footer} + $$\vcenter{\dotruled\btable\data}$$ +\item vary with ruled and framed + $$\vcenter{\ruled\framed\btable\data}$$ +\end{itemize} +\end{verbatim}\endgroup + +\paragraph*{Real-life.} AT\&T's example +from the tbl (troff) documentation, also supplied in \TeX book p.247 +\begingroup +%\cite{lesk79} +\def\caption{AT\&T Common Stock} +\def\header{Year\cs Price\cs Dividend} +\catcode`?=\active \def?{\kern1.1ex} +\def\data{1971\cs41--54\cs\llap{\$}2.60\rs + 2\cs41--54\cs 2.70\rs + 3\cs46--55\cs 2.87\rs + 4\cs40--53\cs 3.24\rs + 5\cs45--52\cs 3.40\rs + 6\cs51--59\cs ?.95\rlap*} +\def\footer{* (first quarter only)} +$$\vcenter{\vbox{\small + \framed\ruled\btable\data}}$$ +The above is obtained via \verb|\btable| as follows +\endgroup +% +\begingroup\small\begin{verbatim} +\def\caption{AT\&T Common Stock} +\def\header{Year\cs Price\cs Dividend} +\catcode`?=\active \def?{\kern1.1ex} +\def\data{1971\cs41--54\cs\llap{\$}2.60\rs + 2\cs41--54\cs 2.70\rs + 3\cs46--55\cs 2.87\rs + 4\cs40--53\cs 3.24\rs + 5\cs45--52\cs 3.40\rs + 6\cs51--59\cs ?.95\rlap*} +\def\footer{* (first quarter only)} +$$\vcenter{\vbox{\small + \framed\ruled\btable\data}}$$ +\end{verbatim} +\endgroup +\endgroup +\subsection{Examples: graphics.} +The portable way is via \mmt, \LaTeX's picture environment, +or PiC\TeX. +For a survey see Clark's Portable Graphics in \TeX\ paper. +\TeX tures on the Macintosh by Blue Sky Research is famous for its +(non-portable) pic{\em tures\/} with \TeX. For inclusion of +photographs and in general halftones, see the work of Sowa.\footnote{On the + Mac one can easily incorporate photos after they + having been put onto CD in digitized form. Kodak provides the latter + service.} +For drawing on the screen and get (La)\TeX\ code out see GNUplot +or \TeX CAD, for example. + +Many disciplines make use of +special graphic diagrams. In this paper for example I won't +provide examples of +trees, +(math) graphs in general, +(advanced) commutative diagrams, +nor Feynmann diagrams, +to name but a few classes known to me. +\begin{itemize} +\item simple line diagrams via \mmt +\begingroup +\def\strut{\vrule height2.5ex depth1ex width0pt} +\def\fbox#1{\setbox0\hbox{\strut + $\;$#1$\,$}\leavevmode\rlap{\copy0}% + \makelightbox} +\def\element#1{\hbox to15ex{\hss#1\hss}} +\def\vconnector{\element{\strut\vrule}} +$$\hbox{\vbox{% +\element{\fbox{amsppt.sty}} +\vconnector +\element{\fbox{amstex.tex}} +\vconnector +\element{\fbox{\TeX}}} +\qquad\qquad\qquad +\vbox{% +\element{\fbox{amsart.sty}} +\vconnector +\element{\llap{\fbox{amstex.sty}---}% + \fbox{\LaTeX}} +\vconnector +\element{\fbox{\TeX}}} +}$$ +\endgroup +\noindent via +\begingroup\small\begin{verbatim} +$$\hbox{\vbox{% +\element{\fbox{amsppt.sty}} +\vconnector +\element{\fbox{amstex.tex}} +\vconnector +\element{\fbox{\TeX}} +}\qquad\qquad\qquad\vbox{% +\element{\fbox{amsart.sty}} +\vconnector +\element{\llap{\fbox{amstex.sty}---} + \fbox{\LaTeX}} +\vconnector +\element{\fbox{\TeX}} +}}$$ +\end{verbatim}\endgroup + +\noindent with the auxiliaries +\begingroup\small\begin{verbatim} +\def\strut{\vrule height2.5ex depth1ex + width0pt} +\def\fbox#1{\setbox0\hbox{\strut + $\;$#1$\,$}\leavevmode\rlap{\copy0}% + \makelightbox} +\def\element#1{\hbox to15ex{\hss#1\hss}} +\def\vconnector{\element{\strut\vrule}} . +\end{verbatim}\endgroup +\item flow chart borrowed from Furuta, via \LaTeX + +\noindent +%\input{pic.pic} +\begingroup\small +\setlength{\unitlength}{4ex} +\begin{picture}(14,4)(0,-1) +\put(1, 1){\oval(2, 1)} +\put(1, 1){\makebox(0, 0){Start}} +\put(2, 1){\vector(1, 0){1.5}} +\put(3.5,.25){\framebox(2,1.5){\shortstack + {\tiny Edit\\\tiny Document}}} +\put(5.5, 1){\vector(1, 0){1.5}} +\put(7,.25){\framebox(2,1.5){\shortstack + {\tiny Format\\\tiny Document}}} +\put(9, 1){\vector(1, 0){1.5}} +\put(11.5, 1){\oval(2, 1)} +\put(11.5, 1){\makebox(0, 0){End}} +\bezier{75}(4.5,.25)(6.25,-1)(8,.25) +\put(4.5,.25){\vector(-2, 1){0}} +\bezier{150}(4.5,1.75)(8,4)(11.5,1.5) +\put(11.5,1.5){\vector(2,-1){0}} +\end{picture} +\endgroup + +\par\noindent +via +\begingroup\small\begin{verbatim} +\setlength{\unitlength}{4ex} +\begin{picture}(14,4)(0,-1) +\put(1, 1){\oval(2, 1)} +\put(1, 1){\makebox(0, 0){Start}} +\put(2, 1){\vector(1, 0){1.5}} +\put(3.5,.25){\framebox(2,1.5){\shortstack + {\tiny Edit\\\tiny Document}}} +\put(5.5, 1){\vector(1, 0){1.5}} +\put(7,.25){\framebox(2,1.5){\shortstack + {\tiny Format\\\tiny Document}}} +\put(9, 1){\vector(1, 0){1.5}} +\put(11.5, 1){\oval(2, 1)} +\put(11.5, 1){\makebox(0, 0){End}} +\bezier{75}(4.5,.25)(6.25,-1)(8,.25) +\put(4.5,.25){\vector(-2, 1){0}} +\bezier{150}(4.5,1.75)(8,4)(11.5,1.5) +\put(11.5,1.5){\vector(2,-1){0}} +\end{picture} +\end{verbatim}\endgroup +\par\noindent +Although the specification is +not as easy as via the pic preprocessor, +it is not difficult when we +start from a template, like the one above. +Cumbersome is the treatment of the arrow heads, but these can be hidden. +\item a pie-chart via \LaTeX + +%\input{lus.pic} +\setlength{\unitlength}{6ex} +\begin{picture}(6, 5)(-3, -2) +%1st quadrant +%\bezier{100}(2, 0)(2, .54)(1.79, .89) + % 0 - `30' 2:1-lijn +\bezier{60}(1.79, .89)(1.46, 1.46)(1, 1.73) + % `30' - 60 +\bezier{60}(1, 1.73)(.54, 2)(0, 2) + % 60 - 90 +%2nd quadrant +\bezier{60}(0, 2)(-.54, 2)(-1, 1.73) + % 90 - 120 +\bezier{60}(-1,1.73)(-1.46,1.46)(-1.73,1) + %120 - 150 +\bezier{60}(-1.73, 1)(-2, .54)(-2, 0) + %150 - 180 +%3rd quadrant +\bezier{60}(-2, 0)(-2, -.54)(-1.73, -1) + %180 - 210 +\bezier{60}(-1.73,-1)(-1.46,-1.46)(-1,-1.73) + %210 -240 +\bezier{60}(-1, -1.73)(-.54, -2)(0, -2) + %240 - 270 +%4th quadrant +\bezier{60}(0, -2)(.54, -2)(1, -1.73) + %270 - 300 +\bezier{60}(1,-1.73)(1.46,-1.46)(1.73,-1) + %300 - 330 +\bezier{60}(1.73, -1)(2, -.54)(2, 0) + %330 - 360 +%division lines +\put(0, 0){\line(1, 0){2}} +\put(0, 0){\line(2, 1){1.79}} + %1.79 = 2 cos arctg .5 +%\put(0, 0){\line(-2, 1){1.79}} +\bezier{75}(0, 0)(-.81, .59)(-1.61, 1.18) + %-.81 = cos 144; .59 = sin 144 +%\put(0, 0){\line(-1, -2){.89}} + % .89 = 2 sin arctg .5 +\bezier{75}(0, 0)(-.59, -.81)(-1.18, -1.62) + %-.59 = cos -126; -.81 = sin -126 +%piece +\bezier{60}(2.5, 0.1)(2.5, .64)(2.29, .99) + % shift .5, .1 +\put(0.5, 0.1){\line(1, 0){2}} +\put(0.5, 0.1){\line(2, 1){1.79}} +%Candles: +\bezier{20}(0,1.31)(-.15,1.45)(0,1.61) +\bezier{20}(0,1.31)(.175,1.45)(0,1.61) +\put(-.1,.1){\line(0,1){1.2}} +\put(.1,.05){\line(0,1){.95}} +\put(.1,1){\line(-2,3){.2}} +%left +\bezier{20}(-.25,1.46)(-.40,1.6)(-.25,1.76) +\bezier{20}(-.25,1.46)(-.075,1.6)(-.25,1.76) +\put(-.35,.25){\line(0,1){1.2}} +\put(-.15,.2){\line(0,1){.95}} +\put(-.15,1.15){\line(-2,3){.2}} +%right +\bezier{20}(.25,1.46)(.40,1.6)(.25,1.76) +\bezier{20}(.25,1.46)(.075,1.6)(.25,1.76) +\put(.35,.25){\line(0,1){1.2}} +\put(.15,.2){\line(0,1){.95}} +\put(.15,1.15){\line(2,3){.2}} +%leftleft +\bezier{20}(-.5,1.61)(-.65,1.75)(-.5,1.91) +\bezier{20}(-.5,1.61)(-.325,1.75)(-.5,1.91) +\put(-.6,.4){\line(0,1){1.2}} +\put(-.4,.35){\line(0,1){.95}} +\put(-.4,1.3){\line(-2,3){.2}} +%rightright +\bezier{20}(.5,1.61)(.65,1.75)(.5,1.91) +\bezier{20}(.5,1.61)(.325,1.75)(.5,1.91) +\put(.6,.4){\line(0,1){1.2}} +\put(.4,.35){\line(0,1){.95}} +\put(.4,1.3){\line(2,3){.2}} +%texts +\put(-1, -.1){\makebox(0, 0){\strut Happy}} +\put(.5, -1){\makebox(0, 0){\strut Birthday}} +\put(1.9, .35){\makebox(0, 0){\strut NTG}} +\end{picture} + +\par\noindent via +\begingroup\small +%\begingroup\small +\begin{verbatim} +\setlength{\unitlength}{6ex} +\begin{picture}(6, 5)(-3, -2) +%1st quadrant +%\bezier{100}(2, 0)(2, .54)(1.79, .89) + % 0 - `30' 2:1-line +\bezier{60}(1.79, .89)(1.46, 1.46)(1, 1.73) + % `30' - 60 +\bezier{60}(1, 1.73)(.54, 2)(0, 2) + % 60 - 90 +%2nd quadrant +\bezier{60}(0, 2)(-.54, 2)(-1, 1.73) + % 90 - 120 +\bezier{60}(-1,1.73)(-1.46,1.46)(-1.73,1) + %120 - 150 +\bezier{60}(-1.73, 1)(-2, .54)(-2, 0) + %150 - 180 +%3rd quadrant +\bezier{60}(-2, 0)(-2, -.54)(-1.73, -1) + %180 - 210 +\bezier{60}(-1.73,-1)(-1.46,-1.46)(-1,-1.73) + %210 -240 +\bezier{60}(-1, -1.73)(-.54, -2)(0, -2) + %240 - 270 +%4th quadrant +\bezier{60}(0, -2)(.54, -2)(1, -1.73) + %270 - 300 +\bezier{60}(1,-1.73)(1.46,-1.46)(1.73,-1) + %300 - 330 +\bezier{60}(1.73, -1)(2, -.54)(2, 0) + %330 - 360 +%division lines +\put(0, 0){\line(1, 0){2}} +\put(0, 0){\line(2, 1){1.79}} + %1.79 = 2 cos arctg .5 +%\put(0, 0){\line(-2, 1){1.79}} +\bezier{75}(0, 0)(-.81, .59)(-1.61, 1.18) + %-.81 = cos 144; .59 = sin 144 +%\put(0, 0){\line(-1, -2){.89}} + % .89 = 2 sin arctg .5 +\bezier{75}(0, 0)(-.59, -.81)(-1.18, -1.62) + %-.59 = cos -126; -.81 = sin -126 +%piece +\bezier{60}(2.5, 0.1)(2.5, .64)(2.29, .99) + % shift .5, .1 +\put(0.5, 0.1){\line(1, 0){2}} +\put(0.5, 0.1){\line(2, 1){1.79}} +%Candles: +\bezier{20}(0,1.31)(-.15,1.45)(0,1.61) +\bezier{20}(0,1.31)(.175,1.45)(0,1.61) +\put(-.1,.1){\line(0,1){1.2}} +\put(.1,.05){\line(0,1){.95}} +\put(.1,1){\line(-2,3){.2}} +%left +\bezier{20}(-.25,1.46)(-.40,1.6)(-.25,1.76) +\bezier{20}(-.25,1.46)(-.075,1.6)(-.25,1.76) +\put(-.35,.25){\line(0,1){1.2}} +\put(-.15,.2){\line(0,1){.95}} +\put(-.15,1.15){\line(-2,3){.2}} +%right +\bezier{20}(.25,1.46)(.40,1.6)(.25,1.76) +\bezier{20}(.25,1.46)(.075,1.6)(.25,1.76) +\put(.35,.25){\line(0,1){1.2}} +\put(.15,.2){\line(0,1){.95}} +\put(.15,1.15){\line(2,3){.2}} +%leftleft +\bezier{20}(-.5,1.61)(-.65,1.75)(-.5,1.91) +\bezier{20}(-.5,1.61)(-.325,1.75)(-.5,1.91) +\put(-.6,.4){\line(0,1){1.2}} +\put(-.4,.35){\line(0,1){.95}} +\put(-.4,1.3){\line(-2,3){.2}} +%rightright +\bezier{20}(.5,1.61)(.65,1.75)(.5,1.91) +\bezier{20}(.5,1.61)(.325,1.75)(.5,1.91) +\put(.6,.4){\line(0,1){1.2}} +\put(.4,.35){\line(0,1){.95}} +\put(.4,1.3){\line(2,3){.2}} +%texts +\put(-1, -.1){\makebox(0, 0){\strut Happy}} +\put(.5, -1){\makebox(0, 0){\strut Birthday}} +\put(1.9, .35){\makebox(0, 0){\strut NTG}} +\end{picture} +\end{verbatim}\endgroup +\noindent +The above use of the bezier splines makes the +creation of scaling invariant circles +easier than the approach by Ramek in the proceedings of +\TeX eter '88. + +\item commutative diagrams (\LAMSTeX, \ldots). As a simple example +the calculation flow of the autocorrelation +function, +$a_f$, inspired by the \TeX Book ex18.46, p.358. +${\cal F}$ denotes the Fourier transform and +${\cal F}\strut^{-}$ the inverse Fourier transform +\vskip1ex +% +\def\lllongrightarrow{\relbar\joinrel% + \relbar\joinrel\relbar\joinrel% + \relbar\joinrel\rightarrow} +\def\llongrightarrow{\relbar\joinrel% + \relbar\joinrel\rightarrow} +\def\normalbaselines{% + \baselineskip20pt + \lineskip3pt + \lineskiplimit3pt} +\def\mapright#1{\smash{\mathop{ + \llongrightarrow}\limits^{#1}}} +\def\lmapright#1{\smash{\mathop{ + \lllongrightarrow}\limits^{#1}}} +\def\mapdown#1{\Big\downarrow + \rlap{$\vcenter{\hbox{$#1$}}$}} +\def\mapup#1{\Big\uparrow + \rlap{$\vcenter{\hbox{$#1$}}$}} +$$%Diagram +\matrix{f&\lmapright\otimes&a_f\cr + \mapdown{{\cal F}}&&\mapup{% + {\cal F}\strut^{-}}\cr + \hbox to 0pt{\hss${\cal F}(f)$\hss} + &\mapright\times\hfil& + \hbox to 0pt{\hss$\bigl({\cal F}(f) + \bigr)^2$\hss}\cr} +\qquad$$%a little to the left +via +\begingroup\small\begin{verbatim} +$$\matrix{f&\lmapright\otimes&a_f\cr + \mapdown{{\cal F}}&&\mapup{% + {\cal F}\strut^{-}}\cr + \hbox to 0pt{\hss${\cal F}(f)$\hss} + &\mapright\times\hfil& + \hbox to 0pt{\hss$\bigl({\cal F}(f) + \bigr)^2$\hss}\cr}$$ +\end{verbatim}\endgroup +\noindent with auxiliaries +\begingroup\small\begin{verbatim} +\def\lllongrightarrow{\relbar\joinrel% + \relbar\joinrel\relbar\joinrel% + \relbar\joinrel\rightarrow} +\def\llongrightarrow{\relbar\joinrel% + \relbar\joinrel\rightarrow} +\def\normalbaselines{% + \baselineskip20pt + \lineskip3pt + \lineskiplimit3pt} +\def\mapright#1{\smash{\mathop{ + \llongrightarrow}\limits^{#1}}} +\def\lmapright#1{\smash{\mathop{ + \lllongrightarrow}\limits^{#1}}} +\def\mapdown#1{\Big\downarrow + \rlap{$\vcenter{\hbox{$#1$}}$}} +\def\mapup#1{\Big\uparrow + \rlap{$\vcenter{\hbox{$#1$}}$}} +\end{verbatim}\endgroup + +\item \MF{} coupled to \TeX. Leading in this area is the work of Hoenig, for +example see his `When \TeX\ and \MF{} work together.' +He has worked out the printing along curved lines, +and the typesetting of paragraphs which flow around +arbitrary shapes! +Very powerul, but not simple to use for the moment. +It looks like going back to the roots, +because Knuth's first version of the `\TeX book' contained it all: +`\TeX\ and \MF{}, New directions in typesetting.' + +\item (encapsulated) \PS. Knuth left some niches for handling these + kinds of things via the \cs{special} command. A very nice survey of + the possibilities which can be obtained when incorporating \PS{} is + given in Goossens' `\PS{} en \LaTeX,' which is also a chapter in + the \LaTeX-companion. A survey of the various user approaches has been + compiled by Anita Hoover. +\item Screen drawings. An example is GNUplot. Cameron in \TeX line + characterized these kind of systems as +\begin{quote} + `\ldots There are a couple of programs available which take all the + calculation out: you draw your picture using the mouse, and it is + automagically compiled into \LaTeX\ source. But for complicated + figures, mathematical insight or computational power may be required.' +\end{quote} + An example of figures that require math insight are Hoenig's `Fractal + images with \TeX.' + We can add to that the reuse aspect, which is hindered by the drawing + approach, and the unreadable nature of machine-generated code. + But certainly these tools have their niche in the spectrum of tools for EP. +\end{itemize} + +\section{Front matter} +Much attention is paid to front matter: +cover, +publication characteristics (source, ISBN or other classification), +title etc., +abstract, +keywords, +table of contents and the like if not considered as an appendix, +foreword. +Basically the style or format can handle these easily. +Because of the eye-catching need of a cover a designer +is generally involved and the cover, especially +the graphics, typeset by different means. +The page with publication characteristics can be left to +the copy editor. +For the others just obey the mark-up characteristics, as demanded +by the style file. +\section{Back matter} +As back matter we have the various appendices. Two kinds are +noteworthy: the list of references and the index. Both are +complicated because of the {\em cross-referencing on the fly.} +\paragraph*{Bibliography creation.}% +With a publication we have the problem of +handling a list of references, +to extract them from our literature database, +and to format them appropriately. +We also like to cross-reference them to the list of references, +such that it is adaptable to different journal traditions, +with respect to formatting of citations. +There are tools available to do that, for example +\LaTeX's \BibTeX\ with its {\tt thebibliography} environment, and +\AmSTeX's \cs{ref} and \cs{endref} structures. +I designed my own `little language +within \TeX' to handle that all in a one-pass job within \AllTeX. +To get the flavour, the bibliography at the end of this paper +has been prepared via +\begingroup\small\begin{verbatim} +\section*{References} +\input{lit.dat}%database file + \def\tubissue#1(#2){{\sl TUGboat\/} + {\bf#1} (#2)} + \def\ls#1{\ea\bibentry#1\endgraf} +\input{lit.sel}%file with names +\end{verbatim}\endgroup +See my BLUe's Bibliography paper +for more details, and my solution of the cross-referencing in a one-pass job. + +\paragraph*{Index preparation.} +This is complicated because of the dynamic allocation of page numbers +and inclusion of these in the index. It is also an art to provide the +right entries. Generally (external) sorting needs to be done too, +next to the formatting. A complicated job. +\begin{quote}\TeX nically + there is the tool Makeindex, to cooperate with (La)\TeX. +\end{quote} +Knuth provided a mark-up mechanism for extracting +the index entries and let the OTR add the page numbers. +These items are writen on a file +for further processing, like sorting, and adding comments and the like. +I consider that very powerful, but it is not completely automatic. +The user, or publisher, has to account for the finishing touch, for the +moment. For a survey of the intricacies which come along +when writing automatic index generators, see +the report of Chen and Harrison about developing Makeindex. + +I have exercised index preparation \`a la Knuth in my Sorting in BLUe paper. +Although the approach of doing it all within \TeX\ looks promising, +it still needs some polishing for BLU to become useful. + +\section{Guidelines for Choosing} +Given the above-mentioned variety of tools %and your personal circumstances +the following questions can be useful +\begin{quote} +What facilities does your publisher provide?\\ +What is the document like? \\ +What tools are already in use? \\ +Whom is it aimed at? \\ +How many authors are involved? \\ +%(many authors many publications?), \\ +Is (partial, e.g.\ bibliographical) reuse also envisaged?\\ +Is future use, different from formatting, in sight? +\end{quote} +\noindent +First, contact your publisher and agree upon the tools to be used.\\ +Next best, when you are on your own, consider +\begin{description} +\item[]No structure \hfill it does not matter \\%what will be used + (For right-to-left etc.\hfill \TeXXeT) +\item[]Scientific papers \hfill \AllTeX%can best be used +\item[]Reuse \hfill \AllTeX, SGML? %can best be used +\item[]Various authors\hfill \AllTeX, SGML? % as a uniform language +%\TeX\ which is {\em de facto\/} in use for that purpose +\item[]Future (nonformatting) use\hfill \AllTeX, SGML? +\end{description} +A user sufficiently fluent in di-roff would like me to +substitute x-roff for \TeX\ in the table above. Be my guest, I don't +have experience with x-roff. + +\section*{Acknowledgements} +This paper has been processed via \LaTeX\ because I needed the +functionality of the picture environment. The standard formatting of +the peculiar \TeX-related names have been borrowed from \verb|tugboat.cmn|. +I used the \verb|ltugproc.sty|---style for +TUG proceedings---because of the nice way the front matter +is typeset. + +I like to thank Christina Thiele for polishing my English +and pointing to the right use of fonts for established names.\footnote{Although + this has its difficulties simply using \cs{MF} for example goes wrong + when we vary size.} +Gerard van Nes blew his horn once again. Thank you! + +\section*{Conclusions} +For high-quality computer-assisted typography \TeX{} etc.{} is +a flexible and excellent craftsman-like tool, +with the following characteristics +\begin{itemize} +\item \TeX\ is in the PD, available for all platforms +\item flavours of \TeX\ have been added +to facilitate its use, next to macro toolboxes +\item formats and style files have been added to facilitate the publication +process +\item \TeX\ can be used with many fonts, and takes its own font generation tool +\item drivers, WSYIWYG interfaces are commercially available +\item working environments are provided by user groups +\item lingua franca for scientific email communication +\item publishing houses accept compuscripts marked up by (La)\TeX +\item users maintain digests, discussion lists and file servers +\item some 10k organized users, with many books published via \AllTeX. +\end{itemize} +\noindent +Once mastered \TeX\ is a nice basic tool. +However, the way to error-less mark-up is hard and haunting, unless, +supported (by a publisher) with +generic styles, +user's guides, and +templates. +Using \LaTeX\ {\em as-is\/} and +supported by publishers is much simpler +than learning \TeX\ per se. + +The \TeX\ arcana is complex. +(Professional) Education is paramount! +The twins \TeX-\MF{} will serve for a lifetime. +And above all let us keep it simple! +\section*{References} +\begin{thebibliography}{xxxxx} +\input{lit.dat} +%\input{lit.lat} + \def\tubissue#1(#2){{\sl TUGboat\/} {\bf#1} (#2)} + \def\ls#1{\ea\bibitem{}#1\endgraf} +\input{lit.sel} +\end{thebibliography} + +\end{document} + + + + + + + + + diff --git a/obsolete/macros/ec-plain/00readme.doc b/obsolete/macros/ec-plain/00readme.doc new file mode 100644 index 0000000000..66db615f61 --- /dev/null +++ b/obsolete/macros/ec-plain/00readme.doc @@ -0,0 +1,44 @@ +This is the complete set of files to generate a EC font oriented PLAIN.FMT + +The main file for plain format is EC-PLAIN. +The main file for pdf plain format is EC-PDFPLAIN. + +The EC-PLFMT.BAT is MSDOS file (for 386 and emTeX) which I +used to generate the EC-PLAIN format under emTeX. + +For the TeXLive distribution, the building commands are: + + -- initex ec-plain + -- pdfinitex ec-pdfplain + +The code page converter I use (to avoid active characters >127) +is 850DCTEX.TCP (to be transferred in BINARY). Its source +to be compiled with maketcp is 850DCTEX.MTC (to be transferred +in ASCII). Use maketcp version 1.1c or later with option -c +to generate 850DCTEX.TCP + +With the TeXLive distribution, one should only change he [pdf]texing +commands by adding the option "translate-file": + +tex.exe -translate-file=cp850-fr.tcx &ec-plain \input %1 %2 %3 %4 +pdftex.exe -translate-file=cp850-fr.tcx &ec-pdfplain \input %1 %2 %3 %4 + + +CAUTION +======= +File names in this directory have been changed from the original (e.g. +dcacceur.tex --> hyacceur.tex) in order to have no missing file when +generating format. Thus you should put these files in a directory distinct +from your usual TEXINPUT, unless you look at EC-PLFMT.BAT to rename them +backwards. + +ec-plain.tex differs from plain.tex for: + - font names (e.g. cmr10 -> ecrm1000) + - cmmi* -> exmi* with 128 additional chars to have upright greek capitals + - several mathchardefs + - inclusion of hyacceur.tex+acmacros.sty+hyconfig.ptx instead of hyphen.tex + - \magstep up to 9 + +Daniel TAUPIN + +taupin@lps.u-psud.fr diff --git a/obsolete/macros/ec-plain/README b/obsolete/macros/ec-plain/README new file mode 120000 index 0000000000..2ba1706e78 --- /dev/null +++ b/obsolete/macros/ec-plain/README @@ -0,0 +1 @@ +00readme.doc \ No newline at end of file diff --git a/obsolete/macros/ec-plain/acmacros.sty b/obsolete/macros/ec-plain/acmacros.sty new file mode 100644 index 0000000000..e161d7efd6 --- /dev/null +++ b/obsolete/macros/ec-plain/acmacros.sty @@ -0,0 +1,594 @@ +% special distinction EURO-TeX/tm.fonts/dm.fonts +\ifx\rm\undefined\relax +\else\rm +\def\wordsplita#1#2#3.{#1}% +\def\wordsplitb#1#2#3.{#2}% +% +\ifx\fonthdg\undefined + \edef\fonthdg{\expandafter\wordsplita\fontname\the\font.}\fi +\ifx\fonthdge\undefined + \edef\fonthdge{\expandafter\wordsplitb\fontname\the\font.}\fi +\fi + +\newif\ifeurotex +\immediate\write16{ Font heading:\fonthdg\fonthdge}\relax +\if\fonthdg d\relax + \if\fonthdge c\relax + \immediate\write16{ DC fonts active}% + \eurotextrue + \fi +\fi +% +\if\fonthdg e\relax + \if\fonthdge c\relax + \immediate\write16{ EC fonts active}% + \eurotextrue + \fi +\fi +% +\ifx\protect\undefined\let\protect\relax\fi +% +% ================== Special accent macro codes ============================ +% taken from dc-plain.ch +\ifeurotex + \def\acute{\mathaccent"7001 } + \def\grave{\mathaccent"7000 } + \def\ddot{\mathaccent"7004 } + \def\tilde{\mathaccent"7003 } + \def\bar{\mathaccent"7009 } + \def\breve{\mathaccent"7008 } + \def\check{\mathaccent"7007 } + \def\hat{\mathaccent"7002 } + \def\vec{\mathaccent"017E } + \def\dot{\mathaccent"700A } + \def\ss{^^ff} + \def\ae{^^e6} + \def\oe{^^f7} + \def\o{^^f8} + \def\AE{^^c6} + \def\OE{^^d7} + \def\O{^^d8} + \def\i{^^19}\def\j{^^1a} % dotless letters + \def\aa{^^e5} + \def\AA{^^c5} + \def\l{^^aa} %backslash-lowercase L for Polish waw} + \def\L{^^8a} + \def\th{^^fe} + \def\TH{^^de} + \def\dh{^^f0} + \def\DH{^^d0} + \def\dj{^^9e} + \def\DJ{^^d0} + \def\ng{^^ad} + \def\NG{^^8d} + \def\SS{^^df} +\else + \def\ae{^^1a} + \def\oe{^^1b} + \def\o{^^1c} + \def\AE{^^1d} + \def\OE{^^1e} + \def\O{^^1f} + \def\i{^^10} + \def\j{^^11} % dotless letters +\fi + +\ifeurotex + \def\b#1{\oalign{#1\crcr\hidewidth + \vbox to.2ex{\hbox{\char"09}\vss}\hidewidth}} +\fi + +\ifeurotex +\def\@gr@#1{{\accent"00 #1}} +\else +\def\@gr@#1{{\accent18 #1}} +\fi + +\def\`#1{\ifx#1a^^e0% {} + \else\ifx#1e^^e8% {} + \else\ifx#1\i ^^ec% {} + \else\ifx#1i^^ec% {} + \else\ifx#1o^^f2% {} + \else\ifx#1u^^f9% {} + \else\ifx#1A^^c0% {} + \else\ifx#1E^^c8% {} + \else\ifx#1I^^cc% {} + \else\ifx#1O^^d2% {} + \else\ifx#1U^^d9% {} + \else\protect\@gr@{#1}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} + +\def\c@{\@c@} +\ifeurotex +\def\@c@#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent"0B #1% + \else{\ooalign{\hidewidth\char"0B\hidewidth\crcr\unhbox\z@}}\fi}% +\else +\def\@c@#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent 24 #1% + \else{\ooalign{\hidewidth\char 24\hidewidth\crcr\unhbox\z@}}\fi}% +\fi + + +\ifeurotex +\def\c#1{\ifx#1c^^e7% {} + \else\ifx#1a^^a1% {} + \else\ifx#1e^^a6% {} + \else\ifx#1s^^b3% {} + \else\ifx#1t^^b5% {} + \else\ifx#1C^^c7% {} + \else\ifx#1A^^81% {} + \else\ifx#1E^^86% {} + \else\ifx#1S^^93% {} + \else\ifx#1T^^95% {} + \else\protect\@c@{#1}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} +\else +\def\c#1{\ifx#1c^^e7% {} + \else\ifx#1C^^c7% {} + \else\protect\@c@{#1}% + \fi\fi} +\fi + +\ifeurotex +\def\@r@#1{{\accent"06 #1}} +\else +\def\@r@#1{{\accent"17 #1}} +\fi + +\ifeurotex +\def\r#1{\ifx#1a^^e5% {} + \else\ifx#1A^^c5% {} + \else\ifx#1u^^b7% {} + \else\ifx#1U^^97% {} + \else\protect\@r@{#1}% + \fi\fi\fi\fi} +\else +\def\r#1{\ifx#1a^^e5% {} + \else\ifx#1A^^c5% {} + \else\protect\@r@{#1}% + \fi\fi} +\fi + +\ifeurotex +\def\@ac@#1{{\accent"01 #1}} +\else +\def\@ac@#1{{\accent19 #1}} +\fi + +\ifeurotex +\def\'#1{\ifx#1a^^e1% {} + \else\ifx#1e^^e9% {} + \else\ifx#1\i ^^ed% {} + \else\ifx#1i^^ed% {} + \else\ifx#1o^^f3% {} + \else\ifx#1u^^fa% {} + \else\ifx#1y^^fd% {} + \else\ifx#1c^^a2% {} + \else\ifx#1l^^a8% {} + \else\ifx#1n^^ab% {} + \else\ifx#1r^^af% {} + \else\ifx#1s^^b1% {} + \else\ifx#1z^^b9% {} + \else\ifx#1A^^c1% {} + \else\ifx#1E^^c9% {} + \else\ifx#1I^^cd% {} + \else\ifx#1O^^d3% {} + \else\ifx#1U^^da% {} + \else\ifx#1Y^^dd% {} + \else\ifx#1C^^82% {} + \else\ifx#1L^^88% {} + \else\ifx#1N^^8b% {} + \else\ifx#1R^^8f% {} + \else\ifx#1S^^91% {} + \else\ifx#1Z^^99% {} + \else\protect\@ac@{#1}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} +\else +\def\'#1{\ifx#1a^^e1% {} + \else\ifx#1e^^e9% {} + \else\ifx#1\i ^^ed% {} + \else\ifx#1i^^ed% {} + \else\ifx#1o^^f3% {} + \else\ifx#1u^^fa% {} + \else\ifx#1y^^fd% {} + \else\ifx#1A^^c1% {} + \else\ifx#1E^^c9% {} + \else\ifx#1I^^cd% {} + \else\ifx#1O^^d3% {} + \else\ifx#1U^^da% {} + \else\ifx#1Y^^dd% {} + \else\protect\@ac@{#1}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} +\fi + +\ifeurotex +\def\@v@#1{{\accent"07 #1}} +\else +\def\@v@#1{{\accent 20 #1}} +\fi + +\ifeurotex +\def\v#1{\ifx#1c^^a3% {} + \else\ifx#1d^^a4% {} + \else\ifx#1e^^a5% {} + \else\ifx#1n^^ac% {} + \else\ifx#1r^^b0% {} + \else\ifx#1s^^b2% {} + \else\ifx#1t^^b4% {} + \else\ifx#1l^^a9% {} + \else\ifx#1C^^83% {} + \else\ifx#1D^^84% {} + \else\ifx#1E^^85% {} + \else\ifx#1N^^8c% {} + \else\ifx#1R^^90% {} + \else\ifx#1S^^92% {} + \else\ifx#1T^^94% {} + \else\ifx#1L^^89% {} + \else\protect\@v@{#1}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} +\else +\def\v#1{\protect\@v@{#1}}% +\fi + +\ifeurotex +\def\@u@#1{{\accent"08 #1}} +\else +\def\@u@#1{{\accent 21 #1}} +\fi + +%\check + +\ifeurotex +\def\u#1{\ifx#1a^^a0% {} + \else\ifx#1g^^a7% {} + \else\ifx#1A^^80% {} + \else\ifx#1G^^87% {} + \else\protect\@u@{#1}% + \fi\fi\fi\fi} +\else +\def\u#1{\protect\@u@{#1}}% +\fi + +\ifeurotex +\def\@dot@#1{{\accent"0A #1}} +\else +\def\@dot@#1{{\accent 95 #1}} +\fi + +%\check + +\ifeurotex +\def\.#1{\ifx#1z^^bb% {} + \else\ifx#1Z^^9b% {} + \else\ifx#1I^^9d% {} + \else\protect\@dot@{#1}% + \fi\fi\fi} +\else +\def\.#1{\protect\@dot@{#1}}% +\fi + +%\check + +\ifeurotex +\def\@H@#1{{\accent"05 #1}} +\else +\def\@H@#1{{\accent"7D #1}} +\fi + +\ifeurotex +\def\H#1{\ifx#1o^^ae% {} + \else\ifx#1u^^b6% {} + \else\ifx#1O^^8e% {} + \else\ifx#1U^^96% {} + \else\protect\@H@{#1}% + \fi\fi\fi\fi} +\else +\def\H#1{\protect\@H@{#1}}% +\fi + +%\check + +\ifeurotex +\def\@um@#1{{\accent"04 #1}} +\else +\def\@um@#1{{\accent"7F #1}} +\fi + +\ifeurotex +\def\"#1{\ifx#1a^^e4% {} + \else\ifx#1e^^eb% {} + \else\ifx#1\i ^^ef% {} + \else\ifx#1i^^ef% {} + \else\ifx#1o^^f6% {} + \else\ifx#1u^^fc% {} + \else\ifx#1y^^b8% {} + \else\ifx#1A^^c4% {} + \else\ifx#1E^^cb% {} + \else\ifx#1I^^cf% {} + \else\ifx#1O^^d6% {} + \else\ifx#1U^^dc% {} + \else\ifx#1Y^^98% {} + \else\protect\@um@{#1}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} +\else +\def\"#1{\ifx#1a^^e4% {} + \else\ifx#1e^^eb% {} + \else\ifx#1\i ^^ef% {} + \else\ifx#1i^^ef% {} + \else\ifx#1o^^f6% {} + \else\ifx#1u^^fc% {} + \else\ifx#1A^^c4% {} + \else\ifx#1E^^cb% {} + \else\ifx#1I^^cf% {} + \else\ifx#1O^^d6% {} + \else\ifx#1U^^dc% {} + \else\protect\@um@{#1}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} +\fi + + +\ifeurotex +\def\@eq@#1{{\accent"09 #1}} +\else +\def\@eq@#1{{\accent22 #1}} +\fi + +\def\=#1{\protect\@eq@{#1}} + +\ifeurotex +\def\@hat@#1{{\accent"02 #1}} +\else +\def\@hat@#1{{\accent94 #1}} +\fi + +\def\^#1{\ifx#1a^^e2% {} + \else\ifx#1e^^ea% {} + \else\ifx#1\i ^^ee% {} + \else\ifx#1i^^ee% {} + \else\ifx#1o^^f4% {} + \else\ifx#1u^^fb% {} + \else\ifx#1A^^c2% {} + \else\ifx#1E^^ca% {} + \else\ifx#1I^^ce% {} + \else\ifx#1O^^d4% {} + \else\ifx#1U^^db% {} + \else\protect\@hat@{#1}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} + +%\check + + +\ifeurotex +\def\@til@#1{{\accent"03 #1}} +\else +\def\@til@#1{{\accent"7E #1}} +\fi + +\def\~#1{\ifx#1a^^e3% {} + \else\ifx#1n^^f1% {} + \else\ifx#1o^^f5% {} + \else\ifx#1A^^c3% {} + \else\ifx#1N^^d1% {} + \else\ifx#1O^^d5% {} + \else\protect\@til@{#1}% + \fi\fi\fi\fi\fi\fi} + +\ifeurotex +% normal greek symbols : lower case slanted, uppercase upright +\mathchardef\Gamma="0180 +\mathchardef\Delta="0181 +\mathchardef\Theta="0182 +\mathchardef\Lambda="0183 +\mathchardef\Xi="0184 +\mathchardef\Pi="0185 +\mathchardef\Sigma="0186 +\mathchardef\Upsilon="0187 +\mathchardef\Phi="0188 +\mathchardef\Psi="0189 +\mathchardef\Omega="018A +\mathchardef\alpha="010B +\mathchardef\beta="010C +\mathchardef\gamma="010D +\mathchardef\delta="010E +\mathchardef\epsilon="010F +\mathchardef\zeta="0110 +\mathchardef\eta="0111 +\mathchardef\theta="0112 +\mathchardef\iota="0113 +\mathchardef\kappa="0114 +\mathchardef\lambda="0115 +\mathchardef\mu="0116 +\mathchardef\nu="0117 +\mathchardef\xi="0118 +\mathchardef\pi="0119 +\mathchardef\rho="011A +\mathchardef\sigma="011B +\mathchardef\tau="011C +\mathchardef\upsilon="011D +\mathchardef\phi="011E +\mathchardef\chi="011F +\mathchardef\psi="0120 +\mathchardef\omega="0121 +\mathchardef\varepsilon="0122 +\mathchardef\vartheta="0123 +\mathchardef\varpi="0124 +\mathchardef\varrho="0125 +\mathchardef\varsigma="0126 +\mathchardef\varphi="0127 + % +% slanted greek symbols : +\mathchardef\slGamma="0100 +\mathchardef\slDelta="0101 +\mathchardef\slTheta="0102 +\mathchardef\slLambda="0103 +\mathchardef\slXi="0104 +\mathchardef\slPi="0105 +\mathchardef\slSigma="0106 +\mathchardef\slUpsilon="0107 +\mathchardef\slPhi="0108 +\mathchardef\slPsi="0109 +\mathchardef\slOmega="010A +\mathchardef\slalpha="010B +\mathchardef\slbeta="010C +\mathchardef\slgamma="010D +\mathchardef\sldelta="010E +\mathchardef\slepsilon="010F +\mathchardef\slzeta="0110 +\mathchardef\sleta="0111 +\mathchardef\sltheta="0112 +\mathchardef\sliota="0113 +\mathchardef\slkappa="0114 +\mathchardef\sllambda="0115 +\mathchardef\slmu="0116 +\mathchardef\slnu="0117 +\mathchardef\slxi="0118 +\mathchardef\slpi="0119 +\mathchardef\slrho="011A +\mathchardef\slsigma="011B +\mathchardef\sltau="011C +\mathchardef\slupsilon="011D +\mathchardef\slphi="011E +\mathchardef\slchi="011F +\mathchardef\slpsi="0120 +\mathchardef\slomega="0121 +\mathchardef\slvarepsilon="0122 +\mathchardef\slvartheta="0123 +\mathchardef\slvarpi="0124 +\mathchardef\slvarrho="0125 +\mathchardef\slvarsigma="0126 +\mathchardef\slvarphi="0127 + % +% upright (roman) greek symbols : +\mathchardef\rmGamma="0180 +\mathchardef\rmDelta="0181 +\mathchardef\rmTheta="0182 +\mathchardef\rmLambda="0183 +\mathchardef\rmXi="0184 +\mathchardef\rmPi="0185 +\mathchardef\rmSigma="0186 +\mathchardef\rmUpsilon="0187 +\mathchardef\rmPhi="0188 +\mathchardef\rmPsi="0189 +\mathchardef\rmOmega="018A +\mathchardef\rmalpha="018B +\mathchardef\rmbeta="018C +\mathchardef\rmgamma="018D +\mathchardef\rmdelta="018E +\mathchardef\rmepsilon="018F +\mathchardef\rmzeta="0190 +\mathchardef\rmeta="0191 +\mathchardef\rmtheta="0192 +\mathchardef\rmiota="0193 +\mathchardef\rmkappa="0194 +\mathchardef\rmlambda="0195 +\mathchardef\rmmu="0196 +\mathchardef\rmnu="0197 +\mathchardef\rmxi="0198 +\mathchardef\rmpi="0199 +\mathchardef\rmrho="019A +\mathchardef\rmsigma="019B +\mathchardef\rmtau="019C +\mathchardef\rmupsilon="019D +\mathchardef\rmphi="019E +\mathchardef\rmchi="019F +\mathchardef\rmpsi="0120 +\mathchardef\rmomega="01A1 +\mathchardef\rmvarepsilon="01A2 +\mathchardef\rmvartheta="01A3 +\mathchardef\rmvarpi="01A4 +\mathchardef\rmvarrho="01A5 +\mathchardef\rmvarsigma="01A6 +\mathchardef\rmvarphi="01A7 + % + % +% bold greek symbols : +\mathchardef\bfGamma="01A8 +\mathchardef\bfDelta="01A9 +\mathchardef\bfTheta="01AA +\mathchardef\bfLambda="01AB +\mathchardef\bfXi="01AC +\mathchardef\bfPi="01AD +\mathchardef\bfSigma="01AE +\mathchardef\bfUpsilon="01AF +\mathchardef\bfPhi="01B0 +\mathchardef\bfPsi="01B1 +\mathchardef\bfOmega="01B2 +\mathchardef\bfalpha="01B3 +\mathchardef\bfbeta="01B4 +\mathchardef\bfgamma="01B5 +\mathchardef\bfdelta="01B6 +\mathchardef\bfepsilon="01B7 +\mathchardef\bfzeta="01B8 +\mathchardef\bfeta="01B9 +\mathchardef\bftheta="01BA +\mathchardef\bfiota="01BB +\mathchardef\bfkappa="01BC +\mathchardef\bflambda="01BD +\mathchardef\bfmu="01BE +\mathchardef\bfnu="01BF +\mathchardef\bfxi="01C0 +\mathchardef\bfpi="01C1 +\mathchardef\bfrho="01C2 +\mathchardef\bfsigma="01C3 +\mathchardef\bftau="01C4 +\mathchardef\bfupsilon="01C5 +\mathchardef\bfphi="01C6 +\mathchardef\bfchi="01C7 +\mathchardef\bfpsi="01C8 +\mathchardef\bfomega="01C9 +\mathchardef\bfvarepsilon="01CA +\mathchardef\bfvartheta="01CB +\mathchardef\bfvarpi="01CC +\mathchardef\bfvarrho="01CD +\mathchardef\bfvarsigma="01CE +\mathchardef\bfvarphi="01CF + % + % +% bold slanted greek symbols : +\mathchardef\bfslGamma="01D0 +\mathchardef\bfslDelta="01D1 +\mathchardef\bfslTheta="01D2 +\mathchardef\bfslLambda="01D3 +\mathchardef\bfslXi="01D4 +\mathchardef\bfslPi="01D5 +\mathchardef\bfslSigma="01D6 +\mathchardef\bfslUpsilon="01D7 +\mathchardef\bfslPhi="01D8 +\mathchardef\bfslPsi="01D9 +\mathchardef\bfslOmega="01DA +\mathchardef\bfslalpha="01DB +\mathchardef\bfslbeta="01DC +\mathchardef\bfslgamma="01DD +\mathchardef\bfsldelta="01DE +\mathchardef\bfslepsilon="01DF +\mathchardef\bfslzeta="01E0 +\mathchardef\bfsleta="01E1 +\mathchardef\bfsltheta="01E2 +\mathchardef\bfsliota="01E3 +\mathchardef\bfslkappa="01E4 +\mathchardef\bfsllambda="01E5 +\mathchardef\bfslmu="01E6 +\mathchardef\bfslnu="01E7 +\mathchardef\bfslxi="01E8 +\mathchardef\bfslpi="01E9 +\mathchardef\bfslrho="01EA +\mathchardef\bfslsigma="01EB +\mathchardef\bfsltau="01EC +\mathchardef\bfslupsilon="01ED +\mathchardef\bfslphi="01EE +\mathchardef\bfslchi="01EF +\mathchardef\bfslpsi="01F0 +\mathchardef\bfslomega="01F1 +\mathchardef\bfslvarepsilon="01F2 +\mathchardef\bfslvartheta="01F3 +\mathchardef\bfslvarpi="01F4 +\mathchardef\bfslvarrho="01F5 +\mathchardef\bfslvarsigma="01F6 +\mathchardef\bfslvarphi="01F7 + % +\def\c@{\@c@} +\fi + + +\gdef\accenthyphcodes{} + +\endinput diff --git a/obsolete/macros/ec-plain/dybx10.mf b/obsolete/macros/ec-plain/dybx10.mf new file mode 100644 index 0000000000..722592dfa9 --- /dev/null +++ b/obsolete/macros/ec-plain/dybx10.mf @@ -0,0 +1,69 @@ +u#:=23/36pt#; % unit width +width_adj#:=11/36pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=247/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=160/36pt#; % height of lowercase without ascenders +math_axis#:=90/36pt#; % axis of symmetry for math symbols +bar_height#:=85/36pt#; % height of crossbar in lowercase e +comma_depth#:=70/36pt#; % depth of comma below baseline +desc_depth#:=70/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=13/36pt#; % diameter of rounded corners +fine#:=10/36pt#; % diameter of sharply rounded corners +thin_join#:=10/36pt#; % width of extrafine details +hair#:=17/36pt#; % lowercase hairline breadth +stem#:=41/36pt#; % lowercase stem breadth +curve#:=46/36pt#; % lowercase curve breadth +ess#:=38/36pt#; % breadth in middle of lowercase s +flare#:=45/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=56/36pt#; % diameter of dots +cap_hair#:=19/36pt#; % uppercase hairline breadth +cap_stem#:=51/36pt#; % uppercase stem breadth +cap_curve#:=55/36pt#; % uppercase curve breadth +cap_ess#:=53/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.6pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=10/36pt#; % vertical distance from serif base to tangent +jut#:=25/36pt#; % protrusion of lowercase serifs +cap_jut#:=39/36pt#; % protrusion of uppercase serifs +beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs +beak#:=70/36pt#; % vertical protrusion of beak serifs +vair#:=13/36pt#; % vertical diameter of hairlines +notch_cut#:=10pt#; % maximum breadth above or below notches +bar#:=17/36pt#; % lowercase bar thickness +slab#:=17/36pt#; % serif and arm thickness +cap_bar#:=17/36pt#; % uppercase bar thickness +cap_band#:=17/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches +serif_drop#:=3/36pt#; % vertical drop of sloped serifs +stem_corr#:=2/36pt#; % for small refinements of stem breadth +vair_corr#:=1.5/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=4/36pt#; % amount of overshoot for curves +apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=.5; % extra openness of math symbols +superness:=8/11; % parameter for superellipses +superpull:=1/8; % extra openness inside bowls +beak_darkness:=.4; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + diff --git a/obsolete/macros/ec-plain/dybx12.mf b/obsolete/macros/ec-plain/dybx12.mf new file mode 100644 index 0000000000..2b460fbfd5 --- /dev/null +++ b/obsolete/macros/ec-plain/dybx12.mf @@ -0,0 +1,70 @@ +u#:=27/36pt#; % unit width +width_adj#:=13/36pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=324/36pt#; % height of tallest characters +asc_height#:=300/36pt#; % height of lowercase ascenders +cap_height#:=296.4/36pt#; % height of caps +fig_height#:=278.4/36pt#; % height of numerals +x_height#:=192/36pt#; % height of lowercase without ascenders +math_axis#:=108/36pt#; % axis of symmetry for math symbols +bar_height#:=102/36pt#; % height of crossbar in lowercase e +comma_depth#:=84/36pt#; % depth of comma below baseline +desc_depth#:=84/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=13/36pt#; % diameter of rounded corners +fine#:=10/36pt#; % diameter of sharply rounded corners +thin_join#:=10.5/36pt#; % width of extrafine details +hair#:=18.3/36pt#; % lowercase hairline breadth +stem#:=47/36pt#; % lowercase stem breadth +curve#:=52/36pt#; % lowercase curve breadth +ess#:=44/36pt#; % breadth in middle of lowercase s +flare#:=51/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=62/36pt#; % diameter of dots +cap_hair#:=20/36pt#; % uppercase hairline breadth +cap_stem#:=57/36pt#; % uppercase stem breadth +cap_curve#:=61/36pt#; % uppercase curve breadth +cap_ess#:=59/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.66pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=12/36pt#; % vertical distance from serif base to tangent +jut#:=30/36pt#; % protrusion of lowercase serifs +cap_jut#:=46/36pt#; % protrusion of uppercase serifs +beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs +beak#:=84/36pt#; % vertical protrusion of beak serifs +vair#:=14.3/36pt#; % vertical diameter of hairlines +notch_cut#:=12pt#; % maximum breadth above or below notches +bar#:=18.5/36pt#; % lowercase bar thickness +slab#:=18.5/36pt#; % serif and arm thickness +cap_bar#:=18.5/36pt#; % uppercase bar thickness +cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches +serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs +stem_corr#:=2/36pt#; % for small refinements of stem breadth +vair_corr#:=1.5/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=5/36pt#; % amount of overshoot for curves +apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=.4; % extra openness of math symbols +superness:=8/11; % parameter for superellipses +superpull:=1/8; % extra openness inside bowls +beak_darkness:=.4; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + + diff --git a/obsolete/macros/ec-plain/dybx5.mf b/obsolete/macros/ec-plain/dybx5.mf new file mode 100644 index 0000000000..cbe1c0bab1 --- /dev/null +++ b/obsolete/macros/ec-plain/dybx5.mf @@ -0,0 +1,69 @@ +u#:=14.5/36pt#; % unit width +width_adj#:=7/36pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=3/36pt#; % extra space added to all sidebars + +body_height#:=135/36pt#; % height of tallest characters +asc_height#:=125/36pt#; % height of lowercase ascenders +cap_height#:=123.5/36pt#; % height of caps +fig_height#:=116/36pt#; % height of numerals +x_height#:=80/36pt#; % height of lowercase without ascenders +math_axis#:=45/36pt#; % axis of symmetry for math symbols +bar_height#:=40/36pt#; % height of crossbar in lowercase e +comma_depth#:=35/36pt#; % depth of comma below baseline +desc_depth#:=35/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=9/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=15/36pt#; % lowercase hairline breadth +stem#:=24/36pt#; % lowercase stem breadth +curve#:=27/36pt#; % lowercase curve breadth +ess#:=19/36pt#; % breadth in middle of lowercase s +flare#:=27/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=31/36pt#; % diameter of dots +cap_hair#:=17/36pt#; % uppercase hairline breadth +cap_stem#:=28/36pt#; % uppercase stem breadth +cap_curve#:=31/36pt#; % uppercase curve breadth +cap_ess#:=24/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.43pt#; % thickness of lines in math symbols + +dish#:=.7/36pt#; % amount erased at top or bottom of serifs +bracket#:=5/36pt#; % vertical distance from serif base to tangent +jut#:=13/36pt#; % protrusion of lowercase serifs +cap_jut#:=19/36pt#; % protrusion of uppercase serifs +beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs +beak#:=25/36pt#; % vertical protrusion of beak serifs +vair#:=10/36pt#; % vertical diameter of hairlines +notch_cut#:=5pt#; % maximum breadth above or below notches +bar#:=12/36pt#; % lowercase bar thickness +slab#:=12/36pt#; % serif and arm thickness +cap_bar#:=12/36pt#; % uppercase bar thickness +cap_band#:=12/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches +serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs +stem_corr#:=1.5/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=9/36pt#; % extra width at diagonal junctions + +o#:=3/36pt#; % amount of overshoot for curves +apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=1.5; % extra openness of math symbols +superness:=8/11; % parameter for superellipses +superpull:=1/8; % extra openness inside bowls +beak_darkness:=.4; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + diff --git a/obsolete/macros/ec-plain/dybx6.mf b/obsolete/macros/ec-plain/dybx6.mf new file mode 100644 index 0000000000..a3d298a3cf --- /dev/null +++ b/obsolete/macros/ec-plain/dybx6.mf @@ -0,0 +1,69 @@ +u#:=16.2/36pt#; % unit width +width_adj#:=7.8/36pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=2/36pt#; % extra space added to all sidebars + +body_height#:=162/36pt#; % height of tallest characters +asc_height#:=150/36pt#; % height of lowercase ascenders +cap_height#:=148.2/36pt#; % height of caps +fig_height#:=139.2/36pt#; % height of numerals +x_height#:=96/36pt#; % height of lowercase without ascenders +math_axis#:=54/36pt#; % axis of symmetry for math symbols +bar_height#:=49/36pt#; % height of crossbar in lowercase e +comma_depth#:=42/36pt#; % depth of comma below baseline +desc_depth#:=42/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=10/36pt#; % diameter of rounded corners +fine#:=9/36pt#; % diameter of sharply rounded corners +thin_join#:=9/36pt#; % width of extrafine details +hair#:=15.4/36pt#; % lowercase hairline breadth +stem#:=28/36pt#; % lowercase stem breadth +curve#:=31/36pt#; % lowercase curve breadth +ess#:=25/36pt#; % breadth in middle of lowercase s +flare#:=31/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=36/36pt#; % diameter of dots +cap_hair#:=18/36pt#; % uppercase hairline breadth +cap_stem#:=33/36pt#; % uppercase stem breadth +cap_curve#:=36/36pt#; % uppercase curve breadth +cap_ess#:=31/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.47pt#; % thickness of lines in math symbols + +dish#:=.8/36pt#; % amount erased at top or bottom of serifs +bracket#:=6/36pt#; % vertical distance from serif base to tangent +jut#:=15/36pt#; % protrusion of lowercase serifs +cap_jut#:=23/36pt#; % protrusion of uppercase serifs +beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs +beak#:=36/36pt#; % vertical protrusion of beak serifs +vair#:=11/36pt#; % vertical diameter of hairlines +notch_cut#:=6pt#; % maximum breadth above or below notches +bar#:=13/36pt#; % lowercase bar thickness +slab#:=13/36pt#; % serif and arm thickness +cap_bar#:=13/36pt#; % uppercase bar thickness +cap_band#:=13/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches +serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs +stem_corr#:=1.6/36pt#; % for small refinements of stem breadth +vair_corr#:=1.1/36pt#; % for small refinements of hairline height +apex_corr#:=5/36pt#; % extra width at diagonal junctions + +o#:=3/36pt#; % amount of overshoot for curves +apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=1.3; % extra openness of math symbols +superness:=8/11; % parameter for superellipses +superpull:=1/8; % extra openness inside bowls +beak_darkness:=.4; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + diff --git a/obsolete/macros/ec-plain/dybx7.mf b/obsolete/macros/ec-plain/dybx7.mf new file mode 100644 index 0000000000..99c6ae3b19 --- /dev/null +++ b/obsolete/macros/ec-plain/dybx7.mf @@ -0,0 +1,70 @@ +u#:=17.9/36pt#; % unit width +width_adj#:=8.6/36pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=1/36pt#; % extra space added to all sidebars + +body_height#:=189/36pt#; % height of tallest characters +asc_height#:=175/36pt#; % height of lowercase ascenders +cap_height#:=172.9/36pt#; % height of caps +fig_height#:=162.4/36pt#; % height of numerals +x_height#:=112/36pt#; % height of lowercase without ascenders +math_axis#:=63/36pt#; % axis of symmetry for math symbols +bar_height#:=58/36pt#; % height of crossbar in lowercase e +comma_depth#:=49/36pt#; % depth of comma below baseline +desc_depth#:=49/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=11/36pt#; % diameter of rounded corners +fine#:=9/36pt#; % diameter of sharply rounded corners +thin_join#:=9/36pt#; % width of extrafine details +hair#:=15.8/36pt#; % lowercase hairline breadth +stem#:=32/36pt#; % lowercase stem breadth +curve#:=35/36pt#; % lowercase curve breadth +ess#:=29/36pt#; % breadth in middle of lowercase s +flare#:=35/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=41/36pt#; % diameter of dots +cap_hair#:=18/36pt#; % uppercase hairline breadth +cap_stem#:=38/36pt#; % uppercase stem breadth +cap_curve#:=41/36pt#; % uppercase curve breadth +cap_ess#:=37/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.51pt#; % thickness of lines in math symbols + +dish#:=.9/36pt#; % amount erased at top or bottom of serifs +bracket#:=7/36pt#; % vertical distance from serif base to tangent +jut#:=17/36pt#; % protrusion of lowercase serifs +cap_jut#:=27/36pt#; % protrusion of uppercase serifs +beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs +beak#:=46/36pt#; % vertical protrusion of beak serifs +vair#:=11.5/36pt#; % vertical diameter of hairlines +notch_cut#:=7pt#; % maximum breadth above or below notches +bar#:=14/36pt#; % lowercase bar thickness +slab#:=14/36pt#; % serif and arm thickness +cap_bar#:=14/36pt#; % uppercase bar thickness +cap_band#:=14/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches +serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs +stem_corr#:=1.7/36pt#; % for small refinements of stem breadth +vair_corr#:=1.2/36pt#; % for small refinements of hairline height +apex_corr#:=2/36pt#; % extra width at diagonal junctions + +o#:=3/36pt#; % amount of overshoot for curves +apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=1.1; % extra openness of math symbols +superness:=8/11; % parameter for superellipses +superpull:=1/8; % extra openness inside bowls +beak_darkness:=.4; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + + diff --git a/obsolete/macros/ec-plain/dybx8.mf b/obsolete/macros/ec-plain/dybx8.mf new file mode 100644 index 0000000000..8ecd0b2a89 --- /dev/null +++ b/obsolete/macros/ec-plain/dybx8.mf @@ -0,0 +1,69 @@ +u#:=19.6/36pt#; % unit width +width_adj#:=9.4/36pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=216/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197.6/36pt#; % height of caps +fig_height#:=185.6/36pt#; % height of numerals +x_height#:=128/36pt#; % height of lowercase without ascenders +math_axis#:=72/36pt#; % axis of symmetry for math symbols +bar_height#:=67/36pt#; % height of crossbar in lowercase e +comma_depth#:=56/36pt#; % depth of comma below baseline +desc_depth#:=56/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=12/36pt#; % diameter of rounded corners +fine#:=10/36pt#; % diameter of sharply rounded corners +thin_join#:=10/36pt#; % width of extrafine details +hair#:=16.2/36pt#; % lowercase hairline breadth +stem#:=35/36pt#; % lowercase stem breadth +curve#:=39/36pt#; % lowercase curve breadth +ess#:=32/36pt#; % breadth in middle of lowercase s +flare#:=39/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=46/36pt#; % diameter of dots +cap_hair#:=19/36pt#; % uppercase hairline breadth +cap_stem#:=43/36pt#; % uppercase stem breadth +cap_curve#:=46/36pt#; % uppercase curve breadth +cap_ess#:=43/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.54pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=8/36pt#; % vertical distance from serif base to tangent +jut#:=19/36pt#; % protrusion of lowercase serifs +cap_jut#:=31/36pt#; % protrusion of uppercase serifs +beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs +beak#:=55/36pt#; % vertical protrusion of beak serifs +vair#:=12/36pt#; % vertical diameter of hairlines +notch_cut#:=8pt#; % maximum breadth above or below notches +bar#:=15/36pt#; % lowercase bar thickness +slab#:=15/36pt#; % serif and arm thickness +cap_bar#:=15/36pt#; % uppercase bar thickness +cap_band#:=15/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches +serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs +stem_corr#:=1.8/36pt#; % for small refinements of stem breadth +vair_corr#:=1.3/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=4/36pt#; % amount of overshoot for curves +apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=.9; % extra openness of math symbols +superness:=8/11; % parameter for superellipses +superpull:=1/8; % extra openness inside bowls +beak_darkness:=.4; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + diff --git a/obsolete/macros/ec-plain/dybx9.mf b/obsolete/macros/ec-plain/dybx9.mf new file mode 100644 index 0000000000..0a7832316a --- /dev/null +++ b/obsolete/macros/ec-plain/dybx9.mf @@ -0,0 +1,69 @@ +u#:=21.3/36pt#; % unit width +width_adj#:=10.2/36pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=243/36pt#; % height of tallest characters +asc_height#:=225/36pt#; % height of lowercase ascenders +cap_height#:=222.3/36pt#; % height of caps +fig_height#:=208.8/36pt#; % height of numerals +x_height#:=144/36pt#; % height of lowercase without ascenders +math_axis#:=81/36pt#; % axis of symmetry for math symbols +bar_height#:=76/36pt#; % height of crossbar in lowercase e +comma_depth#:=63/36pt#; % depth of comma below baseline +desc_depth#:=63/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=13/36pt#; % diameter of rounded corners +fine#:=10/36pt#; % diameter of sharply rounded corners +thin_join#:=10/36pt#; % width of extrafine details +hair#:=16.6/36pt#; % lowercase hairline breadth +stem#:=38/36pt#; % lowercase stem breadth +curve#:=43/36pt#; % lowercase curve breadth +ess#:=35/36pt#; % breadth in middle of lowercase s +flare#:=42/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=51/36pt#; % diameter of dots +cap_hair#:=19/36pt#; % uppercase hairline breadth +cap_stem#:=47/36pt#; % uppercase stem breadth +cap_curve#:=51/36pt#; % uppercase curve breadth +cap_ess#:=48/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.57pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=9/36pt#; % vertical distance from serif base to tangent +jut#:=22/36pt#; % protrusion of lowercase serifs +cap_jut#:=35/36pt#; % protrusion of uppercase serifs +beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs +beak#:=63/36pt#; % vertical protrusion of beak serifs +vair#:=12.5/36pt#; % vertical diameter of hairlines +notch_cut#:=9pt#; % maximum breadth above or below notches +bar#:=16/36pt#; % lowercase bar thickness +slab#:=16/36pt#; % serif and arm thickness +cap_bar#:=16/36pt#; % uppercase bar thickness +cap_band#:=16/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches +serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs +stem_corr#:=1.9/36pt#; % for small refinements of stem breadth +vair_corr#:=1.4/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=4/36pt#; % amount of overshoot for curves +apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=.7; % extra openness of math symbols +superness:=8/11; % parameter for superellipses +superpull:=1/8; % extra openness inside bowls +beak_darkness:=.4; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + diff --git a/obsolete/macros/ec-plain/dymi10.mf b/obsolete/macros/ec-plain/dymi10.mf new file mode 100644 index 0000000000..7bfa592cfe --- /dev/null +++ b/obsolete/macros/ec-plain/dymi10.mf @@ -0,0 +1,69 @@ +u#:=20/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=246/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=90/36pt#; % axis of symmetry for math symbols +bar_height#:=87/36pt#; % height of crossbar in lowercase e +comma_depth#:=70/36pt#; % depth of comma below baseline +desc_depth#:=70/36pt#; % depth of lowercase descenders + +crisp#:=8/36pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7/36pt#; % width of extrafine details +hair#:=9/36pt#; % lowercase hairline breadth +stem#:=24/36pt#; % lowercase stem breadth +curve#:=29/36pt#; % lowercase curve breadth +ess#:=27/36pt#; % breadth in middle of lowercase s +flare#:=32/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=38/36pt#; % diameter of dots +cap_hair#:=11/36pt#; % uppercase hairline breadth +cap_stem#:=30/36pt#; % uppercase stem breadth +cap_curve#:=35/36pt#; % uppercase curve breadth +cap_ess#:=33/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.4pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=20/36pt#; % vertical distance from serif base to tangent +jut#:=30/36pt#; % protrusion of lowercase serifs +cap_jut#:=37/36pt#; % protrusion of uppercase serifs +beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs +beak#:=70/36pt#; % vertical protrusion of beak serifs +vair#:=8/36pt#; % vertical diameter of hairlines +notch_cut#:=10pt#; % maximum breadth above or below notches +bar#:=11/36pt#; % lowercase bar thickness +slab#:=11/36pt#; % serif and arm thickness +cap_bar#:=11/36pt#; % uppercase bar thickness +cap_band#:=11/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches +serif_drop#:=4/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=8/36pt#; % amount of overshoot for curves +apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=0; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + diff --git a/obsolete/macros/ec-plain/dymi12.mf b/obsolete/macros/ec-plain/dymi12.mf new file mode 100644 index 0000000000..e1b9f398ec --- /dev/null +++ b/obsolete/macros/ec-plain/dymi12.mf @@ -0,0 +1,70 @@ +u#:=23.5/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=324/36pt#; % height of tallest characters +asc_height#:=300/36pt#; % height of lowercase ascenders +cap_height#:=295.2/36pt#; % height of caps +fig_height#:=278.4/36pt#; % height of numerals +x_height#:=186/36pt#; % height of lowercase without ascenders +math_axis#:=108/36pt#; % axis of symmetry for math symbols +bar_height#:=104.4/36pt#; % height of crossbar in lowercase e +comma_depth#:=84/36pt#; % depth of comma below baseline +desc_depth#:=84/36pt#; % depth of lowercase descenders + +crisp#:=8/36pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7.5/36pt#; % width of extrafine details +hair#:=9.5/36pt#; % lowercase hairline breadth +stem#:=27/36pt#; % lowercase stem breadth +curve#:=32/36pt#; % lowercase curve breadth +ess#:=30/36pt#; % breadth in middle of lowercase s +flare#:=35/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=42/36pt#; % diameter of dots +cap_hair#:=11.5/36pt#; % uppercase hairline breadth +cap_stem#:=33/36pt#; % uppercase stem breadth +cap_curve#:=38/36pt#; % uppercase curve breadth +cap_ess#:=32/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.44pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=24/36pt#; % vertical distance from serif base to tangent +jut#:=35/36pt#; % protrusion of lowercase serifs +cap_jut#:=41/36pt#; % protrusion of uppercase serifs +beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs +beak#:=84/36pt#; % vertical protrusion of beak serifs +vair#:=8.5/36pt#; % vertical diameter of hairlines +notch_cut#:=12pt#; % maximum breadth above or below notches +bar#:=12.5/36pt#; % lowercase bar thickness +slab#:=12.5/36pt#; % serif and arm thickness +cap_bar#:=12.5/36pt#; % uppercase bar thickness +cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches +serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=9/36pt#; % amount of overshoot for curves +apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=-0.2; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + + diff --git a/obsolete/macros/ec-plain/dymi5.mf b/obsolete/macros/ec-plain/dymi5.mf new file mode 100644 index 0000000000..b0921607cc --- /dev/null +++ b/obsolete/macros/ec-plain/dymi5.mf @@ -0,0 +1,69 @@ +u#:=12.5/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=10/36pt#; % extra space added to all sidebars + +body_height#:=135/36pt#; % height of tallest characters +asc_height#:=125/36pt#; % height of lowercase ascenders +cap_height#:=123/36pt#; % height of caps +fig_height#:=116/36pt#; % height of numerals +x_height#:=77.5/36pt#; % height of lowercase without ascenders +math_axis#:=45/36pt#; % axis of symmetry for math symbols +bar_height#:=43.5/36pt#; % height of crossbar in lowercase e +comma_depth#:=35/36pt#; % depth of comma below baseline +desc_depth#:=35/36pt#; % depth of lowercase descenders + +crisp#:=6/36pt#; % diameter of serif corners +tiny#:=6/36pt#; % diameter of rounded corners +fine#:=5/36pt#; % diameter of sharply rounded corners +thin_join#:=5/36pt#; % width of extrafine details +hair#:=7.5/36pt#; % lowercase hairline breadth +stem#:=15.5/36pt#; % lowercase stem breadth +curve#:=17.5/36pt#; % lowercase curve breadth +ess#:=12/36pt#; % breadth in middle of lowercase s +flare#:=18.5/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=22/36pt#; % diameter of dots +cap_hair#:=8/36pt#; % uppercase hairline breadth +cap_stem#:=18.5/36pt#; % uppercase stem breadth +cap_curve#:=20.5/36pt#; % uppercase curve breadth +cap_ess#:=13.5/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.28pt#; % thickness of lines in math symbols + +dish#:=.7/36pt#; % amount erased at top or bottom of serifs +bracket#:=10/36pt#; % vertical distance from serif base to tangent +jut#:=17/36pt#; % protrusion of lowercase serifs +cap_jut#:=20/36pt#; % protrusion of uppercase serifs +beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs +beak#:=35/36pt#; % vertical protrusion of beak serifs +vair#:=6/36pt#; % vertical diameter of hairlines +notch_cut#:=5pt#; % maximum breadth above or below notches +bar#:=8/36pt#; % lowercase bar thickness +slab#:=8/36pt#; % serif and arm thickness +cap_bar#:=8/36pt#; % uppercase bar thickness +cap_band#:=8/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches +serif_drop#:=2/36pt#; % vertical drop of sloped serifs +stem_corr#:=.7/36pt#; % for small refinements of stem breadth +vair_corr#:=.5/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=4/36pt#; % amount of overshoot for curves +apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=1; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=1; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + diff --git a/obsolete/macros/ec-plain/dymi6.mf b/obsolete/macros/ec-plain/dymi6.mf new file mode 100644 index 0000000000..ba4f8b30ff --- /dev/null +++ b/obsolete/macros/ec-plain/dymi6.mf @@ -0,0 +1,69 @@ +u#:=14/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=6/36pt#; % extra space added to all sidebars + +body_height#:=162/36pt#; % height of tallest characters +asc_height#:=150/36pt#; % height of lowercase ascenders +cap_height#:=147.6/36pt#; % height of caps +fig_height#:=139.2/36pt#; % height of numerals +x_height#:=93/36pt#; % height of lowercase without ascenders +math_axis#:=54/36pt#; % axis of symmetry for math symbols +bar_height#:=52.2/36pt#; % height of crossbar in lowercase e +comma_depth#:=42/36pt#; % depth of comma below baseline +desc_depth#:=42/36pt#; % depth of lowercase descenders + +crisp#:=6.5/36pt#; % diameter of serif corners +tiny#:=6.5/36pt#; % diameter of rounded corners +fine#:=6/36pt#; % diameter of sharply rounded corners +thin_join#:=6/36pt#; % width of extrafine details +hair#:=8/36pt#; % lowercase hairline breadth +stem#:=17.5/36pt#; % lowercase stem breadth +curve#:=20/36pt#; % lowercase curve breadth +ess#:=17/36pt#; % breadth in middle of lowercase s +flare#:=20.5/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=26/36pt#; % diameter of dots +cap_hair#:=8.5/36pt#; % uppercase hairline breadth +cap_stem#:=21/36pt#; % uppercase stem breadth +cap_curve#:=23.5/36pt#; % uppercase curve breadth +cap_ess#:=18.5/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.31pt#; % thickness of lines in math symbols + +dish#:=.8/36pt#; % amount erased at top or bottom of serifs +bracket#:=12/36pt#; % vertical distance from serif base to tangent +jut#:=19/36pt#; % protrusion of lowercase serifs +cap_jut#:=23/36pt#; % protrusion of uppercase serifs +beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs +beak#:=42/36pt#; % vertical protrusion of beak serifs +vair#:=7/36pt#; % vertical diameter of hairlines +notch_cut#:=6pt#; % maximum breadth above or below notches +bar#:=8.5/36pt#; % lowercase bar thickness +slab#:=8.5/36pt#; % serif and arm thickness +cap_bar#:=8.5/36pt#; % uppercase bar thickness +cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches +serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs +stem_corr#:=.8/36pt#; % for small refinements of stem breadth +vair_corr#:=.7/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=4.5/36pt#; % amount of overshoot for curves +apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=.8; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + diff --git a/obsolete/macros/ec-plain/dymi7.mf b/obsolete/macros/ec-plain/dymi7.mf new file mode 100644 index 0000000000..8a22845789 --- /dev/null +++ b/obsolete/macros/ec-plain/dymi7.mf @@ -0,0 +1,69 @@ +u#:=15.5/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=4/36pt#; % extra space added to all sidebars + +body_height#:=189/36pt#; % height of tallest characters +asc_height#:=175/36pt#; % height of lowercase ascenders +cap_height#:=172.2/36pt#; % height of caps +fig_height#:=162.4/36pt#; % height of numerals +x_height#:=108.5/36pt#; % height of lowercase without ascenders +math_axis#:=63/36pt#; % axis of symmetry for math symbols +bar_height#:=60.9/36pt#; % height of crossbar in lowercase e +comma_depth#:=49/36pt#; % depth of comma below baseline +desc_depth#:=49/36pt#; % depth of lowercase descenders + +crisp#:=7/36pt#; % diameter of serif corners +tiny#:=7/36pt#; % diameter of rounded corners +fine#:=6/36pt#; % diameter of sharply rounded corners +thin_join#:=6/36pt#; % width of extrafine details +hair#:=8.5/36pt#; % lowercase hairline breadth +stem#:=19.5/36pt#; % lowercase stem breadth +curve#:=22.5/36pt#; % lowercase curve breadth +ess#:=21/36pt#; % breadth in middle of lowercase s +flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=29/36pt#; % diameter of dots +cap_hair#:=9/36pt#; % uppercase hairline breadth +cap_stem#:=23.5/36pt#; % uppercase stem breadth +cap_curve#:=26.5/36pt#; % uppercase curve breadth +cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.34pt#; % thickness of lines in math symbols + +dish#:=.9/36pt#; % amount erased at top or bottom of serifs +bracket#:=14/36pt#; % vertical distance from serif base to tangent +jut#:=21/36pt#; % protrusion of lowercase serifs +cap_jut#:=26/36pt#; % protrusion of uppercase serifs +beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs +beak#:=49/36pt#; % vertical protrusion of beak serifs +vair#:=7/36pt#; % vertical diameter of hairlines +notch_cut#:=7pt#; % maximum breadth above or below notches +bar#:=9/36pt#; % lowercase bar thickness +slab#:=9/36pt#; % serif and arm thickness +cap_bar#:=9/36pt#; % uppercase bar thickness +cap_band#:=9/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches +serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs +stem_corr#:=.9/36pt#; % for small refinements of stem breadth +vair_corr#:=.9/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=5/36pt#; % amount of overshoot for curves +apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=.6; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + diff --git a/obsolete/macros/ec-plain/dymi8.mf b/obsolete/macros/ec-plain/dymi8.mf new file mode 100644 index 0000000000..997808f3c5 --- /dev/null +++ b/obsolete/macros/ec-plain/dymi8.mf @@ -0,0 +1,69 @@ +u#:=17/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=216/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=196.8/36pt#; % height of caps +fig_height#:=185.6/36pt#; % height of numerals +x_height#:=124/36pt#; % height of lowercase without ascenders +math_axis#:=72/36pt#; % axis of symmetry for math symbols +bar_height#:=69.6/36pt#; % height of crossbar in lowercase e +comma_depth#:=56/36pt#; % depth of comma below baseline +desc_depth#:=56/36pt#; % depth of lowercase descenders + +crisp#:=8/36pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7/36pt#; % width of extrafine details +hair#:=9/36pt#; % lowercase hairline breadth +stem#:=21.5/36pt#; % lowercase stem breadth +curve#:=25/36pt#; % lowercase curve breadth +ess#:=23/36pt#; % breadth in middle of lowercase s +flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=32/36pt#; % diameter of dots +cap_hair#:=9.5/36pt#; % uppercase hairline breadth +cap_stem#:=25.5/36pt#; % uppercase stem breadth +cap_curve#:=29/36pt#; % uppercase curve breadth +cap_ess#:=26/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.36pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=16/36pt#; % vertical distance from serif base to tangent +jut#:=24/36pt#; % protrusion of lowercase serifs +cap_jut#:=29/36pt#; % protrusion of uppercase serifs +beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs +beak#:=56/36pt#; % vertical protrusion of beak serifs +vair#:=8/36pt#; % vertical diameter of hairlines +notch_cut#:=8pt#; % maximum breadth above or below notches +bar#:=9.5/36pt#; % lowercase bar thickness +slab#:=9.5/36pt#; % serif and arm thickness +cap_bar#:=9.5/36pt#; % uppercase bar thickness +cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches +serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=.4; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + diff --git a/obsolete/macros/ec-plain/dymi9.mf b/obsolete/macros/ec-plain/dymi9.mf new file mode 100644 index 0000000000..a06ca59966 --- /dev/null +++ b/obsolete/macros/ec-plain/dymi9.mf @@ -0,0 +1,70 @@ +u#:=18.5/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=243/36pt#; % height of tallest characters +asc_height#:=225/36pt#; % height of lowercase ascenders +cap_height#:=221.4/36pt#; % height of caps +fig_height#:=208.8/36pt#; % height of numerals +x_height#:=139.5/36pt#; % height of lowercase without ascenders +math_axis#:=81/36pt#; % axis of symmetry for math symbols +bar_height#:=78.3/36pt#; % height of crossbar in lowercase e +comma_depth#:=63/36pt#; % depth of comma below baseline +desc_depth#:=63/36pt#; % depth of lowercase descenders + +crisp#:=8/36pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7/36pt#; % width of extrafine details +hair#:=9/36pt#; % lowercase hairline breadth +stem#:=23/36pt#; % lowercase stem breadth +curve#:=27/36pt#; % lowercase curve breadth +ess#:=25/36pt#; % breadth in middle of lowercase s +flare#:=29/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=35/36pt#; % diameter of dots +cap_hair#:=10/36pt#; % uppercase hairline breadth +cap_stem#:=28/36pt#; % uppercase stem breadth +cap_curve#:=32/36pt#; % uppercase curve breadth +cap_ess#:=30/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.38pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=18/36pt#; % vertical distance from serif base to tangent +jut#:=27/36pt#; % protrusion of lowercase serifs +cap_jut#:=33/36pt#; % protrusion of uppercase serifs +beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs +beak#:=63/36pt#; % vertical protrusion of beak serifs +vair#:=8/36pt#; % vertical diameter of hairlines +notch_cut#:=9pt#; % maximum breadth above or below notches +bar#:=10/36pt#; % lowercase bar thickness +slab#:=10/36pt#; % serif and arm thickness +cap_bar#:=10/36pt#; % uppercase bar thickness +cap_band#:=10/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches +serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=7/36pt#; % amount of overshoot for curves +apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=.2; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + + diff --git a/obsolete/macros/ec-plain/ec-pdfplain.fmt b/obsolete/macros/ec-plain/ec-pdfplain.fmt new file mode 100644 index 0000000000..f782620f7a Binary files /dev/null and b/obsolete/macros/ec-plain/ec-pdfplain.fmt differ diff --git a/obsolete/macros/ec-plain/ec-pdfplain.tex b/obsolete/macros/ec-plain/ec-pdfplain.tex new file mode 100644 index 0000000000..398667a0d9 --- /dev/null +++ b/obsolete/macros/ec-plain/ec-pdfplain.tex @@ -0,0 +1,2 @@ +\input ec-plain.tex +\endinput diff --git a/obsolete/macros/ec-plain/ec-plain.fmt b/obsolete/macros/ec-plain/ec-plain.fmt new file mode 100644 index 0000000000..09ccec42f2 Binary files /dev/null and b/obsolete/macros/ec-plain/ec-plain.fmt differ diff --git a/obsolete/macros/ec-plain/ec-plain.tex b/obsolete/macros/ec-plain/ec-plain.tex new file mode 100644 index 0000000000..38ee66fff5 --- /dev/null +++ b/obsolete/macros/ec-plain/ec-plain.tex @@ -0,0 +1,1245 @@ +% This is the plain TeX format that's described in The TeXbook. +% N.B.: A version number is defined at the very end of this file; +% please change that number whenever the file is modified! +% And don't modify the file under any circumstances. +% These circumstances are the use of EC fonts which changes font names +% cmmi --> exmi (same with additional greek chars above 127) +% cmr --> ecrm, cmbx --> ecbx, etc. +% mathchardefs for uppercase greek letters +% +% Provided by Daniel TAUPIN : taupin@lps.u-psud.fr + +\catcode`\{=1 % left brace is begin-group character +\catcode`\}=2 % right brace is end-group character +\catcode`\$=3 % dollar sign is math shift +\catcode`\&=4 % ampersand is alignment tab +\catcode`\#=6 % hash mark is macro parameter character +\catcode`\^=7 \catcode`\^^K=7 % circumflex and uparrow are for superscripts +\catcode`\_=8 \catcode`\^^A=8 % underline and downarrow are for subscripts +\catcode`\^^I=10 % ascii tab is a blank space +\chardef\active=13 \catcode`\~=\active % tilde is active +\catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par" + +\message{Preloading the plain format: codes,} + +% We had to define the \catcodes right away, before the message line, +% since \message uses the { and } characters. +% When INITEX (the TeX initializer) starts up, +% it has defined the following \catcode values: +% \catcode`\^^@=9 % ascii null is ignored +% \catcode`\^^M=5 % ascii return is end-line +% \catcode`\\=0 % backslash is TeX escape character +% \catcode`\%=14 % percent sign is comment character +% \catcode`\ =10 % ascii space is blank space +% \catcode`\^^?=15 % ascii delete is invalid +% \catcode`\A=11 ... \catcode`\Z=11 % uppercase letters +% \catcode`\a=11 ... \catcode`\z=11 % lowercase letters +% all others are type 12 (other) + +% Here is a list of the characters that have been specially catcoded: +\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&% + \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~} +% (not counting ascii null, tab, linefeed, formfeed, return, delete) +% Each symbol in the list is preceded by \do, which can be defined +% if you want to do something to every item in the list. + +% We make @ signs act like letters, temporarily, to avoid conflict +% between user names and internal control sequences of plain format. +\catcode`@=11 + +% INITEX sets up \mathcode x=x, for x=0..255, except that +% \mathcode x=x+"7100, for x = `A to `Z and `a to `z; +% \mathcode x=x+"7000, for x = `0 to `9. +% The following changes define internal codes as recommended +% in Appendix C of The TeXbook: +\mathcode`\^^@="2201 % \cdot +\mathcode`\^^A="3223 % \downarrow +\mathcode`\^^B="010B % \alpha +\mathcode`\^^C="010C % \beta +\mathcode`\^^D="225E % \land +\mathcode`\^^E="023A % \lnot +\mathcode`\^^F="3232 % \in +\mathcode`\^^G="0119 % \pi +\mathcode`\^^H="0115 % \lambda +\mathcode`\^^I="010D % \gamma +\mathcode`\^^J="010E % \delta +\mathcode`\^^K="3222 % \uparrow +\mathcode`\^^L="2206 % \pm +\mathcode`\^^M="2208 % \oplus +\mathcode`\^^N="0231 % \infty +\mathcode`\^^O="0140 % \partial +\mathcode`\^^P="321A % \subset +\mathcode`\^^Q="321B % \supset +\mathcode`\^^R="225C % \cap +\mathcode`\^^S="225B % \cup +\mathcode`\^^T="0238 % \forall +\mathcode`\^^U="0239 % \exists +\mathcode`\^^V="220A % \otimes +\mathcode`\^^W="3224 % \leftrightarrow +\mathcode`\^^X="3220 % \leftarrow +\mathcode`\^^Y="3221 % \rightarrow +\mathcode`\^^Z="8000 % \ne +\mathcode`\^^[="2205 % \diamond +\mathcode`\^^\="3214 % \le +\mathcode`\^^]="3215 % \ge +\mathcode`\^^^="3211 % \equiv +\mathcode`\^^_="225F % \lor +\mathcode`\ ="8000 % \space +\mathcode`\!="5021 +\mathcode`\'="8000 % ^\prime +\mathcode`\(="4028 +\mathcode`\)="5029 +\mathcode`\*="2203 % \ast +\mathcode`\+="202B +\mathcode`\,="613B +\mathcode`\-="2200 +\mathcode`\.="013A +\mathcode`\/="013D +\mathcode`\:="303A +\mathcode`\;="603B +\mathcode`\<="313C +\mathcode`\=="303D +\mathcode`\>="313E +\mathcode`\?="503F +\mathcode`\[="405B +\mathcode`\\="026E % \backslash +\mathcode`\]="505D +\mathcode`\_="8000 % \_ +\mathcode`\{="4266 +\mathcode`\|="026A +\mathcode`\}="5267 +\mathcode`\^^?="1273 % \smallint + +% INITEX sets \uccode`x=`X and \uccode `X=`X for all letters x, +% and \lccode`x=`x, \lccode`X=`x; all other values are zero. +% No changes to those tables are needed in plain TeX format. + +% INITEX sets \sfcode x=1000 for all x, except that \sfcode`X=999 +% for uppercase letters. The following changes are needed: +\sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0 +% The \nonfrenchspacing macro will make further changes to \sfcode values. + +% Finally, INITEX sets all \delcode values to -1, except \delcode`.=0 +\delcode`\(="028300 +\delcode`\)="029301 +\delcode`\[="05B302 +\delcode`\]="05D303 +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\/="02F30E +\delcode`\|="26A30C +\delcode`\\="26E30F +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +% To make the plain macros more efficient in time and space, +% several constant values are declared here as control sequences. +% If they were changed, anything could happen; so they are private symbols. +\chardef\@ne=1 +\chardef\tw@=2 +\chardef\thr@@=3 +\chardef\sixt@@n=16 +\chardef\@cclv=255 +\mathchardef\@cclvi=256 +\mathchardef\@m=1000 +\mathchardef\@M=10000 +\mathchardef\@MM=20000 + +% Allocation of registers + +% Here are macros for the automatic allocation of \count, \box, \dimen, +% \skip, \muskip, and \toks registers, as well as \read and \write +% stream numbers, \fam codes, \language codes, and \insert numbers. + +\message{registers,} + +% When a register is used only temporarily, it need not be allocated; +% grouping can be used, making the value previously in the register return +% after the close of the group. The main use of these macros is for +% registers that are defined by one macro and used by others, possibly at +% different nesting levels. All such registers should be defined through +% these macros; otherwise conflicts may occur, especially when two or more +% more macro packages are being used at once. + +% The following counters are reserved: +% 0 to 9 page numbering +% 10 count allocation +% 11 dimen allocation +% 12 skip allocation +% 13 muskip allocation +% 14 box allocation +% 15 toks allocation +% 16 read file allocation +% 17 write file allocation +% 18 math family allocation +% 19 language allocation +% 20 insert allocation +% 21 the most recently allocated number +% 22 constant -1 +% New counters are allocated starting with 23, 24, etc. Other registers are +% allocated starting with 10. This leaves 0 through 9 for the user to play +% with safely, except that counts 0 to 9 are considered to be the page and +% subpage numbers (since they are displayed during output). In this scheme, +% \count 10 always contains the number of the highest-numbered counter that +% has been allocated, \count 14 the highest-numbered box, etc. +% Inserts are given numbers 254, 253, etc., since they require a \count, +% \dimen, \skip, and \box all with the same number; \count 20 contains the +% lowest-numbered insert that has been allocated. Of course, \box255 is +% reserved for \output; \count255, \dimen255, and \skip255 can be used freely. + +% It is recommended that macro designers always use +% \global assignments with respect to registers numbered 1, 3, 5, 7, 9, and +% always non-\global assignments with respect to registers 0, 2, 4, 6, 8, 255. +% This will prevent ``save stack buildup'' that might otherwise occur. + +\count10=22 % allocates \count registers 23, 24, ... +\count11=9 % allocates \dimen registers 10, 11, ... +\count12=9 % allocates \skip registers 10, 11, ... +\count13=9 % allocates \muskip registers 10, 11, ... +\count14=9 % allocates \box registers 10, 11, ... +\count15=9 % allocates \toks registers 10, 11, ... +\count16=-1 % allocates input streams 0, 1, ... +\count17=-1 % allocates output streams 0, 1, ... +\count18=3 % allocates math families 4, 5, ... +\count19=0 % allocates \language codes 1, 2, ... +\count20=255 % allocates insertions 254, 253, ... +\countdef\insc@unt=20 % the insertion counter +\countdef\allocationnumber=21 % the most recent allocation +\countdef\m@ne=22 \m@ne=-1 % a handy constant +\def\wlog{\immediate\write\m@ne} % write on log file (only) + +% Here are abbreviations for the names of scratch registers +% that don't need to be allocated. + +\countdef\count@=255 +\dimendef\dimen@=0 +\dimendef\dimen@i=1 % global only +\dimendef\dimen@ii=2 +\skipdef\skip@=0 +\toksdef\toks@=0 + +% Now, we define \newcount, \newbox, etc. so that you can say \newcount\foo +% and \foo will be defined (with \countdef) to be the next counter. +% To find out which counter \foo is, you can look at \allocationnumber. +% Since there's no \boxdef command, \chardef is used to define a \newbox, +% \newinsert, \newfam, and so on. + +\outer\def\newcount{\alloc@0\count\countdef\insc@unt} +\outer\def\newdimen{\alloc@1\dimen\dimendef\insc@unt} +\outer\def\newskip{\alloc@2\skip\skipdef\insc@unt} +\outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi} +\outer\def\newbox{\alloc@4\box\chardef\insc@unt} +\let\newtoks=\relax % we do this to allow plain.tex to be read in twice +\outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}} +\outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi} +\outer\def\newread{\alloc@6\read\chardef\sixt@@n} +\outer\def\newwrite{\alloc@7\write\chardef\sixt@@n} +\outer\def\newfam{\alloc@8\fam\chardef\sixt@@n} +\outer\def\newlanguage{\alloc@9\language\chardef\@cclvi} +\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne + \ch@ck#1#4#2% make sure there's still room + \allocationnumber=\count1#1% + \global#3#5=\allocationnumber + \wlog{\string#5=\string#2\the\allocationnumber}} +\outer\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\ch@ck#1#2#3{\ifnum\count1#1<#2% + \else\errmessage{No room for a new #3}\fi} + +% Here are some examples of allocation. +\newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal +\newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow +\newskip\centering \centering=0pt plus 1000pt minus 1000pt +\newdimen\p@ \p@=1pt % this saves macro space and time +\newdimen\z@ \z@=0pt % can be used both for 0pt and 0 +\newskip\z@skip \z@skip=0pt plus0pt minus0pt +\newbox\voidb@x % permanently void box register + +% And here's a different sort of allocation: +% For example, \newif\iffoo creates \footrue, \foofalse to go with \iffoo. +\outer\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\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname} +{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required + +% Assign initial values to TeX's parameters + +\message{parameters,} + +% All of TeX's numeric parameters are listed here, +% but the code is commented out if no special value needs to be set. +% INITEX makes all parameters zero except where noted. + +\pretolerance=100 +\tolerance=200 % INITEX sets this to 10000 +\hbadness=1000 +\vbadness=1000 +\linepenalty=10 +\hyphenpenalty=50 +\exhyphenpenalty=50 +\binoppenalty=700 +\relpenalty=500 +\clubpenalty=150 +\widowpenalty=150 +\displaywidowpenalty=50 +\brokenpenalty=100 +\predisplaypenalty=10000 +% \postdisplaypenalty=0 +% \interlinepenalty=0 +% \floatingpenalty=0, set during \insert +% \outputpenalty=0, set before TeX enters \output +\doublehyphendemerits=10000 +\finalhyphendemerits=5000 +\adjdemerits=10000 +% \looseness=0, cleared by TeX after each paragraph +% \pausing=0 +% \holdinginserts=0 +% \tracingonline=0 +% \tracingmacros=0 +% \tracingstats=0 +% \tracingparagraphs=0 +% \tracingpages=0 +% \tracingoutput=0 +\tracinglostchars=1 +% \tracingcommands=0 +% \tracingrestores=0 +% \language=0 +\uchyph=1 +% \lefthyphenmin=2 \righthyphenmin=3 set below +% \globaldefs=0 +% \maxdeadcycles=25 % INITEX does this +% \hangafter=1 % INITEX does this, also TeX after each paragraph +% \fam=0 +% \mag=1000 % INITEX does this +% \escapechar=`\\ % INITEX does this +\defaulthyphenchar=`\- +\defaultskewchar=-1 +% \endlinechar=`\^^M % INITEX does this +\newlinechar=-1 +\delimiterfactor=901 +% \time=now % TeX does this at beginning of job +% \day=now % TeX does this at beginning of job +% \month=now % TeX does this at beginning of job +% \year=now % TeX does this at beginning of job +\showboxbreadth=5 +\showboxdepth=3 +\errorcontextlines=5 + +\hfuzz=0.1pt +\vfuzz=0.1pt +\overfullrule=5pt +\hsize=6.5in +\vsize=8.9in +\maxdepth=4pt +\splitmaxdepth=\maxdimen +\boxmaxdepth=\maxdimen +% \lineskiplimit=0pt, changed by \normalbaselines +\delimitershortfall=5pt +\nulldelimiterspace=1.2pt +\scriptspace=0.5pt +% \mathsurround=0pt +% \predisplaysize=0pt, set before TeX enters $$ +% \displaywidth=0pt, set before TeX enters $$ +% \displayindent=0pt, set before TeX enters $$ +\parindent=20pt +% \hangindent=0pt, zeroed by TeX after each paragraph +% \hoffset=0pt +% \voffset=0pt + +% \baselineskip=0pt, changed by \normalbaselines +% \lineskip=0pt, changed by \normalbaselines +\parskip=0pt plus 1pt +\abovedisplayskip=12pt plus 3pt minus 9pt +\abovedisplayshortskip=0pt plus 3pt +\belowdisplayskip=12pt plus 3pt minus 9pt +\belowdisplayshortskip=7pt plus 3pt minus 4pt +% \leftskip=0pt +% \rightskip=0pt +\topskip=10pt +\splittopskip=10pt +% \tabskip=0pt +% \spaceskip=0pt +% \xspaceskip=0pt +\parfillskip=0pt plus 1fil + +\thinmuskip=3mu +\medmuskip=4mu plus 2mu minus 4mu +\thickmuskip=5mu plus 5mu + +% We also define special registers that function like parameters: +\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt +\newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt +\newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt +\newskip\normalbaselineskip \normalbaselineskip=12pt +\newskip\normallineskip \normallineskip=1pt +\newdimen\normallineskiplimit \normallineskiplimit=0pt +\newdimen\jot \jot=3pt +\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100 +\newcount\interfootnotelinepenalty \interfootnotelinepenalty=100 + +% Definitions for preloaded fonts + +\def\magstephalf{1095 } +\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or + 2488\or 2986\or 3583\or 4300\or 5160\fi\relax} + +% Fonts assigned to \preloaded are not part of "plain TeX", +% but they are preloaded so that other format packages can use them. +% For example, if another set of macros says "\font\ninerm=cmr9", +% TeX will not have to reload the font metric information for cmr9. + +\message{fonts,} + +\font\tenrm=ecrm1000 % roman text +%\font\preloaded=ecrm0900 +%\font\preloaded=ecrm0800 +\font\sevenrm=ecrm0700 +%\font\preloaded=ecrm0600 +\font\fiverm=ecrm0500 + +\font\teni=exmi10 % math italic +%\font\preloaded=exmi9 +%\font\preloaded=exmi8 +\font\seveni=exmi7 +%\font\preloaded=exmi6 +\font\fivei=exmi5 + +\font\tensy=cmsy10 % math symbols +%\font\preloaded=cmsy9 +%\font\preloaded=cmsy8 +\font\sevensy=cmsy7 +%\font\preloaded=cmsy6 +\font\fivesy=cmsy5 + +\font\tenex=cmex10 % math extension + +%\font\preloaded=ecss1000 % sans serif +%\font\preloaded=cmssq8 + +%\font\preloaded=ecsi1000 % sans serif italic +%\font\preloaded=cmssqi8 + +\font\tenbf=ecbx1000 % boldface extended +%\font\preloaded=ecbx0900 +%\font\preloaded=ecbx0800 +\font\sevenbf=ecbx0700 +%\font\preloaded=ecbx0600 +\font\fivebf=ecbx0500 + +\font\tentt=ectt1000 % typewriter +%\font\preloaded=ectt0900 +%\font\preloaded=ectt0800 + +%\font\preloaded=ecst1000 % slanted typewriter + +\font\tensl=ecsl1000 % slanted roman +%\font\preloaded=ecsl0900 +%\font\preloaded=ecsl0800 + +\font\tenit=ecti1000 % text italic +%\font\preloaded=ecti0900 +%\font\preloaded=ecti0800 +%\font\preloaded=ecti0700 + +\message{more fonts,} +%\font\preloaded=ecui1000 % unslanted text italic + +%\font\preloaded=cmmib10 % bold math italic +%\font\preloaded=cmbsy10 % bold math symbols + +%\font\preloaded=eccc1000 % caps and small caps + +%\font\preloaded=ecso1000 % sans serif bold extended + +%\font\preloaded=cmdunh10 % Dunhill style + +%\font\preloaded=ecrm0700 scaled \magstep4 % for titles +%\font\preloaded=ectt1000 scaled \magstep2 +%\font\preloaded=ecso1000 scaled \magstep2 + +%\font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols + +% Additional \preloaded fonts can be specified here. +% (And those that were \preloaded above can be eliminated.) + +\let\preloaded=\undefined % preloaded fonts must be declared anew later. + +\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177 +\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60 + +\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm +\def\rm{\fam\z@\tenrm} +\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei +\def\mit{\fam\@ne} \def\oldstyle{\fam\@ne\teni} +\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy +\def\cal{\fam\tw@} +\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex +\newfam\itfam \def\it{\fam\itfam\tenit} % \it is family 4 +\textfont\itfam=\tenit +\newfam\slfam \def\sl{\fam\slfam\tensl} % \sl is family 5 +\textfont\slfam=\tensl +\newfam\bffam \def\bf{\fam\bffam\tenbf} % \bf is family 6 +\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf +\scriptscriptfont\bffam=\fivebf +\newfam\ttfam \def\tt{\fam\ttfam\tentt} % \tt is family 7 +\textfont\ttfam=\tentt + +% Macros for setting ordinary text +\message{macros,} + +\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m + \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m} +\def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000% + \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 } + +\def\normalbaselines{\lineskip\normallineskip + \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit} + +\def\^^M{\ } % control = control +\def\^^I{\ } % same for + +\def\lq{`} \def\rq{'} +\def\lbrack{[} \def\rbrack{]} + +\let\endgraf=\par \let\endline=\cr + +\def\space{ } +\def\empty{} +\def\null{\hbox{}} + +\let\bgroup={ \let\egroup=} + +% In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}' +% since this allows, for example, `\let\par=\cr \obeylines \halign{...' +{\catcode`\^^M=\active % these lines must end with % + \gdef\obeylines{\catcode`\^^M\active \let^^M\par}% + \global\let^^M\par} % this is in case ^^M appears in a \write +\def\obeyspaces{\catcode`\ \active} +{\obeyspaces\global\let =\space} + +\def\loop#1\repeat{\def\body{#1}\iterate} +\def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next} +\let\repeat=\fi % this makes \loop...\if...\repeat skippable + +\def\thinspace{\kern .16667em } +\def\negthinspace{\kern-.16667em } +\def\enspace{\kern.5em } + +\def\enskip{\hskip.5em\relax} +\def\quad{\hskip1em\relax} +\def\qquad{\hskip2em\relax} + +\def\smallskip{\vskip\smallskipamount} +\def\medskip{\vskip\medskipamount} +\def\bigskip{\vskip\bigskipamount} + +\def\nointerlineskip{\prevdepth-1000\p@} +\def\offinterlineskip{\baselineskip-1000\p@ + \lineskip\z@ \lineskiplimit\maxdimen} + +\def\topglue{\nointerlineskip\vglue-\topskip\vglue} % for top of page +\def\vglue{\afterassignment\vgl@\skip@=} +\def\vgl@{\par \dimen@\prevdepth \hrule height\z@ + \nobreak\vskip\skip@ \prevdepth\dimen@} +\def\hglue{\afterassignment\hgl@\skip@=} +\def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@ + \nobreak\hskip\skip@ \spacefactor\count@} + +\def~{\penalty\@M \ } % tie +\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-' + +\def\break{\penalty-\@M} +\def\nobreak{\penalty \@M} +\def\allowbreak{\penalty \z@} + +\def\filbreak{\par\vfil\penalty-200\vfilneg} +\def\goodbreak{\par\penalty-500 } +\def\eject{\par\break} +\def\supereject{\par\penalty-\@MM} + +\def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi} +\def\smallbreak{\par\ifdim\lastskip<\smallskipamount + \removelastskip\penalty-50\smallskip\fi} +\def\medbreak{\par\ifdim\lastskip<\medskipamount + \removelastskip\penalty-100\medskip\fi} +\def\bigbreak{\par\ifdim\lastskip<\bigskipamount + \removelastskip\penalty-200\bigskip\fi} + +\def\line{\hbox to\hsize} +\def\leftline#1{\line{#1\hss}} +\def\rightline#1{\line{\hss#1}} +\def\centerline#1{\line{\hss#1\hss}} + +\def\rlap#1{\hbox to\z@{#1\hss}} +\def\llap#1{\hbox to\z@{\hss#1}} + +\def\m@th{\mathsurround\z@} +\def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@ + \m@th \underline{\box\z@}$} + +\newbox\strutbox +\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@} +\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} + +\def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out +\def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign +\newcount\mscount +\def\multispan#1{\omit \mscount#1\relax + \loop\ifnum\mscount>\@ne \sp@n\repeat} +\def\sp@n{\span\omit\advance\mscount\m@ne} + +\newif\ifus@ \newif\if@cr +\newbox\tabs \newbox\tabsyet \newbox\tabsdone + +\def\cleartabs{\global\setbox\tabsyet\null \setbox\tabs\null} +\def\settabs{\setbox\tabs\null \futurelet\next\sett@b} +\let\+=\relax % in case this file is being read in twice +\def\sett@b{\ifx\next\+\def\nxt{\afterassignment\s@tt@b\let\nxt}% + \else\let\nxt\s@tcols\fi \let\next\relax \nxt} +\def\s@tt@b{\let\nxt\relax \us@false\m@ketabbox} +\def\tabalign{\us@true\m@ketabbox} % non-\outer version of \+ +\outer\def\+{\tabalign} +\def\s@tcols#1\columns{\count@#1\dimen@\hsize + \loop\ifnum\count@>\z@ \@nother \repeat} +\def\@nother{\dimen@ii\dimen@ \divide\dimen@ii\count@ + \setbox\tabs\hbox{\hbox to\dimen@ii{}\unhbox\tabs}% + \advance\dimen@-\dimen@ii \advance\count@\m@ne} + +\def\m@ketabbox{\begingroup + \global\setbox\tabsyet\copy\tabs + \global\setbox\tabsdone\null + \def\cr{\@crtrue\crcr\egroup\egroup + \ifus@\unvbox\z@\lastbox\fi\endgroup + \setbox\tabs\hbox{\unhbox\tabsyet\unhbox\tabsdone}}% + \setbox\z@\vbox\bgroup\@crfalse + \ialign\bgroup&\t@bbox##\t@bb@x\crcr} + +\def\t@bbox{\setbox\z@\hbox\bgroup} +\def\t@bb@x{\if@cr\egroup % now \box\z@ holds the column + \else\hss\egroup \global\setbox\tabsyet\hbox{\unhbox\tabsyet + \global\setbox\@ne\lastbox}% now \box\@ne holds its size + \ifvoid\@ne\global\setbox\@ne\hbox to\wd\z@{}% + \else\setbox\z@\hbox to\wd\@ne{\unhbox\z@}\fi + \global\setbox\tabsdone\hbox{\box\@ne\unhbox\tabsdone}\fi + \box\z@} + +\def\hang{\hangindent\parindent} +\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces} +\def\item{\par\hang\textindent} +\def\itemitem{\par\indent \hangindent2\parindent \textindent} +\def\narrower{\advance\leftskip\parindent + \advance\rightskip\parindent} + +\outer\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} +\outer\def\proclaim #1. #2\par{\medbreak + \noindent{\bf#1.\enspace}{\sl#2\par}% + \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi} + +\def\raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax} +\def\ttraggedright{\tt\rightskip\z@ plus2em\relax} % for use with \tt only + +\chardef\%=`\% +\chardef\&=`\& +\chardef\#=`\# +\chardef\$=`\$ +\chardef\ss="19 +\chardef\ae="1A +\chardef\oe="1B +\chardef\o="1C +\chardef\AE="1D +\chardef\OE="1E +\chardef\O="1F +\chardef\i="10 \chardef\j="11 % dotless letters +\def\aa{\accent23a} +\def\l{\char32l} +\def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}} + +\def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary +\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}} +\def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex% + \rlap{\raise.67\dimen@\hbox{\char'27}}A} + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} + +\def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% + \ialign{##\crcr#1\crcr}}} \def\o@lign{\lineskiplimit\z@ \oalign} +\def\ooalign{\lineskiplimit-\maxdimen \oalign} % chars over each other +\def\sh@ft#1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font + \kern-.0156\dimen\z@} % compensate for slant in lowered accents +\def\d#1{{\o@lign{\relax#1\crcr\hidewidth\sh@ft{10}.\hidewidth}}} +\def\b#1{{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% + \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}} +\def\c#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% + \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi} +\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}} + +\def\dots{\relax\ifmmode\ldots\else$\m@th\ldots\,$\fi} +\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX} + +\def\`#1{{\accent18 #1}} +\def\'#1{{\accent19 #1}} +\def\v#1{{\accent20 #1}} \let\^^_=\v +\def\u#1{{\accent21 #1}} \let\^^S=\u +\def\=#1{{\accent22 #1}} +\def\^#1{{\accent94 #1}} \let\^^D=\^ +\def\.#1{{\accent95 #1}} +\def\H#1{{\accent"7D #1}} +\def\~#1{{\accent"7E #1}} +\def\"#1{{\accent"7F #1}} +\def\t#1{{\edef\next{\the\font}\the\textfont1\accent"7F\next#1}} + +\def\hrulefill{\leaders\hrule\hfill} +\def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill} +\def\rightarrowfill{$\m@th\smash-\mkern-7mu% + \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill + \mkern-7mu\mathord\rightarrow$} +\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-7mu% + \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill + \mkern-7mu\smash-$} +\mathchardef\braceld="37A \mathchardef\bracerd="37B +\mathchardef\bracelu="37C \mathchardef\braceru="37D +\def\downbracefill{$\m@th \setbox\z@\hbox{$\braceld$}% + \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru + \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd$} +\def\upbracefill{$\m@th \setbox\z@\hbox{$\braceld$}% + \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd + \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru$} + +\outer\def\bye{\par\vfill\supereject\end} + +% Macros for math setting +\message{math definitions,} + +\let\sp=^ \let\sb=_ +\def\,{\mskip\thinmuskip} +\def\>{\mskip\medmuskip} +\def\;{\mskip\thickmuskip} +\def\!{\mskip-\thinmuskip} +\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}} +{\catcode`\'=\active \gdef'{^\bgroup\prim@s}} +\def\prim@s{\prime\futurelet\next\pr@m@s} +\def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t + \else\let\nxt\egroup\fi\fi \nxt} +\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup} +{\catcode`\^^Z=\active \gdef^^Z{\not=}} % ^^Z is like \ne in math + +{\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_ + +\mathchardef\alpha="010B +\mathchardef\beta="010C +\mathchardef\gamma="010D +\mathchardef\delta="010E +\mathchardef\epsilon="010F +\mathchardef\zeta="0110 +\mathchardef\eta="0111 +\mathchardef\theta="0112 +\mathchardef\iota="0113 +\mathchardef\kappa="0114 +\mathchardef\lambda="0115 +\mathchardef\mu="0116 +\mathchardef\nu="0117 +\mathchardef\xi="0118 +\mathchardef\pi="0119 +\mathchardef\rho="011A +\mathchardef\sigma="011B +\mathchardef\tau="011C +\mathchardef\upsilon="011D +\mathchardef\phi="011E +\mathchardef\chi="011F +\mathchardef\psi="0120 +\mathchardef\omega="0121 +\mathchardef\varepsilon="0122 +\mathchardef\vartheta="0123 +\mathchardef\varpi="0124 +\mathchardef\varrho="0125 +\mathchardef\varsigma="0126 +\mathchardef\varphi="0127 +\mathchardef\Gamma="0800 +\mathchardef\Delta="0801 +\mathchardef\Theta="0802 +\mathchardef\Lambda="0803 +\mathchardef\Xi="0804 +\mathchardef\Pi="0805 +\mathchardef\Sigma="0806 +\mathchardef\Upsilon="0807 +\mathchardef\Phi="0808 +\mathchardef\Psi="0809 +\mathchardef\Omega="080A + +\mathchardef\aleph="0240 +\def\hbar{{\mathchar'26\mkern-9muh}} +\mathchardef\imath="017B +\mathchardef\jmath="017C +\mathchardef\ell="0160 +\mathchardef\wp="017D +\mathchardef\Re="023C +\mathchardef\Im="023D +\mathchardef\partial="0140 +\mathchardef\infty="0231 +\mathchardef\prime="0230 +\mathchardef\emptyset="023B +\mathchardef\nabla="0272 +\def\surd{{\mathchar"1270}} +\mathchardef\top="023E +\mathchardef\bot="023F +\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr + \not\mathrel{\mkern14mu}\crcr + \noalign{\nointerlineskip} + \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}} +\mathchardef\triangle="0234 +\mathchardef\forall="0238 +\mathchardef\exists="0239 +\mathchardef\neg="023A \let\lnot=\neg +\mathchardef\flat="015B +\mathchardef\natural="015C +\mathchardef\sharp="015D +\mathchardef\clubsuit="027C +\mathchardef\diamondsuit="027D +\mathchardef\heartsuit="027E +\mathchardef\spadesuit="027F + +\mathchardef\coprod="1360 +\mathchardef\bigvee="1357 +\mathchardef\bigwedge="1356 +\mathchardef\biguplus="1355 +\mathchardef\bigcap="1354 +\mathchardef\bigcup="1353 +\mathchardef\intop="1352 \def\int{\intop\nolimits} +\mathchardef\prod="1351 +\mathchardef\sum="1350 +\mathchardef\bigotimes="134E +\mathchardef\bigoplus="134C +\mathchardef\bigodot="134A +\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} +\mathchardef\bigsqcup="1346 +\mathchardef\smallint="1273 + +\mathchardef\triangleleft="212F +\mathchardef\triangleright="212E +\mathchardef\bigtriangleup="2234 +\mathchardef\bigtriangledown="2235 +\mathchardef\wedge="225E \let\land=\wedge +\mathchardef\vee="225F \let\lor=\vee +\mathchardef\cap="225C +\mathchardef\cup="225B +\mathchardef\ddagger="227A +\mathchardef\dagger="2279 +\mathchardef\sqcap="2275 +\mathchardef\sqcup="2274 +\mathchardef\uplus="225D +\mathchardef\amalg="2271 +\mathchardef\diamond="2205 +\mathchardef\bullet="220F +\mathchardef\wr="226F +\mathchardef\div="2204 +\mathchardef\odot="220C +\mathchardef\oslash="220B +\mathchardef\otimes="220A +\mathchardef\ominus="2209 +\mathchardef\oplus="2208 +\mathchardef\mp="2207 +\mathchardef\pm="2206 +\mathchardef\circ="220E +\mathchardef\bigcirc="220D +\mathchardef\setminus="226E % for set difference A\setminus B +\mathchardef\cdot="2201 +\mathchardef\ast="2203 +\mathchardef\times="2202 +\mathchardef\star="213F + +\mathchardef\propto="322F +\mathchardef\sqsubseteq="3276 +\mathchardef\sqsupseteq="3277 +\mathchardef\parallel="326B +\mathchardef\mid="326A +\mathchardef\dashv="3261 +\mathchardef\vdash="3260 +\mathchardef\nearrow="3225 +\mathchardef\searrow="3226 +\mathchardef\nwarrow="322D +\mathchardef\swarrow="322E +\mathchardef\Leftrightarrow="322C +\mathchardef\Leftarrow="3228 +\mathchardef\Rightarrow="3229 +\def\neq{\not=} \let\ne=\neq +\mathchardef\leq="3214 \let\le=\leq +\mathchardef\geq="3215 \let\ge=\geq +\mathchardef\succ="321F +\mathchardef\prec="321E +\mathchardef\approx="3219 +\mathchardef\succeq="3217 +\mathchardef\preceq="3216 +\mathchardef\supset="321B +\mathchardef\subset="321A +\mathchardef\supseteq="3213 +\mathchardef\subseteq="3212 +\mathchardef\in="3232 +\mathchardef\ni="3233 \let\owns=\ni +\mathchardef\gg="321D +\mathchardef\ll="321C +\mathchardef\not="3236 +\mathchardef\leftrightarrow="3224 +\mathchardef\leftarrow="3220 \let\gets=\leftarrow +\mathchardef\rightarrow="3221 \let\to=\rightarrow +\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} +\mathchardef\sim="3218 +\mathchardef\simeq="3227 +\mathchardef\perp="323F +\mathchardef\equiv="3211 +\mathchardef\asymp="3210 +\mathchardef\smile="315E +\mathchardef\frown="315F +\mathchardef\leftharpoonup="3128 +\mathchardef\leftharpoondown="3129 +\mathchardef\rightharpoonup="312A +\mathchardef\rightharpoondown="312B + +\def\joinrel{\mathrel{\mkern-3mu}} +\def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as + +\def\Relbar{\mathrel=} +\mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow} +\mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook} +\def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft} +\def\models{\mathrel|\joinrel=} +\def\Longrightarrow{\Relbar\joinrel\Rightarrow} +\def\longrightarrow{\relbar\joinrel\rightarrow} +\def\longleftarrow{\leftarrow\joinrel\relbar} +\def\Longleftarrow{\Leftarrow\joinrel\Relbar} +\def\longmapsto{\mapstochar\longrightarrow} +\def\longleftrightarrow{\leftarrow\joinrel\rightarrow} +\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow} +\def\iff{\;\Longleftrightarrow\;} + +\mathchardef\ldotp="613A % ldot as a punctuation mark +\mathchardef\cdotp="6201 % cdot as a punctuation mark +\mathchardef\colon="603A % colon as a punctuation mark +\def\ldots{\mathinner{\ldotp\ldotp\ldotp}} +\def\cdots{\mathinner{\cdotp\cdotp\cdotp}} +\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ + \kern6\p@\hbox{.}\hbox{.}\hbox{.}}} +\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu + \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}} + +\def\acute{\mathaccent"7013 } +\def\grave{\mathaccent"7012 } +\def\ddot{\mathaccent"707F } +\def\tilde{\mathaccent"707E } +\def\bar{\mathaccent"7016 } +\def\breve{\mathaccent"7015 } +\def\check{\mathaccent"7014 } +\def\hat{\mathaccent"705E } +\def\vec{\mathaccent"017E } +\def\dot{\mathaccent"705F } +\def\widetilde{\mathaccent"0365 } +\def\widehat{\mathaccent"0362 } +\def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr + \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} + $\hfil\displaystyle{#1}\hfil$\crcr}}} +\def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr + \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} + $\hfil\displaystyle{#1}\hfil$\crcr}}} +\def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@} + \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip} + $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits} +\def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr + $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip} + \upbracefill\crcr\noalign{\kern3\p@}}}}\limits} +\def\skew#1#2#3{{\muskip\z@#1mu\divide\muskip\z@\tw@ \mkern\muskip\z@ + #2{\mkern-\muskip\z@{#3}\mkern\muskip\z@}\mkern-\muskip\z@}{}} + +\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) +\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( +\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips +\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips +\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads +\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads +\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces +\def\Vert{\delimiter"26B30D } \let\|=\Vert +\def\vert{\delimiter"26A30C } +\def\uparrow{\delimiter"3222378 } +\def\downarrow{\delimiter"3223379 } +\def\updownarrow{\delimiter"326C33F } +\def\Uparrow{\delimiter"322A37E } +\def\Downarrow{\delimiter"322B37F } +\def\Updownarrow{\delimiter"326D377 } +\def\backslash{\delimiter"26E30F } % for double coset G\backslash H +\def\rangle{\delimiter"526930B } +\def\langle{\delimiter"426830A } +\def\rbrace{\delimiter"5267309 } \let\}=\rbrace +\def\lbrace{\delimiter"4266308 } \let\{=\lbrace +\def\rceil{\delimiter"5265307 } +\def\lceil{\delimiter"4264306 } +\def\rfloor{\delimiter"5263305 } +\def\lfloor{\delimiter"4262304 } + +\def\bigl{\mathopen\big} +\def\bigm{\mathrel\big} +\def\bigr{\mathclose\big} +\def\Bigl{\mathopen\Big} +\def\Bigm{\mathrel\Big} +\def\Bigr{\mathclose\Big} +\def\biggl{\mathopen\bigg} +\def\biggm{\mathrel\bigg} +\def\biggr{\mathclose\bigg} +\def\Biggl{\mathopen\Bigg} +\def\Biggm{\mathrel\Bigg} +\def\Biggr{\mathclose\Bigg} +\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} +\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} +\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} +\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} +\def\n@space{\nulldelimiterspace\z@ \m@th} + +\def\choose{\atopwithdelims()} +\def\brack{\atopwithdelims[]} +\def\brace{\atopwithdelims\{\}} + +\def\sqrt{\radical"270370 } + +\def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}% + {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}} +\newbox\rootbox +\def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$} + \mathpalette\r@@t} +\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$} + \dimen@\ht\z@ \advance\dimen@-\dp\z@ + \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@} +\newif\ifv@ \newif\ifh@ +\def\vphantom{\v@true\h@false\ph@nt} +\def\hphantom{\v@false\h@true\ph@nt} +\def\phantom{\v@true\h@true\ph@nt} +\def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}% + \else\let\next\makeph@nt\fi\next} +\def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt} +\def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt} +\def\finph@nt{\setbox\tw@\null + \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi + \ifh@ \wd\tw@\wd\z@\fi \box\tw@} +\def\mathstrut{\vphantom(} +\def\smash{\relax % \relax, in case this comes first in \halign + \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh + \fi\next} +\def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh} +\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh} +\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@} + +\def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign +\def\@vereq#1#2{\lower.5\p@\vbox{\lineskiplimit\maxdimen\lineskip-.5\p@ + \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}} +\def\notin{\mathrel{\mathpalette\c@ncel\in}} +\def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}} +\def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}} +\def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt + \hbox{$#1\rightharpoonup$}\crcr + $#1\leftharpoondown$}}}} +\def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}} +\def\doteq{\buildrel\textstyle.\over=} + +\def\log{\mathop{\rm log}\nolimits} +\def\lg{\mathop{\rm lg}\nolimits} +\def\ln{\mathop{\rm ln}\nolimits} +\def\lim{\mathop{\rm lim}} +\def\limsup{\mathop{\rm lim\,sup}} +\def\liminf{\mathop{\rm lim\,inf}} +\def\sin{\mathop{\rm sin}\nolimits} +\def\arcsin{\mathop{\rm arcsin}\nolimits} +\def\sinh{\mathop{\rm sinh}\nolimits} +\def\cos{\mathop{\rm cos}\nolimits} +\def\arccos{\mathop{\rm arccos}\nolimits} +\def\cosh{\mathop{\rm cosh}\nolimits} +\def\tan{\mathop{\rm tan}\nolimits} +\def\arctan{\mathop{\rm arctan}\nolimits} +\def\tanh{\mathop{\rm tanh}\nolimits} +\def\cot{\mathop{\rm cot}\nolimits} +\def\coth{\mathop{\rm coth}\nolimits} +\def\sec{\mathop{\rm sec}\nolimits} +\def\csc{\mathop{\rm csc}\nolimits} +\def\max{\mathop{\rm max}} +\def\min{\mathop{\rm min}} +\def\sup{\mathop{\rm sup}} +\def\inf{\mathop{\rm inf}} +\def\arg{\mathop{\rm arg}\nolimits} +\def\ker{\mathop{\rm ker}\nolimits} +\def\dim{\mathop{\rm dim}\nolimits} +\def\hom{\mathop{\rm hom}\nolimits} +\def\det{\mathop{\rm det}} +\def\exp{\mathop{\rm exp}\nolimits} +\def\Pr{\mathop{\rm Pr}} +\def\gcd{\mathop{\rm gcd}} +\def\deg{\mathop{\rm deg}\nolimits} + +\def\bmod{\nonscript\mskip-\medmuskip\mkern5mu + \mathbin{\rm mod}\penalty900\mkern5mu\nonscript\mskip-\medmuskip} +\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)} + +\def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th + \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}\right.} +\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th + \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr + \mathstrut\crcr\noalign{\kern-\baselineskip} + #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,} +\def\pmatrix#1{\left(\matrix{#1}\right)} +\newdimen\p@renwd +\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left ( +\def\bordermatrix#1{\begingroup \m@th + \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}% + \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil + &&\quad\hfil$##$\hfil\crcr + \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}% + #1\crcr\omit\strut\cr}}% + \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% + \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% + \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne + \global\setbox\@ne\vbox{\box\@ne\kern2\p@}% + \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}% + \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup} + +\def\openup{\afterassignment\@penup\dimen@=} +\def\@penup{\advance\lineskip\dimen@ + \advance\baselineskip\dimen@ + \advance\lineskiplimit\dimen@} +\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th + \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil + \crcr#1\crcr}}\,} +\newif\ifdt@p +\def\displ@y{\global\dt@ptrue\openup\jot\m@th + \everycr{\noalign{\ifdt@p \global\dt@pfalse \ifdim\prevdepth>-1000\p@ + \vskip-\lineskiplimit \vskip\normallineskiplimit \fi + \else \penalty\interdisplaylinepenalty \fi}}} +\def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y +\def\displaylines#1{\displ@y \tabskip\z@skip + \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr + #1\crcr}} +\def\eqalignno#1{\displ@y \tabskip\centering + \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip + &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering + &\llap{$\@lign##$}\tabskip\z@skip\crcr + #1\crcr}} +\def\leqalignno#1{\displ@y \tabskip\centering + \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip + &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering + &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr + #1\crcr}} + +% Definitions related to output + +\message{output routines,} + +\countdef\pageno=0 \pageno=1 % first page is number 1 +\newtoks\headline \headline={\hfil} % headline is normally blank +\newtoks\footline \footline={\hss\tenrm\folio\hss} + % footline is normally a centered page number in font \tenrm +\newif\ifr@ggedbottom +\def\raggedbottom{\topskip 10\p@ plus60\p@ \r@ggedbottomtrue} +\def\normalbottom{\topskip 10\p@ \r@ggedbottomfalse} % undoes \raggedbottom +\def\folio{\ifnum\pageno<\z@ \romannumeral-\pageno \else\number\pageno \fi} +\def\nopagenumbers{\footline{\hfil}} % blank out the footline +\def\advancepageno{\ifnum\pageno<\z@ \global\advance\pageno\m@ne + \else\global\advance\pageno\@ne \fi} % increase |pageno| + +\newinsert\footins +\def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later + \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi + #1\@sf\vfootnote{#1}} +\def\vfootnote#1{\insert\footins\bgroup + \interlinepenalty\interfootnotelinepenalty + \splittopskip\ht\strutbox % top baseline for broken footnotes + \splitmaxdepth\dp\strutbox \floatingpenalty\@MM + \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip + \textindent{#1}\footstrut\futurelet\next\fo@t} +\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t + \else\let\next\f@t\fi \next} +\def\f@@t{\bgroup\aftergroup\@foot\let\next} +\def\f@t#1{#1\@foot} +\def\@foot{\strut\egroup} +\def\footstrut{\vbox to\splittopskip{}} +\skip\footins=\bigskipamount % space added when footnote is present +\count\footins=1000 % footnote magnification factor (1 to 1) +\dimen\footins=8in % maximum footnotes per page + +\newinsert\topins +\newif\ifp@ge \newif\if@mid +\def\topinsert{\@midfalse\p@gefalse\@ins} +\def\midinsert{\@midtrue\@ins} +\def\pageinsert{\@midfalse\p@getrue\@ins} +\skip\topins=\z@skip % no space added when a topinsert is present +\count\topins=1000 % magnification factor (1 to 1) +\dimen\topins=\maxdimen % no limit per page +\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup} % start a \vbox +\def\endinsert{\egroup % finish the \vbox + \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ \advance\dimen@12\p@ + \advance\dimen@\pagetotal \advance\dimen@-\pageshrink + \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi + \if@mid \bigskip\box\z@\bigbreak + \else\insert\topins{\penalty100 % floating insertion + \splittopskip\z@skip + \splitmaxdepth\maxdimen \floatingpenalty\z@ + \ifp@ge \dimen@\dp\z@ + \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero + \else \box\z@\nobreak\bigskip\fi}\fi\endgroup} + +\output{\plainoutput} +\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}% + \advancepageno + \ifnum\outputpenalty>-\@MM \else\dosupereject\fi} +\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}} +\def\makeheadline{\vbox to\z@{\vskip-22.5\p@ + \line{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip} +\def\makefootline{\baselineskip24\p@\line{\the\footline}} +\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over + \line{}\kern-\topskip\nobreak\vfill\supereject\fi} + +\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi + \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255 + \ifvoid\footins\else % footnote info is present + \vskip\skip\footins + \footnoterule + \unvbox\footins\fi + \ifr@ggedbottom \kern-\dimen@ \vfil \fi} +\def\footnoterule{\kern-3\p@ + \hrule width 2truein \kern 2.6\p@} % the \hrule is .4pt high + +% Hyphenation, miscellaneous macros, and initial values for standard layout +\message{hyphenation} + +\lefthyphenmin=2 \righthyphenmin=3 % disallow x- or -xx breaks + +\input hyacceur.tex % special lc.uc codes for characters > 127 +\input acmacros.sty % macros for accented letters +\input hyconfig.ptx + +\def\magnification{\afterassignment\m@g\count@} +\def\m@g{\mag\count@ + \hsize6.5truein\vsize8.9truein\dimen\footins8truein} + +\def\tracingall{\tracingonline\@ne\tracingcommands\tw@\tracingstats\tw@ + \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne + \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne + \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode} + +\def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm + \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}} + +\normalbaselines\rm % select roman font +\nonfrenchspacing % punctuation affects the spacing +\catcode`@=12 % at signs are no longer letters + +\def\fmtname{plain}\def\fmtversion{3.141592} % identifies the current format +\dump +\endinput diff --git a/obsolete/macros/ec-plain/ec-plfmt.bat b/obsolete/macros/ec-plain/ec-plfmt.bat new file mode 100644 index 0000000000..dc7b25e39d --- /dev/null +++ b/obsolete/macros/ec-plain/ec-plfmt.bat @@ -0,0 +1,46 @@ +echo on +echo fmt.bat for 5 languages +del *.bak +del *.log +del *.tex +del *.sty +del *.ch +del *.mf +del *.tfm +del *.min +del *.doc +del *.dat +del *.zip +del *.tmp + +rem copy d:\emtex\texinput\etc\plain.tex + +copy d:\emtex\texinput\acmacros.sty +copy d:\emtex\texinput\hyconfig.ptx +copy d:\emtex\texinput\dcacceur.tex hyacceur.tex +copy d:\emtex\texinput\enhyph.tex +copy d:\emtex\texinput\enhyphex.tex +copy d:\emtex\texinput\f8hyph.tex +rem copy d:\emtex\texinput\french\f8hyphex.tex +rem copy d:\emtex\texinput\french\frhyphex.tex +copy d:\emtex\texinput\ithyph.tex +copy d:\emtex\texinput\eshyph.tex +copy d:\emtex\texinput\ghyph31.tex +copy d:\emtex\texinput\ec-plain.tex +copy d:\emtex\texinput\ec-plain.doc 00readme.doc +copy d:\emtex\mfinput\ec\exmi*.mf +del exmib*.mf +copy d:\emtex\mfinput\ec\ecbxmath.mf +copy d:\emtex\mfinput\ec\ecmathit.mf +copy d:\emtex\mfinput\misc\dy*.mf +copy d:\emtex\mfinput\misc\ofgree*.mf +copy d:\emtex\tfm\ec\exmi*.tfm +del exmib*.tfm +del dymib*.mf + +echo french-english-german-italian-spanish plain +copy d:\emtex\texinput\language.eur language.dat +initex ec-plain \dump +if errorlevel 1 goto error + +:error diff --git a/obsolete/macros/ec-plain/ecbxmath.mf b/obsolete/macros/ec-plain/ecbxmath.mf new file mode 100644 index 0000000000..686db6ea04 --- /dev/null +++ b/obsolete/macros/ec-plain/ecbxmath.mf @@ -0,0 +1,21 @@ +% bold greek letters +character_offset:=168; + +font_setup; + +input ofgreeku; % +input ofgreekl; % + +% bold italic Greek letters +character_offset:=208; +currenttransform:=old_currenttransform; +slant:=old_slant; +mono_charic#:=old_mono_charic#; +% crisp#:=old_crisp#; % diameter of serif corners + +font_setup; + +input ofgreeku; % +input ofgreekl; % + + diff --git a/obsolete/macros/ec-plain/ecmathit.mf b/obsolete/macros/ec-plain/ecmathit.mf new file mode 100644 index 0000000000..0f279acdc8 --- /dev/null +++ b/obsolete/macros/ec-plain/ecmathit.mf @@ -0,0 +1,88 @@ +% The Computer Modern Math Italic family (by D. E. Knuth, 1979--1985) + +font_coding_scheme:="TeX math italic"; +mode_setup; font_setup; + +input romanu; % upper case (majuscules) +input itall; % lower case (minuscules) +input greeku; % upper case greek letters +input greekl; % lower case Greek letters +input italms; % special symbols for math italic + +font_slant slant; font_x_height x_height#; +font_quad 18u#+4letter_fit#; + +% saving normal variables to re-use them for Taupin's additions. +transform old_currenttransform; +old_slant:=slant; +old_mono_charic#:=mono_charic#; +old_currenttransform:=currenttransform; + +slant:=mono_charic#:=0; % the remaining characters will not be slanted +currenttransform:=identity yscaled aspect_ratio scaled granularity; +input olddig; % oldstyle numerals +input romms; % roman math specials + +% additions by D. Taupin for upright Greek letters, bold Greek letters + +old_crisp#:=crisp#; +old_u#:=u#; + +% upright greek letters +character_offset:=128; +slant:=0; mono_charic#:=0; +crisp#:=0pt; % diameter of serif corners +currenttransform:=identity yscaled aspect_ratio scaled granularity; +input ofgreeku; % +input ofgreekl; % + +character_offset:=0; +slant:=old_slant; +mono_charic#:=old_mono_charic#; +crisp#:=old_crisp#; +u#:=old_u#; + +skewchar=oct"177"; skew#=.5u#; +save comma; +period=oct"72"; comma=oct"73"; slash=oct"75"; % non-ASCII positions +ligtable "h": skewchar kern -skew#; +ligtable oct"027":oct"034": comma kern -u#, period kern -u#, % $\nu:\tau:$ + "L":"g":"u":"v":"x": oct"013": oct"026": % $L:g:u:v:x:\alpha:\mu:$ + oct"035":oct"173": skewchar kern skew#; % $\upsilon:\imath:$ +ligtable "U": comma kern-2u#, period kern-2u#, % $U:$ + slash kern-u#, skewchar kern skew#; +ligtable "K":oct"011": slash kern-u#, % $K:\it\Psi:$ + oct"016":"r": comma kern-u#, period kern-u#, % $\delta:r:$ + "D":"c":"e":"o":"s":"y":"z":oct"017": % $D:c:e:o:s:y:z:\epsilon:$ + oct"021":oct"023":oct"037": skewchar kern 2skew#; % $\eta:\iota:\chi:$ +ligtable oct"007": slash kern-u#, % $\it\Upsilon:$ + comma kern-2u#, period kern-2u#, skewchar kern 2skew#; +ligtable oct"005":"H": slash kern-u#, % $\it\Pi:H:$ + comma kern-u#, period kern-u#, skewchar kern 2skew#; +ligtable "N":"X": slash kern -1.5u#, % $N:X:$ + "C":"T": slash kern -.5u#, comma kern -u#, period kern -u#, % $C:T:$ + "B":"E":"G":"O":"Q":"R":oct"174": % $B:E:G:O:Q:R:\jmath:$ + "l":"p":"q":"t":"w":oct"002":oct"004": % $l:p:q:t:w:\it\Theta:\Xi:$ + oct"006":oct"010":oct"012":oct"014": % $\it\Sigma:\Phi:\Omega:\beta:$ + oct"020":oct"022":oct"032":oct"036": % $\zeta:\theta:\rho:\phi:$ + oct"042":oct"043":oct"045": % $\varepsilon:\vartheta:\varrho:$ + oct"046":oct"047":oct"100": % $\varsigma:\varphi:\partial:$ + skewchar kern 3skew#; +ligtable "M":"S":"Z": slash kern-u#, % $M:S:Z:$ + comma kern-u#, period kern-u#, skewchar kern 3skew#; +ligtable oct"000":"F":"P": slash kern -u#, % $\it\Gamma:F:P:$ + comma kern-2u#, period kern-2u#, skewchar kern 3skew#; +ligtable "I":oct"030":oct"040":oct"140":oct"175": % $I:\xi:\psi:\ell:\wp:$ + skewchar kern 4skew#; +ligtable "A": skewchar kern 5skew#; % $A:$ +ligtable "d": "Y" kern u#, "Z" kern-u#, "j" kern-2u#, "f" kern-3u#, % $d:$ + oct"001":oct"003": skewchar kern 6skew#; % $\it\Delta:\Lambda:$ +ligtable "f": comma kern-u#, period kern-u#, skewchar kern 6skew#; % $f:$ +ligtable "J": slash kern-u#, % $J:$ + comma kern-2u#, period kern-2u#, skewchar kern 6skew#; +ligtable "j":oct"033": comma kern -u#, period kern -u#; % $j:\sigma:$ +ligtable "V":"W":"Y":comma kern-3u#, period kern-3u#, % $V:W:Y:$ + slash kern-2u#; +ligtable slash: oct"001" kern -u#, "A" kern -u#, "M" kern -u#, % $/:$ + "N" kern -u#, "Y" kern +u#, "Z" kern -u#; + diff --git a/obsolete/macros/ec-plain/enhyph.tex b/obsolete/macros/ec-plain/enhyph.tex new file mode 100644 index 0000000000..74ee805b02 --- /dev/null +++ b/obsolete/macros/ec-plain/enhyph.tex @@ -0,0 +1,4457 @@ +% ------- English hyphen patterns ----- +\message{Enhyph.tex English hyphenation pattern.} +% +% The Plain TeX hyphenation tables [NOT TO BE CHANGED IN ANY WAY!] + +\patterns{ % just type if you're not using INITEX +.ach4 +.ad4der +.af1t +.al3t +.am5at +.an5c +.ang4 +.ani5m +.ant4 +.an3te +.anti5s +.ar5s +.ar4tie +.ar4ty +.as3c +.as1p +.as1s +.aster5 +.atom5 +.au1d +.av4i +.awn4 +.ba4g +.ba5na +.bas4e +.ber4 +.be5ra +.be3sm +.be5sto +.bri2 +.but4ti +.cam4pe +.can5c +.capa5b +.car5ol +.ca4t +.ce4la +.ch4 +.chill5i +.ci2 +.cit5r +.co3e +.co4r +.cor5ner +.de4moi +.de3o +.de3ra +.de3ri +.des4c +.dictio5 +.do4t +.du4c +.dumb5 +.earth5 +.eas3i +.eb4 +.eer4 +.eg2 +.el5d +.el3em +.enam3 +.en3g +.en3s +.eq5ui5t +.er4ri +.es3 +.eu3 +.eye5 +.fes3 +.for5mer +.ga2 +.ge2 +.gen3t4 +.ge5og +.gi5a +.gi4b +.go4r +.hand5i +.han5k +.he2 +.hero5i +.hes3 +.het3 +.hi3b +.hi3er +.hon5ey +.hon3o +.hov5 +.id4l +.idol3 +.im3m +.im5pin +.in1 +.in3ci +.ine2 +.in2k +.in3s +.ir5r +.is4i +.ju3r +.la4cy +.la4m +.lat5er +.lath5 +.le2 +.leg5e +.len4 +.lep5 +.lev1 +.li4g +.lig5a +.li2n +.li3o +.li4t +.mag5a5 +.mal5o +.man5a +.mar5ti +.me2 +.mer3c +.me5ter +.mis1 +.mist5i +.mon3e +.mo3ro +.mu5ta +.muta5b +.ni4c +.od2 +.odd5 +.of5te +.or5ato +.or3c +.or1d +.or3t +.os3 +.os4tl +.oth3 +.out3 +.ped5al +.pe5te +.pe5tit +.pi4e +.pio5n +.pi2t +.pre3m +.ra4c +.ran4t +.ratio5na +.ree2 +.re5mit +.res2 +.re5stat +.ri4g +.rit5u +.ro4q +.ros5t +.row5d +.ru4d +.sci3e +.self5 +.sell5 +.se2n +.se5rie +.sh2 +.si2 +.sing4 +.st4 +.sta5bl +.sy2 +.ta4 +.te4 +.ten5an +.th2 +.ti2 +.til4 +.tim5o5 +.ting4 +.tin5k +.ton4a +.to4p +.top5i +.tou5s +.trib5ut +.un1a +.un3ce +.under5 +.un1e +.un5k +.un5o +.un3u +.up3 +.ure3 +.us5a +.ven4de +.ve5ra +.wil5i +.ye4 +4ab. +a5bal +a5ban +abe2 +ab5erd +abi5a +ab5it5ab +ab5lat +ab5o5liz +4abr +ab5rog +ab3ul +a4car +ac5ard +ac5aro +a5ceou +ac1er +a5chet +4a2ci +a3cie +ac1in +a3cio +ac5rob +act5if +ac3ul +ac4um +a2d +ad4din +ad5er. +2adi +a3dia +ad3ica +adi4er +a3dio +a3dit +a5diu +ad4le +ad3ow +ad5ran +ad4su +4adu +a3duc +ad5um +ae4r +aeri4e +a2f +aff4 +a4gab +aga4n +ag5ell +age4o +4ageu +ag1i +4ag4l +ag1n +a2go +3agog +ag3oni +a5guer +ag5ul +a4gy +a3ha +a3he +ah4l +a3ho +ai2 +a5ia +a3ic. +ai5ly +a4i4n +ain5in +ain5o +ait5en +a1j +ak1en +al5ab +al3ad +a4lar +4aldi +2ale +al3end +a4lenti +a5le5o +al1i +al4ia. +ali4e +al5lev +4allic +4alm +a5log. +a4ly. +4alys +5a5lyst +5alyt +3alyz +4ama +am5ab +am3ag +ama5ra +am5asc +a4matis +a4m5ato +am5era +am3ic +am5if +am5ily +am1in +ami4no +a2mo +a5mon +amor5i +amp5en +a2n +an3age +3analy +a3nar +an3arc +anar4i +a3nati +4and +ande4s +an3dis +an1dl +an4dow +a5nee +a3nen +an5est. +a3neu +2ang +ang5ie +an1gl +a4n1ic +a3nies +an3i3f +an4ime +a5nimi +a5nine +an3io +a3nip +an3ish +an3it +a3niu +an4kli +5anniz +ano4 +an5ot +anoth5 +an2sa +an4sco +an4sn +an2sp +ans3po +an4st +an4sur +antal4 +an4tie +4anto +an2tr +an4tw +an3ua +an3ul +a5nur +4ao +apar4 +ap5at +ap5ero +a3pher +4aphi +a4pilla +ap5illar +ap3in +ap3ita +a3pitu +a2pl +apoc5 +ap5ola +apor5i +apos3t +aps5es +a3pu +aque5 +2a2r +ar3act +a5rade +ar5adis +ar3al +a5ramete +aran4g +ara3p +ar4at +a5ratio +ar5ativ +a5rau +ar5av4 +araw4 +arbal4 +ar4chan +ar5dine +ar4dr +ar5eas +a3ree +ar3ent +a5ress +ar4fi +ar4fl +ar1i +ar5ial +ar3ian +a3riet +ar4im +ar5inat +ar3io +ar2iz +ar2mi +ar5o5d +a5roni +a3roo +ar2p +ar3q +arre4 +ar4sa +ar2sh +4as. +as4ab +as3ant +ashi4 +a5sia. +a3sib +a3sic +5a5si4t +ask3i +as4l +a4soc +as5ph +as4sh +as3ten +as1tr +asur5a +a2ta +at3abl +at5ac +at3alo +at5ap +ate5c +at5ech +at3ego +at3en. +at3era +ater5n +a5terna +at3est +at5ev +4ath +ath5em +a5then +at4ho +ath5om +4ati. +a5tia +at5i5b +at1ic +at3if +ation5ar +at3itu +a4tog +a2tom +at5omiz +a4top +a4tos +a1tr +at5rop +at4sk +at4tag +at5te +at4th +a2tu +at5ua +at5ue +at3ul +at3ura +a2ty +au4b +augh3 +au3gu +au4l2 +aun5d +au3r +au5sib +aut5en +au1th +a2va +av3ag +a5van +ave4no +av3era +av5ern +av5ery +av1i +avi4er +av3ig +av5oc +a1vor +3away +aw3i +aw4ly +aws4 +ax4ic +ax4id +ay5al +aye4 +ays4 +azi4er +azz5i +5ba. +bad5ger +ba4ge +bal1a +ban5dag +ban4e +ban3i +barbi5 +bari4a +bas4si +1bat +ba4z +2b1b +b2be +b3ber +bbi4na +4b1d +4be. +beak4 +beat3 +4be2d +be3da +be3de +be3di +be3gi +be5gu +1bel +be1li +be3lo +4be5m +be5nig +be5nu +4bes4 +be3sp +be5str +3bet +bet5iz +be5tr +be3tw +be3w +be5yo +2bf +4b3h +bi2b +bi4d +3bie +bi5en +bi4er +2b3if +1bil +bi3liz +bina5r4 +bin4d +bi5net +bi3ogr +bi5ou +bi2t +3bi3tio +bi3tr +3bit5ua +b5itz +b1j +bk4 +b2l2 +blath5 +b4le. +blen4 +5blesp +b3lis +b4lo +blun4t +4b1m +4b3n +bne5g +3bod +bod3i +bo4e +bol3ic +bom4bi +bon4a +bon5at +3boo +5bor. +4b1ora +bor5d +5bore +5bori +5bos4 +b5ota +both5 +bo4to +bound3 +4bp +4brit +broth3 +2b5s2 +bsor4 +2bt +bt4l +b4to +b3tr +buf4fer +bu4ga +bu3li +bumi4 +bu4n +bunt4i +bu3re +bus5ie +buss4e +5bust +4buta +3butio +b5uto +b1v +4b5w +5by. +bys4 +1ca +cab3in +ca1bl +cach4 +ca5den +4cag4 +2c5ah +ca3lat +cal4la +call5in +4calo +can5d +can4e +can4ic +can5is +can3iz +can4ty +cany4 +ca5per +car5om +cast5er +cas5tig +4casy +ca4th +4cativ +cav5al +c3c +ccha5 +cci4a +ccompa5 +ccon4 +ccou3t +2ce. +4ced. +4ceden +3cei +5cel. +3cell +1cen +3cenc +2cen4e +4ceni +3cent +3cep +ce5ram +4cesa +3cessi +ces5si5b +ces5t +cet4 +c5e4ta +cew4 +2ch +4ch. +4ch3ab +5chanic +ch5a5nis +che2 +cheap3 +4ched +che5lo +3chemi +ch5ene +ch3er. +ch3ers +4ch1in +5chine. +ch5iness +5chini +5chio +3chit +chi2z +3cho2 +ch4ti +1ci +3cia +ci2a5b +cia5r +ci5c +4cier +5cific. +4cii +ci4la +3cili +2cim +2cin +c4ina +3cinat +cin3em +c1ing +c5ing. +5cino +cion4 +4cipe +ci3ph +4cipic +4cista +4cisti +2c1it +cit3iz +5ciz +ck1 +ck3i +1c4l4 +4clar +c5laratio +5clare +cle4m +4clic +clim4 +cly4 +c5n +1co +co5ag +coe2 +2cog +co4gr +coi4 +co3inc +col5i +5colo +col3or +com5er +con4a +c4one +con3g +con5t +co3pa +cop3ic +co4pl +4corb +coro3n +cos4e +cov1 +cove4 +cow5a +coz5e +co5zi +c1q +cras5t +5crat. +5cratic +cre3at +5cred +4c3reta +cre4v +cri2 +cri5f +c4rin +cris4 +5criti +cro4pl +crop5o +cros4e +cru4d +4c3s2 +2c1t +cta4b +ct5ang +c5tant +c2te +c3ter +c4ticu +ctim3i +ctu4r +c4tw +cud5 +c4uf +c4ui +cu5ity +5culi +cul4tis +3cultu +cu2ma +c3ume +cu4mi +3cun +cu3pi +cu5py +cur5a4b +cu5ria +1cus +cuss4i +3c4ut +cu4tie +4c5utiv +4cutr +1cy +cze4 +1d2a +5da. +2d3a4b +dach4 +4daf +2dag +da2m2 +dan3g +dard5 +dark5 +4dary +3dat +4dativ +4dato +5dav4 +dav5e +5day +d1b +d5c +d1d4 +2de. +deaf5 +deb5it +de4bon +decan4 +de4cil +de5com +2d1ed +4dee. +de5if +deli4e +del5i5q +de5lo +d4em +5dem. +3demic +dem5ic. +de5mil +de4mons +demor5 +1den +de4nar +de3no +denti5f +de3nu +de1p +de3pa +depi4 +de2pu +d3eq +d4erh +5derm +dern5iz +der5s +des2 +d2es. +de1sc +de2s5o +des3ti +de3str +de4su +de1t +de2to +de1v +dev3il +4dey +4d1f +d4ga +d3ge4t +dg1i +d2gy +d1h2 +5di. +1d4i3a +dia5b +di4cam +d4ice +3dict +3did +5di3en +d1if +di3ge +di4lato +d1in +1dina +3dine. +5dini +di5niz +1dio +dio5g +di4pl +dir2 +di1re +dirt5i +dis1 +5disi +d4is3t +d2iti +1di1v +d1j +d5k2 +4d5la +3dle. +3dled +3dles. +4dless +2d3lo +4d5lu +2dly +d1m +4d1n4 +1do +3do. +do5de +5doe +2d5of +d4og +do4la +doli4 +do5lor +dom5iz +do3nat +doni4 +doo3d +dop4p +d4or +3dos +4d5out +do4v +3dox +d1p +1dr +drag5on +4drai +dre4 +drea5r +5dren +dri4b +dril4 +dro4p +4drow +5drupli +4dry +2d1s2 +ds4p +d4sw +d4sy +d2th +1du +d1u1a +du2c +d1uca +duc5er +4duct. +4ducts +du5el +du4g +d3ule +dum4be +du4n +4dup +du4pe +d1v +d1w +d2y +5dyn +dy4se +dys5p +e1a4b +e3act +ead1 +ead5ie +ea4ge +ea5ger +ea4l +eal5er +eal3ou +eam3er +e5and +ear3a +ear4c +ear5es +ear4ic +ear4il +ear5k +ear2t +eart3e +ea5sp +e3ass +east3 +ea2t +eat5en +eath3i +e5atif +e4a3tu +ea2v +eav3en +eav5i +eav5o +2e1b +e4bel. +e4bels +e4ben +e4bit +e3br +e4cad +ecan5c +ecca5 +e1ce +ec5essa +ec2i +e4cib +ec5ificat +ec5ifie +ec5ify +ec3im +eci4t +e5cite +e4clam +e4clus +e2col +e4comm +e4compe +e4conc +e2cor +ec3ora +eco5ro +e1cr +e4crem +ec4tan +ec4te +e1cu +e4cul +ec3ula +2e2da +4ed3d +e4d1er +ede4s +4edi +e3dia +ed3ib +ed3ica +ed3im +ed1it +edi5z +4edo +e4dol +edon2 +e4dri +e4dul +ed5ulo +ee2c +eed3i +ee2f +eel3i +ee4ly +ee2m +ee4na +ee4p1 +ee2s4 +eest4 +ee4ty +e5ex +e1f +e4f3ere +1eff +e4fic +5efici +efil4 +e3fine +ef5i5nite +3efit +efor5es +e4fuse. +4egal +eger4 +eg5ib +eg4ic +eg5ing +e5git5 +eg5n +e4go. +e4gos +eg1ul +e5gur +5egy +e1h4 +eher4 +ei2 +e5ic +ei5d +eig2 +ei5gl +e3imb +e3inf +e1ing +e5inst +eir4d +eit3e +ei3th +e5ity +e1j +e4jud +ej5udi +eki4n +ek4la +e1la +e4la. +e4lac +elan4d +el5ativ +e4law +elaxa4 +e3lea +el5ebra +5elec +e4led +el3ega +e5len +e4l1er +e1les +el2f +el2i +e3libe +e4l5ic. +el3ica +e3lier +el5igib +e5lim +e4l3ing +e3lio +e2lis +el5ish +e3liv3 +4ella +el4lab +ello4 +e5loc +el5og +el3op. +el2sh +el4ta +e5lud +el5ug +e4mac +e4mag +e5man +em5ana +em5b +e1me +e2mel +e4met +em3ica +emi4e +em5igra +em1in2 +em5ine +em3i3ni +e4mis +em5ish +e5miss +em3iz +5emniz +emo4g +emoni5o +em3pi +e4mul +em5ula +emu3n +e3my +en5amo +e4nant +ench4er +en3dic +e5nea +e5nee +en3em +en5ero +en5esi +en5est +en3etr +e3new +en5ics +e5nie +e5nil +e3nio +en3ish +en3it +e5niu +5eniz +4enn +4eno +eno4g +e4nos +en3ov +en4sw +ent5age +4enthes +en3ua +en5uf +e3ny. +4en3z +e5of +eo2g +e4oi4 +e3ol +eop3ar +e1or +eo3re +eo5rol +eos4 +e4ot +eo4to +e5out +e5ow +e2pa +e3pai +ep5anc +e5pel +e3pent +ep5etitio +ephe4 +e4pli +e1po +e4prec +ep5reca +e4pred +ep3reh +e3pro +e4prob +ep4sh +ep5ti5b +e4put +ep5uta +e1q +equi3l +e4q3ui3s +er1a +era4b +4erand +er3ar +4erati. +2erb +er4bl +er3ch +er4che +2ere. +e3real +ere5co +ere3in +er5el. +er3emo +er5ena +er5ence +4erene +er3ent +ere4q +er5ess +er3est +eret4 +er1h +er1i +e1ria4 +5erick +e3rien +eri4er +er3ine +e1rio +4erit +er4iu +eri4v +e4riva +er3m4 +er4nis +4ernit +5erniz +er3no +2ero +er5ob +e5roc +ero4r +er1ou +er1s +er3set +ert3er +4ertl +er3tw +4eru +eru4t +5erwau +e1s4a +e4sage. +e4sages +es2c +e2sca +es5can +e3scr +es5cu +e1s2e +e2sec +es5ecr +es5enc +e4sert. +e4serts +e4serva +4esh +e3sha +esh5en +e1si +e2sic +e2sid +es5iden +es5igna +e2s5im +es4i4n +esis4te +esi4u +e5skin +es4mi +e2sol +es3olu +e2son +es5ona +e1sp +es3per +es5pira +es4pre +2ess +es4si4b +estan4 +es3tig +es5tim +4es2to +e3ston +2estr +e5stro +estruc5 +e2sur +es5urr +es4w +eta4b +eten4d +e3teo +ethod3 +et1ic +e5tide +etin4 +eti4no +e5tir +e5titio +et5itiv +4etn +et5ona +e3tra +e3tre +et3ric +et5rif +et3rog +et5ros +et3ua +et5ym +et5z +4eu +e5un +e3up +eu3ro +eus4 +eute4 +euti5l +eu5tr +eva2p5 +e2vas +ev5ast +e5vea +ev3ell +evel3o +e5veng +even4i +ev1er +e5verb +e1vi +ev3id +evi4l +e4vin +evi4v +e5voc +e5vu +e1wa +e4wag +e5wee +e3wh +ewil5 +ew3ing +e3wit +1exp +5eyc +5eye. +eys4 +1fa +fa3bl +fab3r +fa4ce +4fag +fain4 +fall5e +4fa4ma +fam5is +5far +far5th +fa3ta +fa3the +4fato +fault5 +4f5b +4fd +4fe. +feas4 +feath3 +fe4b +4feca +5fect +2fed +fe3li +fe4mo +fen2d +fend5e +fer1 +5ferr +fev4 +4f1f +f4fes +f4fie +f5fin. +f2f5is +f4fly +f2fy +4fh +1fi +fi3a +2f3ic. +4f3ical +f3ican +4ficate +f3icen +fi3cer +fic4i +5ficia +5ficie +4fics +fi3cu +fi5del +fight5 +fil5i +fill5in +4fily +2fin +5fina +fin2d5 +fi2ne +f1in3g +fin4n +fis4ti +f4l2 +f5less +flin4 +flo3re +f2ly5 +4fm +4fn +1fo +5fon +fon4de +fon4t +fo2r +fo5rat +for5ay +fore5t +for4i +fort5a +fos5 +4f5p +fra4t +f5rea +fres5c +fri2 +fril4 +frol5 +2f3s +2ft +f4to +f2ty +3fu +fu5el +4fug +fu4min +fu5ne +fu3ri +fusi4 +fus4s +4futa +1fy +1ga +gaf4 +5gal. +3gali +ga3lo +2gam +ga5met +g5amo +gan5is +ga3niz +gani5za +4gano +gar5n4 +gass4 +gath3 +4gativ +4gaz +g3b +gd4 +2ge. +2ged +geez4 +gel4in +ge5lis +ge5liz +4gely +1gen +ge4nat +ge5niz +4geno +4geny +1geo +ge3om +g4ery +5gesi +geth5 +4geto +ge4ty +ge4v +4g1g2 +g2ge +g3ger +gglu5 +ggo4 +gh3in +gh5out +gh4to +5gi. +1gi4a +gia5r +g1ic +5gicia +g4ico +gien5 +5gies. +gil4 +g3imen +3g4in. +gin5ge +5g4ins +5gio +3gir +gir4l +g3isl +gi4u +5giv +3giz +gl2 +gla4 +glad5i +5glas +1gle +gli4b +g3lig +3glo +glo3r +g1m +g4my +gn4a +g4na. +gnet4t +g1ni +g2nin +g4nio +g1no +g4non +1go +3go. +gob5 +5goe +3g4o4g +go3is +gon2 +4g3o3na +gondo5 +go3ni +5goo +go5riz +gor5ou +5gos. +gov1 +g3p +1gr +4grada +g4rai +gran2 +5graph. +g5rapher +5graphic +4graphy +4gray +gre4n +4gress. +4grit +g4ro +gruf4 +gs2 +g5ste +gth3 +gu4a +3guard +2gue +5gui5t +3gun +3gus +4gu4t +g3w +1gy +2g5y3n +gy5ra +h3ab4l +hach4 +hae4m +hae4t +h5agu +ha3la +hala3m +ha4m +han4ci +han4cy +5hand. +han4g +hang5er +hang5o +h5a5niz +han4k +han4te +hap3l +hap5t +ha3ran +ha5ras +har2d +hard3e +har4le +harp5en +har5ter +has5s +haun4 +5haz +haz3a +h1b +1head +3hear +he4can +h5ecat +h4ed +he5do5 +he3l4i +hel4lis +hel4ly +h5elo +hem4p +he2n +hena4 +hen5at +heo5r +hep5 +h4era +hera3p +her4ba +here5a +h3ern +h5erou +h3ery +h1es +he2s5p +he4t +het4ed +heu4 +h1f +h1h +hi5an +hi4co +high5 +h4il2 +himer4 +h4ina +hion4e +hi4p +hir4l +hi3ro +hir4p +hir4r +his3el +his4s +hith5er +hi2v +4hk +4h1l4 +hlan4 +h2lo +hlo3ri +4h1m +hmet4 +2h1n +h5odiz +h5ods +ho4g +hoge4 +hol5ar +3hol4e +ho4ma +home3 +hon4a +ho5ny +3hood +hoon4 +hor5at +ho5ris +hort3e +ho5ru +hos4e +ho5sen +hos1p +1hous +house3 +hov5el +4h5p +4hr4 +hree5 +hro5niz +hro3po +4h1s2 +h4sh +h4tar +ht1en +ht5es +h4ty +hu4g +hu4min +hun5ke +hun4t +hus3t4 +hu4t +h1w +h4wart +hy3pe +hy3ph +hy2s +2i1a +i2al +iam4 +iam5ete +i2an +4ianc +ian3i +4ian4t +ia5pe +iass4 +i4ativ +ia4tric +i4atu +ibe4 +ib3era +ib5ert +ib5ia +ib3in +ib5it. +ib5ite +i1bl +ib3li +i5bo +i1br +i2b5ri +i5bun +4icam +5icap +4icar +i4car. +i4cara +icas5 +i4cay +iccu4 +4iceo +4ich +2ici +i5cid +ic5ina +i2cip +ic3ipa +i4cly +i2c5oc +4i1cr +5icra +i4cry +ic4te +ictu2 +ic4t3ua +ic3ula +ic4um +ic5uo +i3cur +2id +i4dai +id5anc +id5d +ide3al +ide4s +i2di +id5ian +idi4ar +i5die +id3io +idi5ou +id1it +id5iu +i3dle +i4dom +id3ow +i4dr +i2du +id5uo +2ie4 +ied4e +5ie5ga +ield3 +ien5a4 +ien4e +i5enn +i3enti +i1er. +i3esc +i1est +i3et +4if. +if5ero +iff5en +if4fr +4ific. +i3fie +i3fl +4ift +2ig +iga5b +ig3era +ight3i +4igi +i3gib +ig3il +ig3in +ig3it +i4g4l +i2go +ig3or +ig5ot +i5gre +igu5i +ig1ur +i3h +4i5i4 +i3j +4ik +i1la +il3a4b +i4lade +i2l5am +ila5ra +i3leg +il1er +ilev4 +il5f +il1i +il3ia +il2ib +il3io +il4ist +2ilit +il2iz +ill5ab +4iln +il3oq +il4ty +il5ur +il3v +i4mag +im3age +ima5ry +imenta5r +4imet +im1i +im5ida +imi5le +i5mini +4imit +im4ni +i3mon +i2mu +im3ula +2in. +i4n3au +4inav +incel4 +in3cer +4ind +in5dling +2ine +i3nee +iner4ar +i5ness +4inga +4inge +in5gen +4ingi +in5gling +4ingo +4ingu +2ini +i5ni. +i4nia +in3io +in1is +i5nite. +5initio +in3ity +4ink +4inl +2inn +2i1no +i4no4c +ino4s +i4not +2ins +in3se +insur5a +2int. +2in4th +in1u +i5nus +4iny +2io +4io. +ioge4 +io2gr +i1ol +io4m +ion3at +ion4ery +ion3i +io5ph +ior3i +i4os +io5th +i5oti +io4to +i4our +2ip +ipe4 +iphras4 +ip3i +ip4ic +ip4re4 +ip3ul +i3qua +iq5uef +iq3uid +iq3ui3t +4ir +i1ra +ira4b +i4rac +ird5e +ire4de +i4ref +i4rel4 +i4res +ir5gi +ir1i +iri5de +ir4is +iri3tu +5i5r2iz +ir4min +iro4g +5iron. +ir5ul +2is. +is5ag +is3ar +isas5 +2is1c +is3ch +4ise +is3er +3isf +is5han +is3hon +ish5op +is3ib +isi4d +i5sis +is5itiv +4is4k +islan4 +4isms +i2so +iso5mer +is1p +is2pi +is4py +4is1s +is4sal +issen4 +is4ses +is4ta. +is1te +is1ti +ist4ly +4istral +i2su +is5us +4ita. +ita4bi +i4tag +4ita5m +i3tan +i3tat +2ite +it3era +i5teri +it4es +2ith +i1ti +4itia +4i2tic +it3ica +5i5tick +it3ig +it5ill +i2tim +2itio +4itis +i4tism +i2t5o5m +4iton +i4tram +it5ry +4itt +it3uat +i5tud +it3ul +4itz. +i1u +2iv +iv3ell +iv3en. +i4v3er. +i4vers. +iv5il. +iv5io +iv1it +i5vore +iv3o3ro +i4v3ot +4i5w +ix4o +4iy +4izar +izi4 +5izont +5ja +jac4q +ja4p +1je +jer5s +4jestie +4jesty +jew3 +jo4p +5judg +3ka. +k3ab +k5ag +kais4 +kal4 +k1b +k2ed +1kee +ke4g +ke5li +k3en4d +k1er +kes4 +k3est. +ke4ty +k3f +kh4 +k1i +5ki. +5k2ic +k4ill +kilo5 +k4im +k4in. +kin4de +k5iness +kin4g +ki4p +kis4 +k5ish +kk4 +k1l +4kley +4kly +k1m +k5nes +1k2no +ko5r +kosh4 +k3ou +kro5n +4k1s2 +k4sc +ks4l +k4sy +k5t +k1w +lab3ic +l4abo +laci4 +l4ade +la3dy +lag4n +lam3o +3land +lan4dl +lan5et +lan4te +lar4g +lar3i +las4e +la5tan +4lateli +4lativ +4lav +la4v4a +2l1b +lbin4 +4l1c2 +lce4 +l3ci +2ld +l2de +ld4ere +ld4eri +ldi4 +ld5is +l3dr +l4dri +le2a +le4bi +left5 +5leg. +5legg +le4mat +lem5atic +4len. +3lenc +5lene. +1lent +le3ph +le4pr +lera5b +ler4e +3lerg +3l4eri +l4ero +les2 +le5sco +5lesq +3less +5less. +l3eva +lev4er. +lev4era +lev4ers +3ley +4leye +2lf +l5fr +4l1g4 +l5ga +lgar3 +l4ges +lgo3 +2l3h +li4ag +li2am +liar5iz +li4as +li4ato +li5bi +5licio +li4cor +4lics +4lict. +l4icu +l3icy +l3ida +lid5er +3lidi +lif3er +l4iff +li4fl +5ligate +3ligh +li4gra +3lik +4l4i4l +lim4bl +lim3i +li4mo +l4im4p +l4ina +1l4ine +lin3ea +lin3i +link5er +li5og +4l4iq +lis4p +l1it +l2it. +5litica +l5i5tics +liv3er +l1iz +4lj +lka3 +l3kal +lka4t +l1l +l4law +l2le +l5lea +l3lec +l3leg +l3lel +l3le4n +l3le4t +ll2i +l2lin4 +l5lina +ll4o +lloqui5 +ll5out +l5low +2lm +l5met +lm3ing +l4mod +lmon4 +2l1n2 +3lo. +lob5al +lo4ci +4lof +3logic +l5ogo +3logu +lom3er +5long +lon4i +l3o3niz +lood5 +5lope. +lop3i +l3opm +lora4 +lo4rato +lo5rie +lor5ou +5los. +los5et +5losophiz +5losophy +los4t +lo4ta +loun5d +2lout +4lov +2lp +lpa5b +l3pha +l5phi +lp5ing +l3pit +l4pl +l5pr +4l1r +2l1s2 +l4sc +l2se +l4sie +4lt +lt5ag +ltane5 +l1te +lten4 +ltera4 +lth3i +l5ties. +ltis4 +l1tr +ltu2 +ltur3a +lu5a +lu3br +luch4 +lu3ci +lu3en +luf4 +lu5id +lu4ma +5lumi +l5umn. +5lumnia +lu3o +luo3r +4lup +luss4 +lus3te +1lut +l5ven +l5vet4 +2l1w +1ly +4lya +4lyb +ly5me +ly3no +2lys4 +l5yse +1ma +2mab +ma2ca +ma5chine +ma4cl +mag5in +5magn +2mah +maid5 +4mald +ma3lig +ma5lin +mal4li +mal4ty +5mania +man5is +man3iz +4map +ma5rine. +ma5riz +mar4ly +mar3v +ma5sce +mas4e +mas1t +5mate +math3 +ma3tis +4matiza +4m1b +mba4t5 +m5bil +m4b3ing +mbi4v +4m5c +4me. +2med +4med. +5media +me3die +m5e5dy +me2g +mel5on +mel4t +me2m +mem1o3 +1men +men4a +men5ac +men4de +4mene +men4i +mens4 +mensu5 +3ment +men4te +me5on +m5ersa +2mes +3mesti +me4ta +met3al +me1te +me5thi +m4etr +5metric +me5trie +me3try +me4v +4m1f +2mh +5mi. +mi3a +mid4a +mid4g +mig4 +3milia +m5i5lie +m4ill +min4a +3mind +m5inee +m4ingl +min5gli +m5ingly +min4t +m4inu +miot4 +m2is +mis4er. +mis5l +mis4ti +m5istry +4mith +m2iz +4mk +4m1l +m1m +mma5ry +4m1n +mn4a +m4nin +mn4o +1mo +4mocr +5mocratiz +mo2d1 +mo4go +mois2 +moi5se +4mok +mo5lest +mo3me +mon5et +mon5ge +moni3a +mon4ism +mon4ist +mo3niz +monol4 +mo3ny. +mo2r +4mora. +mos2 +mo5sey +mo3sp +moth3 +m5ouf +3mous +mo2v +4m1p +mpara5 +mpa5rab +mpar5i +m3pet +mphas4 +m2pi +mpi4a +mp5ies +m4p1in +m5pir +mp5is +mpo3ri +mpos5ite +m4pous +mpov5 +mp4tr +m2py +4m3r +4m1s2 +m4sh +m5si +4mt +1mu +mula5r4 +5mult +multi3 +3mum +mun2 +4mup +mu4u +4mw +1na +2n1a2b +n4abu +4nac. +na4ca +n5act +nag5er. +nak4 +na4li +na5lia +4nalt +na5mit +n2an +nanci4 +nan4it +nank4 +nar3c +4nare +nar3i +nar4l +n5arm +n4as +nas4c +nas5ti +n2at +na3tal +nato5miz +n2au +nau3se +3naut +nav4e +4n1b4 +ncar5 +n4ces. +n3cha +n5cheo +n5chil +n3chis +nc1in +nc4it +ncour5a +n1cr +n1cu +n4dai +n5dan +n1de +nd5est. +ndi4b +n5d2if +n1dit +n3diz +n5duc +ndu4r +nd2we +2ne. +n3ear +ne2b +neb3u +ne2c +5neck +2ned +ne4gat +neg5ativ +5nege +ne4la +nel5iz +ne5mi +ne4mo +1nen +4nene +3neo +ne4po +ne2q +n1er +nera5b +n4erar +n2ere +n4er5i +ner4r +1nes +2nes. +4nesp +2nest +4nesw +3netic +ne4v +n5eve +ne4w +n3f +n4gab +n3gel +nge4n4e +n5gere +n3geri +ng5ha +n3gib +ng1in +n5git +n4gla +ngov4 +ng5sh +n1gu +n4gum +n2gy +4n1h4 +nha4 +nhab3 +nhe4 +3n4ia +ni3an +ni4ap +ni3ba +ni4bl +ni4d +ni5di +ni4er +ni2fi +ni5ficat +n5igr +nik4 +n1im +ni3miz +n1in +5nine. +nin4g +ni4o +5nis. +nis4ta +n2it +n4ith +3nitio +n3itor +ni3tr +n1j +4nk2 +n5kero +n3ket +nk3in +n1kl +4n1l +n5m +nme4 +nmet4 +4n1n2 +nne4 +nni3al +nni4v +nob4l +no3ble +n5ocl +4n3o2d +3noe +4nog +noge4 +nois5i +no5l4i +5nologis +3nomic +n5o5miz +no4mo +no3my +no4n +non4ag +non5i +n5oniz +4nop +5nop5o5li +nor5ab +no4rary +4nosc +nos4e +nos5t +no5ta +1nou +3noun +nov3el3 +nowl3 +n1p4 +npi4 +npre4c +n1q +n1r +nru4 +2n1s2 +ns5ab +nsati4 +ns4c +n2se +n4s3es +nsid1 +nsig4 +n2sl +ns3m +n4soc +ns4pe +n5spi +nsta5bl +n1t +nta4b +nter3s +nt2i +n5tib +nti4er +nti2f +n3tine +n4t3ing +nti4p +ntrol5li +nt4s +ntu3me +nu1a +nu4d +nu5en +nuf4fe +n3uin +3nu3it +n4um +nu1me +n5umi +3nu4n +n3uo +nu3tr +n1v2 +n1w4 +nym4 +nyp4 +4nz +n3za +4oa +oad3 +o5a5les +oard3 +oas4e +oast5e +oat5i +ob3a3b +o5bar +obe4l +o1bi +o2bin +ob5ing +o3br +ob3ul +o1ce +och4 +o3chet +ocif3 +o4cil +o4clam +o4cod +oc3rac +oc5ratiz +ocre3 +5ocrit +octor5a +oc3ula +o5cure +od5ded +od3ic +odi3o +o2do4 +odor3 +od5uct. +od5ucts +o4el +o5eng +o3er +oe4ta +o3ev +o2fi +of5ite +ofit4t +o2g5a5r +og5ativ +o4gato +o1ge +o5gene +o5geo +o4ger +o3gie +1o1gis +og3it +o4gl +o5g2ly +3ogniz +o4gro +ogu5i +1ogy +2ogyn +o1h2 +ohab5 +oi2 +oic3es +oi3der +oiff4 +oig4 +oi5let +o3ing +oint5er +o5ism +oi5son +oist5en +oi3ter +o5j +2ok +o3ken +ok5ie +o1la +o4lan +olass4 +ol2d +old1e +ol3er +o3lesc +o3let +ol4fi +ol2i +o3lia +o3lice +ol5id. +o3li4f +o5lil +ol3ing +o5lio +o5lis. +ol3ish +o5lite +o5litio +o5liv +olli4e +ol5ogiz +olo4r +ol5pl +ol2t +ol3ub +ol3ume +ol3un +o5lus +ol2v +o2ly +om5ah +oma5l +om5atiz +om2be +om4bl +o2me +om3ena +om5erse +o4met +om5etry +o3mia +om3ic. +om3ica +o5mid +om1in +o5mini +5ommend +omo4ge +o4mon +om3pi +ompro5 +o2n +on1a +on4ac +o3nan +on1c +3oncil +2ond +on5do +o3nen +on5est +on4gu +on1ic +o3nio +on1is +o5niu +on3key +on4odi +on3omy +on3s +onspi4 +onspir5a +onsu4 +onten4 +on3t4i +ontif5 +on5um +onva5 +oo2 +ood5e +ood5i +oo4k +oop3i +o3ord +oost5 +o2pa +ope5d +op1er +3opera +4operag +2oph +o5phan +o5pher +op3ing +o3pit +o5pon +o4posi +o1pr +op1u +opy5 +o1q +o1ra +o5ra. +o4r3ag +or5aliz +or5ange +ore5a +o5real +or3ei +ore5sh +or5est. +orew4 +or4gu +4o5ria +or3ica +o5ril +or1in +o1rio +or3ity +o3riu +or2mi +orn2e +o5rof +or3oug +or5pe +3orrh +or4se +ors5en +orst4 +or3thi +or3thy +or4ty +o5rum +o1ry +os3al +os2c +os4ce +o3scop +4oscopi +o5scr +os4i4e +os5itiv +os3ito +os3ity +osi4u +os4l +o2so +os4pa +os4po +os2ta +o5stati +os5til +os5tit +o4tan +otele4g +ot3er. +ot5ers +o4tes +4oth +oth5esi +oth3i4 +ot3ic. +ot5ica +o3tice +o3tif +o3tis +oto5s +ou2 +ou3bl +ouch5i +ou5et +ou4l +ounc5er +oun2d +ou5v +ov4en +over4ne +over3s +ov4ert +o3vis +oviti4 +o5v4ol +ow3der +ow3el +ow5est +ow1i +own5i +o4wo +oy1a +1pa +pa4ca +pa4ce +pac4t +p4ad +5pagan +p3agat +p4ai +pain4 +p4al +pan4a +pan3el +pan4ty +pa3ny +pa1p +pa4pu +para5bl +par5age +par5di +3pare +par5el +p4a4ri +par4is +pa2te +pa5ter +5pathic +pa5thy +pa4tric +pav4 +3pay +4p1b +pd4 +4pe. +3pe4a +pear4l +pe2c +2p2ed +3pede +3pedi +pedia4 +ped4ic +p4ee +pee4d +pek4 +pe4la +peli4e +pe4nan +p4enc +pen4th +pe5on +p4era. +pera5bl +p4erag +p4eri +peri5st +per4mal +perme5 +p4ern +per3o +per3ti +pe5ru +per1v +pe2t +pe5ten +pe5tiz +4pf +4pg +4ph. +phar5i +phe3no +ph4er +ph4es. +ph1ic +5phie +ph5ing +5phisti +3phiz +ph2l +3phob +3phone +5phoni +pho4r +4phs +ph3t +5phu +1phy +pi3a +pian4 +pi4cie +pi4cy +p4id +p5ida +pi3de +5pidi +3piec +pi3en +pi4grap +pi3lo +pi2n +p4in. +pind4 +p4ino +3pi1o +pion4 +p3ith +pi5tha +pi2tu +2p3k2 +1p2l2 +3plan +plas5t +pli3a +pli5er +4plig +pli4n +ploi4 +plu4m +plum4b +4p1m +2p3n +po4c +5pod. +po5em +po3et5 +5po4g +poin2 +5point +poly5t +po4ni +po4p +1p4or +po4ry +1pos +pos1s +p4ot +po4ta +5poun +4p1p +ppa5ra +p2pe +p4ped +p5pel +p3pen +p3per +p3pet +ppo5site +pr2 +pray4e +5preci +pre5co +pre3em +pref5ac +pre4la +pre3r +p3rese +3press +pre5ten +pre3v +5pri4e +prin4t3 +pri4s +pris3o +p3roca +prof5it +pro3l +pros3e +pro1t +2p1s2 +p2se +ps4h +p4sib +2p1t +pt5a4b +p2te +p2th +pti3m +ptu4r +p4tw +pub3 +pue4 +puf4 +pul3c +pu4m +pu2n +pur4r +5pus +pu2t +5pute +put3er +pu3tr +put4ted +put4tin +p3w +qu2 +qua5v +2que. +3quer +3quet +2rab +ra3bi +rach4e +r5acl +raf5fi +raf4t +r2ai +ra4lo +ram3et +r2ami +rane5o +ran4ge +r4ani +ra5no +rap3er +3raphy +rar5c +rare4 +rar5ef +4raril +r2as +ration4 +rau4t +ra5vai +rav3el +ra5zie +r1b +r4bab +r4bag +rbi2 +rbi4f +r2bin +r5bine +rb5ing. +rb4o +r1c +r2ce +rcen4 +r3cha +rch4er +r4ci4b +rc4it +rcum3 +r4dal +rd2i +rdi4a +rdi4er +rdin4 +rd3ing +2re. +re1al +re3an +re5arr +5reav +re4aw +r5ebrat +rec5oll +rec5ompe +re4cre +2r2ed +re1de +re3dis +red5it +re4fac +re2fe +re5fer. +re3fi +re4fy +reg3is +re5it +re1li +re5lu +r4en4ta +ren4te +re1o +re5pin +re4posi +re1pu +r1er4 +r4eri +rero4 +re5ru +r4es. +re4spi +ress5ib +res2t +re5stal +re3str +re4ter +re4ti4z +re3tri +reu2 +re5uti +rev2 +re4val +rev3el +r5ev5er. +re5vers +re5vert +re5vil +rev5olu +re4wh +r1f +rfu4 +r4fy +rg2 +rg3er +r3get +r3gic +rgi4n +rg3ing +r5gis +r5git +r1gl +rgo4n +r3gu +rh4 +4rh. +4rhal +ri3a +ria4b +ri4ag +r4ib +rib3a +ric5as +r4ice +4rici +5ricid +ri4cie +r4ico +rid5er +ri3enc +ri3ent +ri1er +ri5et +rig5an +5rigi +ril3iz +5riman +rim5i +3rimo +rim4pe +r2ina +5rina. +rin4d +rin4e +rin4g +ri1o +5riph +riph5e +ri2pl +rip5lic +r4iq +r2is +r4is. +ris4c +r3ish +ris4p +ri3ta3b +r5ited. +rit5er. +rit5ers +rit3ic +ri2tu +rit5ur +riv5el +riv3et +riv3i +r3j +r3ket +rk4le +rk4lin +r1l +rle4 +r2led +r4lig +r4lis +rl5ish +r3lo4 +r1m +rma5c +r2me +r3men +rm5ers +rm3ing +r4ming. +r4mio +r3mit +r4my +r4nar +r3nel +r4ner +r5net +r3ney +r5nic +r1nis4 +r3nit +r3niv +rno4 +r4nou +r3nu +rob3l +r2oc +ro3cr +ro4e +ro1fe +ro5fil +rok2 +ro5ker +5role. +rom5ete +rom4i +rom4p +ron4al +ron4e +ro5n4is +ron4ta +1room +5root +ro3pel +rop3ic +ror3i +ro5ro +ros5per +ros4s +ro4the +ro4ty +ro4va +rov5el +rox5 +r1p +r4pea +r5pent +rp5er. +r3pet +rp4h4 +rp3ing +r3po +r1r4 +rre4c +rre4f +r4reo +rre4st +rri4o +rri4v +rron4 +rros4 +rrys4 +4rs2 +r1sa +rsa5ti +rs4c +r2se +r3sec +rse4cr +rs5er. +rs3es +rse5v2 +r1sh +r5sha +r1si +r4si4b +rson3 +r1sp +r5sw +rtach4 +r4tag +r3teb +rten4d +rte5o +r1ti +rt5ib +rti4d +r4tier +r3tig +rtil3i +rtil4l +r4tily +r4tist +r4tiv +r3tri +rtroph4 +rt4sh +ru3a +ru3e4l +ru3en +ru4gl +ru3in +rum3pl +ru2n +runk5 +run4ty +r5usc +ruti5n +rv4e +rvel4i +r3ven +rv5er. +r5vest +r3vey +r3vic +rvi4v +r3vo +r1w +ry4c +5rynge +ry3t +sa2 +2s1ab +5sack +sac3ri +s3act +5sai +salar4 +sal4m +sa5lo +sal4t +3sanc +san4de +s1ap +sa5ta +5sa3tio +sat3u +sau4 +sa5vor +5saw +4s5b +scan4t5 +sca4p +scav5 +s4ced +4scei +s4ces +sch2 +s4cho +3s4cie +5scin4d +scle5 +s4cli +scof4 +4scopy +scour5a +s1cu +4s5d +4se. +se4a +seas4 +sea5w +se2c3o +3sect +4s4ed +se4d4e +s5edl +se2g +seg3r +5sei +se1le +5self +5selv +4seme +se4mol +sen5at +4senc +sen4d +s5ened +sen5g +s5enin +4sentd +4sentl +sep3a3 +4s1er. +s4erl +ser4o +4servo +s1e4s +se5sh +ses5t +5se5um +5sev +sev3en +sew4i +5sex +4s3f +2s3g +s2h +2sh. +sh1er +5shev +sh1in +sh3io +3ship +shiv5 +sho4 +sh5old +shon3 +shor4 +short5 +4shw +si1b +s5icc +3side. +5sides +5sidi +si5diz +4signa +sil4e +4sily +2s1in +s2ina +5sine. +s3ing +1sio +5sion +sion5a +si2r +sir5a +1sis +3sitio +5siu +1siv +5siz +sk2 +4ske +s3ket +sk5ine +sk5ing +s1l2 +s3lat +s2le +slith5 +2s1m +s3ma +small3 +sman3 +smel4 +s5men +5smith +smol5d4 +s1n4 +1so +so4ce +soft3 +so4lab +sol3d2 +so3lic +5solv +3som +3s4on. +sona4 +son4g +s4op +5sophic +s5ophiz +s5ophy +sor5c +sor5d +4sov +so5vi +2spa +5spai +spa4n +spen4d +2s5peo +2sper +s2phe +3spher +spho5 +spil4 +sp5ing +4spio +s4ply +s4pon +spor4 +4spot +squal4l +s1r +2ss +s1sa +ssas3 +s2s5c +s3sel +s5seng +s4ses. +s5set +s1si +s4sie +ssi4er +ss5ily +s4sl +ss4li +s4sn +sspend4 +ss2t +ssur5a +ss5w +2st. +s2tag +s2tal +stam4i +5stand +s4ta4p +5stat. +s4ted +stern5i +s5tero +ste2w +stew5a +s3the +st2i +s4ti. +s5tia +s1tic +5stick +s4tie +s3tif +st3ing +5stir +s1tle +5stock +stom3a +5stone +s4top +3store +st4r +s4trad +5stratu +s4tray +s4trid +4stry +4st3w +s2ty +1su +su1al +su4b3 +su2g3 +su5is +suit3 +s4ul +su2m +sum3i +su2n +su2r +4sv +sw2 +4swo +s4y +4syc +3syl +syn5o +sy5rin +1ta +3ta. +2tab +ta5bles +5taboliz +4taci +ta5do +4taf4 +tai5lo +ta2l +ta5la +tal5en +tal3i +4talk +tal4lis +ta5log +ta5mo +tan4de +tanta3 +ta5per +ta5pl +tar4a +4tarc +4tare +ta3riz +tas4e +ta5sy +4tatic +ta4tur +taun4 +tav4 +2taw +tax4is +2t1b +4tc +t4ch +tch5et +4t1d +4te. +tead4i +4teat +tece4 +5tect +2t1ed +te5di +1tee +teg4 +te5ger +te5gi +3tel. +teli4 +5tels +te2ma2 +tem3at +3tenan +3tenc +3tend +4tenes +1tent +ten4tag +1teo +te4p +te5pe +ter3c +5ter3d +1teri +ter5ies +ter3is +teri5za +5ternit +ter5v +4tes. +4tess +t3ess. +teth5e +3teu +3tex +4tey +2t1f +4t1g +2th. +than4 +th2e +4thea +th3eas +the5at +the3is +3thet +th5ic. +th5ica +4thil +5think +4thl +th5ode +5thodic +4thoo +thor5it +tho5riz +2ths +1tia +ti4ab +ti4ato +2ti2b +4tick +t4ico +t4ic1u +5tidi +3tien +tif2 +ti5fy +2tig +5tigu +till5in +1tim +4timp +tim5ul +2t1in +t2ina +3tine. +3tini +1tio +ti5oc +tion5ee +5tiq +ti3sa +3tise +tis4m +ti5so +tis4p +5tistica +ti3tl +ti4u +1tiv +tiv4a +1tiz +ti3za +ti3zen +2tl +t5la +tlan4 +3tle. +3tled +3tles. +t5let. +t5lo +4t1m +tme4 +2t1n2 +1to +to3b +to5crat +4todo +2tof +to2gr +to5ic +to2ma +tom4b +to3my +ton4ali +to3nat +4tono +4tony +to2ra +to3rie +tor5iz +tos2 +5tour +4tout +to3war +4t1p +1tra +tra3b +tra5ch +traci4 +trac4it +trac4te +tras4 +tra5ven +trav5es5 +tre5f +tre4m +trem5i +5tria +tri5ces +5tricia +4trics +2trim +tri4v +tro5mi +tron5i +4trony +tro5phe +tro3sp +tro3v +tru5i +trus4 +4t1s2 +t4sc +tsh4 +t4sw +4t3t2 +t4tes +t5to +ttu4 +1tu +tu1a +tu3ar +tu4bi +tud2 +4tue +4tuf4 +5tu3i +3tum +tu4nis +2t3up. +3ture +5turi +tur3is +tur5o +tu5ry +3tus +4tv +tw4 +4t1wa +twis4 +4two +1ty +4tya +2tyl +type3 +ty5ph +4tz +tz4e +4uab +uac4 +ua5na +uan4i +uar5ant +uar2d +uar3i +uar3t +u1at +uav4 +ub4e +u4bel +u3ber +u4bero +u1b4i +u4b5ing +u3ble. +u3ca +uci4b +uc4it +ucle3 +u3cr +u3cu +u4cy +ud5d +ud3er +ud5est +udev4 +u1dic +ud3ied +ud3ies +ud5is +u5dit +u4don +ud4si +u4du +u4ene +uens4 +uen4te +uer4il +3ufa +u3fl +ugh3en +ug5in +2ui2 +uil5iz +ui4n +u1ing +uir4m +uita4 +uiv3 +uiv4er. +u5j +4uk +u1la +ula5b +u5lati +ulch4 +5ulche +ul3der +ul4e +u1len +ul4gi +ul2i +u5lia +ul3ing +ul5ish +ul4lar +ul4li4b +ul4lis +4ul3m +u1l4o +4uls +uls5es +ul1ti +ultra3 +4ultu +u3lu +ul5ul +ul5v +um5ab +um4bi +um4bly +u1mi +u4m3ing +umor5o +um2p +unat4 +u2ne +un4er +u1ni +un4im +u2nin +un5ish +uni3v +un3s4 +un4sw +unt3ab +un4ter. +un4tes +unu4 +un5y +un5z +u4ors +u5os +u1ou +u1pe +uper5s +u5pia +up3ing +u3pl +up3p +upport5 +upt5ib +uptu4 +u1ra +4ura. +u4rag +u4ras +ur4be +urc4 +ur1d +ure5at +ur4fer +ur4fr +u3rif +uri4fic +ur1in +u3rio +u1rit +ur3iz +ur2l +url5ing. +ur4no +uros4 +ur4pe +ur4pi +urs5er +ur5tes +ur3the +urti4 +ur4tie +u3ru +2us +u5sad +u5san +us4ap +usc2 +us3ci +use5a +u5sia +u3sic +us4lin +us1p +us5sl +us5tere +us1tr +u2su +usur4 +uta4b +u3tat +4ute. +4utel +4uten +uten4i +4u1t2i +uti5liz +u3tine +ut3ing +ution5a +u4tis +5u5tiz +u4t1l +ut5of +uto5g +uto5matic +u5ton +u4tou +uts4 +u3u +uu4m +u1v2 +uxu3 +uz4e +1va +5va. +2v1a4b +vac5il +vac3u +vag4 +va4ge +va5lie +val5o +val1u +va5mo +va5niz +va5pi +var5ied +3vat +4ve. +4ved +veg3 +v3el. +vel3li +ve4lo +v4ely +ven3om +v5enue +v4erd +5vere. +v4erel +v3eren +ver5enc +v4eres +ver3ie +vermi4n +3verse +ver3th +v4e2s +4ves. +ves4te +ve4te +vet3er +ve4ty +vi5ali +5vian +5vide. +5vided +4v3iden +5vides +5vidi +v3if +vi5gn +vik4 +2vil +5vilit +v3i3liz +v1in +4vi4na +v2inc +vin5d +4ving +vio3l +v3io4r +vi1ou +vi4p +vi5ro +vis3it +vi3so +vi3su +4viti +vit3r +4vity +3viv +5vo. +voi4 +3vok +vo4la +v5ole +5volt +3volv +vom5i +vor5ab +vori4 +vo4ry +vo4ta +4votee +4vv4 +v4y +w5abl +2wac +wa5ger +wag5o +wait5 +w5al. +wam4 +war4t +was4t +wa1te +wa5ver +w1b +wea5rie +weath3 +wed4n +weet3 +wee5v +wel4l +w1er +west3 +w3ev +whi4 +wi2 +wil2 +will5in +win4de +win4g +wir4 +3wise +with3 +wiz5 +w4k +wl4es +wl3in +w4no +1wo2 +wom1 +wo5ven +w5p +wra4 +wri4 +writa4 +w3sh +ws4l +ws4pe +w5s4t +4wt +wy4 +x1a +xac5e +x4ago +xam3 +x4ap +xas5 +x3c2 +x1e +xe4cuto +x2ed +xer4i +xe5ro +x1h +xhi2 +xhil5 +xhu4 +x3i +xi5a +xi5c +xi5di +x4ime +xi5miz +x3o +x4ob +x3p +xpan4d +xpecto5 +xpe3d +x1t2 +x3ti +x1u +xu3a +xx4 +y5ac +3yar4 +y5at +y1b +y1c +y2ce +yc5er +y3ch +ych4e +ycom4 +ycot4 +y1d +y5ee +y1er +y4erf +yes4 +ye4t +y5gi +4y3h +y1i +y3la +ylla5bl +y3lo +y5lu +ymbol5 +yme4 +ympa3 +yn3chr +yn5d +yn5g +yn5ic +5ynx +y1o4 +yo5d +y4o5g +yom4 +yo5net +y4ons +y4os +y4ped +yper5 +yp3i +y3po +y4poc +yp2ta +y5pu +yra5m +yr5ia +y3ro +yr4r +ys4c +y3s2e +ys3ica +ys3io +3ysis +y4so +yss4 +ys1t +ys3ta +ysur4 +y3thin +yt3ic +y1w +za1 +z5a2b +zar2 +4zb +2ze +ze4n +ze4p +z1er +ze3ro +zet4 +2z1i +z4il +z4is +5zl +4zm +1zo +zo4m +zo5ol +zte4 +4z1z2 +z4zy +} +\def\enhyph{\english}\def\ehyph{\english} +\endinput + diff --git a/obsolete/macros/ec-plain/enhyphex.tex b/obsolete/macros/ec-plain/enhyphex.tex new file mode 100644 index 0000000000..efc05018d4 --- /dev/null +++ b/obsolete/macros/ec-plain/enhyphex.tex @@ -0,0 +1,29 @@ +% Ascii 7 bits file +% File enhyphex.tex +% English hyphenation exception words. +\message{Enhyphex.tex English exception words.} +\hyphenation{ % Do NOT make any alterations to this list! --- DEK +as-so-ciate +as-so-ciates +dec-li-na-tion +oblig-a-tory +phil-an-thropic +present +presents +project +projects +reci-procity +re-cog-ni-zance +ref-or-ma-tion +ret-ri-bu-tion +ta-ble +} + +% additional exceptions (mjf) +\hyphenation{ +man-u-script +man-u-scripts +equi-sp-a-ced +} +\endinput + diff --git a/obsolete/macros/ec-plain/eshyph.tex b/obsolete/macros/ec-plain/eshyph.tex new file mode 100644 index 0000000000..f84bacfcf6 --- /dev/null +++ b/obsolete/macros/ec-plain/eshyph.tex @@ -0,0 +1,114 @@ +% File received from Mario Widel at University of Illinois at Chicago. +% Original author unclear. +\patterns{ +a1b a1c a1d a1f a1g a1h a1j a1k a1l a1m a1n + a1p a1q a1r a1s a1t a1v a1w a1x a1y a1z +e1b e1c e1d e1f e1g e1h e1j e1k e1l e1m e1n + e1p e1q e1r e1s e1t e1v e1w e1x e1y e1z +i1b i1c i1d i1f i1g i1h i1j i1k i1l i1m i1n + i1p i1q i1r i1s i1t i1v i1w i1x i1y i1z +o1b o1c o1d o1f o1g o1h o1j o1k o1l o1m o1n + o1p o1q o1r o1s o1t o1v o1w o1x o1y o1z +u1b u1c u1d u1f u1g u1h u1j u1k u1l u1m u1n + u1p u1q u1r u1s u1t u1v u1w u1x u1y u1z +n2s1t n2s1p n2s1c b2s1t b2s1c d2s1c +2b1b 2b1c 2b1d 2b1f 2b1g 2b1h 2b1j 2b1k 2b1m 2b1n + 2b1p 2b1q 2b1s 2b1t 2b1v 2b1w 2b1x 2b1y 2b1z +2c1b 2c1c 2c1d 2c1f 2c1g 2c1j 2c1k 2c1m 2c1n + 2c1p 2c1q 2c1s 2c1t 2c1v 2c1w 2c1x 2c1y 2c1z +2ch1t +2d1b 2d1c 2d1d 2d1f 2d1g 2d1h 2d1j 2d1k 2d1m 2d1n + 2d1p 2d1q 2d1s 2d1t 2d1v 2d1w 2d1x 2d1y 2d1z +2f1b 2f1c 2f1d 2f1f 2f1g 2f1h 2f1j 2f1k 2f1m 2f1n + 2f1p 2f1q 2f1s 2f1t 2f1v 2f1w 2f1x 2f1y 2f1z +2g1b 2g1c 2g1d 2g1f 2g1h 2g1j 2g1k 2g1m 2g1n + 2g1p 2g1q 2g1s 2g1t 2g1v 2g1w 2g1x 2g1y 2g1z +2j1b 2j1c 2j1d 2j1f 2j1g 2j1h 2j1l 2j1m 2j1n + 2j1p 2j1q 2j1r 2j1s 2j1t 2j1v 2j1w +2l1b 2l1c 2l1d 2l1f 2l1g 2l1h 2l1j 2l1k 2l1m 2l1n + 2l1p 2l1q 2l1r 2l1s 2l1t 2l1v 2l1w 2l1x 2l1y 2l1z +2m1b 2m1c 2m1d 2m1f 2m1g 2m1h 2m1j 2m1k 2m1l 2m1m 2m1n + 2m1p 2m1q 2m1r 2m1s 2m1t 2m1v 2m1w 2m1x 2m1y 2m1z +2n1b 2n1c 2n1d 2n1f 2n1g 2n1h 2n1j 2n1k 2n1l 2n1m 2n1n + 2n1p 2n1q 2n1r 2n1s 2n1t 2n1v 2n1w 2n1x 2n1y 2n1z +2p1b 2p1c 2p1d 2p1f 2p1g 2p1j 2p1k 2p1m 2p1n + 2p1p 2p1q 2p1s 2p1t 2p1v 2p1w 2p1x 2p1y 2p1z +2r1b 2r1c 2r1d 2r1f 2r1g 2r1h 2r1j 2r1k 2r1l 2r1m 2r1n + 2r1p 2r1q 2r1s 2r1t 2r1v 2r1w 2r1x 2r1y 2r1z +2s1b 2s1c 2s1d 2s1f 2s1g 2s1h 2s1j 2s1k 2s1l 2s1m 2s1n + 2s1p 2s1q 2s1r 2s1s 2s1t 2s1v 2s1w 2s1x 2s1y 2s1z +2t1b 2t1c 2t1d 2t1f 2t1g 2t1h 2t1j 2t1k 2t1m 2t1n + 2t1p 2t1q 2t1s 2t1t 2t1v 2t1w 2t1x 2t1y 2t1z +2x1b 2x1c 2x1d 2x1f 2x1g 2x1h 2x1j 2x1k 2x1l 2x1m 2x1n + 2x1p 2x1q 2x1r 2x1s 2x1t 2x1v 2x1w 2x1y 2x1z +2y1b 2y1c 2y1d 2y1f 2y1g 2y1h 2y1j 2y1k 2y1l 2y1m 2y1n + 2y1p 2y1q 2y1r 2y1s 2y1t 2y1v 2y1w 2y1x 2y1z +2z1b 2z1c 2z1d 2z1f 2z1g 2z1h 2z1j 2z1k 2z1l 2z1m 2z1n + 2z1p 2z1q 2z1r 2z1s 2z1t 2z1v 2z1w 2z1x +.m2n .p2s .p2t +.a2 .e2 .i2 .o2 .u2 +2a. 2b. 2c. 2d. 2e. 2f. 2g. 2h. 2i. 2j. 2k. 2l. 2m. + 2n. 2o. 2p. 2r. 2s. 2t. 2u. 2v. 2w. 2x. 2y. 2z. +2caca. 2cacas. +2caga. 2cagas. +2cola. 2colas. +2culo. 2culos. +2cular. +2loco. 2locos. 2loca. 2locas. +2moco. 2mocos. +2mula. 2mulas. +2pedo. 2pedos. 2peda. 2pedas. +2pito. 2pitos. +2puto. 2putos. 2puta. 2putas. +.caca2 +a1a2 e1e2 i1i2 o1o2 u1u2 +.de2s1a2 .de2s1e2 .de2s1i2 .de2s1o2 .de2s1u2 +.in1a2 .in1e2 .in1i2 .in1o2 .in1u2 +.co1a2 .co1e2 .co1i2 .co1o2 .co1u2 +.re1a2 .re1e2 .re1i2 .re1o2 .re1u2 +de3s2ea +in2i3ci +} + +%.su2b1a2 .su2b1e2 .su2b1i2 .su2b1o2 .su2b1u2 + +\hyphenation{ +arz-obis-po +coi-to coa-hui-la +de-sa-lar +de-sa-li-na-do-ra +de-seo de-ser-tar +de-ser-tor +de-ser-ti-co +de-si-de-ra-tum +de-si-dia +de-si-dio-so +de-sier-to +de-sig-nar +de-sig-na-cion +de-sig-nio +de-so-la-dor +de-so-la-cion +de-sas-tre +hard-ware +ino-cuo +mi-cro-sco-pio +ohm-me-tro +pe-nin-su-la +post-o-pe-ra-to-rio +sacer-do-te +soft-ware +sub-acua-ti-co +sub-al-ge-bra +sub-al-pi-no +sub-a-rren-dar +sub-al-ter-no +sub-in-di-ce +sub-ins-pec-tor +sub-in-ten-den-te +sub-ur-ba-no +sub-u-ti-li-zar +tungs-te-no +} + +\endinput diff --git a/obsolete/macros/ec-plain/exmi.mf b/obsolete/macros/ec-plain/exmi.mf new file mode 100644 index 0000000000..c7fdc1bfd8 --- /dev/null +++ b/obsolete/macros/ec-plain/exmi.mf @@ -0,0 +1,14 @@ +% Computer Modern Math Italic 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="EXMI"; font_size ###pt#; + +input dymi### ; + +input ecmathit ; % switch to the driver file + +input dybx### ; + +input ecbxmath ; + +end diff --git a/obsolete/macros/ec-plain/exmi10.mf b/obsolete/macros/ec-plain/exmi10.mf new file mode 100644 index 0000000000..4d4506a6d0 --- /dev/null +++ b/obsolete/macros/ec-plain/exmi10.mf @@ -0,0 +1,14 @@ +% Computer Modern Math Italic 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="EXMI"; font_size 10pt#; + +input dymi10 ; + +input ecmathit ; % switch to the driver file + +input dybx10 ; + +input ecbxmath ; + +end diff --git a/obsolete/macros/ec-plain/exmi10.tfm b/obsolete/macros/ec-plain/exmi10.tfm new file mode 100644 index 0000000000..83e8cf5803 Binary files /dev/null and b/obsolete/macros/ec-plain/exmi10.tfm differ diff --git a/obsolete/macros/ec-plain/exmi12.mf b/obsolete/macros/ec-plain/exmi12.mf new file mode 100644 index 0000000000..5b097b0685 --- /dev/null +++ b/obsolete/macros/ec-plain/exmi12.mf @@ -0,0 +1,14 @@ +% Computer Modern Math Italic 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="EXMI"; font_size 12pt#; + +input dymi12 ; + +input ecmathit ; % switch to the driver file + +input dybx12 ; + +input ecbxmath ; + +end diff --git a/obsolete/macros/ec-plain/exmi12.tfm b/obsolete/macros/ec-plain/exmi12.tfm new file mode 100644 index 0000000000..22d6adab78 Binary files /dev/null and b/obsolete/macros/ec-plain/exmi12.tfm differ diff --git a/obsolete/macros/ec-plain/exmi5.mf b/obsolete/macros/ec-plain/exmi5.mf new file mode 100644 index 0000000000..179d35e15c --- /dev/null +++ b/obsolete/macros/ec-plain/exmi5.mf @@ -0,0 +1,14 @@ +% Computer Modern Math Italic 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="EXMI"; font_size 5pt#; + +input dymi5 ; + +input ecmathit ; % switch to the driver file + +input dybx5 ; + +input ecbxmath ; + +end diff --git a/obsolete/macros/ec-plain/exmi5.tfm b/obsolete/macros/ec-plain/exmi5.tfm new file mode 100644 index 0000000000..86d355b82a Binary files /dev/null and b/obsolete/macros/ec-plain/exmi5.tfm differ diff --git a/obsolete/macros/ec-plain/exmi6.mf b/obsolete/macros/ec-plain/exmi6.mf new file mode 100644 index 0000000000..bb91119739 --- /dev/null +++ b/obsolete/macros/ec-plain/exmi6.mf @@ -0,0 +1,14 @@ +% Computer Modern Math Italic 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="EXMI"; font_size 6pt#; + +input dymi6 ; + +input ecmathit ; % switch to the driver file + +input dybx6 ; + +input ecbxmath ; + +end diff --git a/obsolete/macros/ec-plain/exmi6.tfm b/obsolete/macros/ec-plain/exmi6.tfm new file mode 100644 index 0000000000..a3c3eb1271 Binary files /dev/null and b/obsolete/macros/ec-plain/exmi6.tfm differ diff --git a/obsolete/macros/ec-plain/exmi7.mf b/obsolete/macros/ec-plain/exmi7.mf new file mode 100644 index 0000000000..238b4dbe8b --- /dev/null +++ b/obsolete/macros/ec-plain/exmi7.mf @@ -0,0 +1,14 @@ +% Computer Modern Math Italic 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="EXMI"; font_size 7pt#; + +input dymi7 ; + +input ecmathit ; % switch to the driver file + +input dybx7 ; + +input ecbxmath ; + +end diff --git a/obsolete/macros/ec-plain/exmi7.tfm b/obsolete/macros/ec-plain/exmi7.tfm new file mode 100644 index 0000000000..1bf9c053bc Binary files /dev/null and b/obsolete/macros/ec-plain/exmi7.tfm differ diff --git a/obsolete/macros/ec-plain/exmi8.mf b/obsolete/macros/ec-plain/exmi8.mf new file mode 100644 index 0000000000..8ffd90c684 --- /dev/null +++ b/obsolete/macros/ec-plain/exmi8.mf @@ -0,0 +1,14 @@ +% Computer Modern Math Italic 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="EXMI"; font_size 8pt#; + +input dymi8 ; + +input ecmathit ; % switch to the driver file + +input dybx8 ; + +input ecbxmath ; + +end diff --git a/obsolete/macros/ec-plain/exmi8.tfm b/obsolete/macros/ec-plain/exmi8.tfm new file mode 100644 index 0000000000..5fe39fb05b Binary files /dev/null and b/obsolete/macros/ec-plain/exmi8.tfm differ diff --git a/obsolete/macros/ec-plain/exmi9.mf b/obsolete/macros/ec-plain/exmi9.mf new file mode 100644 index 0000000000..04a3675896 --- /dev/null +++ b/obsolete/macros/ec-plain/exmi9.mf @@ -0,0 +1,14 @@ +% Computer Modern Math Italic 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="EXMI"; font_size 9pt#; + +input dymi9 ; + +input ecmathit ; % switch to the driver file + +input dybx9 ; + +input ecbxmath ; + +end diff --git a/obsolete/macros/ec-plain/exmi9.tfm b/obsolete/macros/ec-plain/exmi9.tfm new file mode 100644 index 0000000000..066657adc3 Binary files /dev/null and b/obsolete/macros/ec-plain/exmi9.tfm differ diff --git a/obsolete/macros/ec-plain/f8hyph1.tex b/obsolete/macros/ec-plain/f8hyph1.tex new file mode 100644 index 0000000000..cb19b8714f --- /dev/null +++ b/obsolete/macros/ec-plain/f8hyph1.tex @@ -0,0 +1,1332 @@ +% f8hyph1.tex % French hyphenation patterns (8-bit T1 encoding) +\message{f8hyph1.tex french hyphenation patterns. 8-bit T1 encoding (V2.0) updated 31/05/2002 by D. Taupin} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% *BEFORE* using this file *PLEASE* run checksum on it: % +% checksum -v f8hyph.tex % +% to make sure that it hasn't been damaged. % +% Then if you notice anything wrong in french hyphenation please report to % +% Daniel Flipo and Bernard Gaulle at the email address: cesure-l@ens.fr % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% checksum = "57304 1329 2321 30022" +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%% The most famous good guys who worked hard to obtain something usable. +% Jacques Desarmenien, Universite de Strasbourg : +% - << how to run TeX in a French environment: hyphenation, fonts, +% typography. >> in Tugboat, 5 (1984) 91-102. and TeX85 conference +% - << La division par ordinateur des mots francais : +% application a TeX >> in TSI vol. 5 No 4, 1986 (C) AFCET- +% Gauthier-Villars +% Norman Buckle, UQAH (nb; many additions) +% Michael Ferguson, INRS-Telecommunications (mjf) June 1988 +% Justin Bur, Universite de Montreal (jbb; checked against original list) +% all patterns including apostrophe missing from nb list +% after that, GUTenberg and specially Daniel Flipo and Bernard Gaulle +% did their best effort to improve the list of patterns. +\begingroup +%%%%%%% Adaptation to T1 encoding by Yannis Haralambous : +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Villeneuve d'Ascq 10/7/91 +% unused \catcode(s) and \uccode(s) removed --bg 29/05/92 +% reset \catcode(s) to 11 (these might be active characters) --bg 14/10/92 +\catcode`\^^e0=11\lccode`\^^e0=`\^^e0 % \`a +\catcode`\^^e2=11\lccode`\^^e2=`\^^e2 % \^a +\catcode`\^^e7=11\lccode`\^^e7=`\^^e7 % \c{c} +\catcode`\^^e9=11\lccode`\^^e9=`\^^e9 % \'e +\catcode`\^^e8=11\lccode`\^^e8=`\^^e8 % \`e +\catcode`\^^ea=11\lccode`\^^ea=`\^^ea % \^e +\catcode`\^^eb=11\lccode`\^^eb=`\^^eb % \"e +\catcode`\^^ee=11\lccode`\^^ee=`\^^ee % \^\i{} +\catcode`\^^ef=11\lccode`\^^ef=`\^^ef % \"\i{} +\catcode`\^^f4=11\lccode`\^^f4=`\^^f4 % \^o +\catcode`\^^f6=11\lccode`\^^f6=`\^^f6 % \"o +\catcode`\^^fb=11\lccode`\^^fb=`\^^fb % \^u +\catcode`\^^f7=11\lccode`\^^f7=`\^^f7 % \oe{} +\lccode`\'=`\' +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% The following is the common part produced automatically from f7hyph.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\patterns{ +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%* +2'2 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%a +.a4 +'a4 +.^^e24 +'^^e24 +ab2h % df-bg 1998/02/07 for abhorrer + .ab3r^^e9a + 'ab3r^^e9a +ad2h % df-bg 1998/02/07 for adh\`esion & co + a1^^e82dre + .ae3s4ch + 'ae3s4ch + 1alcool + a2l1algi + .amino1a2c + 'amino1a2c + .ana3s4tr + 'ana3s4tr + 1a2nesth^^e9si + .anti1a2 + 'anti1a2 + .anti1e2 + 'anti1e2 + .anti1^^e92 + .anti2enne + 'anti2enne + 'anti1^^e92 + .anti1s2 + 'anti1s2 + .apo2s3ta + 'apo2s3ta + apo2s3tr + archi1^^e92pis + .as2ta + 'as2ta + a2s3tro +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%b +1ba +1b^^e2 + .bai2se3main % hyphen disappeared from french 5/2/94 +1be +1b^^e9 +1b^^e8 +1b^^ea +4be. +4bes. +2bent. % mute syllable: tombent (df) 22/02/94 +1bi +1b^^ee + .bi1a2c + .bi1a2t % like .tri1a2t for tri-athlon bg 12/27/93 + .bi1au + .bio1a2 + .bi2s1a2 + .bi1u2 +1b2l +4ble. +4bles. +2blent. % mute syllable: troublent (df) 28/02/94 +1bo +1b^^f4 +1b2r +4bre. +4bres. +2brent. % mute syllable: palabrent (df) 28/02/94 +1bu +1b^^fb +1by +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%c +1^^e7 +1ca +1c^^e2 +ca3ou3t2 % pour caoutchou... added 3/1/94 df-bg +1ce +1c^^e9 +1c^^e8 +1c^^ea +4ce. +4ces. +% words ending with -cent (df) 22/02/94 + 2cent. + ja3cent. + ac3cent. + ^^e93cent. + munifi3cent. + r^^e9ti3cent. +privatdo3cent. + inno3cent. + es3cent. + acquies4cent. + is3cent. + immis4cent. +% +.ch4 +1c2h +4ch. +2chb +4che. +4ches. +2chent. % mute syllable: touchent (df) 22/02/94 + .ch^^e82vre3feuille % hyphen disappeared from french 5/2/94 +2chg +ch2l +4chle. +4chles. + chlo2r3a2c + chlo2r3^^e92t +2chm +2chn +2chp +ch2r +4chre. +4chres. +2chs +2cht +2chw +1ci +1c^^ee + .ci2s1alp +1c2k +4ck. +2ckb +4cke. +4ckes. +2ckent. % mute syllable: stockent (df) 22/02/94 +2ckf +2ckg +2ck3h +2ckp +2cks +2ckt +1c2l +4cle. +4cles. +2clent. % mute syllable: encerclent (df) 28/02/94 +1co +1c^^f4 + co1acc + co1acq + co1a2d + co1ap + co1ar + co1assoc + co1assur + co1au + co1ax +1c^^f7 + co1^^e92 + co1ef + co1en + co1ex + .con4 % missing from nb list + .cons4 % missing from nb list + .contre1s2c + .contre3ma^^eetre % hyphen disappeared from french 5/2/94 + co2nurb + .co1o2 + .co2o3lie +1c2r +4cre. +4cres. +2crent. % mute syllable: massacrent (df) 28/02/94 +1cu +1c^^fb +1cy +.cul4 % -- as .con4 .cons4 (march 92) +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%d +1d' +1da +1d^^e2 + .dacryo1a2 +d1d2h +1de +1d^^e9 +1d^^e8 +1d^^ea +4de. +4des. +% words ending with -dent (df) 22/02/94 + 2dent. +d^^e9ca3dent. + ^^e93dent. + cci3dent. + inci3dent. + confi3dent. + tri3dent. + dissi3dent. + chien3dent. + .ar3dent. + impu3dent. + pru3dent. +% + .d^^e91a2 + .d^^e91io + .d^^e91o2 + .d^^e92s % originaly in JD file + %.d^^e92s1a2 removed 09/17/92 because wrong for the + % original JD 500 words test + .d^^e93s2a3cr + .d^^e9s2a3m % .d^^e9s2a2mi introduced 09/17/92 bec. i + % can't see why d^^e9samidonner ran in JD. + % Moved to .d^^e9s2a3m df 12/27/93. + .d^^e93s2a3tell + .d^^e93s2astr + .d^^e93s2c % 1 moved 3 due to .d^^e92s 09/17/92 + %.d^^e92s1e2 removed 09/17/92 because wrong for the + % original JD 500 words test + .d^^e92s1^^e92 + .d^^e93s2^^e93gr + .d^^e93s2ensib + .d^^e93s2ert + .d^^e93s2exu + %.d^^e92s3h removed 09/17/92 because wrong for the + % original JD 500 words test + .d^^e92s1i2 + .d^^e93s2i3d + .d^^e93s2i3gn + .d^^e93s2i3li + .d^^e93s2i3nen + .d^^e93s2invo + .d^^e93s2i3r + .d^^e93s2ist + %.d^^e92s1o2 removed 09/17/92 because wrong for the + % original JD 500 words test + .d^^e93s2o3d^^e9 + .d^^e92s1^^f70 % final zero essential to terminate cs + .d^^e93s2o3l + .d^^e93s2o3pil + .d^^e93s2orm + .d^^e93s2orp + .d^^e93s2oufr + .d^^e93s2p % 1 moved 3 due to .d^^e92s 09/17/92 + .d^^e93s2t % 1 moved 3 due to .d^^e92s 09/17/92 + .d^^e92s1u2n + 3d2hal + 3d2houd +1di +1d^^ee + di2s3cop + .di1a2c^^e9 + .di1a2cid + dia2g3n + .di1ald + .di1a2mi + .di1a2tom + .di1e2n + .di2s3h +2dlent. % mute syllable: jodlent (df) 28/02/94 +1do +1d^^f4 +1d2r +4dre. +4dres. +2drent. % mute syllable: engendrent (df) 28/02/94 +d1s2 +1du +1d^^fb +1dy + .dy2s3 + .dy2s1a2 + .dy2s1i2 + .dy2s1o2 % missing from nb list + .dy2s1u2 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%e +.e4 +'e4 +.^^ea4 +'^^ea4 +.^^e94 +'^^e94 +.^^e84 +'^^e84 +^^e9ed2hi % df-bg 1998/02/07 for r\'edhibitoire + 1^^e92drie + 1^^e92drique + 1^^e92lectr + 1^^e92l^^e9ment + .en1a2 + 'en1a2 + 1^^e92nerg + e2n1i2vr + .en1o2 + 'en1o2 + ^^e9pi2s3cop + ^^e9pi3s4cope + e2s3cop + .eu2r1a2 + 'eu2r1a2 + eu1s2tat + extra1 + extra2c + extra2i +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%f +1fa +1f^^e2 +1fe +1f^^e9 +1f^^e8 +1f^^ea +4fe. +4fes. +2fent. % mute syllable: agrafent chauffent (df) 22/02/94 +% +1fi +1f^^ee +1f2l +4fle. +4fles. +2flent. % mute syllable: gonflent (df) 28/02/94 +1fo +1f^^f4 +1f2r +4fre. +4fres. +2frent. % mute syllable: balafrent (df) 28/02/94 +f1s2 +1fu +1f^^fb +1fy +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%g +1ga +1g^^e2 +1ge +1g^^e9 +1g^^e8 +1g^^ea +4ge. +4ges. +% words ending with -gent (df) 22/02/94 + 2gent. + r^^e93gent. + entre3gent. + indi3gent. + dili3gent. +intelli3gent. + indul3gent. + tan3gent. + rin3gent. + contin3gent. + .ar3gent. + 'ar3gent. + ser3gent. + ter3gent. +r^^e9sur3gent. +% +1g2ha +1g2he +1g2hi +1g2ho +1g2hy +1gi +1g^^ee +1g2l +4gle. +4gles. +2glent. % mute syllable: meuglent (df) 28/02/94 + 1g2n +.sta2g3n + wa2g3n +4gne. +4gnes. +2gnent. % mute syllable: accompagnent (df) 28/02/94 +1go +1g^^f4 +1g2r +4gre. +4gres. +2grent. % mute syllable: immigrent (df) 28/02/94 +1gu +1g^^fb +g1s2 +4gue. +4gues. +% words ending with -guent (df) 22/02/94 + 2guent. +.on3guent. +'on3guent. +% +1gy +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%h +1ha +1h^^e2 +1he +1h^^e9 +1h^^e8 +1h^^ea + h^^e9mi1^^e9 + h^^e9mo1p2t +4he. +4hes. +1hi +1h^^ee +1ho +1h^^f4 +1hu +1h^^fb +1hy + hypera2 + hypere2 + hyper^^e92 + hyperi2 + hypero2 + hypers2 + hype4r1 + hyperu2 + hypo1a2 + hypo1e2 % missing from nb list + hypo1^^e92 + hypo1i2 + hypo1o2 + hypo1s2 + hypo1u2 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%i +.i4 +'i4 +.^^ee4 +'^^ee4 + i1algi + i1arthr + i1^^e82dre +% ill patterns missing from nb list + il2l + cil3l + rcil4l + ucil4l + vacil4l + gil3l + hil3l + lil3l + l3lion + mil3l + mil4let +^^e9mil4l + semil4l + rmil4l + armil5l + capil3l + papil3la + papil3le + papil3li + papil3lom + pupil3l + piril3l + thril3l + cyril3l + ibril3l + pusil3l + .stil3l +distil3l +instil3l +fritil3l +boutil3l + vanil3lin + vanil3lis + vil3l + avil4l +chevil4l + uevil4l + uvil4l + xil3l +% end of ill patterns + 1informat % missing from nb list + .in1a2 + 'in1a2 + .in2a3nit + 'in2a3nit + .in2augur + 'in2augur + .in1e2 + 'in1e2 + .in1^^e92 + 'in1^^e92 + .in2effab % missing from nb list + 'in2effab + .in2^^e93lucta + 'in2^^e93lucta + .in2^^e93narra + 'in2^^e93narra + .in2ept + 'in2ept + .in2er + 'in2er + .in2exora % missing from nb list + 'in2exora + .in1i2 + 'in1i2 + .in2i3miti + 'in2i3miti + .in2i3q + 'in2i3q + .in2i3t + 'in2i3t + .in1o2 + 'in1o2 + .in2o3cul + 'in2o3cul + .in2ond + 'in2ond + .in1s2tab + 'in1s2tab + 'inte4r3 + .intera2 + 'intera2 + .intere2 + 'intere2 + .inter^^e92 + 'inter^^e92 + .interi2 + 'interi2 + .intero2 + 'intero2 + .inte4r3 + .interu2 + 'interu2 + .inters2 + 'inters2 + .in1u2 + 'in1u2 + .in2uit + 'in2uit + .in2u3l + 'in2u3l + io1a2ct + i1oxy + i1s2tat +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%j +1j +2jk +4je. +4jes. +2jent. % mute syllable: gal^^e8jent (df) 22/02/94 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%k +1ka +1k^^e2 +1ke +1k^^e9 +1k^^e8 +1k^^ea +4ke. +4kes. +2kent. % mute syllable: jerkent (df) 22/02/94 +1k2h +4kh. +.kh4 +1ki +1k^^ee +1ko +1k^^f4 +1k2r +1ku +1k^^fb +1ky +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%l +1la +1l^^e2 +1l^^e0 + la2w3re +1le +1l^^e9 +1l^^e8 +1l^^ea +4le. +4les. +% words ending with -lent (df) 22/02/94 + 2lent. + .ta3lent. + iva3lent. +^^e9quiva4lent. + monova3lent. + polyva3lent. + re3lent. + .do3lent. + indo3lent. + inso3lent. + turbu3lent. + succu3lent. + f^^e9cu3lent. + trucu3lent. + opu3lent. + corpu3lent. + ru3lent. + sporu4lent. +% +1li +1l^^ee +1lo +1l^^f4 +l1s2t +1lu +1l^^fb +1ly +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%m +1ma +1m^^e2 + .ma2c3k + .macro1s2c + .ma2l1a2dres + .ma2l1a2dro + .ma2l1ais^^e9 + .ma2l1ap + .ma2l1a2v + .ma2l1en + .ma2l1int + .ma2l1oc + .ma2l1o2d + .ma2r1x % nb (jbb: ?) +1me +1m^^e9 +1m^^e8 +1m^^ea + .m^^e92g1oh + .m^^e92sa % missing from nb list + .m^^e93san % missing from nb list + .m^^e92s1es + .m^^e92s1i + .m^^e92s1u2s + .m^^e9ta1s2ta +4me. +4mes. +% words ending with -ment (df) 22/02/94 + ^^e22ment. + da2ment. + fa2ment. + amalga2ment. + cla2ment. + ra2ment. +temp^^e9ra3ment. + ta2ment. + testa3ment. + qua2ment. + ^^e82ment. + car^^ea2ment. + diaphrag2ment. + ryth2ment. + ai2ment. + rai3ment. + ab^^ee2ment. + ^^e9ci2ment. + vidi2ment. + subli2ment. + ^^e9li2ment. + reli2ment. + mi2ment. + ani2ment. + veni2ment. + ri2ment. + d^^e9tri3ment. + nutri3ment. + inti2ment. + esti2ment. + l2ment. + flam2ment. + gram2ment. + .gem2ment. + om2ment. + .com3ment. + ^^f42ment. + slalo2ment. + chro2ment. + to2ment. + ar2ment. + .sar3ment. + er2ment. + antifer3ment. + .ser3ment. + fir2ment. + or2ment. + as2ment. + au2ment. + ^^e9cu2ment. + fu2ment. + hu2ment. + fichu3ment. + llu2ment. + plu2ment. + bou2ment. + bru2ment. + su2ment. + tu2ment. +% +1mi +1m^^ee + .milli1am + 1m2n^^e9mo + 1m2n^^e8s + 1m2n^^e9si +1mo +1m^^f4 +1m^^f70 % final zero essential to terminate cs + .mono1a2 + .mono1e2 + .mono1^^e92 + .mono1i2 + .mono1^^ef2d^^e9 + .mono1o2 + .mono1u2 + .mono1s2 + mon2t3r^^e9al % missing from nb list +m1s2 +1mu +1m^^fb +1my + moye2n1^^e22g +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%n +1na +1n^^e2 +1ne +1n^^e9 +1n^^e8 +1n^^ea +4ne. +4nes. +% words ending with -nent (df) 22/02/94 + 2nent. % fric-tionnent - syllable muette - bg 27/12/93 + r^^e9ma3nent. + imma3nent. + perma3nent. + .^^e9mi3nent. +pr^^e9^^e9mi3nent. + pro^^e9mi3nent. + sur^^e9mi3nent. + immi3nent. + conti3nent. + perti3nent. + absti3nent. +% +1ni +1n^^ee +1no +1n^^f4 +1n^^f70 % final zero essential to terminate cs + .no2n1obs +1nu +1n^^fb + n3s2at. + n3s2ats. +n1x +1ny +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%o +.o4 +'o4 +'^^f44 +.^^f44 +%'^^f62 % mjf % deleted 3/1/94 df-bg + o2b3long + 1octet % missing from nb list + o1d2l + o1^^e82dre + o1ioni + ombud2s3 + omni1s2 + o1s2tas + o1s2tat + o1s2t^^e9ro + o1s2tim + o1s2tom + o1s2trad + o1s2tratu + o1s2triction + .oua1ou + 'oua1ou + .ovi1s2c + 'ovi1s2c + oxy1a2 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%p +1pa +1p^^e2 + pal^^e9o1^^e92 + .pa2n1a2f + .pa2n1a2m^^e9 + .pa2n1a2ra + .pa2n1is + .pa2n1o2ph + .pa2n1opt + .pa2r1a2che + .pa2r1a2ch^^e8 + .para1s2 + .pa2r3h^^e9 +1pe +1p^^e9 +1p^^e8 +1p^^ea +4pe. +4pes. +% words ending with -pent (df) 22/02/94 + 2pent. + re3pent. +.ar3pent. +'ar3pent. +ser3pent. +% + .pen2ta % pent- or penta- but never pen-ta bg 12/27/93 + per3h + p^^e92nul % p^^e92n1ul moved back 09/17/92 to JD def. + .pe4r + .per1a2 + .per1e2 + .per1^^e92 + .per1i2 + .per1o2 + .per1u2 + p^^e91r2^^e92q % 2r1 moved 09/17/92 to 1r2(it was a typo) + .p^^e9ri1os + .p^^e9ri1s2 + .p^^e9ri2s3s + .p^^e9ri2s3ta + .p^^e9ri1u2 +1p2h +.ph4 +4ph. + .phalan3s2t +4phe. +4phes. +2phent. % mute syllable: triomphent (df) 22/02/94 +ph2l +4phle. +4phles. +2phn + photo1s2 +ph2r +4phre. +4phres. +2phs +2pht + 3ph2tal^^e9 + 3ph2tis +%%%% Here is an example of a pb involving phonetic and etymologic patterns 5/94 +%%%% .phyto3ph2 % originaly, but wrong for phy-toph-thora 9/92 +%%%% .phy2topha % for -pharmacie but wrong for phyto-biol.. 5/94 +1pi +1p^^ee +1p2l +4ple. +4ples. +2plent. % mute syllable: accouplent (df) 28/02/94 + .pluri1a + 1p2n^^e9 + 1p2neu +1po +1p^^f4 + po1astre + poly1a2 + poly1e2 + poly1^^e92 + poly1^^e82 + poly1i2 + poly1o2 + poly1s2 + poly1u2 + .pon2tet % JD hypenated it asis 09/17/92, exception + .pos2t3h + .pos2t1in + .pos2t1o2 + .pos2t3r + .post1s2 +1p2r +4pre. +4pres. +2prent. % mute syllable: empourprent (df) 28/02/94 + .pr^^e91a2 + .pr^^e92a3la % missing from nb list + .pr^^e92au + .pr^^e91^^e92 + .pr^^e91e2 + .pr^^e91i2 + .pr^^e91o2 + .pr^^e91u2 + .pr^^e91s2 + .pro1^^e92 + .pro1s2c^^e9 + pro2s3tat + .prou3d2h + 1p2sych + .psycho1a2n + 1p2t^^e8r + 1p2t^^e9r +1pu + .pud1d2l +1p^^fb +1py +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%q +1q +4que. +4ques. +% words ending with -quent (df) 22/02/94 + 2quent. + ^^e93quent. + ^^e9lo3quent. +grandilo3quent. +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%r +1ra +1r^^e2 + radio1a2 % missing from nb list +1re +1r^^e9 +1r^^e8 +1r^^ea + .r^^e91a2 + .r^^e92a3le + .r^^e92a3lis + .r^^e92a3lit + .r^^e92aux + .r^^e91^^e92 + .r^^e91e2 + .r^^e92el + .r^^e92er + .r^^e92^^e8r + .r^^e91i2 + .r^^e92i3fi + .r^^e91o2 + .re1s2 + .re2s3cap + .re2s3cisi % for res-cision 09/17/92 (missing from nb) + .re2s3ciso % for res-cisoire 09/17/92(missing from nb) + .re2s3cou + .re2s3cri + .re2s3pect + .re2s3pir + .re2s3plend + .re2s3pons + .re2s3quil + .re2s3s + .re2s3t + .re3s4tab + .re3s4tag + .re3s4tand + .re3s4tat + .re3s4t^^e9n + .re3s4t^^e9r + .re3s4tim + .re3s4tip + .re3s4toc + .re3s4top + .re3s4tr + .re4s5trein + .re4s5trict + .re4s5trin + .re3s4tu + .re3s4ty + .r^^e9u2 %.r^^e91u2 % pattern rejected 12/2/92 + % (don't hyphenate as r^^e9-union nor r^^e9u-nion) + .r^^e92uss + .r^^e9tro1a2 +4re. +4res. +% words ending with -rent (df) 22/02/94 + 2rent. % es-p^^e8rent - syllable muette - bg 27/12/93 + .pa3rent. + appa3rent. +transpa3rent. + ^^e93rent. + tor3rent. + cur3rent. +% +1r2h +4rhe. +4rhes. + 2r3heur + 2r3hydr +1ri +1r^^ee +1ro +1r^^f4 +1ru +1r^^fb +1ry +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%s +1sa +1s^^e2 +.sch4 + 1s2caph + 1s2cl^^e9r + 1s2cop + 1s2ch +e2s3ch +i2s3ch^^e9 +i2s3chia +i2s3chio +4sch. +4sche. +4sches. +2schs +1se +1s^^e9 +1s^^e8 +1s^^ea + sesqui1a2 +4se. +4ses. +% words ending with -sent (df) 22/02/94 + 2sent. % massent - syllable muette - bg 27/12/93 + ab3sent. +pr^^e93sent. + .res3sent. +% +.seu2le % jbb +.sh4 +1s2h +4sh. +4she. +4shes. +2shent. % mute syllable: smashent (df) 22/02/94 +2shm + 2s3hom +2shr +2shs +1si +1s^^ee + 1s2lav + 1s2lov +1so +1s^^f4 +1s^^f70 % final zero essential to terminate cs + 1s2patia + 1s2perm + 1s2por + 1s2ph^^e8r + 1s2ph^^e9r + 1s2piel + 1s2piros + 1s2tandard + 1s2tein + st^^e9r^^e9o1s2 + 1s2tigm + 1s2tock + 1s2tomos + 1s2troph + 1s2tructu + 1s2tyle +1su +1s^^fb + .su2b1a2 + .su3b2alt + .su2b1^^e92 + .su3b2^^e93r + .su2b1in + .su2b3limin + .su2b3lin + .su2b3lu + sub1s2 + .su2b1ur + supero2 + supe4r1 + supers2 + .su2r1a2 + su3r2ah + .su3r2a3t + .su2r1e2 + .su3r2eau + .su3r2ell + .su3r2et + .su2r1^^e92 + .su2r3h + .su2r1i2m + .su2r1inf + .su2r1int + .su2r1of + .su2r1ox +1sy +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%t +1ta +1t^^e2 +1t^^e0 + tachy1a2 + tchin3t2 +1te +1t^^e9 +1t^^e8 +1t^^ea + t^^e9l^^e91e2 + t^^e9l^^e91i2 + t^^e9l^^e91o2b + t^^e9l^^e91o2p + t^^e9l^^e91s2 +4te. +4tes. +% words ending with -tent (df) 22/02/94 + 2tent. % mentent - syllable muette - bg 27/12/93 + .la3tent. + .pa3tent. + comp^^e93tent. + ^^e9ni3tent. + m^^e9con3tent. + omnipo3tent. +ventripo3tent. +^^e9quipo3tent. + impo3tent. + mit3tent. +% +.th4 +1t2h +4th. +4the. +4thes. + thermo1s2 + 2t3heur +2thl % th2l was wrong for ...ath-lon (jd said 2thl) df 12/27/93 +2thm +2thn +th2r +4thre. +4thres. +2ths +1ti +1t^^ee +1to +1t^^f4 +1t2r + tran2s1a2 + tran3s2act + tran3s2ats + tran2s3h + tran2s1o2 + tran2s3p + tran2s1u2 +4tre. +4tres. +2trent. % mute syllable: infiltrent (df) 28/02/94 + .tri1a2c + .tri1a2n + .tri1a2t + .tri1o2n + t1t2l +1tu +1t^^fb +tung2s3 +1ty +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%u +.u4 +'u4 +.^^fb4 +'^^fb4 + uni1o2v + uni1a2x + u2s3tr +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%v +1va +1v^^e2 +1ve +1v^^e9 +1v^^e8 +1v^^ea + v^^e9lo1s2ki +4ve. +4ves. +% words ending with -vent (df) 22/02/94 + 2vent. +conni3vent. + .sou3vent. +% +1vi +1v^^ee +1vo +1v^^f4 + vol2t1amp +1v2r +4vre. +4vres. +2vrent. % mute syllable: recouvrent (df) 28/02/94 +1vu +1v^^fb +1vy +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%w +1wa +1we +4we. +4wes. +2went. % mute syllable: interviewent (df) 22/02/94 +1wi +1wo +1wu +1w2r +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%x +2xent. % mute syllable: malaxent (df) 22/02/94 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%y +.y4 +'y4 + y1asth + y1s2tom + y1algi +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%z +1za +1ze +1z^^e9 +1z^^e8 +4ze. +4zes. +% words ending with -zent (df) 22/02/94 + 2zent. +privatdo3zent. +% +1zi +1zo +1zu +1zy +} +\endgroup +\endinput +%Fin du fichier f8hyph.tex +%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/obsolete/macros/ec-plain/frhyphx1.tex b/obsolete/macros/ec-plain/frhyphx1.tex new file mode 100644 index 0000000000..e3216c5c30 --- /dev/null +++ b/obsolete/macros/ec-plain/frhyphx1.tex @@ -0,0 +1,19 @@ +% frhyphx1.tex % French hyphenation exceptions provided with accent macros. +% +% Usually \hyphenation doesn't allow accent macros in its argument, just +% only characters, but french.sty and hyconfig.tex allows this. Thus this +% file can be reloaded each time you change your input encoding. The keyboard +% package do it via kbconfig.tex (and \kbencoding macro). +% +\message{frhyphex.tex french exceptions.}% +% Do NOT make any alterations to this french hyphenation exceptions list! --bg +% This WAS the official one from GUTenberg V3.0)}% 99/08/10 +% But you can +%have your private one via language.dat and \frhyphex % look at the% +%documentation... % +% Syntax corrected May 2002 by D. Taupin to avoid errors due to empty lines in +% \hyphenation specifications +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\hyphenation{GUTenberg fichier fichiers} % end of exceptions +%\endinput%%%%%%%%%%%%%%%%%%%%%% + diff --git a/obsolete/macros/ec-plain/ghyph31.tex b/obsolete/macros/ec-plain/ghyph31.tex new file mode 100644 index 0000000000..de252327ef --- /dev/null +++ b/obsolete/macros/ec-plain/ghyph31.tex @@ -0,0 +1,848 @@ +% This is `ghyph31.tex' as of 13. Feb 94. +% +% Copyright (C) 1988,1991 Rechenzentrum der Ruhr-Universitaet Bochum +% [german hyphen patterns] +% Copyright (C) 1993,1994 Bernd Raichle/DANTE e.V. +% [macros, adaption for TeX 2] +% +% General permission for use and non-profit redistribution is granted. +% For special commercial use, contact the below address. +% +% Commercial use is generally granted, if a reference copy +% - for use by the Rechenzentrum of the Ruhr-Universitaet - +% is received. +% +% +% This file contains 5719 german hyphen patterns with umlauts +% in the recommended version of September 27, 1990. +% It is an experimental version for testing the integration of +% umlauts and `es-zett', but without `c-k' and triple consonants. +% +% For use with TeX generated by +% +% Norbert Schwarz +% Rechenzentrum Ruhr-Universitaet Bochum +% Universitaetsstrasse 150 +% D-44721 Bochum, FRG +% +% Email (X.400): +% Norbert.Schwarz@RUBA.RZ.RUHR-UNI-BOCHUM.DBP.DE +% +% +% Adaption of these patterns for TeX, Version 2.x and 3.x and +% all fonts in `Cork'/EC/DC and/or CM encoding by +% +% Bernd Raichle +% Stettener Str. 73 +% D-73732 Esslingen, FRG +% Email: raichle@Informatik.Uni-Stuttgart.DE +% +% +% Error reports in case of UNCHANGED versions to +% +% DANTE e.V., Koordinator `german.sty' +% Postfach 10 18 40 +% D-69008 Heidelberg, FRG +% Email: german@Dante.DE +% +% or one of the addresses given above. +% +% Changes: +% 1990-09-27 First version of `ghyphen3.tex' (Norbert Schwarz) +% 1991-02-13 PC umlauts changed to ^^xx (Norbert Schwarz) +% 1993-08-27 Umlauts/\ss changed to "a/\3 macros, added macro +% definitions and additional logic to select correct +% patterns/encoding (Bernd Raichle) +% 1994-02-13 Release of `ghyph31.tex' +% +% +% For more informations see the additional documentation +% at the end of this file. +% +% ----------------------------------------------------------------- +% +\message{German Hyphenation Patterns `ghyphen' Version 3.1a <94/02/13>} +% +\begingroup +\ifnum 0\ifx\inputlineno\undefined \else + \ifnum\inputlineno<1 \else 1\fi\fi<1 + \let\x=\endgroup +\else + \def\x{\endgroup +% +% The following commands ensure correct \catcodes, \lccodes and +% \uccodes if your TeX implementations uses these character codes. +% +\catcode"E4=11 \catcode"C4=11 % \"a \"A +\catcode"F6=11 \catcode"D6=11 % \"o \"O +\catcode"FC=11 \catcode"DC=11 % \"u \"U +\catcode"FF=11 \catcode"DF=11 % \ss SS +% +\lccode"C4="E4 \uccode"C4="C4 \lccode"E4="E4 \uccode"E4="C4 +\lccode"D6="F6 \uccode"D6="D6 \lccode"F6="F6 \uccode"F6="D6 +\lccode"DC="FC \uccode"DC="DC \lccode"FC="FC \uccode"FC="DC +\lccode"DF="FF \uccode"DF="DF \lccode"FF="FF \uccode"FF="DF +% +} +\fi +% Now execute the changes of the above \*codes for TeX 3.x +\x + + +% +% Next we define some commands, which are used inside the patterns. +% To keep them local, we enclose the rest of the file in a group +% (The \patterns command globally changes the hyphenation trie!). +% +\begingroup +% +% Because we use ^^e4, ^^f6, ... in the following definition, +% we have to ensure that the catcodes of ^^e and ^^f are ok +% for TeX 2. (The macro is not used for TeX 2.) +\catcode"0E=12 \catcode"0F=12 +% +% And we have to change the \lccode of ^^Y to make sure that +% we can include this character in the hyphenation patterns. +\catcode`\^^Y=11 \lccode`\^^Y=`\^^Y +% +% Define a simple " macro... +\catcode`\"=13 +\def"#1{\ifx#1a^^e4\else \ifx#1o^^f6\else + \ifx#1u^^fc\else + \errmessage{Hyphenation pattern file corrupted!}% + \fi\fi\fi} +% +% ... and define a macro to allow the use of this file +% with TeX 2 and TeX 3. +\ifnum 0\ifx\inputlineno\undefined \else + \ifnum\inputlineno<1 \else 1\fi\fi<1 + % for TeX 2: + % ignore the patterns with umlauts + \def\n#1{} + % ignore the duplicated patterns with \ss + \def\c#1{} + % define \3 to be code ^^Y + \def\3{^^Y} +\else + % for TeX 3: + % patterns with umlauts are ok + \def\n#1{#1} + % duplicated patterns are ok (for CM fonts) + \def\c#1{#1} + % >>>>>> UNCOMMENT the next line, if you do not want + % >>>>>> to use fonts with CM layout + %\def\c#1{} + % define \3 to be code `\^^ff (\ss in DC/EC font layout) + % define \9 to be code `\^^Y (\ss in CM font layout) + \def\3{^^ff} + \def\9{^^Y} +\fi +% +% +\patterns{% +.aa6l .ab3a4s .ab3ei .abi2 .ab3it .ab1l .ab1r .ab3u .ad3o4r .alti6 +.ana3c .an5alg .an1e .ang8s .an1s .ap1p .ar6sc .ar6ta .ar6tei .as2z +.au2f1 .au2s3 .be5erb .be3na .ber6t5r .bie6r5 .bim6s5t .brot3 .bru6s +.ch6 .che6f5 .da8c .da2r .dar5in .dar5u .den6ka .de5r6en .des6pe +.de8spo .de3sz .dia3s4 .dien4 .dy2s1 .ehren5 .eine6 .ei6n5eh .ei8nen +.ein5sa .en6der .en6d5r .en3k4 .en8ta8 .en8tei .en4t3r .epo1 .er6ban +.er6b5ei .er6bla .er6d5um .er3ei .er5er .er3in .er3o4b .erwi5s .es1p +.es8t .ex1a2 .ex3em .fal6sc .fe6st5a .flu4g3 .furch8 .ga6ner .ge3n4a +\n{.ge5r"o} .ges6 .halb5 .halbe6 .hal6br .haup4 .hau4t .heima6 .he4r3e +.her6za .he5x .hin3 .hir8sc .ho4c .hu3sa .hy5o .ibe5 .ima6ge .in1 +.ini6 .is5chi .jagd5 .kal6k5o .ka6ph .ki4e .kop6f3 .kraf6 \n{.k"u5ra} +.lab6br .liie6 .lo6s5k \n{.l"o4s3t} .ma5d .mi2t1 .no6th .no6top +.obe8ri .ob1l .obs2 .ob6st5e .or3c .ort6s5e .ost3a .oste8r .pe4re +.pe3ts .ph6 .po8str .rau4m3 .re5an .ro8q .ru5the \n{.r"u5be} +\n{.r"u8stet} .sch8 .se6e .se5n6h .se5ra .si2e .spi6ke .st4 .sy2n +.tages5 .tan6kl .ta8th .te6e .te8str .to6der .to8nin .to6we .um1 +.umpf4 .un1 .une6 .unge5n .ur1c .ur5en .ve6rin .vora8 .wah6l5 .we8ges +.wo6r .wor3a .wun4s .zi4e .zuch8 \n{."ande8re} \n{."och8} aa1c aa2gr +aal5e aa6r5a a5arti aa2s1t aat2s 6aba ab3art 1abdr 6abel aben6dr +ab5erk ab5err ab5esse 1abf 1abg \n{1abh"a} ab1ir 1abko a1bl ab1la +5ablag a6bla\3 \c{a6bla\9} ab4ler ab1lu \n{a8bl"a} \n{5a6bl"o} abma5c +1abn ab1ra ab1re 5a6brec ab1ro ab1s ab8sk abs2z 3abtei ab1ur 1abw +5abze 5abzu \n{ab1"an} \n{ab"au8} a4ce. a5chal ach5art ach5au a1che +a8chent ach6er. a6ch5erf a1chi ach1l ach3m ach5n a1cho ach3re a1chu +ach1w a1chy \n{ach5"af} ack1o acks6t ack5sta a1d 8ad. a6d5ac ad3ant +ad8ar 5addi a8dein ade5o8 adi5en 1adj 1adle ad1op a2dre 3adres adt1 +1adv \n{a6d"a} a1e2d ae1r a1er. 1aero 8afa a3fal af1an a5far a5fat +af1au a6fentl a2f1ex af1fr af5rau af1re 1afri af6tent af6tra aft5re +a6f5um \n{8af"a} ag5abe 5a4gent ag8er ages5e 1aggr ag5las ag1lo a1gn +ag2ne 1agog a6g5und a1ha a1he ah5ein a4h3erh a1hi ahl1a ah1le ah4m3ar +ahn1a a5ho ahra6 ahr5ab ah1re ah8rei ahren8s ahre4s3 ahr8ti ah1ru a1hu +\n{ah8"o} ai3d2s ai1e aif6 a3inse ai4re. a5isch. ais8e a3ismu ais6n +aiso6 a1j 1akad a4kade a1ke a1ki 1akko 5akro1 a5lal al5ans 3al8arm +al8beb al8berw alb5la 3album al1c a1le a6l5e6be a4l3ein a8lel a8lerb +a8lerh a6lert 5a6l5eth 1algi al4gli al3int al4lab al8lan al4l3ar +alle3g a1lo a4l5ob al6schm al4the altist5 al4t3re 8a1lu alu5i a6lur +alu3ta \n{a1l"a} a6mate 8ame. 5a6meise am6m5ei am6mum am2n ampf3a +am6schw am2ta a1mu \n{a1m"a} a3nac a1nad anadi5e an3ako an3alp 3analy +an3ame an3ara a1nas an5asti a1nat anat5s an8dent ande4s3 an1ec an5eis +an1e2k 4aner. a6n5erd a8nerf a6n5erke 1anfa 5anfert \n{1anf"a} 3angab +5angebo an3gli ang6lis an2gn 3angri ang5t6 \n{5anh"a} ani5g ani4ka +an5i8on an1kl an6kno an4kro 1anl anma5c anmar4 3annah anne4s3 a1no +5a6n1o2d 5a6n3oma 5a6nord 1anr an1sa 5anschl an4soz an1st 5anstal +an1s2z 5antenn an1th \n{5anw"a} a5ny an4z3ed 5anzeig 5anzieh 3anzug +\n{an1"a} \n{5an"as} \n{a1n"o} \n{an"o8d} a1os a1pa 3apfel a2ph1t +\n{aph5"a6} a1pi 8apl apo1c apo1s a6poste a6poth 1appa ap1pr a1pr +\n{a5p"a} \n{a3p"u} a1ra a4r3af ar3all 3arbei 2arbt ar1c 2a1re ar3ein +ar2gl 2a1ri ari5es ar8kers ar6les ar4nan ar5o6ch ar1o2d a1rol ar3ony +a8ror a3ros ar5ox ar6schl 8artei ar6t5ri a1ru a1ry 1arzt arz1w +\n{ar8z"a} \n{ar"a8m} \n{ar"o6} \n{ar5"om} \n{ar1"u2} a1sa a6schec +asch5l asch3m a6schn a3s4hi as1pa asp5l a8steb as5tev 1asth a6stoc +a1str ast3re 8a1ta ata5c ata3la a6tapf ata5pl a1te a6teli aten5a +ate5ran 6atf 6atg a1th at3hal 1athl 2a1ti 5atlant 3atlas 8atmus 6atn +a1to a6t5ops ato6ra a6t5ort. 4a1tr a6t5ru at2t1h \n{at5t6h"a} 6a1tu +atz1w \n{a1t"a} \n{a1t"u} au1a au6bre auch3a au1e aue4l 5aufent +\n{3auff"u} 3aufga 1aufn auf1t 3auftr 1aufw 3auge. au4kle aule8s 6aum +au8mar aum5p 1ausb 3ausd 1ausf 1ausg au8sin 3auss au4sta 1ausw 1ausz +aut5eng au1th 1auto au\3e8 \c{au\9e8} a1v ave5r6a aver6i a1w a6wes a1x +a2xia a6xio a1ya a1z azi5er. 8a\3 \c{8a\9} 1ba 8ba8del ba1la ba1na +ban6k5r ba5ot bardi6n ba1ro basten6 bau3sp 2b1b bb6le b2bli 2b1c 2b1d +1be be1a be8at. be1ch 8becht 8becke. be5el be1en bee8rei be5eta bef2 +8beff be1g2 \n{beh"o8} bei1s 6b5eisen bei3tr b8el bel8o belu3t be3nac +bend6o be6ners be6nerw be4nor ben4se6 bens5el \n{be1n"a} \n{be1n"u} +be1o2 b8er. be1ra be8rac ber8gab. ber1r \n{be1r"u} bes8c bes5erh +bes2p be5tha bet5sc be1un be1ur 8bex be6zwec 2b1f8 bfe6st5e 2b1g2 +bga2s5 bge1 2b1h bhole6 1bi bi1bl b6ie bi1el bi1la \n{bil"a5} bi1na +bi4nok bi5str bi6stu bi5tr bit4t5r b1j 2b1k2 \n{bk"u6} bl8 b6la. +6b1lad 6blag 8blam 1blat b8latt 3blau. b6lav 3ble. b1leb b1led +8b1leg 8b1leh 8bleid 8bleih 6b3lein blei3s ble4m3o 4blich b4lind +8bling b2lio 5blit b4litz b1loh 8b1los 1blu 5blum 2blun blut3a blut5sc +\n{3bl"a} \n{bl"as5c} \n{5bl"o} \n{3bl"u} \n{bl"u8sc} 2b1m 2b1n 1bo +bo1ch bo5d6s boe5 8boff 8bonk bo1ra b1ort 2b1p2 b1q 1br brail6 brast8 +bre4a b5red 8bref 8b5riem b6riga bro1s b1rup b2ruz \n{8br"oh} +\n{br"os5c} 8bs b1sa b8sang b2s1ar b1sc bs3erl bs3erz b8sof b1s2p +bst1h b3stru \n{b5st"a} b6sun 2b1t b2t1h 1bu bu1ie bul6k b8ure bu6sin +6b1v 2b1w 1by1 by6te. 8b1z bzi1s \n{1b"a} \n{b5"a6s5} \n{1b"u} +\n{b6"u5bere} \n{b"uge6} \n{b"ugel5e} \n{b"ur6sc} 1ca cag6 ca5la ca6re +ca5y c1c 1ce celi4c celich5 ce1ro c8h 2ch. 1chae ch1ah ch3akt cha6mer +8chanz 5chara 3chari 5chato 6chb 1chef 6chei ch3eil ch3eis 6cherkl +6chf 4chh 5chiad 5chias 6chins 8chj chl6 5chlor 6ch2m 2chn6 ch8nie +5cho. 8chob choi8d 6chp ch3ren ch6res \n{ch3r"u} 2chs 2cht cht5ha +cht3hi 5chthon ch6tin 6chuh chu4la 6ch3unt chut6t 8chw 1ci ci5tr c2k +2ck. ck1ei 4ckh ck3l ck3n ck5o8f ck1r 2cks ck5stra ck6s5u c2l 1c8o +con6ne 8corb cos6t c3q 1c6r 8c1t 1cu 1cy \n{5c"a1} \n{c"o5} 1da. +8daas 2dabg 8dabr 6dabt 6dabw 1dac da2gr 6d5alk 8d5amt dan6ce. +dani5er dan8ker 2danl danla6 6dans 8danzi 6danzu d1ap da2r1a8 2d1arb +d3arc dar6men 4d3art 8darz 1dat 8datm 2d1auf 2d1aus 2d1b 2d1c 2d1d +d5de d3d2h \n{dd"amme8} 1de 2deal de5an de3cha de1e defe6 6deff 2d1ehr +5d4eic de5isc de8lar del6s5e del6spr de4mag de8mun de8nep dene6r +8denge. 8dengen de5o6d 2deol de5ram 8derdb der5ein de1ro der1r d8ers +der5um de4s3am de4s3an de4sau de6sil de4sin de8sor de4spr de2su 8deul +de5us. 2d1f df2l 2d1g 2d1h 1di dia5c di5ara dice5 di3chr di5ena di1gn +di1la dil8s di1na 8dind 6dinf 4d3inh 2d1ins di5o6d di3p4t di8sen dis1p +di5s8per di6s5to dis5tra di8tan di8tin d1j 6dje 2dju 2d1k 2d1l 2d1m +2d1n6 dni6 dnje6 1do 6d5obe do6berf 6d5ony do3ran 6dord 2d1org dor4t3h +do6ste 6doth dott8e 2d1p d5q dr4 1drah 8drak d5rand 6dre. 4drech +d6reck 4d3reg 8d3reic d5reife 8drem 8d1ren 2drer 8dres. 6d5rh 1dria +d1ric 8drind droi6 dro5x 1dru 8drut \n{dr"os5c} \n{1dr"u} \n{dr"u5b} +\n{dr"u8sc} 2ds d1sa d6san dsat6 d1sc 5d6scha. 5dschik dse8e d8serg +8dsl d1sp d4spak ds2po \n{d8sp"a} d1st \n{d1s"u} 2dt d1ta d1te d1ti +d1to dt1s6 d1tu \n{d5t"a} 1du du5als du1b6 du1e duf4t3r 4d3uh du5ie +8duml 8dumw 2d1und du8ni 6d5unt dur2c durch3 6durl 6dursa 8durt du1s +du8schr 2d1v 2d1w dwa8l 2d1z \n{1d"a} \n{6d"ah} \n{8d"and} \n{d"a6r} +\n{d"o8bl} \n{d5"ol} \n{d"or6fl} \n{d"o8sc} \n{d5"o4st} \n{d"os3te} +\n{1d"u} ea4ben e1ac e1ah e1akt e1al. e5alf e1alg e5a8lin e1alk e1all +e5alp e1alt e5alw e1am e1and ea6nim e1ar. e5arf e1ark e5arm e3art +e5at. e6ate e6a5t6l e8ats e5att e6au. e1aus e1b e6b5am ebens5e +eb4lie eb4ser eb4s3in e1che e8cherz e1chi ech3m 8ech3n ech1r ech8send +ech4su e1chu eck5an e5cl e1d ee5a ee3e ee5g e1ei ee5isc eei4s3t +ee6lend e1ell \n{ee5l"o} e1erd ee3r4e ee8reng eere6s5 \n{ee5r"a} +ee6tat e1ex e1f e6fau e8fe8b 3effek ef3rom ege6ra eglo6si 1egy e1ha +e6h5ach eh5ans e6hap eh5auf e1he e1hi ehl3a eh1le ehl5ein eh1mu ehn5ec +e1ho ehr1a eh1re ehre6n eh1ri eh1ru ehr5um e1hu eh1w e1hy \n{e1h"a} +\n{e1h"o} \n{e3h"ut} ei1a eia6s ei6bar eich3a eich5r ei4dar ei6d5ei +ei8derf ei3d4sc ei1e 8eifen 3eifri 1eign eil1d ei6mab ei8mag ein1a4 +ei8nat ei8nerh ei8ness ei6nete ein1g e8ini ein1k ei6n5od ei8nok ei4nor +\n{e3ins"a} ei1o e1irr ei5ru ei8sab ei5schn ei6s5ent ei8sol ei4t3al +eit3ar eit1h ei6thi ei8tho eit8samt ei6t5um e1j 1ekd e1ke e1ki e1k2l +e1kn ekni4 e1la e2l1al 6elan e6lanf e8lanl e6l5ans el3arb el3arm +e6l3art 5e6lasti e6lauge elbst5a e1le 6elef ele6h e6l5ehe e8leif +e6l5einh 1elek e8lel 3eleme e6lemen e6lente el5epi e4l3err e6l5ersc +elf2l elg2 e6l5ins ell8er 4e1lo e4l3ofe el8soh el8tent 5eltern e1lu +elut2 \n{e1l"a} \n{e1l"u} em8dei em8meis 4emo emo5s 1emp1f 1empt 1emto +e1mu emurk4 emurks5 \n{e1m"a} en5a6ben en5achs en5ack e1nad en5af +en5all en3alt en1am en3an. en3ant en3anz en1a6p en1ar en1a6s 6e1nat +en3auf en3aus en2ce enda6l end5erf end5erg en8dess 4ene. en5eck +e8neff e6n5ehr e6n5eim en3eis 6enem. 6enen e4nent 4ener. e8nerd +e6n3erf e4nerg 5energi e6n5erla en5ers e6nerst en5erw 6enes e6n5ess +e2nex en3glo 2eni enni6s5 ennos4 enns8 e1no e6nober eno8f en5opf +e4n3ord en8sers ens8kl en1sp ens6por en5t6ag enta5go en8terbu en6tid +3entla ent5ric 5entwic 5entwu 1entz enu5i e3ny en8zan \n{en1"of} +\n{e1n"os} \n{e1n"ug} eo1c e5o6fe e5okk e1on. e3onf e5onk e5onl e5onr +e5opf e5ops e5or. e1ord e1org eo5r6h eo1t e1pa e8pee e6p5e6g ep5ent +e1p2f e1pi 5epid e6pidem e1pl 5epos e6pos. ep4p3a e1pr \n{e1p"a} e1q +e1ra. er5aal 8eraba e5rabel er5a6ben e5rabi er3abs er3ach era5e +era5k6l er3all er3amt e3rand e3rane er3ans e5ranz. e1rap er3arc +e3rari er3a6si e1rat erat3s er3auf e3raum 3erbse er1c e1re 4e5re. +er3eck er5egg er5e2h 2erei e3rei. e8reine er5einr 6eren. e4r3enm +4erer. e6r5erm er5ero er5erst e4r3erz er3ess \n{5erf"ul} er8gan. +5ergebn er2g5h \n{5erg"anz} \n{5erh"ohu} 2e1ri eri5ak e6r5iat e4r3ind +e6r5i6n5i6 er5ins e6r5int er5itio er1kl \n{3erkl"a} \n{5erl"os.} +ermen6s er6nab 3ernst 6e1ro. e1rod er1o2f e1rog 6e3roi ero8ide e3rol +e1rom e1ron e3rop8 e2r1or e1ros e1rot er5ox ersch4 5erstat er6t5ein +er2t1h er5t6her 2e1ru eruf4s3 e4r3uhr er3ums e5rus 5erwerb e1ry er5zwa +er3zwu \n{er"a8m} \n{er5"as} \n{er"o8} \n{e3r"os.} \n{e6r1"u2b} e1sa +esa8b e8sap e6s5a6v e1sc esch4l ese1a es5ebe eserve5 e8sh es5ill +es3int es4kop e2sl eso8b e1sp espei6s5 es2po es2pu 5essenz e6stabs +e6staf e6st5ak est3ar e8stob e1str est5res es3ur e2sz \n{e1s"u} e1ta +et8ag etari5e eta8ta e1te eten6te et5hal e5thel e1ti 1etn e1to e1tr +et3rec e8tscha et8se et6tei et2th et2t1r e1tu etu1s et8zent et8zw +\n{e1t"a} \n{e1t"o} \n{e1t"u} eu1a2 eu1e eue8rei eu5fe euin5 euk2 +e1um. eu6nio e5unter eu1o6 eu5p 3europ eu1sp eu5str eu8zo e1v eval6s +eve5r6en ever4i e1w e2wig ex1or 1exp 1extr ey3er. e1z \n{e1"a2} +\n{e5"o8} \n{e1"u} e8\3es \c{e8\9es} fa6ch5i fade8 fa6del fa5el. +fal6lo falt8e fa1na fan4gr 6fanl 6fap far6ba far4bl far6r5a 2f1art +fa1sc fau8str fa3y 2f1b2 6f1c 2f1d 1fe 2f1eck fe6dr feh6lei f6eim +8feins f5eis fel5en 8feltern 8femp fe5rant 4ferd. ferri8 fe8stof +fe6str fe6stum fe8tag fet6ta fex1 2ff f1fa f6f5arm f5fe ffe5in ffe6la +ffe8ler ff1f f1fla ff3lei ff4lie ff8sa ff6s5ta 2f1g2 fgewen6 4f1h 1fi +fid4 fi3ds fieb4 fi1la fi8lei fil4m5a f8in. fi1na 8finf fi8scho fi6u +6f1j 2f1k2 f8lanz fl8e 4f3lein 8flib 4fling f2lix 6f3lon 5flop 1flor +\n{5f8l"ac} \n{3fl"ot} 2f1m 2f1n 1fo foh1 f2on fo6na 2f1op fo5ra +for8mei for8str for8th for6t5r fo5ru 6f5otte 2f1p8 f1q fr6 f5ram +1f8ran f8ra\3 \c{f8ra\9} f8re. frei1 5frei. f3reic f3rest f1rib +8f1ric 6frig 1fris fro8na \n{fr"as5t} 2fs f1sc f2s1er f5str +\n{fs3t"at} 2ft f1tak f1te ft5e6h ftere6 ft1h f1ti f5to f1tr ft5rad +ft1sc ft2so f1tu ftwi3d4 ft1z 1fu 6f5ums 6funf fun4ka fu8\3end +\c{fu8\9end} 6f1v 2f1w 2f1z \n{1f"a} \n{f"a1c} \n{8f"arm} \n{6f"aug} +\n{f"a8\3} \n{\c{f"a8\9}} \n{f"ode3} \n{8f"of} \n{3f"or} \n{1f"u} +\n{f"un4f3u} 1ga ga6bl 6gabw 8gabz g3a4der ga8ho ga5isc 4gak ga1la +6g5amt ga1na gan5erb gan6g5a ga5nj 6ganl 8gansc 6garb 2g1arc 2g1arm +ga5ro 6g3arti ga8sa ga8sc ga6stre 2g1atm 6g5auf gau5fr g5aus 2g1b g5c +6gd g1da 1ge ge1a2 ge6an ge8at. ge1e2 ge6es gef2 8geff ge1g2l ge1im +4g3eise geist5r gel8bra gelt8s \n{ge5l"o} ge8nin gen3k 6g5entf +\n{ge3n"a} ge1or ge1ra ge6rab ger8au \n{8gerh"o} ger8ins ge1ro 6g5erz. +\n{ge1r"a} \n{ge1r"u} ge1s ges2p ge5unt 4g3ex3 2g1f8 2g1g g1ha 6g1hei +5ghel. g5henn 6g1hi g1ho 1ghr \n{g1h"o} 1gi gi5la gi8me. gi1na +4g3ins gi3str g1j 2g1k 8gl. 1glad g5lag glan4z3 1glas 6glass 5glaub +g3lauf 1gle. g5leb 3gleic g3lein 5gleis 1glem 2gler 8g3leu gli8a +g2lie 3glied 1g2lik 1g2lim g6lio 1gloa 5glom 1glon 1glop g1los g4loss +g5luf 1g2ly \n{1gl"u} 2g1m gn8 6gn. 1gna 8gnach 2gnah g1nas g8neu +g2nie g3nis 1gno 8gnot 1go goe1 8gof 2gog 5gogr 6g5oh goni5e 6gonist +go1ra 8gord 2g1p2 g1q 1gr4 g5rahm gra8m gra4s3t 6g1rec gre6ge 4g3reic +g5reit 8grenn gri4e g5riem 5grif 2grig g5ring 6groh 2grot gro6\3 +\c{gro6\9} 4grut 2gs gs1ab g5sah gs1ak gs1an gs8and gs1ar gs1au g1sc +gs1ef g5seil gs5ein g2s1er gs1in g2s1o gso2r gs1pr g2s1u 2g1t g3te +g2t1h 1gu gu5as gu2e 2gue. 6gued 4g3uh 8gums 6g5unt gu1s gut3h gu2tu +4g1v 2g1w gy1n g1z \n{1g"a} \n{8g"a8m} \n{6g"arm} \n{1g"o} \n{1g"u} +\n{6g"ub} 1haa hab8r ha8del hade4n 8hae ha5el. haf6tr 2hal. ha1la +hal4b5a 6hale 8han. ha1na han6dr han6ge. 2hani h5anth 6hanz 6harb +h3arbe h3arme ha5ro ha2t1h h1atm hau6san ha8\3 \c{ha8\9} h1b2 h1c h1d +he2bl he3cho h3echt he5d6s 5heft h5e6he. hei8ds h1eif 2hein he3ism +he5ist. heit8s3 hek6ta hel8lau 8helt he6mer 1hemm 6h1emp hen5end +hen5klo hen6tri he2nu 8heo he8q her3ab he5rak her3an 4herap her3au +h3erbi he1ro he8ro8b he4r3um her6z5er he4spe he1st heta6 het5am he5th +heu3sc he1xa hey5e h1f2 h1g hgol8 h1h h1iat hie6r5i hi5kt hil1a2 +hil4fr hi5nak hin4ta hi2nu hi5ob hirn5e hir6ner hi1sp hi1th hi5tr +5hitz h1j h6jo h1k2 hlabb4 hla4ga hla6gr h5lai hl8am h1las h1la\3 +\c{h1la\9} hl1c h1led h3lein h5ler. h2lif h2lim h8linf hl5int h2lip +h2lit h4lor h3lose \n{h1l"as} hme5e h2nee h2nei hn3eig h2nel hne8n +hne4p3f hn8erz h6netz h2nip h2nit h1nol hn5sp h2nuc h2nud h2nul hoch1 +1hoh hoh8lei 2hoi ho4l3ar 1holz h2on ho1ra 6horg 5horn. ho3sl hos1p +ho4spi h1p hpi6 h1q 6hr h1rai h8rank h5raum hr1c hrcre8 h1red h3reg +h8rei. h4r3erb h8rert hrg2 h1ric hr5ins h2rom hr6t5erl hr2t1h hr6t5ra +hr8tri h6rum hr1z hs3ach h6s5amt h1sc h6s5ec h6s5erl hs8erle h4sob +h1sp h8spa\3 \c{h8spa\9} h8spel hs6po h4spun h1str h4s3tum hs3und +\n{h1s"u} h5ta. h5tab ht3ac ht1ak ht3ang h5tanz ht1ar ht1at h5taub +h1te h2t1ec ht3eff ht3ehe h4t3eif h8teim h4t3ein ht3eis h6temp h8tentf +hte8ren \n{h6terf"u} h8tergr h4t3erh h6t5ersc h8terst h8tese h8tess +h2t1eu h4t3ex ht1he ht5hu h1ti ht5rak hts3ah ht1sc ht6sex ht8sk ht8so +h1tu htz8 \n{h5t"um} hub5l hu6b5r huh1l h5uhr. huld5a6 hu8lent +\n{hu8l"a} h5up. h1v h5weib h3weis h1z \n{h"a8kl} \n{h"al8s} +\n{h"ama8tu8} \n{h"a8sche.} \n{h"at1s} \n{h"au4s3c} \n{2h"o.} +\n{2h"oe} \n{8h"oi} \n{h"o6s} \n{h"os5c} \n{h"uhne6} \n{h"ul4s3t} +\n{h"utte8re} i5adn i1af i5ak. i1al. i1al1a i1alb i1ald i5alei i1alf +i1alg i3alh i1alk i1all i1alp i1alr i1als i1alt i1alv i5alw i3alz +i1an. ia5na i3and ian8e ia8ne8b i1ang i3ank i5ann i1ant i1anz i6apo +i1ar. ia6rab i5arr i1as. i1asm i1ass i5ast. i1at. i5ats i1au i5azz +i6b5eig i6b5eis ib2le i4blis i6brig i6b5unt \n{i6b"ub} i1che ich5ei +i6cherb i1chi ich5ins ich1l ich3m ich1n i1cho icht5an icht3r i1chu +ich1w ick6s5te ic5l i1d id3arm 3ideal ide8na 3ideol \n{ide5r"o} i6diot +id5rec id1t ie1a ie6b5ar iebe4s3 ie2bl ieb1r ie8bra ie4bre \n{ie8b"a} +ie2dr ie1e8 ie6f5ad ief5f ie2f1l ie4fro ief1t i1ei ie4l3ec ie8lei +ie4lek i3ell i1en. i1end ien6e i3enf i5enn ien6ne. i1enp i1enr +i5ensa ien8stal i5env i1enz ie5o ier3a4b ie4rap i2ere ie4rec ie6r5ein +ie6r5eis ier8er i3ern. ie8rum ie8rund ie6s5che ie6tau ie8tert ie5the +ie6t5ri i1ett ie5un iex5 2if i1fa if5ang i6fau if1fr if5lac i5f6lie +i1fre ift5a if6t5r ig3art 2ige i8gess ig5he i5gla ig2ni i5go ig3rot +ig3s2p i1ha i8ham i8hans i1he i1hi ih1n ih1r i1hu i8hum ih1w 8i1i ii2s +ii2t i1j i1k i6kak i8kerz i6kes ik4ler i6k5unt 2il i5lac i1lag il3ans +i5las i1lau il6auf i1le ile8h i8lel il2fl il3ipp il6l5enn i1lo ilt8e +i1lu \n{i1l"a} i8mart imb2 i8mele i8mid imme6l5a i1mu \n{i1m"a} +\n{i5m"o} ina5he i1nat in1au inau8s 8ind. in4d3an 5index ind2r 3indus +i5nec i2n1ei i8nerw 3infek 1info 5ingeni ing5s6o 5inhab ini5er. 5inj +\n{in8k"at} in8nan i1no inoi8d in3o4ku in5sau in1sp 5inspe 5instit +5instru ins4ze 5intere 5interv in3the in5t2r i5ny \n{in"a2} \n{i1n"ar} +\n{in1"as} \n{in"o8} \n{in5"od} \n{i1n"os} 2io io1a8 io1c iode4 io2di +ioi8 i1ol. i1om. i1on. i5onb ion2s1 i1ont i5ops i5o8pt i1or. +i3oral io3rat i5orc i1os. i1ot. i1o8x 2ip i1pa i1pi i1p2l i1pr i1q +i1ra ir6bl i1re i1ri ir8me8d ir2m1o2 ir8nak i1ro ir5rho ir6schl +ir6sch5r i5rus i5ry \n{i5r"a} i1sa i8samt i6sar i2s1au i8scheh i8schei +isch5m isch3r \n{isch"a8} is8ele ise3ra i4s3erh is3err isi6de i8sind +is4kop ison5e is6por i8s5tum i5sty \n{i5s"o} i1ta it5ab. i2t1a2m +i8tax i1te i8tersc i1thi i1tho i5thr \n{it8h"a} i1ti i8ti8d iti6kl +itmen4 i1to i8tof it3ran it3rau i1tri itri5o it1sc it2se it5spa it8tru +i1tu it6z5erg it6z1w \n{i1t"a} \n{it"a6r5e} \n{it"at2} \n{it"ats5} +\n{i1t"u} i1u iu6r 2i1v i6vad iva8tin i8vei i6v5ene i8verh i2vob i8vur +i1w iwi2 i5xa i1xe i1z ize8n i8zir i6z5w \n{i"a8m} \n{i1"a6r} +\n{i5"at.} \n{i5"av} \n{i1"o8} \n{i"u8} i6\35ers \c{i6\95ers} ja5la +je2t3r 6jm 5jo jo5as jo1ra jou6l ju5cha jugen4 jugend5 jung5s6 ju1s +\n{3j"a} 1ka 8kachs 8kakz ka1la kal5d kam5t ka1na 2kanl 8kapf ka6pl +ka5r6a 6k3arbe ka1ro kar6p5f 4k3arti 8karz \n{ka1r"a} kasi5e ka6teb +kat8ta kauf6s kau3t2 2k1b 2k1c 4k1d kehr6s kehrs5a 8keic 2k1eig 6k5ein +6k5eis ke6lar ke8leis ke8lo 8kemp k5ente. k3entf 8k5ents 6kentz ke1ra +k5erlau 2k1f8 2k1g 2k1h ki5fl 8kik king6s5 6kinh ki5os ki5sp ki5th +\n{8ki8"o} 2k1k2 kl8 1kla 8klac k5lager kle4br k3leib 3kleid kle5isc +4k3leit k3lek 6k5ler. 5klet 2klic 8klig k2lim k2lin 5klip 5klop k3lor +\n{1kl"a} 2k1m kmani5e kn8 6kner k2ni \n{kn"a8} 1k2o ko1a2 ko6de. +ko1i koi8t ko6min ko1op ko1or ko6pht ko3ra kor6d5er ko5ru ko5t6sc k3ou +3kow 6k5ox 2k1p2 k1q 1kr8 4k3rad 2k1rec 4k3reic kre5ie 2krib 6krig +2krip 6kroba 2ks k1sa k6sab ksal8s k8samt k6san k1sc k2s1ex k5spat +k5spe k8spil ks6por k1spr kst8 k2s1uf 2k1t kta8l kt5a6re k8tein kte8re +k2t1h k8tinf kt3rec kt1s 1ku ku1ch kuck8 k3uhr ku5ie kum2s1 kunfts5 +kun2s kunst3 ku8rau ku4ro kurz1 ku1st 4kusti ku1ta ku8\3 \c{ku8\9} +6k1v 2k1w ky5n 2k1z \n{1k"a} \n{k"a4m} \n{4k3"ami} \n{k"ase5} \n{1k"o} +\n{k"o1c} \n{k"o1s} \n{1k"u} \n{k"u1c} \n{k"ur6sc} \n{k"u1s} 1la. +8labf 8labh lab2r 2l1abs lach3r la8dr 5ladu 8ladv 6laff laf5t la2gn +5laken 8lamb la6mer 5lampe. 2l1amt la1na 1land lan4d3a lan4d3r lan4gr +8lanme 6lann 8lanw \n{6lan"a} 8lappa lap8pl lap6pr l8ar. la5ra lar4af +la8rag la8ran la6r5a6s l3arbe la8rei 6larm. la8sa la1sc la8sta lat8i +6l5atm 4lauss 4lauto 1law 2lb l8bab l8bauf l8bede l4b3ins l5blo +lbst5an lbst3e 8lc l1che l8chert l1chi lch3m l5cho lch5w 6ld l4d3ei +ld1re \n{l6d"ub} le2bl le8bre lecht6s5 led2r 6leff le4gas 1lehr lei6br +le8inf 8leinn 5leistu 4lektr le6l5ers lemo2 8lemp l8en. 8lends +6lendun le8nend len8erw 6l5ents 4l3entw 4lentz 8lenzy 8leoz 6lepi +le6pip 8lepo 1ler l6er. 8lerbs 6l5erde le8reis le8rend le4r3er 4l3erg +l8ergr 6lerkl 6l5erzie \n{8ler"o} 8lesel lesi5e le3sko le3tha let1s +5leuc 4leuro leu4s3t le5xe 6lexp l1f 2l1g lgend8 l8gh lglie3 lglied6 +6l1h 1li li1ar li1as 2lick li8dr li1en lien6n li8ers li8ert 2lie\3 +\c{2lie\9} 3lig li8ga8b li1g6n li1l8a 8limb li1na 4l3indu lings5 +4l3inh 6linj link4s3 4linkt 2lint 8linv lion5s6t 4lipp 5lipt 4lisam +livi5e 6l1j 6l1k l8keim l8kj lk2l lko8f lkor8 lk2sa lk2se 6ll l1la +ll3a4be l8labt ll8anl ll1b ll1c ll1d6 l1le l4l3eim l6l5eise ller3a +l4leti l5lip l1lo ll3ort ll5ov ll6spr llte8 l1lu ll3urg \n{l1l"a} +\n{l5l"u} \n{l6l"ub} 2l1m l6m5o6d 6ln l1na l1no 8lobl lo6br 3loch. +l5o4fen 5loge. 5lohn 4l3ohr 1lok l2on 4l3o4per lo1ra 2l1ord 6lorg +4lort lo1ru 1los. lo8sei 3losig lo6ve lowi5 6l1p lp2f l8pho l8pn +lp4s3te l2pt l1q 8l1r 2ls l1sa l6sarm l1sc l8sec l6s5erg l4s3ers l8sh +l5s6la l1sp ls4por ls2pu l1str l8suni \n{l1s"u} 2l1t lt5amp l4t3ein +l5ten l6t5eng l6t5erp l4t3hei lt3her l2t1ho l6t5i6b lti1l \n{l8tr"o} +lt1sc lt6ser lt4s3o lt5ums lu8br lu2dr lu1en8 8lu8fe luft3a luf8tr +lu6g5r 2luh l1uhr lu5it 5luk 2l1umf 2l1umw 1lun 6l5u6nio 4l3unte lu5ol +4lurg 6lurs l3urt lu4sto lu3str lu6st5re lu8su lu6tal lu6t5e6g lu8terg +lu3the lu6t5or lu2t1r lu6\35 \c{lu6\95} l1v lve5r6u 2l1w 1ly lya6 +6lymp ly1no l8zess l8zo8f l3zwei lz5wu \n{3l"and} \n{l"a5on} +\n{l"a6sc} \n{l"at1s} \n{5l"auf} \n{2l"aug} \n{l"au6s5c} \n{l"a5v} +\n{l1"ol} \n{1l"os} \n{l"o1\36t} \n{\c{l"o1\96t}} \n{6l1"ube} 1ma +8mabg ma5chan mad2 ma5el 4magg mag8n ma1la ma8lau mal5d 8malde mali5e +malu8 ma8lut 2m1amp 3man mand2 man3ds 8mangr mani5o 8m5anst 6mappa +4m3arbe mar8kr ma1r4o mar8schm 3mas ma1sc \n{ma1t"o} 4m5auf ma5yo 2m1b +mb6r 2m1c 2m1d \n{md6s"a} 1me me1ch me5isc 5meld mel8sa 8memp me5nal +men4dr men8schl men8schw 8mentsp me1ra mer4gl me1ro 3mes me6s5ei me1th +me8\3 \c{me8\9} 2m1f6 2m1g 2m1h 1mi mi1a mi6ale mi1la 2m1imm mi1na +\n{mi5n"u} mi4s3an mit1h mi5t6ra 3mitt mitta8 mi6\35 \c{mi6\95} 6mj +2m1k8 2m1l 2m1m m6mad m6m5ak m8menth m8mentw mme6ra m2mn mm5sp mm5ums +mmut5s \n{m8m"an} m1n8 m5ni 1mo mo5ar mo4dr 8mof mo8gal mo4kla mol5d +m2on mon8do mo4n3od mont8a 6m5ony mopa6 mo1ra mor8d5a mo1sc mo1sp 5mot +moy5 2mp m1pa mpfa6 mpf3l mphe6 m1pi mpin6 m1pl mp2li m2plu mpo8ste +m1pr \n{mpr"a5} mp8th mput6 mpu5ts \n{m1p"o} 8m1q 2m1r 2ms ms5au m1sc +msch4l ms6po m3spri m1str 2m1t mt1ar m8tein m2t1h mt6se \n{mt8s"a} +mu5e 6m5uh mumi1 1mun mun6dr muse5e mu1ta 2m1v mvol2 mvoll3 2m1w 1my +2m1z \n{m"a6kl} \n{1m"an} \n{m"a1s} \n{m"a5tr} \n{m"au4s3c} \n{3m"a\3} +\n{\c{3m"a\9}} \n{m"ob2} \n{6m"ol} \n{1m"u} \n{5m"un} \n{3m"ut} 1na. +n5ab. 8nabn n1abs n1abz \n{na6b"a} na2c nach3e 3nacht 1nae na5el +n1afr 1nag 1n2ah na8ha na8ho 1nai 6nair na4kol n1akt nal1a 8naly 1nama +na4mer na1mn n1amp 8n1amt 5nanc nan6ce n1and n6and. 2n1ang 1nani +1nann n1ans 8nanw 5napf. 1n2ar. na2ra 2n1arc n8ard 1nari n8ark +6n1arm 5n6ars 2n1art n8arv 6natm nat6s5e 1naue 4nauf n3aug 5naui n5auk +na5um 6nausb 6nauto 1nav 2nax 3naz 1na\3 \c{1na\9} n1b2 nbau5s n1c +nche5e nch5m 2n1d nda8d n2d1ak nd5ans n2d1ei nde8lac ndel6sa n8derhi +nde4se nde8stal n2dj ndnis5 n6d5or6t nd3rec nd3rot nd8samt nd6sau +ndt1h n8dumd 1ne ne5as ne2bl 6n5ebn 2nec 5neei ne5en ne1g4l 2negy +4n1ein 8neis 4n3e4lem 8nemb 2n1emp nen1a 6n5energ nen3k 8nentb +4n3en3th 8nentl 8n5entn 8n5ents ne1ra ne5r8al ne8ras 8nerbi 6n5erde. +nere5i6d nerfor6 \n{6n5erh"o} \n{8nerl"o} 2n1err n8ers. 6n5ertra +2n1erz nesi3e net1h neu4ra neu5sc 8neu\3 \c{8neu\9} n1f nf5f nf2l +nflei8 nf5lin nft8st n8g5ac ng5d ng8en nge8ram ngg2 ng1h n6glic ng3rip +ng8ru ng2se4 ng2si n2g1um n1gy \n{n8g"al} n1h nhe6r5e 1ni ni1bl +\n{ni5ch"a} ni8dee n6ie ni1en nie6s5te niet5h ni8etn 4n3i6gel n6ik +ni1la 2n1imp ni5na 2n1ind 8ninf 6n5inh ni8nit 6n5inn 2n1ins 4n1int +n6is ni3str ni1th ni1tr n1j n6ji n8kad nk5ans n1ke n8kerla n1ki nk5inh +\n{n5kl"o} n1k2n n8k5not nk3rot \n{n8kr"u} nk5spo nk6t5r n8kuh +\n{n6k"ub} n5l6 nli4mi n1m nmen4s n1na n8nerg nni5o n1no nn4t3ak nnt1h +nnu1e n1ny \n{n1n"a} \n{n1n"o} \n{n1n"u} no5a no4b3la 4n3obs 2nobt +noche8 no6die no4dis no8ia no5isc 6n5o6leu no4mal noni6er 2n1onk n1ony +4n3o4per 6nopf 6nopti no3ra no4ram nor6da 4n1org 2n1ort n6os no1st +8nost. no8tan no8ter noty6pe 6n5ox n1p2 n1q n1r \n{nr"os3} 6ns n1sac +ns3ang n1sc n8self n8s5erf n8serg n6serk ns5erw n8sint n1s2pe n1spr +n6s5tat. n5s6te. n6stob n1str n1ta n4t3a4go nt5anh nt3ark nt3art +n1te nt3eis nte5n6ar nte8nei nter3a nte6rei nt1ha nt6har n3ther nt5hie +n3thus n1ti nti1c n8tinh nti1t ntlo6b ntmen8 n1to nt3o4ti n1tr ntra5f +ntra5ut nt8rea nt3rec nt8rep n4t3rin nt8rop n4t3rot \n{n4tr"u} nt1s +nts6an nt2sk n1tu nt1z \n{n1t"a} \n{n1t"o} \n{n8t"ol} \n{n1t"u} 1nu +nu1a nu5el nu5en 4n1uhr nu5ie 8numl 6n5ums 6n5umw 2n1und 6nuni 6n5unr +2n1unt 2nup 2nu6r n5uri nu3skr nu5ta n1v 8n1w 1nys n1za n6zab n2z1ar +n6zaus nzi4ga n8zof n6z5unt n1zw n6zwir \n{1n"ac} \n{5n"ae} \n{5n"ai} +\n{n8"al} \n{n"a6m} \n{n"a6re} \n{n5"arz} \n{5n"aus} \n{n1"ol} +\n{1n"ot} \n{n5"oz} \n{5n"u.} \n{6n1"u2b} \n{5n"u\3} \n{\c{5n"u\9}} +o5ab. oa2l o8ala o1a2m o1an ob1ac obe4ra o6berh 5o4bers o4beru +obe6ser 1obj o1bl o2bli ob5sk 3obst. ob8sta obst5re ob5sz o1che +oche8b o8chec o3chi och1l och3m ocho8f o3chro och3to o3chu och1w o1d +o2d1ag od2dr ode5i ode6n5e od1tr o5e6b o5e6der. oe8du o1ef o1e2l +o1e2p o1er. o5e8x o1fa of8fan 1offi of8fin of6f5la o5fla o1fr 8o1g +og2n o1ha o1he o6h5eis o1hi ohl1a oh1le oh4l3er 5ohm. oh2ni o1ho +oh1re oh1ru o1hu oh1w o1hy \n{o1h"a} o5ia o1id. o8idi oi8dr o5ids +o5isch. oiset6 o1ism o3ist. o5i6tu o1j o1k ok2l ok3lau \n{o8kl"a} +1okta o1la old5am old5r o1le ole5in ole1r ole3u ol6gl ol2kl olk4s1 +ol8lak ol8lauf. ol6lel ol8less o1lo ol1s ol6sk o1lu oly1e2 5olym +o2mab om6an o8mau ombe4 o8merz om5sp o1mu o8munt \n{o1m"a} \n{o1m"o} +o1na ona8m on1ax on8ent o6n5erb 8oni oni5er. on1k on6n5a6b o1no ono1c +o4nokt 1ons onts8 \n{o1n"a} oo8f 1oog oo2pe oo2sa o1pa 3o4pera o3pfli +opf3lo opf3r o1pi o1pl o2pli o5p6n op8pa op6pl o1pr o3p4ter 1opti +\n{o1p"a} \n{o5p"o} o1q o1ra. o3rad o8radd 1oram o6rang o5ras o8rauf +or5cha or4d3a4m or8dei or8deu 1ordn or4dos o1re o5re. ore2h o8r5ein +ore5isc or6enn or8fla or8fli 1orga 5orgel. or2gl o1ri 5o6rient or8nan +\n{or8n"a} o1ro or1r2h or6t5an or8tau or8tere o1rus o1ry \n{o1r"a} +\n{or1"u2} o1sa osa3i 6ose o8serk o1sk o6ske o6ski os2kl os2ko os2kr +osni5e o2s1o2d o3s4per o4stam o6stau o3stra ost3re osu6 o6s5ur o5s6ze +o1ta ot3auf o6taus o1te o6terw o1th othe5u o2th1r o1ti o1to oto1a +ot1re o1tri o1tro ot1sc o3tsu ot6t5erg ot2t3h ot2t5r \n{ot8t"o} o1tu +ou3e ouf1 ou5f6l o5u6gr ou5ie ou6rar ou1t6a o1v o1wa o1we o6wer. o1wi +owid6 o1wo o5wu o1xe oy5al. oy1e oy1i o5yo o1z oza2r 1o2zea ozo3is +\n{o"o8} o\35elt \c{o\95elt} o\31t \c{o\91t} 3paa pa6ce 5pad pag2 1pak +pa1la pa8na8t pani5el pa4nor pan1s2 1pap pap8s pa8rei par8kr paro8n +par5o6ti part8e 5partei 3partn pas6sep pa4tha 1pau 6paug pau3sc p1b +8p5c 4p1d 1pe 4peic pe5isc 2pek pen3k pen8to8 p8er pe1ra pere6 per5ea +per5eb pe4rem 2perr per8ran 3pers 4persi \n{pe3r"u} pe4sta pet2s +p2f1ec p4fei pf1f pf2l 5pflanz pf8leg pf3lei 2pft pf3ta p1g 1ph 2ph. +2p1haf 6phb 8phd 6p5heit ph5eme 6phg phi6e 8phk 6phn p5holl pht2 +ph3tha 4ph3the phu6 6phz pi1en pi5err pi1la pi1na 5pinse pioni8e 1pis +pi1s2k pi1th p1k pl8 5pla p2lau 4plei p3lein 2pler 6p5les 2plig p6lik +6p5ling p2liz plo8min 6p1m p1n 1p2o 8poh 5pol po8lan poly1 po3ny po1ra +2porn por4t3h \n{po5r"o} 5poti p1pa p6p5ei ppe6la pp5f p2p1h p1pi pp1l +ppp6 pp5ren pp1s \n{p5p"o} pr6 3preis 1pres 2p3rig 5prinz 1prob 1prod +5prog pro8pt pro6t5a prote5i 8pro\3 \c{8pro\9} \n{pr"a3l} \n{1pr"as} +\n{pr"ate4} \n{1pr"uf} p5schl 2pst 1p2sy p1t p8to8d pt1s 5p6ty 1pu +pu1b2 2puc pu2dr puf8fr 6p5uh pun8s pu8rei pu5s6h pu1ta p1v p3w 5py +py5l p1z \n{p"a6der} \n{p5"a6m} \n{p"a8nu} \n{8p"ar} \n{p"at5h} +\n{p"at1s} qu6 1qui 8rabk ra6bla 3rable ra2br r1abt 6rabz ra4dan ra2dr +5rafal ra4f3er ra5gla ra2g3n 6raha ral5am 5rald 4ralg ra8lins 2rall +ral5t 8ramei r3anal r6and ran8der ran4dr 8ranf 6ranga 5rangi ran8gli +r3angr rans5pa 8ranw r8anz. ra5or 6rapf ra5pl rap6s5er 2r1arb 1rarh +r1arm ra5ro 2r1art 6r1arz ra8tei ra6t5he 6ratl ra4t3ro r5atta raue4n +6raus. r5austa rau8tel raut5s ray1 r1b rb5lass r6bler rb4lie rbon6n +r8brecht \n{rb6s5t"a} r8ces r1che rch1l rch3m rch3re rch3tr rch1w 8rd +r1da r8dachs r8dap rda5ro rde5ins rdio5 r8dir rd3ost r1dr r8drau 1re. +re1ak 3reakt re3als re6am. re1as 4reben re6bl rech5a r8edi re3er +8reff 3refl 2reh 5reha r4ei. reich6s5 8reier 6reign re5imp 4r3eina +6r3einb 6reing 6r5einn 6reinr 4r3eins r3eint reli3e 8r5elt 6rempf +2remt ren5a6b ren8gl r3enni 1reno 5rente 4r3enth 8rentl 4r3entw 8rentz +ren4zw re1on requi5 1rer rer4bl 6rerbs 4r3erd \n{8rerh"o} 8rerkl +4r3erla \n{8rerl"o} 4r3erns \n{6r5ern"a} rer5o 6r5erreg r5ertr r5erwec +\n{r5er"o} re2sa re8schm 2ress re5u8ni 6rewo 2r1ex r1f r8ferd rf4lie +8r1g r8gah rge4bl rge5na rgest4 rg6ne r2gni2 r8gob r4g3ret rg8sel r1h8 +r2hy 5rhyt ri1ar ri5cha rid2g r2ie rieg4s5 ri8ei ri1el ri6ele ri1en +ri3er. ri5ers. ri6fan ri8fer ri8fr 1r2ig ri8kn ri5la \n{rim"a8} +ri1na r8inde rin4ga rin6gr 1rinn 6rinner rino1 r8insp 4rinst +\n{ri1n"a} ri5o6ch ri1o2d ri3o6st 2r1ir r2is ri3sko ri8spr \n{ri8st"u} +ri5sv r2it 6r5i6tal ri5tr ri6ve. 8r1j 6rk r1ke rkehrs5 r1ki r3klin +r1k2n rk3str rk4t3an rk6to r6kuh \n{rk"a4s3t} r1l r5li rline5a 6r1m +r6manl rma4p r4m3aph r8minf r8mob rm5sa 2rn r1na rna8be r5ne rn2ei +r6neif r6nex r6nh rn1k r1no r6n5oc rn1sp \n{r1n"a} \n{r1n"u} ro6bern +6robs ro1ch 3rock. ro5de ro1e 4rofe ro8hert 1rohr ro5id ro1in ro5isc +6rolym r2on 6roog ro6phan r3ort ro1s2p ro5s6w ro4tau ro1tr ro6ts 5rout +r1p rpe8re rp2f r2ps r2pt r1q 2rr r1ra r1re rrer6 rr6hos \n{r5rh"o} +r1ri r1ro rro8f rr8or rror5a r1ru r3ry \n{r1r"a} \n{r1r"o} \n{r1r"u} +2r1s r6sab r4sanf rse6e rse5na r2sh r6ska r6ski rs2kl r8sko r2sl rs2p +r6stauf r8sterw r8stran rswi3d4 r2sz 2r1t rt3art r8taut r5tei rt5eige +r8tepe r4t3erh r8terla r4t3hei r5t6hu r4t3int rt5reif rt1sc rt6ser +rt6s5o rt6s5u rt5und r8turt rube6 ru1en 1r4uf ruf4st ru1ie 2r1umg +2r1uml 2rums run8der run4d5r 6rundz 6runf 8runs 2r1unt 2r1ur r6us +ru6sta ru3str ru6tr 1ruts r1v rven1 rvi2c r1w r1x r1za rz5ac r6z5al +r8z1ar r8zerd r6z5erf rz8erh rz4t3h r8zum \n{r"a4ste} \n{r"au8sc} +\n{r1"of} \n{5r"ohr} \n{r"o5le} \n{3r"oll} \n{5r"omis} \n{r1"or} +\n{r"o2sc} \n{3r"ump} 1sa. 1saa s3a4ben sa2bl 2s1abs 6s1abt 6sabw +3sack. 6s3a4der 1saf sa1fa 4s1aff sa5fr 1sag 1sai sa1i2k1 4s1akt 1sal +sa1la 4s3alpi 6salter salz3a 1sam s5anb san2c 1sand s5angeh 6sanl +2s1ans 6s3antr 8s1anw s1ap s6aph 8sapo sap5p6 s8ar. 2s1arb 3sarg +s1arm sa5ro 2s1art 6s1arz 1sas 1sat sat8a 2s1atl sa8tom 3s8aue s5auff +sau5i s6aur 2s1aus 5s6ause 2s1b2 2sca s4ce 8sch. 3scha. 5schade +3schaf 3schal sch5ame 8schanc 8schb 1sche 6schef 8schex 2schf 2schg +2schh 1schi 2schk 5schlag 5schlu \n{6schm"a\3} \n{\c{6schm"a\9}} +6schna\3 \c{6schna\9} 1scho 6schord 6schp 3schri 8schric 8schrig +8schrou 6schs 2scht sch3ta sch3tr 1schu 8schunt 6schv 2schz \n{5sch"o} +\n{5sch"u} 2sco scre6 6scu 2s1d 1se se5an se1ap se6ben se5ec see5i6g +se3erl 8seff se6han se8hi \n{se8h"o} 6s5eid. 2s1eig s8eil 5sein. +sei5n6e 6s5einh 3s8eit 3sel. se4lar selb4 6s3e4lem se8lerl 2s1emp +sen3ac se5nec 6s5ents 4sentz s8er. se8reim ser5inn \n{8serm"a} +8s5erzi \n{6ser"of} se1um 8sexa 6sexp 2s1f2 sfal8ler 2s3g2 sge5b2 s1h +s8hew 5s6hip 5s4hop 1si 2siat si1b sicht6s 6s5i6dee siege6s5 si1en +si5err si1f2 si1g2n si6g5r si8kau sik1i si4kin si2kl \n{si8k"u} si1la +sil6br si1na 2s1inf sin5gh 2s1inh sinne6s5 2s1ins si5ru si5str 4s1j +s1k2 6sk. 2skau skel6c skelch5 s6kele 1s2ki. 3s4kin. s6kiz s8kj +6skn 2skow 3skrib 3skrip 2sku \n{8sk"u} s1l s8lal slei3t s4low 2s1m +s1n 6sna 6snot 1so so1ch 2s1odo so4dor 6s5o4fen solo3 s2on so5of 4sope +so1ra 2s1ord 4sorga sou5c so3un 4s3ox sp2 8spaa 5spal 1span 2spap +s2pec s4peis 1spek s6perg 4spers s6pes 2s1pf 8sphi \n{1s2ph"a} 1spi +spi4e 6s5pig 6spinse 2spis 2spla 2spol 5s6pom 6s5pos 6spoti 1spra +3s8prec 6spreis 5spring 6sprob 1spru s2pul 1s2pur 6spy \n{5sp"an} +\n{1sp"u} s1q 2s1r 2s1s2 sse8nu ssini6s ssoi6r 2st. 1sta 4stafe 2stag +sta3la 6stale 4stalg 8stalk 8stamt 6st5anf 4stans 6stanw 6starb sta4te +6staus 2stb 6stc 6std 1ste 4steil 3s2tel st3elb 8stemb 6steppi 8stese +8stesse 6stf 2stg 2sth st1ha st3hei s8t1hi st1ho st5hu 1sti sti4el +4stigm sti3na 6stind 4stinf sti8r 2stk 2stl 2stm 1sto 6stoll. 4st3ope +6stopf. 6stord 6stp 5stra. 4strai 3s4tral 6s5traum 3stra\3 +\c{3stra\9} 3strec 6s3tref 8streib 5streif 6streno 6stres 6strev +5s6tria 6strig 5strik 8strisi 3s4troa s8troma st5rose 4struf 3strum +\n{6str"ag} 2st1s6 2stt 1stu stu5a 4stuc 2stue 8stun. 2stv 2stw s2tyl +6stz \n{1st"a} \n{8st"ag} \n{1st"o} \n{1st"u} \n{8st"uch} \n{4st"ur.} +1su su2b1 3suc su1e su2fe su8mar 6sumfa 8sumk 2s1unt sup1p2 6s5u6ran +6surte 2s1v 2s1w 1sy 8syl. sy5la syn1 sy2na syne4 s1z s4zend 5s6zene. +8szu \n{1s"a} \n{6s5"and} \n{6s"augi} \n{6s"au\3} \n{\c{6s"au\9}} +\n{5s"om} \n{2s1"u2b} \n{1s"uc} \n{s"u8di} \n{1s"un} \n{5s"u\3} +\n{\c{5s"u\9}} taats3 4tab. taba6k ta8ban tab2l ta6bre 4tabs t3absc +8tabz 6t3acht ta6der 6tadr tad6s tad2t 1tafe4 1tag ta6ga6 ta8gei +tage4s tag6s5t tah8 tahl3 tai6ne. ta5ir. tak8ta tal3au 1tale ta8leng +tal5ert 6t5a6mer 6tamp tampe6 2t1amt tan5d6a tan8dr tands5a tani5e +6tanl 2tanr t3ans 8t5antr tanu6 t5anw 8tanwa tan8zw ta8rau 6tarbe +1tari 2tark 2t1arm ta1ro 2tart t3arti 6tarz ta1sc ta6sien ta8stem +ta8sto t5aufb 4taufn 8taus. 5tause 8tausf 6tausg t5ausl 2t1b2 2t1c +t6chu 2t1d te2am tea4s te8ben 5techn 4teff te4g3re te6hau 2tehe te4hel +2t1ehr te5id. teig5l 6teign tei8gr 1teil 4teinh t5einhe 4teis t5eisen +8teiw te8lam te4lar 4telek 8telem te6man te6n5ag ten8erw ten5k tens4p +ten8tro 4t3entw 8tentz te6pli 5teppi ter5a6b te3ral ter5au 8terbar +t5erbe. 6terben 8terbs 4t3erbt t5erde. ter5ebe ter5ein te8rers terf4 +\n{8terh"o} \n{6terkl"a} ter8nor ter6re. t8erscha t5e6sel te8stau +t3euro te1xa tex3e 8texp tex6ta 2t1f2 2t1g2 2th. th6a 5tha. 2thaa +6t1hab 6t5haf t5hah 8thak 3thal. 6thals 6t3hand 2t1hau 1the. 3t4hea +t1heb t5heil t3heit t3helf 1theo 5therap 5therf 6t5herz 1thes 1thet +5thi. 2t1hil t3him 8thir 3this t5hj 2th1l 2th1m th1n t5hob t5hof +4tholz 6thopti 1thr6 4ths t1hum 1thy \n{4t1h"a} \n{2t1h"o} \n{t1h"u} +ti1a2m ti1b tie6fer ti1en ti8gerz tig3l ti8kin ti5lat 1tilg t1ind +tin4k3l ti3spa ti5str 5tite ti5tr ti8vel ti8vr 2t1j 2t1k2 2t1l tl8a +2t1m8 2t1n 3tobe 8tobj to3cha 5tocht 8tock tode4 to8del to8du to1e +6t5o6fen to1in toi6r 5toll. to8mene t2ons 2t1ony to4per 5topf. 6topt +to1ra to1s to6ska tos2l 2toti to1tr t8ou 2t1p2 6t1q tr6 tra5cha +tra8far traf5t 1trag tra6gl tra6gr t3rahm 1trai t6rans tra3sc tra6st +3traue t4re. 2trec t3rech t8reck 6t1red t8ree 4t1reg 3treib 4treif +8t3reis 8trepo tre6t5r t3rev 4t3rez 1trib t6rick tri6er 2trig t8rink +tri6o5d trizi5 tro1a 3troc trocke6 troi8d tro8man. tro3ny 5tropf +6t5rosa t5ro\3 \c{t5ro\9} 5trub 5trup trut5 \n{1tr"ag} \n{6t1r"oh} +\n{5tr"ub} \n{tr"u3bu} \n{t1r"uc} \n{t1r"us} 2ts ts1ab t1sac tsa8d +ts1ak t6s5alt ts1an ts1ar ts3auf t3schr \n{t5sch"a} tse6e tsee5i +tsein6s ts3ent ts1er t8serf t4serk t8sh 5t6sik t4s3int ts5ort. +t5s6por t6sprei t1st t6s5tanz ts1th t6stit t4s3tor 1t2sua t2s1uf +t8sum. t2s1u8n t2s1ur 2t1t tt5eif tte6sa tt1ha tt8ret tt1sc tt8ser +tt5s6z 1tuc tuch5a 1tu1e 6tuh t5uhr tu1i tu6it 1tumh 6t5umr 1tums +8tumt 6tund 6tunf 2t1unt tu5ra tu6rau tu6re. tu4r3er 2t1v 2t1w 1ty1 +ty6a ty8la 8tym 6ty6o 2tz tz5al tz1an tz1ar t8zec tzeh6 tzehn5 t6z5ei. +t6zor t4z3um \n{t6z"au} \n{5t"ag} \n{6t"ah} \n{t5"alt} \n{t8"an} +\n{t"are8} \n{8t"a8st} \n{6t"au\3} \n{\c{6t"au\9}} \n{t5"offen} +\n{8t"o8k} \n{1t"on} \n{4t"ub} \n{t6"u5ber.} \n{5t"uch} \n{1t"ur.} +u3al. u5alb u5alf u3alh u5alk u3alp u3an. ua5na u3and u5ans u5ar. +ua6th u1au ua1y u2bab ubi5er. u6b5rit ubs2k \n{u5b"o} \n{u8b"ub} 2uc +u1che u6ch5ec u1chi uch1l uch3m uch5n uch1r uch5to ucht5re u1chu uch1w +uck1a uck5in u1d ud4a u1ei u6ela uene8 u6ep u1er uer1a ue8rerl uer5o +u8esc u2est u8ev u1fa u2f1ei u4f3ent u8ferh uf1fr uf1l uf1ra uf1re +\n{uf1r"a} \n{uf1r"u} uf1s2p uf1st uft1s u8gabt u8gad u6gap ugeb8 u8gn +ugo3s4 u1ha u1he u1hi uh1le u1ho uh1re u1hu uh1w \n{u1h"a} \n{u1h"o} +6ui ui5en u1ig u3ins uin8tes u5isch. u1j 6uk u1ke u1ki u1kl u8klu +u1k6n u5ky u1la uld8se u1le ul8lac ul6lau ul6le6l ul6lo ulni8 u1lo +ulo6i ult6a ult8e u1lu ul2vr \n{u1l"a} \n{u1l"o} 3umfan 5umlau umo8f +um8pho u1mu umu8s \n{u5m"o} u1n1a un2al un6at unau2 6und. 5undein +un4d3um 3undzw \n{und"u8} \n{un8d"ub} une2b un1ec une2h un3eis 3unfal +\n{1unf"a} 5ungea \n{3ungl"u} ung2s1 \n{un8g"a} 1u2nif un4it un8kro +unk5s u1no unpa2 uns2p unvol4 unvoll5 u5os. u1pa u1pi u1p2l u1pr +up4s3t up2t1a u1q u1ra ur5abs ura8d ur5ah u6rak ur3alt u6rana u6r5ans +u8rap ur5a6ri u8ratt u1re ur3eig ur8gri u1ri ur5ins 3urlau urmen6 +ur8nan u1ro 3ursac ur8sau ur8sei ur4sk 3urtei u1ru uru5i6 uru6r u1ry +ur2za \n{ur6z"a} \n{ur5"a6m} \n{u5r"o} \n{u1r"u} \n{ur"uck3} u1sa +usa4gi u2s1ar u2s1au u8schec usch5wi u2s1ei use8kel u8sl u4st3a4b +us3tau u3s4ter u2s1uf u8surn ut1ac u1tal uta8m u1tan ut1ar u1tas ut1au +u1te u8teic u4tent u8terf u6terin u4t3hei ut5ho ut1hu u1ti utine5 +uti6q u1to uto5c u1tr ut1sa ut1s6p ut6stro u1tu utz5w u1u u1v uve5n +\n{uve3r4"a} u1w u1xe u5ya uy5e6 u1yi u2z1eh u8zerh \n{u5"o} u\3e6n +\c{u\9e6n} u\3en5e \c{u\9en5e} 8vanb 6vang 6varb var8d va6t5a va8tei +va2t1r 2v1b 6v5c 6vd 1ve 6ve5g6 ver1 ver5b verb8l ve2re2 verg8 ve2ru8 +ve1s ve2s3p ve3xe 2v1f 2v1g 6v5h vi6el vie6w5 vi1g4 vi8leh vil6le. +8vint vi1ru vi1tr 2v1k 2v1l 2v1m 4v5n 8vo8f voi6le vol8lend vol8li +v2or1 vo2re vo8rin vo2ro 2v1p 8vra v6re 2v1s 2v1t 2v1v 4v3w 2v1z +waffe8 wa6g5n 1wah wah8n wa5la wal8din wal6ta wan4dr 5ware wa8ru +war4za 1was w5c w1d 5wech we6fl 1weg we8geng weg5h weg3l we2g1r +weh6r5er 5weise weit3r wel2t welt3r we6rat 8werc 5werdu wer4fl 5werk. +wer4ka wer8ku wer4ta wer8term we2sp we8stend we6steu we8str +\n{we8st"o} wet8ta wich6s5t 1wid wi2dr wiede4 wieder5 wik6 wim6ma +win4d3r 5wirt wisch5l 1wj 6wk 2w1l 8w1n wo1c woche6 wol6f wor6t5r 6ws2 +w1sk 6w5t 5wunde. wun6gr wu1sc wu2t1 6w5w wy5a \n{w"arme5} \n{w"a1sc} +1xag x1ak x3a4men 8xamt x1an 8x1b x1c 1xe. x3e4g 1xen xe1ro x1erz +1xes 8xf x1g 8x1h 1xi 8xid xi8so 4xiste x1k 6x1l x1m 8xn 1xo 8x5o6d +8x3p2 x1r x1s6 8x1t x6tak x8terf x2t1h 1xu xu1e x5ul 6x3w x1z 5ya. +y5an. y5ank y1b y1c y6cha y4chia y1d yen6n y5ern y1g y5h y5in y1j +y1k2 y1lak yl1al yla8m y5lax y1le y1lo y5lu y8mn ym1p2 y3mu y1na yno2d +yn1t y1on. y1o4p y5ou ypo1 y1pr y8ps y1r yri3e yr1r2 y1s ys5iat ys8ty +y1t y3w y1z \n{y"a8m} z5a6b zab5l 8za6d 1zah za5is 4z3ak 6z1am 5zange. +8zanl 2z1ara 6z5as z5auf 3zaun 2z1b 6z1c 6z1d 1ze ze4dik 4z3eff 8zein +zei4ta zei8ters ze6la ze8lec zel8th 4zemp 6z5engel zen8zin \n{8zerg"a} +zer8i ze1ro zers8 zerta8 zer8tab zer8tag 8zerz ze8ste zeu6gr 2z1ex +2z1f8 z1g 4z1h 1zi zi1en zi5es. 4z3imp zi1na 6z5inf 6z5inni zin6s5er +8zinsuf zist5r zi5th zi1tr 6z1j 2z1k 2z1l 2z1m 6z1n 1zo zo6gl 4z3oh +zo1on zor6na8 4z1p z5q 6z1r 2z1s8 2z1t z4t3end z4t3hei z8thi 1zu zu3al +zu1b4 zu1f2 6z5uhr zun2a 8zunem zunf8 8zungl zu1o zup8fi zu1s8 zu1z +2z1v zw8 z1wal 5zweck zwei3s z1wel z1wer z6werg 8z5wes 1zwi zwi1s +6z1wo 1zy 2z1z zz8a zzi1s \n{1z"a} \n{1z"o} \n{6z"ol.} \n{z"o1le} +\n{1z"u} \n{2z1"u2b} \n{"a1a6} \n{"ab1l} \n{"a1che} \n{"a3chi} +\n{"ach8sc} \n{"ach8sp} \n{"a5chu} \n{"ack5a} \n{"ad1a} \n{"ad5era} +\n{"a6d5ia} \n{"a1e} \n{"a5fa} \n{"af1l} \n{"aft6s} \n{"ag1h} +\n{"ag3le} \n{"a6g5nan} \n{"ag5str} \n{"a1he} \n{"a1hi} \n{"ah1le} +\n{"ah5ne} \n{1"ahnl} \n{"ah1re} \n{"ah5ri} \n{"ah1ru} \n{"a1hu} +\n{"ah1w} \n{6"ai} \n{"a1isc} \n{"a6ische} \n{"a5ism} \n{"a5j} +\n{"a1k} \n{"al1c} \n{"a1le} \n{"a8lei} \n{"al6schl} \n{"ami1e} +\n{"am8n} \n{"am8s} \n{"a5na} \n{5"anderu} \n{"ane5i8} \n{"ang3l} +\n{"ank5l} \n{"a1no} \n{"an6s5c} \n{"a1pa} \n{"ap6s5c} \n{3"aq} +\n{"ar1c} \n{"a1re} \n{"are8m} \n{5"argern} \n{"ar6gl} \n{"a1ri} +\n{3"armel} \n{"a1ro} \n{"art6s5} \n{"a1ru} \n{3"arztl} \n{"a5r"o} +\n{"a6s5chen} \n{"asen8s} \n{"as1th} \n{"ata8b} \n{"a1te} \n{"ateri4} +\n{"ater5it} \n{"a6thy} \n{"a1ti} \n{3"atk} \n{"a1to} \n{"at8schl} +\n{"ats1p} \n{"a5tu} \n{"aub1l} \n{"au1e} \n{1"aug} \n{"au8ga} +\n{"au5i} \n{"a1um.} \n{"a1us.} \n{1"au\3} \n{\c{1"au\9}} \n{"a1z} +\n{"o1b} \n{"o1che} \n{"o5chi} \n{"och8stei} \n{"och8str} \n{"ocht6} +\n{5"o6dem} \n{5"offn} \n{"o1he} \n{"oh1l8} \n{"oh1re} \n{"o1hu} +\n{"o1is} \n{"o1ke} \n{1"o2ko} \n{1"ol.} \n{"ol6k5l} \n{"ol8pl} +\n{"o1mu} \n{"o5na} \n{"onig6s3} \n{"o1no} \n{"o5o6t} \n{"opf3l} +\n{"op6s5c} \n{"o1re} \n{"or8gli} \n{"o1ri} \n{"or8tr} \n{"o1ru} +\n{5"osterr} \n{"o1te} \n{"o5th} \n{"o1ti} \n{"o1tu} \n{"o1v} \n{"o1w} +\n{"owe8} \n{"o2z} \n{"ub6e2} \n{3"u4ber1} \n{"ub1l} \n{"ub1r} +\n{5"u2bu} \n{"u1che} \n{"u1chi} \n{"u8ch3l} \n{"uch6s5c} \n{"u8ck} +\n{"uck1a} \n{"uck5ers} \n{"ud1a2} \n{"u6deu} \n{"udi8t} \n{"u2d1o4} +\n{"ud5s6} \n{"uge4l5a} \n{"ug1l} \n{"uh5a} \n{"u1he} \n{"u8heh} +\n{"u6h5erk} \n{"uh1le} \n{"uh1re} \n{"uh1ru} \n{"u1hu} \n{"uh1w} +\n{"u3k} \n{"u1le} \n{"ul4l5a} \n{"ul8lo} \n{"ul4ps} \n{"ul6s5c} +\n{"u1lu} \n{"un8da} \n{"un8fei} \n{"unk5l} \n{"un8za} \n{"un6zw} +\n{"u5pi} \n{"u1re} \n{"u8rei} \n{"ur8fl} \n{"ur8fr} \n{"ur8geng} +\n{"u1ri} \n{"u1ro} \n{"ur8sta} \n{"ur8ster} \n{"u1ru} \n{"use8n} +\n{"u8sta} \n{"u8stes} \n{"u6s5tete} \n{"u3ta} \n{"u1te} \n{"u1ti} +\n{"ut8tr} \n{"u1tu} \n{"ut8zei} \n{"u1v} \31a8 \c{\91a8} 5\3a. +\c{5\9a.} \38as \c{\98as} \31b8 \c{\91b8} \31c \c{\91c} \31d \c{\91d} +1\3e \c{1\9e} \35ec \c{\95ec} 8\3e8g \c{8\9e8g} 8\3e8h \c{8\9e8h} +2\31ei \c{2\91ei} 8\3em \c{8\9em} \31f8 \c{\91f8} \31g \c{\91g} \31h +\c{\91h} 1\3i \c{1\9i} \31k \c{\91k} \31l \c{\91l} \31m \c{\91m} +\3mana8 \c{\9mana8} \31n \c{\91n} \31o \c{\91o} \31p8 \c{\91p8} \35q +\c{\95q} \31r \c{\91r} \31s2 \c{\91s2} \3st8 \c{\9st8} \31ta \c{\91ta} +\31te \c{\91te} \3t3hei \c{\9t3hei} \31ti \c{\91ti} \35to \c{\95to} +\31tr \c{\91tr} 1\3u8 \c{1\9u8} 6\35um \c{6\95um} \31v \c{\91v} \31w +\c{\91w} \31z \c{\91z} +}% +\endgroup +\relax\endinput +% +% ----------------------------------------------------------------- +% +% =============== Additional Documentation =============== +% +% +% Older Versions of German Hyphenation Patterns: +% ---------------------------------------------- +% +% All older versions of `ghyphen.tex' distributed as +% +% ghyphen.tex/germhyph.tex as of 1986/11/01 +% ghyphen.min/ghyphen.max as of 1988/10/10 +% ghyphen3.tex as of 90/09/27 & 91/02/13 +% +% are out of date and it is recommended to replace them +% with the new version `ghyph31.tex'. +% +% If you are using `ghyphen.min' (a minor version of `ghyphen') +% because of limited trie memory space, try this version and if +% the space is exceeded get a newer TeX implementation with +% larger or configurable trie memory sizes. +% +% +% +% Trie Memory Requirements/Space for Hyphenation Patterns: +% -------------------------------------------------------- +% +% To load this set of german hyphenation patterns the parameters +% of TeX has to have at least these values: +% +% TeX 3.x: +% IniTeX: trie_size >= 9733 trie_op_size >= 207 +% VirTeX: trie_size >= 8375 trie_op_size >= 207 +% +% TeX 2.x: +% IniTeX: trie_size >= 8675 trie_op_size >= 198 +% VirTeX: trie_size >= 7560 trie_op_size >= 198 +% +% If you want to load more than one set of hyphenation patterns +% (in TeX 3.x), the parameters have to be set to a value larger +% than or equal to the sum of all required values for each set. +% +% +% Setting Trie Memory Parameters: +% ------------------------------- +% +% Some implementations allow the user to change the default value +% of a set of the internal TeX parameters including the trie memory +% size parameter specifying the used memory for the hyphenation +% patterns. +% +% emTeX (PC): +% You can set the used memory size of the trie using the +% `-mt' option on the command line or in the +% TEXOPTIONS environment variable. +% +% PasTeX (Amiga): +% The values for the parameters can be set using the keywords +% `triesize', `itriesize' and `trieopsize' in the configuration +% file. +% +% others (binaries only): +% See the documentation of the implementation if it is possible +% and how to change these values without recompilation. +% +% others (with sources, e.g. PublicTeX (PC), web2c (Unix et.al.)): +% If the trie memory is too small, you have to recompile TeX +% using larger values for `trie_size' and `trie_op_size'. +% Modify the change file pctex.ch/ctex.ch and recompile TeX. +% For details see the documentation included in the sources. +% +% +% +% Necessary Settings in TeX macro files: +% -------------------------------------- +% +% \lefthyphenmin, \righthyphenmin: +% You can set both parameters to 2. +% +% \lccode : +% To get correct hyphenation points within words containing +% umlauts or \ss, it's necessary to assign values > 0 to the +% appropriate \lccode positions. +% +% These changes are done when reading this file (\lccode for umlauts) +% or are included in the language switching mechanism of `german.sty' +% (\lccode change for \ss, \left-/\righthyphenmin settings). +% +% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\endinput +%% +%% End of file `ghyph31.tex'. diff --git a/obsolete/macros/ec-plain/hyacceur.tex b/obsolete/macros/ec-plain/hyacceur.tex new file mode 100644 index 0000000000..bf82e6fa18 --- /dev/null +++ b/obsolete/macros/ec-plain/hyacceur.tex @@ -0,0 +1,143 @@ +% +%%%%%% adaptation pour le codage ed/dc: Yannis Haralambous +%%%%%% complete par D. Taupin pour tout ce qui passe de maj a min +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Villeneuve d'Ascq 10/7/91 Orsay 28/2/92 +% +\catcode`\^^c0=11\uccode`\^^c0=`\^^c0\lccode`\^^c0=`\^^e0 +\catcode`\^^c1=11\uccode`\^^c1=`\^^c1\lccode`\^^c1=`\^^e1 +\catcode`\^^c2=11\uccode`\^^c2=`\^^c2\lccode`\^^c2=`\^^e2 +\catcode`\^^c3=11\uccode`\^^c3=`\^^c3\lccode`\^^c3=`\^^e3 +\catcode`\^^c4=11\uccode`\^^c4=`\^^c4\lccode`\^^c4=`\^^e4 +\catcode`\^^c5=11\uccode`\^^c5=`\^^c5\lccode`\^^c5=`\^^e5 +\catcode`\^^c6=11\uccode`\^^c6=`\^^c6\lccode`\^^c6=`\^^e6 +\catcode`\^^c7=11\uccode`\^^c7=`\^^c7\lccode`\^^c7=`\^^e7 +\catcode`\^^c8=11\uccode`\^^c8=`\^^c8\lccode`\^^c8=`\^^e8 +\catcode`\^^c9=11\uccode`\^^c9=`\^^c9\lccode`\^^c9=`\^^e9 +\catcode`\^^ca=11\uccode`\^^ca=`\^^ca\lccode`\^^ca=`\^^ea +\catcode`\^^cb=11\uccode`\^^cb=`\^^cb\lccode`\^^cb=`\^^eb +\catcode`\^^cc=11\uccode`\^^cc=`\^^cc\lccode`\^^cc=`\^^ec +\catcode`\^^cd=11\uccode`\^^cd=`\^^cd\lccode`\^^cd=`\^^ed +\catcode`\^^ce=11\uccode`\^^ce=`\^^ce\lccode`\^^ce=`\^^ee +\catcode`\^^cf=11\uccode`\^^cf=`\^^cf\lccode`\^^cf=`\^^ef +% +\catcode`\^^d0=11\uccode`\^^d0=`\^^d0\lccode`\^^d0=`\^^f0 +\catcode`\^^d1=11\uccode`\^^d1=`\^^d1\lccode`\^^d1=`\^^f1 +\catcode`\^^d2=11\uccode`\^^d2=`\^^d2\lccode`\^^d2=`\^^f2 +\catcode`\^^d3=11\uccode`\^^d3=`\^^d3\lccode`\^^d3=`\^^f3 +\catcode`\^^d4=11\uccode`\^^d4=`\^^d4\lccode`\^^d4=`\^^f4 +\catcode`\^^d5=11\uccode`\^^d5=`\^^d5\lccode`\^^d5=`\^^f5 +\catcode`\^^d6=11\uccode`\^^d6=`\^^d6\lccode`\^^d6=`\^^f6 +\catcode`\^^d7=11\uccode`\^^d7=`\^^d7\lccode`\^^d7=`\^^f7 +\catcode`\^^d8=11\uccode`\^^d8=`\^^d8\lccode`\^^d8=`\^^f8 +\catcode`\^^d9=11\uccode`\^^d9=`\^^d9\lccode`\^^d9=`\^^f9 +\catcode`\^^da=11\uccode`\^^da=`\^^da\lccode`\^^da=`\^^fa +\catcode`\^^db=11\uccode`\^^db=`\^^db\lccode`\^^db=`\^^fb +\catcode`\^^dc=11\uccode`\^^dc=`\^^dc\lccode`\^^dc=`\^^fc +\catcode`\^^dd=11\uccode`\^^dd=`\^^dd\lccode`\^^dd=`\^^fd +\catcode`\^^de=11\uccode`\^^de=`\^^de\lccode`\^^de=`\^^fe +\catcode`\^^df=11\uccode`\^^df=`\^^df\lccode`\^^df=`\^^ff +% +\catcode`\^^e0=11\uccode`\^^e0=`\^^c0\lccode`\^^e0=`\^^e0 +\catcode`\^^e1=11\uccode`\^^e1=`\^^c1\lccode`\^^e1=`\^^e1 +\catcode`\^^e2=11\uccode`\^^e2=`\^^c2\lccode`\^^e2=`\^^e2 +\catcode`\^^e3=11\uccode`\^^e3=`\^^c3\lccode`\^^e3=`\^^e3 +\catcode`\^^e4=11\uccode`\^^e4=`\^^c4\lccode`\^^e4=`\^^e4 +\catcode`\^^e5=11\uccode`\^^e5=`\^^c5\lccode`\^^e5=`\^^e5 +\catcode`\^^e6=11\uccode`\^^e6=`\^^c6\lccode`\^^e6=`\^^e6 +\catcode`\^^e7=11\uccode`\^^e7=`\^^c7\lccode`\^^e7=`\^^e7 +\catcode`\^^e8=11\uccode`\^^e8=`\^^c8\lccode`\^^e8=`\^^e8 +\catcode`\^^e9=11\uccode`\^^e9=`\^^c9\lccode`\^^e9=`\^^e9 +\catcode`\^^ea=11\uccode`\^^ea=`\^^ca\lccode`\^^ea=`\^^ea +\catcode`\^^eb=11\uccode`\^^eb=`\^^cb\lccode`\^^eb=`\^^eb +\catcode`\^^ec=11\uccode`\^^ec=`\^^cc\lccode`\^^ec=`\^^ec +\catcode`\^^ed=11\uccode`\^^ed=`\^^cd\lccode`\^^ed=`\^^ed +\catcode`\^^ee=11\uccode`\^^ee=`\^^ce\lccode`\^^ee=`\^^ee +\catcode`\^^ef=11\uccode`\^^ef=`\^^cf\lccode`\^^ef=`\^^ef +% +\catcode`\^^f0=11\uccode`\^^f0=`\^^d0\lccode`\^^f0=`\^^f0 +\catcode`\^^f1=11\uccode`\^^f1=`\^^d1\lccode`\^^f1=`\^^f1 +\catcode`\^^f2=11\uccode`\^^f2=`\^^d2\lccode`\^^f2=`\^^f2 +\catcode`\^^f3=11\uccode`\^^f3=`\^^d3\lccode`\^^f3=`\^^f3 +\catcode`\^^f4=11\uccode`\^^f4=`\^^d4\lccode`\^^f4=`\^^f4 +\catcode`\^^f5=11\uccode`\^^f5=`\^^d5\lccode`\^^f5=`\^^f5 +\catcode`\^^f6=11\uccode`\^^f6=`\^^d6\lccode`\^^f6=`\^^f6 +\catcode`\^^f7=11\uccode`\^^f7=`\^^d7\lccode`\^^f7=`\^^f7 +\catcode`\^^f8=11\uccode`\^^f8=`\^^d8\lccode`\^^f8=`\^^f8 +\catcode`\^^f9=11\uccode`\^^f9=`\^^d9\lccode`\^^f9=`\^^f9 +\catcode`\^^fa=11\uccode`\^^fa=`\^^da\lccode`\^^fa=`\^^fa +\catcode`\^^fb=11\uccode`\^^fb=`\^^db\lccode`\^^fb=`\^^fb +\catcode`\^^fc=11\uccode`\^^fc=`\^^dc\lccode`\^^fc=`\^^fc +\catcode`\^^fd=11\uccode`\^^fd=`\^^dd\lccode`\^^fd=`\^^fd +\catcode`\^^fe=11\uccode`\^^fe=`\^^de\lccode`\^^fe=`\^^fe +\catcode`\^^ff=11\uccode`\^^ff=`\^^df\lccode`\^^ff=`\^^ff +% +% +\catcode`\^^80=11\uccode`\^^80=`\^^80\lccode`\^^80=`\^^a0 +\catcode`\^^81=11\uccode`\^^81=`\^^81\lccode`\^^81=`\^^a1 +\catcode`\^^82=11\uccode`\^^82=`\^^82\lccode`\^^82=`\^^a2 +\catcode`\^^83=11\uccode`\^^83=`\^^83\lccode`\^^83=`\^^a3 +\catcode`\^^84=11\uccode`\^^84=`\^^84\lccode`\^^84=`\^^a4 +\catcode`\^^85=11\uccode`\^^85=`\^^85\lccode`\^^85=`\^^a5 +\catcode`\^^86=11\uccode`\^^86=`\^^86\lccode`\^^86=`\^^a6 +\catcode`\^^87=11\uccode`\^^87=`\^^87\lccode`\^^87=`\^^a7 +\catcode`\^^88=11\uccode`\^^88=`\^^88\lccode`\^^88=`\^^a8 +\catcode`\^^89=11\uccode`\^^89=`\^^89\lccode`\^^89=`\^^a9 +\catcode`\^^8a=11\uccode`\^^8a=`\^^8a\lccode`\^^8a=`\^^aa +\catcode`\^^8b=11\uccode`\^^8b=`\^^8b\lccode`\^^8b=`\^^ab +\catcode`\^^8c=11\uccode`\^^8c=`\^^8c\lccode`\^^8c=`\^^ac +\catcode`\^^8d=11\uccode`\^^8d=`\^^8d\lccode`\^^8d=`\^^ad +\catcode`\^^8e=11\uccode`\^^8e=`\^^8e\lccode`\^^8e=`\^^ae +\catcode`\^^8f=11\uccode`\^^8f=`\^^8f\lccode`\^^8f=`\^^af +% +\catcode`\^^90=11\uccode`\^^90=`\^^90\lccode`\^^90=`\^^b0 +\catcode`\^^91=11\uccode`\^^91=`\^^91\lccode`\^^91=`\^^b1 +\catcode`\^^92=11\uccode`\^^92=`\^^92\lccode`\^^92=`\^^b2 +\catcode`\^^93=11\uccode`\^^93=`\^^93\lccode`\^^93=`\^^b3 +\catcode`\^^94=11\uccode`\^^94=`\^^94\lccode`\^^94=`\^^b4 +\catcode`\^^95=11\uccode`\^^95=`\^^95\lccode`\^^95=`\^^b5 +\catcode`\^^96=11\uccode`\^^96=`\^^96\lccode`\^^96=`\^^b6 +\catcode`\^^97=11\uccode`\^^97=`\^^97\lccode`\^^97=`\^^b7 +\catcode`\^^98=11\uccode`\^^98=`\^^98\lccode`\^^98=`\^^b8 +\catcode`\^^99=11\uccode`\^^99=`\^^99\lccode`\^^99=`\^^b9 +\catcode`\^^9a=11\uccode`\^^9a=`\^^9a\lccode`\^^9a=`\^^ba +\catcode`\^^9b=11\uccode`\^^9b=`\^^9b\lccode`\^^9b=`\^^bb +\catcode`\^^9c=11\uccode`\^^9c=`\^^9c\lccode`\^^9c=`\^^bc +\catcode`\^^9d=11\uccode`\^^9d=`\^^9d\lccode`\^^9d=`\^^69 % Idot -> i +\catcode`\^^9e=11\uccode`\^^9e=`\^^d0\lccode`\^^9e=`\^^9e +%\catcode`\^^9f=11\uccode`\^^9f=`\^^9f\lccode`\^^9f=`\^^bf +% +\catcode`\^^a0=11\uccode`\^^a0=`\^^80\lccode`\^^a0=`\^^a0 +\catcode`\^^a1=11\uccode`\^^a1=`\^^81\lccode`\^^a1=`\^^a1 +\catcode`\^^a2=11\uccode`\^^a2=`\^^82\lccode`\^^a2=`\^^a2 +\catcode`\^^a3=11\uccode`\^^a3=`\^^83\lccode`\^^a3=`\^^a3 +\catcode`\^^a4=11\uccode`\^^a4=`\^^84\lccode`\^^a4=`\^^a4 +\catcode`\^^a5=11\uccode`\^^a5=`\^^85\lccode`\^^a5=`\^^a5 +\catcode`\^^a6=11\uccode`\^^a6=`\^^86\lccode`\^^a6=`\^^a6 +\catcode`\^^a7=11\uccode`\^^a7=`\^^87\lccode`\^^a7=`\^^a7 +\catcode`\^^a8=11\uccode`\^^a8=`\^^88\lccode`\^^a8=`\^^a8 +\catcode`\^^a9=11\uccode`\^^a9=`\^^89\lccode`\^^a9=`\^^a9 +\catcode`\^^aa=11\uccode`\^^aa=`\^^8a\lccode`\^^aa=`\^^aa +\catcode`\^^ab=11\uccode`\^^ab=`\^^8b\lccode`\^^ab=`\^^ab +\catcode`\^^ac=11\uccode`\^^ac=`\^^8c\lccode`\^^ac=`\^^ac +\catcode`\^^ad=11\uccode`\^^ad=`\^^8d\lccode`\^^ad=`\^^ad +\catcode`\^^ae=11\uccode`\^^ae=`\^^8e\lccode`\^^ae=`\^^ae +\catcode`\^^af=11\uccode`\^^af=`\^^8f\lccode`\^^af=`\^^af +% +\catcode`\^^b0=11\uccode`\^^b0=`\^^90\lccode`\^^b0=`\^^b0 +\catcode`\^^b1=11\uccode`\^^b1=`\^^91\lccode`\^^b1=`\^^b1 +\catcode`\^^b2=11\uccode`\^^b2=`\^^92\lccode`\^^b2=`\^^b2 +\catcode`\^^b3=11\uccode`\^^b3=`\^^93\lccode`\^^b3=`\^^b3 +\catcode`\^^b4=11\uccode`\^^b4=`\^^94\lccode`\^^b4=`\^^b4 +\catcode`\^^b5=11\uccode`\^^b5=`\^^95\lccode`\^^b5=`\^^b5 +\catcode`\^^b6=11\uccode`\^^b6=`\^^96\lccode`\^^b6=`\^^b6 +\catcode`\^^b7=11\uccode`\^^b7=`\^^97\lccode`\^^b7=`\^^b7 +\catcode`\^^b8=11\uccode`\^^b8=`\^^98\lccode`\^^b8=`\^^b8 +\catcode`\^^b9=11\uccode`\^^b9=`\^^99\lccode`\^^b9=`\^^b9 +\catcode`\^^ba=11\uccode`\^^ba=`\^^9a\lccode`\^^ba=`\^^ba +\catcode`\^^bb=11\uccode`\^^bb=`\^^9b\lccode`\^^bb=`\^^bb +\catcode`\^^bc=11\uccode`\^^bc=`\^^9c\lccode`\^^bc=`\^^bc +%\catcode`\^^bd=11\uccode`\^^bd=`\^^9d\lccode`\^^bd=`\^^bd +%\catcode`\^^be=11\uccode`\^^be=`\^^9e\lccode`\^^be=`\^^be +%\catcode`\^^bf=11\uccode`\^^bf=`\^^9f\lccode`\^^bf=`\^^bf +% +\endinput diff --git a/obsolete/macros/ec-plain/hyconfig.ptx b/obsolete/macros/ec-plain/hyconfig.ptx new file mode 100644 index 0000000000..fab2b200e9 --- /dev/null +++ b/obsolete/macros/ec-plain/hyconfig.ptx @@ -0,0 +1,98 @@ +% hyconfig.tex +% Hyphenation configuration code +% Updates: +% 02/28/92 language number setting was wrong. +% 03/20/92 allow hyphenation exceptions file (in language.dat) loading. +% 06/23/92 call the appropriate hymltex* file when using MlTeX +% 07/03/92 add \accenthypencodes +% 08/24/92 introduce \l@ being the language number +% 08/26/92 suppress absolute font character references normally unneeded +% 03/03/93 add dialect feature via ``='' sign. +% 04/02/93 add \input compatible.tex when \csubinverse undefined. +% 08/19/93 apply \c mods from MJF -- July 14, 92 +% 08/20/93 insert space after \input X for NFSS2 (H. Soulard) +% 01/13/94 add \j def for non french languages (noted by R. Lemieux). +% 03/22/94 \LANGUAGESinFORMAT now contains all languages names (proposed +% by Michel Lavaud). +% \input hyphen replaced by \input ushyphen (sugg. of M.Lavaud). +% 05/05/94 \patterns@loaded replace \LANGUAGESinFORMAT as in Babel. +% 08/10/94 \input replaced by \@@input if already defined. +% 10/18/94 Load compatible.tex only outside MlTeX. +% 12/13/94 Allow nothing else than =name in language.dat +% 12/17/94 Let language counter progress when equal sign after first language. +% 12/22/94 Don't load compatible.tex whith 2e any way. +% 03/02/95 " " " " any other format not OT1, this +% was clearly pointed by Thierry Bouche. +% 03/22/95 \encodingdefault may be undefined (as pointed by Loic Prylli). +% 96/09/10 Allow exception file to be blank in language.dat. +% 96/10/29 Messages numbered. +% 96/12/31 TeX 2 no more supported. taking in acount new frhyph.tex, no more +% usage of compatible.tex. +% +\message{languages: patterns and exceptions,} +%% +%% checksum = "05842 98 440 4335" +%% +\ifx\@@input\undefined\let\@@input\input\fi% +\def\@temp{}% +%\let\charsubdef\undefined% for testing purposes only +\ifx\charsubdef\undefined\else\def\@temp{\@@input hymltex3.tex \endinput}\fi +\@temp +%%%%%%%%%%%%%% pure TeX usage +\language=0 +% ======== Load Patterns as described in language.dat ====== + +% (language.dat was introduced by Johannes Braams) + +{\newcount\l@nguage\newcount\initl@\newcount\workl@% + % Compatibility with TeX 2: \language count + \ifx\language\let\language\l@nguage\fi + +\initl@=\language\l@nguage=\initl@\workl@=\l@nguage +\xdef\patterns@loaded{}% will contain all languages names +\def\@newlanguage[#1]#2{\language=#1% + \workl@=#1\advance\workl@ by -\initl@ + \message{-38- The #2 language is used as language number \the\workl@}% + \expandafter\xdef\csname l@#2\endcsname{\the\workl@}% 08/24/92 + \xdef\patterns@loaded{\patterns@loaded\space #2} + \expandafter\xdef\csname#2\endcsname{\language=\the\workl@\relax}%2/28/92 +\ifx\undefined\defaultlanguage\gdef\defaultlanguage{\csname#2\endcsname}\fi}% +% test if #1 equal ``='' that means same language hyphenation but a dialect. +\edef\test{=}% +\def\@language#1#2 #3 #4/#5{\def\@tempa{=}\def\@tempb{#1}% + \ifx\@tempa\@tempb% + \ifnum\l@nguage > \initl@ \advance\l@nguage by -1\fi% + \@newlanguage[\the\l@nguage]{#2}% + \ifnum\l@nguage \test \initl@ \advance\l@nguage by -1\fi% + \else\edef\test{<}\@l@ngu@ge#1#2 #3 #4/{#5}% + \fi}% +\def\@l@ngu@ge#1 #2 #3/#4{\begingroup\@newlanguage[#4]{#1}%20/3/92 mods + \def\@tempa{#2} + \ifx\@tempa\empty\else\expandafter\@@input#2 \relax\fi%% loading of patterns + \edef\@tempa{#3}\edef\@tempb{\space\space} + \ifx\@tempa\space\else + \ifx\@tempb\@tempa\else\expandafter% + \@@input#3 \relax\fi%% loading of exceptions + \fi% + \ifx\@tempb\@tempa\else\expandafter\@@input#3 \relax\fi%% loading of exceptions + \endgroup} +\newif\if@more\@moretrue +\openin1 = language.dat +\ifeof1\message{-39- Error: file language.dat not found, trying to load % + US-english hyphenation file}\language=0\input ushyphen +\else\advance\l@nguage by -1 +\loop \endlinechar=-1 \read1 to \@lineD \endlinechar`\^^M + \ifx\@lineD\empty \else \advance\l@nguage by 1% + \edef\@lineD{\@lineD\space\space/{\the\l@nguage}}% + \expandafter\@language\@lineD + \fi + \ifeof1 \@morefalse \fi + \if@more\repeat +\fi\closein1 + +}\defaultlanguage% go to the default language (first defined in language.dat) +\endinput + + + + diff --git a/obsolete/macros/ec-plain/ithyph.tex b/obsolete/macros/ec-plain/ithyph.tex new file mode 100644 index 0000000000..36c20829d0 --- /dev/null +++ b/obsolete/macros/ec-plain/ithyph.tex @@ -0,0 +1,107 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% file ithyph.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Prepared by Claudio Beccari e-mail beccari@polito.it +% +% Dipartimento di Elettronica +% Politecnico di Torino +% Corso Duca degli Abruzzi, 24 +% 10129 TORINO +% +% \versionnumber{3.4} \versiondate{8 february 1994} +% +% These hyphenation patterns for the Italian language comply with the +% Reccomendation UNI 6461 on hyphenation issued by the Italian Standards +% Institution (Ente Nazionale di Unificazione UNI). +% +% For documentation see: +% C. Beccari, "Computer aided hyphenation for Italian and Modern +% Latin", TUG vol. 13, n. 1, pp. 23-33 (1992) +% +% The following set of patterns is a slightly modified subset of the one +% described in the preceeding paper, which includes also patterns specific +% for the Latin language; the latter patterns have been eliminated and the +% remaining ones accordingly modified in order to reduce the number of ops +% (this file requires just 37 ops and no hyphenation exceptions). +% +% This set of patterns is compatible with the existing sets of macros and +% fonts for TeX and LaTeX that map national characters in a suitable way so +% as to have the hyphenation algorithm behave properly in the presence +% of accented characters. In facts the following patterns do not include +% any accented characters because: +% +% 1) The Regulation UNI 6015 on accents specifies that compulsory accents +% appear only on the ending vowel of accented words; this means that it is almost +% indifferent to have or to miss special facilities for national characters +% because the only difference consists in how TeX evaluates the end of the +% word; in practice if you have these special facilities you get +% "qua-li-t\`a", while if you miss them, you get "qua-lit\`a" (assuming +% that \righthyphenmin > 1). +% 2) Optional accents are so rare in Italian, that if you absolutely want +% to use them in those rare instances, and you miss the national character +% facilities, you should also provide explicit discretionary hyphens +% as in "s\'e\-gui\-to". +% +% There is no explicit hyphenation exception list because these patterns +% proved to hyphenate correctly a very large set of words suitably chosen in +% order to test them in the most heavy circumstances; these patterns were used +% in the preparation of a number of books and no errors were discovered. +% Should you find any word that gets hyphenated in a wrong way, please, AFTER +% CHECKING ON A RELIABLE MODERN DICTIONARY, report to the author, preferably +% by e-mail. +% +\lccode`\'=`\' % Apostrophe has its own lccode so that it is treated + % as a letter + % +\patterns{ +.an1ti3 .an1ti3m4n +.di2s3ci3ne +.e2x3 +.cir1cu2m3 +.wa2g3n +.ca6p5s +.o2p3to3 +.pa1ra3i .pa1ra3u +.pre3i .pro3i +.p4s % In case you set \lefthyphenmin=1 (brrrr !) +4l. 4n. 4r. 4t. 4s. % in case you set \righthyphenmin=1 (brrrr !) +.ri3a .ri3e .re3i .ri3o .ri3u +.su4b3lu .su4b3r +5p4si3c4 +3p4neu1 +a1a a2e a2i a2j a1o a2u a2y +a2y3o a3i2a a3i2e a3i2o a3i2u ae3u +e1a e1e e2i e2j e2o e2u e2y e3iu +i2a i2e i1i i2o i2u io3i +o1a o2e o2i o2j o1o o2u o2y +o3i2a o3i2e o3i2o o3i2u +u2a u2e u2i u2o u1u uo3u +% +1b2 2b3b 4b3d 2b3n 2b3s +1c2 2c3c 2c3m 4c3n 2c3q 2c3s 2c3t 2c3z 4ch3h +1d2 2d3d 2d3g 4d3m 4d3s 4d3v 4d3w +1f2 2f3f 2f3t +1g2 2g3g 4g3d 4g3f 4g3m 4g3s 4g3v +1h2 +1j2 +1k2 2k3k +1l2 2l3b 2l3c 2l3d 2l3f4 2l3g 2l3k 2l3l 4l3m 2l3n 2l3p + 2l3q 2l3r 2l3s 2l3t 2l3v 2l3z +1m2 2m3m 2m3b 2m3p 2m3l 2m3n 2m3r 4m3w +1n2 2n3c 2n3d 2n3f 2n3g 2n3k 2n3n 2n3q 2n3s 2n3t + 2n3v 2n3z 2n' 2n4g3n +1p2 2p3p 4p3s 2p3n 4p3t 2p3z +1q2 2q3q +1r2 2r3b 2r3c 2r3d 2r3f 2r3g 2r3k 2r3l 2r3m 2r3n 2r3p + 2r3q 2r3r 2r3s 2r3t 2r3v 2r3z +1s2 2s3s 2s2t3m 2s' +1t2 2t3t 4t3m 4t3n 4t3w 2t3z +1v2 2v3v +1w2 wa4r +1x2 +y2a y2e y2i y2o y2u +1z2 2z3z 2z3t +} % Pattern end + +\endinput + + diff --git a/obsolete/macros/ec-plain/language.dat b/obsolete/macros/ec-plain/language.dat new file mode 100644 index 0000000000..5a1c24d0ee --- /dev/null +++ b/obsolete/macros/ec-plain/language.dat @@ -0,0 +1,24 @@ +% This is language.dat as of March 13th, 1991 at (your site) +% +% This file tells which are the languages and the usable hyphenation files. +% First language will have language number 0 when used by hyconfig.tex +% at an INITeX time or used by french.sty Version 3 +% (once INITeX is done don't change the language order!) +% +%============================================================================% +%| Name | patterns file | exceptions file % comments |% +%============================================================================% + english enhyph.tex enhyphex.tex % default language is "english" + french f8hyph.tex frhyphex.tex % pas d'exceptions francaises ? + german ghyph31.tex % (german) + spanish eshyph.tex % (spanish) + italian ithyph.tex % (italian) +% dumylang dumyhyph.tex % for testing a new language without hyphen files + +% INITeX hyconfig.tex % master hyphenation code used at my site to + % congigurate each [*]plain format at INITeX time. + % \input hyphen is replaced here by \input hyconfig + % which does the job of loading files. + + % Donald Knuth's hyphen.tex file is left unchanged + % (in fact in 2 parts: patterns and exceptions). diff --git a/obsolete/macros/ec-plain/make-musixtex-format.bat b/obsolete/macros/ec-plain/make-musixtex-format.bat new file mode 100644 index 0000000000..fbcfae5aa0 --- /dev/null +++ b/obsolete/macros/ec-plain/make-musixtex-format.bat @@ -0,0 +1,2 @@ +initex &ec-plain musixtex.ins + diff --git a/obsolete/macros/ec-plain/ofgreekl.mf b/obsolete/macros/ec-plain/ofgreekl.mf new file mode 100644 index 0000000000..640e25a1ee --- /dev/null +++ b/obsolete/macros/ec-plain/ofgreekl.mf @@ -0,0 +1,491 @@ +% This lowercase Greek alphabet was prepared by D. E. Knuth in December, 1979, +% inspired by the Monotype faces used in {\sl The Art of Computer Programming}. +% (It has been designed for math formulas, not Greek texts.) +% The programs were revised for the new \MF\ conventions in 1985. + +% Character codes \0013--\0047 are generated. + +cmchar "Lowercase Greek alpha"; +beginchar(character_offset+oct"013",11u#,x_height#,0); +italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.5u#); +adjust_fit(0,0); pickup fine.nib; +pos0(hair,0); pos1(vair,-90); pos2(curve,-180); pos3(vair,-270); +z4=(w-3.25u,9/16h); z5=(w-2.75u,.5[vair,y4]); +numeric theta; theta=angle(z4-z5)-90; +pos4(stem,theta); pos5(stem,theta); +pos6(vair,90); pos7(hair,180); +rt x0r=hround(w-u); x1=x3=.5w-u; lft x2r=hround(1.5u-.5curve); +x6=w-u; x7+.5hair=hround(w+.5hair-epsilon); +top y0=vround .8[bar_height,h]; bot y1r=bot y6l=-oo; +y2=.5[y1,y3]; top y3r=h+oo; y7=1/4bar_height; +filldraw stroke z0e{down}...pulled_arc.e(1,2) & pulled_arc.e(2,3) + ...z4e---z5e...z6e{right}...{up}z7e; % diagonal, bowl, and hook +math_fit(-.3x_height#*slant+.5curve#-u#,1/3x_height#*slant+.5hair#+.5u#); +penlabels(0,1,2,3,4,5,6,7); endchar; + +cmchar "Lowercase Greek beta"; +beginchar(character_offset+oct"014",9.5u#,asc_height#,desc_depth#); +italcorr .5[x_height#,asc_height#]*slant-u#; +adjust_fit(0,0); pickup fine.nib; +pos0(hair,180); pos1(hair,180); pos2(vair,90); +pos3(stem,0); pos4(vair,-90); pos5(hair,-180); +pos6(vair,-270); pos7(curve,-360); pos8(vair,-450); pos9(hair,-540); +x0=x1=x9; lft x0l=hround(1.5u-.5hair); x2=x4=x6=x8=.5w+.25u; +rt x3r=hround(w-1.5u); rt x7r=hround(w-1.5u+.5curve); rt x5l=hround(x4-u); +bot y0=-d; y1=top y6r=x_height; top y2r=h+oo; y3=.5[y2,y4]; +y5=.5[y4,y6]; top y6r-bot y4r=vstem+eps; bot y8=-oo; y7=y9=.5[y6,y8]; +if y6ly3r: y1r:=y3r:=y2; fi +lft x4l=hround u; x4r-x4l=(hround .6[vair,stem])-fine; +x6+.5u=x7=w-2u; x8=.5w+.75u; +y6=-.1d; y8=-3/4d-oo; bot y7r=-d-oo; +ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r); +y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r]; +filldraw circ_stroke z0e{down}...z1e{right}...{up}z2e; % opening hook +filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right} + ...z6e---z5e....{up}z4e + ..tension 1 and atleast1.5..{right}z3e...{down}z2e; % main stroke +math_fit(-.2asc_height#*slant-.5u#,0); +penlabels(0,1,2,3,4,5,6,7,8); endchar; + +cmchar "Lowercase Greek eta"; +beginchar(character_offset+oct"021",9u#,x_height#,desc_depth#); +italcorr .8x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pickup fine.nib; +x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo; +hook_in(0,a,1); % opening hook +filldraw circ_stroke z2e--z1e; % left stem +x4+.5stem=hround(w-1.5u+.5stem); ital_arch(2,3,4); % arch +pos5(stem,0); x5=x4; y5-.5stem=-d-o; +filldraw circ_stroke z5e--z4e; % right stem +math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant); +penlabels(0,a,1,2,3,4,5); endchar; + +cmchar "Lowercase Greek theta"; +beginchar(character_offset+oct"022",8.25u#,asc_height#,0); +italcorr .7asc_height#*slant+.5curve#-u#; +adjust_fit(0,0); pickup fine.nib; +pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360); +x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2; +top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo; +filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3) + & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl +pos2'(bar,90); pos4'(bar,90); z2'=z2l; z4'=z4l; +filldraw stroke z2'e--z4'e; % bar +math_fit(-.3asc_height#*slant-u#+.5curve#,ic#-.5u#); +penlabels(1,2,3,4); endchar; + +cmchar "Lowercase Greek iota"; +beginchar(character_offset+oct"023",5u#,x_height#,0); +italcorr 1/3x_height#*slant+.5hair#+.5u#; +adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib; +pos1(stem,0); lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; +x2=x1-.25u; x4=w; hook_out(2,3,4)(skewed); % closing hook +filldraw circ_stroke z1e{down}...{-u,-x_height}z2e; % stem +math_fit(0,ic#); penlabels(1,2,3,4); endchar; + +cmchar "Lowercase Greek kappa"; +beginchar(character_offset+oct"024",9u#,x_height#,0); +italcorr 1/3x_height#*slant+.5hair#+.5u#; +adjust_fit(0,0); pickup fine.nib; +pos1(stem,0); pos2(stem,0); pos3(vair,90); pos4(vair,90); pos5(flare,90); +x1=x2=x3; lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; y2-.5stem=-oo; +filldraw z1l---z2l..z2r---z1r..cycle; % stem +y3=bar_height; top y4r=h; x4+.5flare=hround(w-1.5u); z5r=z4r; +path p,q; p=z3l{right}..{right}z4l; q=z5r{right}..z5l{left}...cycle; +numeric t; t=ypart(p intersectiontimes q); +filldraw stroke z3e{right}..{right}z4e; % upper diagonal +filldraw subpath(0,t) of q--cycle; % bulb +pos7(stem,0); pos8(vair,90); pos9(hair,180); +x9+.5hair=hround(w+.5hair-epsilon); y9=1/3x_height; +lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo; +filldraw stroke z3e{right}...z7e{down} + ...z8e{right}...{up}z9e; % lower diagonal +math_fit(0,ic#); penlabels(1,2,3,4,5,7,8,9); endchar; + +cmchar "Lowercase Greek lambda"; +beginchar(character_offset+oct"025",10.5u#,asc_height#,0); +adjust_fit(0,0); pickup fine.nib; +pos1(vair,90); lft x1=hround .1u; top y1r=h; +x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps); +z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90; +pos2(stem,theta); pos3(stem,theta); pos4(stem,0); +filldraw circ_stroke z1e{right}...z2e---z3e + ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal +y5=.5[bar_height,x_height]; z5=whatever[z2,z3]; +x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90); +filldraw circ_stroke z6e--z5e; % short diagonal +penlabels(1,2,3,4,5,6); endchar; + +cmchar "Lowercase Greek mu"; +beginchar(character_offset+oct"026",9u#,x_height#,desc_depth#); +italcorr 1/3x_height#*slant+.5hair#+.5u#; +adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; +pos1(stem,-180); pos2(stem,-180); x1=x2=x3; lft x1r=hround(1.5u-.5stem); +y1+.5stem=h+oo; y2-.5stem=-d-o; +filldraw z1r---z2r..z2l---z1l..cycle; % left stem +pos3(stem,-180); pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5]; +pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); +x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook +y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h; +filldraw stroke super_arc.e(3,4)...{up}z5e; % left stem and arc +filldraw circ_stroke z6e--z7e; % right stem +math_fit(desc_depth#*slant+.5stem#-u#,ic#); +penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "Lowercase Greek nu"; +beginchar(character_offset+oct"027",8.5u#,x_height#,0); +italcorr x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pickup fine.nib; +pos3(vair,-90); pos4(stem,0); bot y3r=0; y4+.5stem=h+oo; +x3-.5stem=hround(1.5u-.5stem); x4+.5stem=hround(w-1.5u+.5stem); +filldraw circ_stroke z4e{down}...{-36u,-h}z3e; % diagonal +pickup tiny.nib; pos1(stem,0); pos2(stem,0); +top y1=h+min(oo,serif_drop); bot y2=0; x1=x2=x3; +z=((z4{down}...{-36u,-h}z3)intersectionpoint((x2r,0)--(x2r,h))); +filldraw z1l--z2l--z--z1r--cycle; % stem +sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif +math_fit(0,ic#-1/3x_height#*slant-.5u#); penlabels(1,2,3,4); endchar; + +cmchar "Lowercase Greek xi"; +beginchar(character_offset+oct"030",9u#,asc_height#,desc_depth#); +italcorr .75[x_height#,asc_height#]*slant-2u#; +adjust_fit(0,0); pickup fine.nib; +pos10(hair,-720); pos11(vair,-630); pos12(hair,-540); pos13(vair,-450); +lft x10l=hround 1/3w; x11=x13=.5[x10,x12]; rt x12l=hround(w-2.5u); +top y10=h; top y13l=bot y11l+vstem+eps=vround(y10-.25(h-x_height)); +y12=.5[y11,y13]; if y11r>y13r: y11r:=y13r:=y12; fi +pos0(curve,-360); pos1(vair,-270); pos2(hair,-180); pos3(vair,-90); +numeric theta; theta=90-angle(22u,x_height); slope:=-x_height/22u; +pos6(stem,theta); pos7(vair,-90); pos8(vair,-135); +lft x0l=hround u; x1=x3=x11; x2=x12; +y0=.5[y13,y1]; top y3l=vround .5h=bot y1l+vstem+eps; y2=.5[y1,y3]; +if y1r>y3r: y1r:=y3r:=y2; fi +lft x4l=hround u; x4r-x4l=hround .5[vair,stem]-fine; +x6=x7=w-2u; x8=.5w+.5u; y6=-.3d; bot y7r=-d-oo; y8=max(-3/4d-oo,y7l); +ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r); +y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r]; +filldraw circ_stroke z10e{down}...z11e{right}...{up}z12e; % opening hook +filldraw stroke z12e{up}...z13e{left}...z0e{down} + ...z1e{right}...{up}z2e; % upper arc +filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}...z6e + ---z5e...{up}z4e...{right}z3e...{down}z2e; % main stroke +math_fit(-.2asc_height#*slant-.5u#,0); +penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13); endchar; + +cmchar "Lowercase Greek pi"; +beginchar(character_offset+oct"031",10u#,x_height#,0); +italcorr x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pi_stroke; % hook and bar +pos4(hair,0); pos6(hair,0); x4=3.5u; x6=w-4u; y4=y6=y2; +x5=3u; x7=w-2.5u; y5=y7=.5stem-oo; +pair v[]; v1=(z4-z5) xscaled 3.14159; v2=(z6-z7) xscaled 3.14159; +pos5(stem,angle v1-90); pos7(stem,angle v2-90); +filldraw circ_stroke z5e{v1}...{up}z4e; % left stem +filldraw circ_stroke z7e{v2}...{up}z6e; % right stem +math_fit(-.7x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant); +penlabels(1,2,3,4,5,6,7); endchar; + +cmchar "Lowercase Greek rho"; +beginchar(character_offset+oct"032",8.25u#,x_height#,desc_depth#); +italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; +adjust_fit(0,0); pickup fine.nib; +pos1(stem,180); pos2(stem,180); pos3(vair,90); +pos4(curve,0); pos5(vair,-90); pos6(hair,-180); +lft x2r=hround(1.5u-.5stem); x1=x2=x6; x3=x5=.5[x2,x4]; +rt x4r=hround(w-1.5u+.5curve); +y1-.5stem=-d-o; y2=y4=y6=.5[y3,y5]; top y3r=h+oo; bot y5r=-oo; +filldraw circ_stroke z1e..pulled_arc.e(2,3) & pulled_arc.e(3,4) + & pulled_arc.e(4,5) & pulled_arc.e(5,6); % stem and bowl +math_fit(desc_depth#*slant+.5stem#-u#,ic#); +penlabels(1,2,3,4,5,6); endchar; + +cmchar "Lowercase Greek sigma"; +beginchar(character_offset+oct"033",10.25u#,x_height#,0); +italcorr x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pickup fine.nib; +pos1(vstem,90); pos2(stem,0); pos3(vair,-90); +pos4(stem,-180); pos5(vstem,-270); pos6(vstem,-270); +x1=x3=x5=.5[x2,x4]; rt x2r=hround(w-2.5u); +lft x4r=hround(1.5u-.5curve);x6=w-1.5u; +top y1r=h; y2=y4=.5[y1,y3]; bot y3r=-oo; y5=y6=y1; +filldraw circ_stroke z6e..pulled_arc.e(5,4) & pulled_arc.e(4,3) + & pulled_arc.e(3,2) & pulled_arc.e(2,1); % ear and bowl +math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant); +penlabels(1,2,3,4,5,6); endchar; + +cmchar "Lowercase Greek tau"; +beginchar(character_offset+oct"034",9u#,x_height#,0); +italcorr x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pi_stroke; % hook and bar +pos4(hair,0); pos5(stem,0); +x4=x5; x5-.5stem=hround(.5w-.5u-.5stem); y4=y2; y5-.5stem=-oo; +filldraw circ_stroke z5e--z4e; % stem +math_fit(-.7x_height#*slant+.5hair#+.5u#,-.5u#); +penlabels(1,2,3,4,5); endchar; + +cmchar "Lowercase Greek upsilon"; +beginchar(character_offset+oct"035",9u#,x_height#,0); +italcorr x_height#*slant; +adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; +x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem); +hook_in(0,1,2)(skewed); % opening hook +pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); +x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; +filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4) + ..tension atleast 1.05..{up}z5e; % left stem and arc +v_bulb(5,6); % closing bulb +math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#); +penlabels(0,1,2,3,4,5,6); endchar; + +cmchar "Lowercase Greek phi"; +beginchar(character_offset+oct"036",11u#,asc_height#,desc_depth#); +italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; +adjust_fit(0,0); pickup fine.nib; +numeric light_curve; light_curve=hround(.5[stem,curve]-2stem_corr); +pos1(vair,90); pos2(light_curve,180); pos3(vair,270); pos4(light_curve,360); +x1=x3=.5w; lft x2r=hround(1.5u-.5light_curve); x4=w-x2; +top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo; +filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3) + & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl +pos5(hair,0); pos6(hair,0); x5=x6=.5w; top y5=h; bot y6=-d-oo; +filldraw stroke z5e--z6e; % stem +math_fit(-.3x_height#*slant+.5curve#-u#,ic#); +penlabels(1,2,3,4,5,6); endchar; + +cmchar "Lowercase Greek chi"; +beginchar(character_offset+oct"037",11u#,x_height#,desc_depth#); +italcorr x_height#*slant+.5hair#-1.5u#; +adjust_fit(0,0); pickup fine.nib; +pos1(hair,180); pos2(vair,80); pos5(vair,80); pos6(hair,180); +x1-.5hair=hround-.5hair; x6=w-x1; x2=w-x5=u; +y1=y2l-h/8; top y2r=h+oo; bot y5l=-d-oo; y6=y5r+h/8; +z0=.5[z2,z5]; z2'=z2l+(.5u,0); z5'=z5r-(.5u,0); +numeric theta; theta=angle(z5'-z2')+90; +pos3(stem,theta); pos4(stem,theta); +y3r=y2r-h/8; y4l=y5l+h/8; z3l=whatever[z2',z0]; z4r=whatever[z0,z5']; +filldraw stroke z1e{up}...z2e{right}...z3e{z4r-z3l} + ..z4e{z4r-z3l}...{right}z5e...{up}z6e; % major diagonal and hooks +x8=w-x7=2u; y7+.5hair=h; y8-.5hair=-d; +numeric theta; theta=angle(z7-z8)-90; +pos7(hair,theta); pos8(hair,theta); +filldraw z7l---z8l..z8r---z7r..cycle; % minor diagonal +math_fit((desc_depth#-x_height#)*slant+ic#,ic#); +penlabels(0,1,2,2',3,4,5',5,6,7,8); endchar; + +cmchar "Lowercase Greek psi"; +beginchar(character_offset+oct"040",11u#,asc_height#,desc_depth#); +italcorr x_height#*slant; +adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; +x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem); +hook_in(0,1,2)(skewed); % opening hook +pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); +x4=.5w+u; rt x5r=hround(w-.5u); +y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; +filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4) + ..tension atleast 1.05..{up}z5e; % left stem and arc +v_bulb(5,6); % closing bulb +pos7(hair,0); pos8(hair,0); x7=x8=.5w+.5u; top y7=h; bot y8=-d-oo; +filldraw stroke z7e--z8e; % stem +math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#); +penlabels(0,1,2,3,4,5,6,7,8); endchar; + +cmchar "Lowercase Greek omega"; +beginchar(character_offset+oct"041",11u#,x_height#,0); +italcorr x_height#*slant; +adjust_fit(0,0); pickup fine.nib; +pos2(hair,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height; +y1+.5hair=h; x1=x2+.75u; pos1(hair,angle(2(x1-x2),y1-y2)+90); +pos3(vstem+dw,-90); pos4(hair,0); pos5(vair,90); +pos6(hair,180); pos7(vstem+dw,270); pos8(hair,360); +bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair); +x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u); +x5+.5stem=hround(.5w+.5stem)+eps; +x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps; +if x4ltop y7r+.75cap_jut: xjut=.5cap_jut; + else: bot y2=top y7r+1.5xjut; fi + pos11(hair,0); pos12(hair,0); y11=y12; + pos13(hair,0); pos14(hair,0); y13=y14; + lft x11l=lft x13l=w-rt x12r=w-rt x14r=hround 2.5u; + top y11-bot y13=shaved_stem+2xjut; .5[y11,y13]=y7; + filldraw stroke z11e--z13e; filldraw stroke z12e--z14e; fi % middle serifs +math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,11,12,13,14); endchar; + +cmchar "Uppercase Greek Pi"; +beginchar(character_offset+oct"005",13u#+width_adj#,cap_height#,0); +italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#); +adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib; +h:=vround(h-stem_corr); +pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0); +lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1; +top y1=top y3=h; bot y2=bot y4=0; +filldraw stroke z1e--z2e; % left stem +filldraw stroke z3e--z4e; % right stem +penpos5(cap_bar,90); penpos6(cap_bar,90); +x5=x1; x6=x3; y5r=y6r=h; +fill stroke z5e--z6e; % bar +if serifs: numeric inner_jut; + if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut; + else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi + nodish_serif(1,2,a,1/3,cap_jut,b,1/3,eps); % upper left serif + dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif + nodish_serif(3,4,e,1/3,eps,f,1/3,cap_jut); % upper right serif + dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif +math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar; + +cmchar "Uppercase Greek Sigma"; +beginchar(character_offset+oct"006",13u#,cap_height#,0); +italcorr cap_height#*slant-beak_jut#-.5u#; +adjust_fit(0,0); +numeric bot_arm_thickness; +bot_arm_thickness=Vround .25[slab,cap_vstem]; +pickup tiny.nib; lft x1l=hround u; x1l=x2l=x4l; +top y1=h; bot y2=h-slab-eps; bot y4=0; x3l-x1l=4/11(w-2u); y3=.5h; +numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3); +penpos1(alpha1*(cap_stem-tiny),0); penpos2(alpha1*(cap_stem-tiny),0); +penpos3(alpha1*(cap_stem-tiny),0); +alpha2=diag_ratio(1,cap_hair-tiny,y3-y4,x3r-x4l); +penpos4(alpha2*(cap_hair-tiny),0); +z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r); +filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals +pickup crisp.nib; pos5(slab,90); pos6(hair,0); +top y5r=h; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps; +arm(5,6,a,beak_darkness,beak_jut); % upper arm and beak +pos7(bot_arm_thickness,-90); pos8(hair,0); +bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps; +arm(7,8,b,beak_darkness,beak_jut); % lower arm and beak +math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8); endchar; + +cmchar "Uppercase Greek Upsilon"; +beginchar(character_offset+oct"007",14u#,cap_height#,0); +italcorr .8cap_height#*slant-.5u#; +adjust_fit(0,0); +pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); +lft x1l=lft x2l=hround(.5w-.5cap_stem); y1=.5h; bot y2=0; +filldraw stroke z1e--z2e; % stem +penpos3(.6cap_stem,0); penpos4(.75cap_curve,90); penpos5(cap_hair,180); +z3l=lft z1l; x5r=hround u; y5=bot .8h; x4=.61803[x3l,x5l]; y4r=h+o; +penpos5'(cap_hair,180); x5'=x5; y5'=h; +fill z3r{up}...z4r{left}...{down}diag_end(5'r,5r,1,1,5l,5'l){up} + ...{right}z4l...{down}z3l--cycle; % left arc +penpos6(.6cap_stem,0); penpos7(.75cap_curve,-90); penpos8(cap_hair,-180); +z6r=rt z1r; x8=w-x5; y8=y5; x7=w-x4; y7=y4; +penpos8'(cap_hair,-180); x8'=x8; y8'=h; +fill z6r{up}...z7r{right}...{down}diag_end(8'r,8r,1,1,8l,8'l){up} + ...{left}z7l...{down}z6l--cycle; % right arc +if serifs: dish_serif(2,1,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); fi % serif +math_fit(-.8cap_height#*slant-.5u#,ic#-2.5u#); +penlabels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Uppercase Greek Phi"; +beginchar(character_offset+oct"010",13u#,cap_height#,0); +italcorr .5cap_height#*slant-.5u#; +adjust_fit(0,0); +numeric shaved_stem,light_curve; +shaved_stem=cap_stem-hround 2stem_corr; +light_curve=cap_curve-hround stem_corr; +pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0); +lft x1l=lft x2l=hround(.5w-.5shaved_stem); top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % stem +penpos3(vair,90); penpos5(vair,-90); +penpos4(light_curve,180); penpos6(light_curve,0); +x4r=hround u; x6r=w-x4r; x3=x5=.5w; +y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5]; +y5r=vround(.15h if serifs:+slab fi); +penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5) + & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl +if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif + dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif +math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar; + +cmchar "Uppercase Greek Psi"; +beginchar(character_offset+oct"011",14u#,cap_height#,0); +italcorr .8cap_height#*slant-.5u#; +adjust_fit(0,0); +numeric shaved_stem; +shaved_stem=cap_stem-hround 2stem_corr; +pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0); +lft x1l=lft x2l=hround(.5w-.5shaved_stem); top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % stem +pos3(shaved_stem,-180); pos4(shaved_stem,-180); +pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi); +pos6(shaved_stem,0); pos7(shaved_stem,0); +lft x3r=hround u; x7=w-x3; lft x4r=hround(3u-.5shaved_stem); x6=w-x4; +pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r; +y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3'); +interim superness:=more_super; +filldraw z3'l{right}...z4r{down} & super_arc.r(4,5) + & super_arc.r(5,6) & z6r{up}...z7'l{right} + --z7r---z7l...z6l{down} & super_arc.l(6,5) + & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke +if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif + dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif +math_fit(-.8cap_height#*slant-.5u#,.4cap_height#*slant-1.25u#); +penlabels(1,2,3,4,5,6,7); endchar; + +cmchar "Uppercase Greek Omega"; +beginchar(character_offset+oct"012",13u#,cap_height#,0); +italcorr .75cap_height#*slant-.5u#; +adjust_fit(0,0); +pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180); +pos3(vair,180); pos4(cap_curve,0); pos5(vair,0); +x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2; +rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3; +filldraw stroke z3e{up}...{up}z2e + & pulled_super_arc.e(2,1)(.5superpull) + & pulled_super_arc.e(1,4)(.5superpull) + & z4e{down}...{down}z5e; % bowl +numeric arm_thickness; path p; p=z3{up}...{up}z2; +arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi); +pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180); +bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps; +(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x; +arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak +pos8(arm_thickness,-90); pos9(fudged.hair,0); +y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l; +arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak +math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar; diff --git a/support/TeX4ht/source/ChangeLog b/support/TeX4ht/source/ChangeLog index a268359b24..427adcd3d4 100644 --- a/support/TeX4ht/source/ChangeLog +++ b/support/TeX4ht/source/ChangeLog @@ -1,3 +1,12 @@ +2024-01-30 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht): fixed nested links in footnotes. + https://tex.stackexchange.com/a/708335/2891 + + * tex4ht-mathml.tex (mathml.4ht): prevent spurious opening

tags + in \boxed commands. + https://tex.stackexchange.com/a/708306/2891 + 2024-01-29 Michal Hoftich * tex4ht-ooffice.tex (ooffice-mml.4ht), diff --git a/support/TeX4ht/source/tex4ht-html4.tex b/support/TeX4ht/source/tex4ht-html4.tex index 82cd70f74a..38ac28f4d8 100644 --- a/support/TeX4ht/source/tex4ht-html4.tex +++ b/support/TeX4ht/source/tex4ht-html4.tex @@ -1,4 +1,4 @@ -% $Id: tex4ht-html4.tex 1453 2024-01-24 22:08:34Z karl $ +% $Id: tex4ht-html4.tex 1457 2024-01-30 20:48:28Z michal_h21 $ % Compile 4 times: latex tex4ht-html4 % Copy html4.4ht into the work directory before all but the last compilation. % @@ -5119,8 +5119,8 @@ The `index=i' provides the initial setting. \<<< \Configure{footnotetext} {|% - |\Link{}{|}% - \NoFonts\AnchorLabel + |\AnchorLabel\Link{}{|}% + \NoFonts% } {\EndNoFonts \EndLink|} {|} diff --git a/support/TeX4ht/source/tex4ht-mathml.tex b/support/TeX4ht/source/tex4ht-mathml.tex index b5cc838ebd..acdc463ecb 100644 --- a/support/TeX4ht/source/tex4ht-mathml.tex +++ b/support/TeX4ht/source/tex4ht-mathml.tex @@ -1,4 +1,4 @@ -% $Id: tex4ht-mathml.tex 1455 2024-01-29 13:45:00Z michal_h21 $$ +% $Id: tex4ht-mathml.tex 1456 2024-01-30 16:31:58Z michal_h21 $$ % compile 3 times: latex tex4ht-mathltx % or xhlatex tex4ht-mathltx "html,3,sections+" % @@ -5012,7 +5012,7 @@ tail>>> \<<< \Configure{boxed} {\ifmathml \Tg<\a:mathml menclose \a:mathml notation="box">\Tg<\a:mathml mrow>% - \else \HCode{}\IgnorePar\fi} + \else \HCode{}\fi\IgnorePar} {\ifmathml \Tg\Tg% \else \HCode{}\fi} \Css{.boxed{border: 1px solid black; padding-left:2px; diff --git a/support/latexmk/CHANGES b/support/latexmk/CHANGES index 84a8944de9..1a2cc620fd 100644 --- a/support/latexmk/CHANGES +++ b/support/latexmk/CHANGES @@ -895,3 +895,14 @@ From v. 4.82 to 4.82a about "Use of uninitialized value $_" were given, and some corresponding dependencies were incorrectly treated. +From v. 4.82a to 4.83 + Fix bug that sometimes biber is incorrectly run after a *latex run + results in an error, with biber then giving an error. + Fix problem that if -gg is used with multiple files specified on command + line, then generated files are deleted for all by the last file + compiled. (So that -gg wasn't working as intended in this case.) + Fixed some bugs with incorrect variable scope. (These bugs gave + incomprehensible error messages about undefined variables!) + Restrict warning diagnostics about ^^ constructs in aux file to those + involving non-trivial Unicode characters, as against things like ^^M. + diff --git a/support/latexmk/INSTALL b/support/latexmk/INSTALL index 8e7a73304a..1eca0ad101 100644 --- a/support/latexmk/INSTALL +++ b/support/latexmk/INSTALL @@ -1,6 +1,6 @@ INSTALLING latexmk ================== - (Version 4.82a, 10 Jan. 2024) + (Version 4.83, 31 Jan. 2024) John Collins Physics Department diff --git a/support/latexmk/README b/support/latexmk/README index 4d34afe9ff..466ea9e3d1 100644 --- a/support/latexmk/README +++ b/support/latexmk/README @@ -1,5 +1,5 @@ -Latexmk, version 4.82a, 10 Jan 2024 ------------------------------------ +Latexmk, version 4.83, 31 Jan 2024 +---------------------------------- Latexmk completely automates the process of generating a LaTeX document. Essentially, it is a highly specialized cousin of the diff --git a/support/latexmk/latexmk.1 b/support/latexmk/latexmk.1 index cac97f47f1..85fc6ed20e 100644 --- a/support/latexmk/latexmk.1 +++ b/support/latexmk/latexmk.1 @@ -1,10 +1,10 @@ -.TH LATEXMK 1 "10 January 2024" "" +.TH LATEXMK 1 "31 January 2024" "" .SH NAME latexmk \- generate LaTeX document .SH SYNOPSIS .B latexmk [options] [file ...] .SH DESCRIPTION -.I Latexmk +.I Latexmk completely automates the process of compiling a LaTeX document. Essentially, it is like a specialized relative of the general \fImake\fR utility, but one which determines dependencies @@ -12,7 +12,7 @@ automatically and has some other very useful features. In its basic mode of operation \fIlatexmk\fR is given the name of the primary source file for a document, and it issues the appropriate sequence of commands to generate a .dvi, .ps, .pdf and/or hardcopy version of the -document. +document. .PP By default \fIlatexmk\fR will run the commands necessary to generate a .dvi file, which copies the behavior of earlier versions when only @@ -167,7 +167,7 @@ the behavior of \fIlatex\fR etc, and deals with problems that occasionally result from filenames that have been incorrectly quoted on the command line. \fIIn addition\fR, under Microsoft Windows, the forward slash character "\\" is a directory separator, so \fIlatexmk\fR replaces it -by a backward slash "/", which is also a legal directory separator in +by a forward slash "/", which is also a legal directory separator in Windows, and is accepted by \fIlatex\fR etc. .TP @@ -2226,7 +2226,7 @@ Array of regular expressions specifying messages in log file that are officially treated as warnings rather than errors by *latex, but which a user may treat as errors: See \fI$bad_warning_is_error\fR. -Currently the default set of these warnings is those about \\end occuring +Currently the default set of these warnings is those about \\end occurring inside constructs. .TP @@ -2776,7 +2776,7 @@ look at the definition of \fI@file_not_found\fR in the latexmk.pl file. In the regular expression, the string for the name of the missing file should be enclosed in parentheses. That carries the implication that after -latexmk gets a succesful match to the pattern, the variable $1 is set to +latexmk gets a successful match to the pattern, the variable $1 is set to the filename, which is then picked up by latexmk. If you happen to encounter a package that gives a missing file message of a @@ -4469,7 +4469,7 @@ e-mail addresses are not written in their standard form to avoid being harvested too easily.) .SH AUTHOR Current version, by John Collins -(Version 4.82a). +(Version 4.83). Report bugs etc to his e-mail (jcc8 at psu.edu). Released version can be obtained from CTAN: diff --git a/support/latexmk/latexmk.pdf b/support/latexmk/latexmk.pdf index f18c22657c..19f863e8c7 100644 Binary files a/support/latexmk/latexmk.pdf and b/support/latexmk/latexmk.pdf differ diff --git a/support/latexmk/latexmk.pl b/support/latexmk/latexmk.pl index 0b7e0ecb32..44ee6a05a7 100755 --- a/support/latexmk/latexmk.pl +++ b/support/latexmk/latexmk.pl @@ -1,12 +1,8 @@ #!/usr/bin/env perl use warnings; +use strict; - -# 9, 10 Jan 2024 Fix localization of $_ in while loops that read file. -# That fixes problems with use of %hash_calc_ignore_pattern, -# which gave uninitialized $_ warnings. - -## Copyright John Collins 1998-2023 +## Copyright John Collins 1998-2024 ## (username jcc8 at node psu.edu) ## (and thanks to David Coppit (username david at node coppit.org) ## for suggestions) @@ -45,13 +41,14 @@ use warnings; ## 20 = probable bug ## or retcode from called program. +our ($my_name, $My_name, $version_num, $version_details); BEGIN { # Make sure the following are available when printing diagnostics in BEGIN # blocks. $my_name = 'latexmk'; $My_name = 'Latexmk'; - $version_num = '4.82a'; - $version_details = "$My_name, John Collins, 10 Jan. 2024. Version $version_num"; + $version_num = '4.83'; + $version_details = "$My_name, John Collins, 31 Jan. 2024. Version $version_num"; } use Config; @@ -63,7 +60,7 @@ use File::Spec::Functions qw( catfile file_name_is_absolute rel2abs ); # It's either File::Glob::bsd_glob or File::Glob::glob # The first does not exist in old versions of Perl, while the second # is deprecated in more recent versions and will be removed -$have_bsd_glob = 0; +our $have_bsd_glob = 0; use File::Glob; if ( eval{ File::Glob->import('bsd_glob'); 1; } ) { # Success in importing bsd_glob @@ -116,7 +113,8 @@ BEGIN { # use Encode qw( decode encode ); use Unicode::Normalize; -use utf8; # For UTF-8 strings in **this** script +use utf8; # Strings are coded in UTF-8 in this file, stored internally + # decoded into Perl's internal character representation. use feature 'unicode_strings'; use feature 'say'; @@ -149,8 +147,7 @@ use feature 'say'; # My default CSs: UTF-8 -our $CS_system; -$CS_system = 'UTF-8'; +our $CS_system = 'UTF-8'; # Quick short cut for tests of whether conversions needed: our $no_CP_conversions = 1; @@ -205,138 +202,13 @@ END { ######################################################## -#************************************************************ -#************************************************************ -# Unicode manipuation and normalization -# Notes about Perl strings: -# 1. Strings have a flag utf8. -# a. If the utf8 flag is on, the string is to be interpreted as a sequence -# of code points. -# When "use utf8;" is used, a string containing non-ASCII characters -# has the utf8 flag set. -# If 'no bytes;' is in effect, the ordinal value for each item in the -# string is the Unicode code point value. -# b. If the utf8 flag is off for a string, the string is a sequence of -# bytes, to be interpreted according to whatever CS the user happens -# to choose to use. -# c. The utf8 flag is NOT to be interpreted as saying that the string is -# encoded as UTF-8, even though under the hood that may be the case. -# d. Indeed, setting 'use bytes;' appears to expose the internal -# byte-level representation of a string with the utf8 flag set, and -# that appears to be UTF-8. -# 2. The utf8 flag is quite confusing in its meaning. -# 3. When encode is applied to a string whose utf8 flag is on, the result -# is a string with the utf8 flag off, and the result consists of a sequence -# of bytes in the chosen encoding scheme, which may be chosen as UTF-8. -# 4. Strings received from the command line have the utf8 flag off and are -# encoded in whatever CS the OS/terminal is using. -# 5. When a string is supplied to print (or c), by default: -# a. If the utf8 flag is off or if 'use bytes;' is in effect, then the -# string is sent as a sequence of bytes. They are UTF-8 coded if -# the utf8 flag is on and 'use bytes;' is in effect. -# b. If the utf8 flag is on and if 'no bytes;' is in effect, then mostly -# garbage results for non-ASCII characters; the string must first be -# encoded as a byte string, in the CS suitable for the OS. -# c. Correct results are obtained when the utf8 flag is on and 'no bytes' -# is used when the binmode for the file handle is set suitably. -# 6. Generally OS calls and interactions with the OS need encoded byte strings. -# 7. Even more generally, interaction with the external world, including file -# contents is in terms of byte strings, with some CS chosen by default, by -# the user, or the OS. Unix-like OSs: Default is UTF-8, but as much by -# convention as by a requirement of the OS. - -#------------------------------------- - -sub utf8_to_mine { - # Given string encoded in UTF-8, return encoded string in my current CS. - # Don't use Encode::from_to, which does in-place conversion. - if ($no_CP_conversions) { return $_[0]; } - else { return encode( $CS_system, decode('UTF-8', $_[0])); } -} - -#------------------------------------- - -sub utf8_to_mine_errors { - # Given string encoded in UTF-8, return encoded string in my current CS. - # Don't use Encode::from_to, which does in-place conversion. - # Assume coding of input string is correctly UTF-8, but - # check for correct encoding in CS_system. - # Error message is returned in $@. No error => $@ is null string. - # (Same style as eval!) - $@ = ''; - if ($no_CP_conversions) { return $_[0]; } - else { - my $result = ''; - eval { - $result = encode( $CS_system, - decode('UTF-8', $_[0]), - Encode::FB_CROAK | Encode::LEAVE_SRC - ); - }; - return $result; - } -} - -#------------------------------------- - -sub config_to_mine { - # Ensure that configuration strings about files and directories are - # encoded in system CS. - # Configuration strings set in an rc file SHOULD either be: - # a. ASCII only, with Perl's utf8 flag off. - # b. Containing non-ASCII characters, with utf8 flag on. - # These need to be converted to encoded strings in system CS (and - # hence with utf8 flag off). - # Configuration variables set from the command line, e.g., from an - # -outdir=... option, are already in the system CS, because that is - # how strings are passed on the command line. - # So we just need to do a conversion for strings with utf8 flag on: - foreach ( $out_dir, $aux_dir, @default_files, @default_excluded_files ) { - if (utf8::is_utf8($_)) { $_ = encode( $CS_system, $_ ); } - } -} #END config_to_mine - -#************************************************************ - -sub mine_to_utf8 { - # Given string encoded in my current CS, return utf-8 encoded string. - # Don't use Encode::from_to, which does in-place conversion. - if ($no_CP_conversions) { return $_[0]; } - else { return encode( 'UTF-8', decode($CS_system, $_[0])); } -} - -#------------------------------------- - -sub is_valid_utf8 { - eval { decode( 'UTF-8', $_[0], (Encode::FB_CROAK | Encode::LEAVE_SRC ) ); }; - if ($@) { return 0; } - else { return 1; } -} - -#------------------------------------- - -sub fprint8 { - # Usage: fprint8( handle, data array) - # Write to file converting from my CS to UTF-8 - my $fh = shift; - print $fh mine_to_utf8( join( '', @_ ) ); -} - -#------------------------------------- - -################################################################ - - - - ################################################################ ################################################################ #============ Deal with how I'm invoked: name and CL args: # Name that I'm invoked with indicates default behavior (latexmk # v. pdflatexmk, etc): -(our $invoked_name) = fileparseA($0); - +our ($invoked_name) = fileparseA($0); # Save name, since I override it if I don't recognize it our $invoked_kind = $invoked_name; print "$My_name: Invoked as '$invoked_name'\n" @@ -347,7 +219,7 @@ print "$My_name: Invoked as '$invoked_name'\n" # rc files and CL args, no values are set for any of these variables. # Thus default compilation for latexmk is by latex, # for pdflatexmk is by pdflatex, etc. -%compilation_defaults = +our %compilation_defaults = ( 'latexmk' => [1,0,0,0], 'lualatexmk' => [0,0,4,0], 'pdflatexmk' => [0,0,1,0], @@ -360,17 +232,13 @@ unless (exists $compilation_defaults{$invoked_name}) { $invoked_name = 'latexmk' ################################################################ ################################################################ -# The following variables are assigned once and then used in symbolic -# references, so we need to avoid warnings 'name used only once': -use vars qw( $dvi_update_command $ps_update_command $pdf_update_command - $aux_dir_requested $out_dir_requested ); # Translation of signal names to numbers and vv: -%signo = (); -@signame = (); +our %signo = (); +our @signame = (); if ( defined $Config{sig_name} ) { my $i = 0; - foreach $name (split('\s+', $Config{sig_name})) { + foreach my $name (split('\s+', $Config{sig_name})) { $signo{$name} = $i; $signame[$i] = $name; $i++; @@ -384,11 +252,11 @@ else { # Line length in log file that indicates wrapping. # This number EXCLUDES line-end characters, and is one-based. # It is the parameter max_print_line in the TeX program. (tex.web) -$log_wrap = 79; +our $log_wrap = 79; # Expected biggest construct in log file in bytes. # Use to limit number of (potentially) wrapped lines to combine into single line. -$max_log_construct = 600; +our $max_log_construct = 600; # Whether to search for ^^ notation in log file for non-7-bit characters, # and convert to bytes. (Note: ^^ notation is produced by hilatex in @@ -397,7 +265,7 @@ $max_log_construct = 600; # gives it if -translate-file=empty is used.) # Should also do same with aux files, but I've not done that yet. ???? # fls file is always UTF-8. -$conv_hathat = 1; +our $conv_hathat = 1; ######################################################################### ## Default parsing and file-handling settings @@ -410,7 +278,7 @@ $conv_hathat = 1; ## Add items by push, e.g., ## push @file_not_found, '^No data file found `([^\\\']*)\\\''; ## will give match to line starting "No data file found `filename'" -@file_not_found = ( +our @file_not_found = ( '^No file\\s+(.*)\\.$', '^No file\\s+(.+)\s*$', '^\\! LaTeX Error: File `([^\\\']*)\\\' not found\\.', @@ -428,13 +296,13 @@ $conv_hathat = 1; # that we will call bad warnings. They are not treated as errors by # *latex, but depending on the $bad_warning_is_error setting # we will treat as if they were actual errors. -@bad_warnings = ( +our @bad_warnings = ( # Remember: \\ in perl inside single quotes gives a '\', so we need # '\\\\' to get '\\' in the regexp. '^\(\\\\end occurred when .* was incomplete\)', '^\(\\\\end occurred inside .*\)', ); -$bad_warning_is_error = 0; +our $bad_warning_is_error = 0; # Characters that we won't allow in the name of a TeX file. # Notes: Some are disallowed by TeX itself. @@ -442,12 +310,12 @@ $bad_warning_is_error = 0; # '$' results in possible variable substitution by kpsewhich called from tex. # '"' gets special treatment. # See subroutine test_fix_texnames and its call for their use. -$illegal_in_texname = "\x00\t\f\n\r\$%\\~\x7F"; +our $illegal_in_texname = "\x00\t\f\n\r\$%\\~\x7F"; # Whether to normalize aux_dir and out_dir where possible. # This is important when these directories aren't subdirectories of the cwd, # and TeXLive's makeindex and/or bibtex are used. -$normalize_names = 2; # Strongest kind. +our $normalize_names = 2; # Strongest kind. ## Hash mapping file extension (w/o period, e.g., 'eps') to a single regexp, # whose matching by a line in a file with that extension indicates that the @@ -463,13 +331,13 @@ $normalize_names = 2; # Strongest kind. # or (b) its hash changes # So it is useful to ignore lines in the hash calculation only if they # are of a fixed size (as with a date/time stamp). -%hash_calc_ignore_pattern =(); +our %hash_calc_ignore_pattern =(); # Specification of templates for extra rules. # See subroutine rdb_initialize_rules for examples of rule templates, and # how they get used to construct rules. # (Documentation obviously needs to be improved!) -%extra_rule_spec = (); +our %extra_rule_spec = (); #??????? !!!!!!!!! If @aux_hooks and @latex_file_hooks are still needed, @@ -513,42 +381,44 @@ $hooks{latex_file_hooks} = \@latex_file_hooks; ## Which TeX distribution is being used ## E.g., "MiKTeX 2.9", "TeX Live 2018" ## "" means not determined. Obtain from first line of .log file. -$tex_distribution = ''; +our $tex_distribution = ''; # List of known *latex rules: -%possible_primaries = ( 'dvilualatex' => 'primary', 'hilatex' => 'primary', +our %possible_primaries = ( 'dvilualatex' => 'primary', 'hilatex' => 'primary', 'latex' => 'primary', 'lualatex' => 'primary', 'pdflatex' => 'primary', - 'xelatex' => 'primary' ); + 'xelatex' => 'primary' ); +# Command strings for them: +our ($dvilualatex, $hilatex, $latex, $lualatex, $pdflatex, $xelatex ); std_tex_cmds(); # Possible code to execute by *latex before inputting source file. # Not used by default. -$pre_tex_code = ''; +our $pre_tex_code = ''; ## Default switches: -$hilatex_default_switches = ''; -$latex_default_switches = ''; -$pdflatex_default_switches = ''; -$dvilualatex_default_switches = ''; -$lualatex_default_switches = ''; +our $hilatex_default_switches = ''; +our $latex_default_switches = ''; +our $pdflatex_default_switches = ''; +our $dvilualatex_default_switches = ''; +our $lualatex_default_switches = ''; # Note that xelatex is used to give xdv file, not pdf file, hence # we need the -no-pdf option. -$xelatex_default_switches = '-no-pdf'; +our $xelatex_default_switches = '-no-pdf'; ## Switch(es) to make them silent: -$hilatex_silent_switch = '-interaction=batchmode'; -$latex_silent_switch = '-interaction=batchmode'; -$pdflatex_silent_switch = '-interaction=batchmode'; -$dvilualatex_silent_switch = '-interaction=batchmode'; -$lualatex_silent_switch = '-interaction=batchmode'; -$xelatex_silent_switch = '-interaction=batchmode'; +our $hilatex_silent_switch = '-interaction=batchmode'; +our $latex_silent_switch = '-interaction=batchmode'; +our $pdflatex_silent_switch = '-interaction=batchmode'; +our $dvilualatex_silent_switch = '-interaction=batchmode'; +our $lualatex_silent_switch = '-interaction=batchmode'; +our $xelatex_silent_switch = '-interaction=batchmode'; # Whether to emulate -aux-directory, so we can use it on system(s) (TeXLive) # that don't support it: -$emulate_aux = 1; +our $emulate_aux = 1; # Whether emulate_aux had to be switched on during a run: -$emulate_aux_switched = 0; +our $emulate_aux_switched = 0; #-------------------- # Specification of extensions/files that need special treatment, @@ -557,25 +427,25 @@ $emulate_aux_switched = 0; # %input_extensions maps primary_rule_name to pointer to hash of file extensions # used for extensionless files specified in the source file by constructs # like \input{file} \includegraphics{file} -%input_extensions = (); +our %input_extensions = (); set_input_ext( 'latex', 'tex', 'eps' ); set_input_ext( 'pdflatex', 'tex', 'jpg', 'pdf', 'png' ); $input_extensions{lualatex} = $input_extensions{pdflatex}; $input_extensions{xelatex} = $input_extensions{pdflatex}; # Save these values as standards to be used when switching output, # i.e., when actual primary rule differs from standard. -%standard_input_extensions = %input_extensions; +our %standard_input_extensions = %input_extensions; # Possible extensions for main output file of *latex: -%allowed_output_ext = ( ".dvi" => 1, ".xdv" => 1, ".pdf" => 1 ); +our %allowed_output_ext = ( ".dvi" => 1, ".xdv" => 1, ".pdf" => 1 ); # Extensions etc, of special use by latexmk -$save_error_suffix = '-SAVE-ERROR'; # Suffix to be added to filename, when an +our $save_error_suffix = '-SAVE-ERROR'; # Suffix to be added to filename, when an # erroneous file is saved insted of being deleted. -$fdb_ext = 'fdb_latexmk'; # Extension for the file for latexmk's +our $fdb_ext = 'fdb_latexmk'; # Extension for the file for latexmk's # file-database # Make it long to avoid possible collisions. -$fdb_ver = 4; # Version number for kind of fdb_file. +our $fdb_ver = 4; # Version number for kind of fdb_file. # Variables relevant to specifying cleanup. @@ -609,28 +479,28 @@ $fdb_ver = 4; # Version number for kind of fdb_file. # bbl files get special treatment because their deletion is conditional # and because of the possibility of extra bibtex/biber rules with # non-standard basename. -@generated_exts = ( 'aux', 'bcf', 'bcf'.$save_error_suffix, 'fls', +our @generated_exts = ( 'aux', 'bcf', 'bcf'.$save_error_suffix, 'fls', 'idx', 'ind', 'lof', 'lot', 'out', 'run.xml', 'toc', 'blg', 'ilg', 'log', 'xdv' ); # N.B. 'out' is generated by hyperref package -$clean_ext = ""; # For backward compatibility: Space separated +our $clean_ext = ""; # For backward compatibility: Space separated # extensions to be added to @generated_exts after # startup (and rc file reading). # Extensions of files to be deleted by -C, but aren't normally included # in the small clean up by -c. Analogous to @generated_exts and $clean_ext, # except that pattern rules (with %R) aren't applied. -@final_output_exts = ( 'dvi', 'dviF', 'hnt', 'ps', 'psF', 'pdf', +our @final_output_exts = ( 'dvi', 'dviF', 'hnt', 'ps', 'psF', 'pdf', 'synctex', 'synctex.gz' ); -$clean_full_ext = ""; +our $clean_full_ext = ""; # Set of extra specific files to be deleted in small cleanup. These are # ones that get generated under some kinds of error conditions. All cases: # Relative to current directory, and relative to aux and out directories. -@std_small_cleanup_files = ( 'texput.log', "texput.aux", "missfont.log" ); +our @std_small_cleanup_files = ( 'texput.log', "texput.aux", "missfont.log" ); #------------------------- @@ -639,8 +509,8 @@ $clean_full_ext = ""; # Option without arg. maps to itself. # Option with arg. maps the option part to the full specification # e.g., -kpathsea-debug => -kpathsea-debug=NUMBER -%allowed_latex_options = (); -%allowed_latex_options_with_arg = (); +our %allowed_latex_options = (); +our %allowed_latex_options_with_arg = (); foreach ( ##### # TeXLive options @@ -770,21 +640,21 @@ foreach ( # These need to be stored until after the command line parsing is finished, # in case the values of $latex and/or $pdflatex change after an option # is added. -@extra_dvilualatex_options = (); -@extra_hilatex_options = (); -@extra_latex_options = (); -@extra_pdflatex_options = (); -@extra_lualatex_options = (); -@extra_xelatex_options = (); +our @extra_dvilualatex_options = (); +our @extra_hilatex_options = (); +our @extra_latex_options = (); +our @extra_pdflatex_options = (); +our @extra_lualatex_options = (); +our @extra_xelatex_options = (); ## Command to invoke biber & bibtex -$biber = 'biber %O %S'; -$bibtex = 'bibtex %O %S'; +our $biber = 'biber %O %S'; +our $bibtex = 'bibtex %O %S'; # Switch(es) to make biber & bibtex silent: -$biber_silent_switch = '--onlylog'; -$bibtex_silent_switch = '-terse'; -$bibtex_use = 1; # Whether to actually run bibtex to update bbl files. +our $biber_silent_switch = '--onlylog'; +our $bibtex_silent_switch = '-terse'; +our $bibtex_use = 1; # Whether to actually run bibtex to update bbl files. # This variable is also used in deciding whether to # delete bbl files in clean up operations. # 0: Never run bibtex. @@ -802,7 +672,7 @@ $bibtex_use = 1; # Whether to actually run bibtex to update bbl files. # # In any event bibtex is only run if the log file # indicates that the document uses bbl files. -$bibtex_fudge = 1; # Whether or not to cd to aux dir when running bibtex. +our $bibtex_fudge = 1; # Whether or not to cd to aux dir when running bibtex. # If the cd is not done, and bibtex is passed a # filename with a path component, then it can easily # happen that (a) bibtex refuses to write bbl and blg @@ -812,10 +682,10 @@ $bibtex_fudge = 1; # Whether or not to cd to aux dir when running bibtex. # method fails. ## Command to invoke makeindex -$makeindex = 'makeindex %O -o %D %S'; +our $makeindex = 'makeindex %O -o %D %S'; # Switch(es) to make makeinex silent: -$makeindex_silent_switch = '-q'; -$makeindex_fudge = 1; # Whether or not to cd to aux dir when running makeindex. +our $makeindex_silent_switch = '-q'; +our $makeindex_fudge = 1; # Whether or not to cd to aux dir when running makeindex. # Set to 1 to avoid security-related prohibition on # makeindex writing to aux_dir when it is not specified # as a subdirectory of cwd. @@ -823,73 +693,95 @@ $makeindex_fudge = 1; # Whether or not to cd to aux dir when running makeindex. ## Command to convert dvi file to pdf file directly. # Use option -dALLOWPSTRANSPARENCY so that it works with documents # using pstricks etc: -$dvipdf = 'dvipdf -dALLOWPSTRANSPARENCY %O %S %D'; +our $dvipdf = 'dvipdf -dALLOWPSTRANSPARENCY %O %S %D'; # N.B. Standard dvipdf runs dvips and gs with their silent switch, so for # standard dvipdf $dvipdf_silent_switch is unneeded, but innocuous. # But dvipdfmx can be used instead, and it has a silent switch (-q). # So implementing $dvipdf_silent_switch is useful. -$dvipdf_silent_switch = '-q'; +our $dvipdf_silent_switch = '-q'; ## Command to convert dvi file to ps file: -$dvips = 'dvips %O -o %D %S'; +our $dvips = 'dvips %O -o %D %S'; ## Command to convert dvi file to ps file in landscape format: -$dvips_landscape = 'dvips -tlandscape %O -o %D %S'; +our $dvips_landscape = 'dvips -tlandscape %O -o %D %S'; # Switch(es) to get dvips to make ps file suitable for conversion to good pdf: # (If this is not used, ps file and hence pdf file contains bitmap fonts # (type 3), which look horrible under acroread. An appropriate switch # ensures type 1 fonts are generated. You can put this switch in the # dvips command if you prefer.) -$dvips_pdf_switch = '-P pdf'; +our $dvips_pdf_switch = '-P pdf'; # Switch(es) to make dvips silent: -$dvips_silent_switch = '-q'; +our $dvips_silent_switch = '-q'; ## Command to convert ps file to pdf file. # Use option -dALLOWPSTRANSPARENCY so that it works with documents # using pstricks etc: -$ps2pdf = 'ps2pdf -dALLOWPSTRANSPARENCY %O %S %D'; +our $ps2pdf = 'ps2pdf -dALLOWPSTRANSPARENCY %O %S %D'; ## Command to convert xdv file to pdf file -$xdvipdfmx = 'xdvipdfmx -E -o %D %O %S'; -$xdvipdfmx_silent_switch = '-q'; +our $xdvipdfmx = 'xdvipdfmx -E -o %D %O %S'; +our $xdvipdfmx_silent_switch = '-q'; ## Command to search for tex-related files -$kpsewhich = 'kpsewhich %S'; +our $kpsewhich = 'kpsewhich %S'; ## Command to run make: -$make = 'make'; +our $make = 'make'; ##Printing: -$print_type = 'auto'; # When printing, print the postscript file. +our $print_type = 'auto'; # When printing, print the postscript file. # Possible values: 'dvi', 'ps', 'pdf', 'auto', 'none' # 'auto' ==> set print type according to the printable # file(s) being made: priority 'ps', 'pdf', 'dvi' # Viewers. These are system dependent, so default to none: +our ( $pdf_previewer, $ps_previewer, $ps_previewer_landscape, $dvi_previewer, + $dvi_previewer_landscape, $hnt_previewer ); $pdf_previewer = $ps_previewer = $ps_previewer_landscape = $dvi_previewer = $dvi_previewer_landscape = $hnt_previewer = "NONE"; -$dvi_update_signal = undef; -$ps_update_signal = undef; -$pdf_update_signal = undef; +# The following variables are assigned once and then used in symbolic +# references, so we need to avoid warnings 'name used only once': +our ( $aux_dir_requested, $out_dir_requested ); + +our $dvi_update_signal = undef; +our $ps_update_signal = undef; +our $pdf_update_signal = undef; -$dvi_update_command = undef; -$ps_update_command = undef; -$pdf_update_command = undef; +our $dvi_update_command = undef; +our $ps_update_command = undef; +our $pdf_update_command = undef; + # Viewer update methods: + # 0 => auto update: viewer watches file (e.g., gv) + # 1 => manual update: user must do something: e.g., click on window. + # (e.g., ghostview, MSWIN previewers, acroread under UNIX) + # 2 => send signal. Number of signal in $dvi_update_signal, + # $ps_update_signal, $pdf_update_signal + # 3 => viewer can't update, because it locks the file and the file + # cannot be updated. (acroread under MSWIN) + # 4 => run a command to force the update. The commands are + # specified by the variables $dvi_update_command, + # $ps_update_command, $pdf_update_command +our $dvi_update_method = 1; +our $hnt_update_method = 1; +our $ps_update_method = 1; +our $pdf_update_method = 1; -$allow_subdir_creation = 1; +our $allow_subdir_creation = 1; -$new_viewer_always = 0; # If 1, always open a new viewer in pvc mode. +our $new_viewer_always = 0; # If 1, always open a new viewer in pvc mode. # If 0, only open a new viewer if no previous # viewer for the same file is detected. # Commands for use in pvc mode for compiling, success, warnings, and failure; # they default to empty, i.e., not to use: -$compiling_cmd = $success_cmd = $warning_cmd = $failure_cmd = ""; +our ($compiling_cmd, $success_cmd, $warning_cmd, $failure_cmd) = + ( '', '', '', '' ); # Commands for printing are highly system dependent, so default to NONE: -$lpr = 'NONE $lpr variable is not configured to allow printing of ps files'; -$lpr_dvi = 'NONE $lpr_dvi variable is not configured to allow printing of dvi files'; -$lpr_pdf = 'NONE $lpr_pdf variable is not configured to allow printing of pdf files'; +our $lpr = 'NONE $lpr variable is not configured to allow printing of ps files'; +our $lpr_dvi = 'NONE $lpr_dvi variable is not configured to allow printing of dvi files'; +our $lpr_pdf = 'NONE $lpr_pdf variable is not configured to allow printing of pdf files'; # The $pscmd below holds a **system-dependent** command to list running @@ -898,24 +790,24 @@ $lpr_pdf = 'NONE $lpr_pdf variable is not configured to allow printing of pdf fi # process number and the command line of the processes, since the # relevant process is identified by the name of file to be viewed. # Its use is not essential. -$pscmd = 'NONE $pscmd variable is not configured to detect running processes'; -$pid_position = -1; # offset of PID in output of pscmd. +our $pscmd = 'NONE $pscmd variable is not configured to detect running processes'; +our $pid_position = -1; # offset of PID in output of pscmd. # Negative means I cannot use ps -$quote_filenames = 1; # Quote filenames in external commands +our $quote_filenames = 1; # Quote filenames in external commands -$del_dir = ''; # Directory into which cleaned up files are to be put. +our $del_dir = ''; # Directory into which cleaned up files are to be put. # If $del_dir is '', just delete the files in a clean up. -@rc_system_files = (); +our @rc_system_files = (); ######################################################################### ################################################################ ## Special variables for system-dependent fudges, etc. # ???????? !!!!!!!!!! -$log_file_binary = 0; # Whether to treat log file as binary +our $log_file_binary = 0; # Whether to treat log file as binary # Normally not, since the log file SHOULD be pure text. # But Miktex 2.7 sometimes puts binary characters # in it. (Typically in construct \OML ... after @@ -923,7 +815,7 @@ $log_file_binary = 0; # Whether to treat log file as binary # Sometimes there is ctrl/Z, which is not only non-text, # but is end-of-file marker for MS-Win in text mode. -$MSWin_fudge_break = 1; # Give special treatment to ctrl/C and ctrl/break +our $MSWin_fudge_break = 1; # Give special treatment to ctrl/C and ctrl/break # in -pvc mode under MSWin # Under MSWin32 (at least with perl 5.8 and WinXP) # when latexmk is running another program, and the @@ -953,14 +845,14 @@ $MSWin_fudge_break = 1; # Give special treatment to ctrl/C and ctrl/break ## Substitute backslashes in file and directory names for ## MSWin command line -$MSWin_back_slash = 0; +our $MSWin_back_slash = 0; ## Separator of elements in search_path. Default is unix value -$search_path_separator = ':'; +our $search_path_separator = ':'; # Directory for temporary files. Default to current directory. -$tmpdir = "."; +our $tmpdir = "."; # Latexmk does tests on whether a particular generated file, e.g., log or @@ -1051,6 +943,7 @@ our $filetime_offset_report_threshold = 10; # Threshold beyond which filetime of # are those of Windows. (The test for USERNAME as well as USER was # to make latexmk work under MSYS's perl.) # +our $start_NT = 'NONE'; if ( $^O eq "MSWin32" ) { # Pure MSWindows configuration @@ -1075,20 +968,6 @@ if ( $^O eq "MSWin32" ) { $dvi_previewer = 'start %O %S'; $dvi_previewer_landscape = "$dvi_previewer"; $hnt_previewer = 'start %O %S'; - # Viewer update methods: - # 0 => auto update: viewer watches file (e.g., gv) - # 1 => manual update: user must do something: e.g., click on window. - # (e.g., ghostview, MSWIN previewers, acroread under UNIX) - # 2 => send signal. Number of signal in $dvi_update_signal, - # $ps_update_signal, $pdf_update_signal - # 3 => viewer can't update, because it locks the file and the file - # cannot be updated. (acroread under MSWIN) - # 4 => run a command to force the update. The commands are - # specified by the variables $dvi_update_command, - # $ps_update_command, $pdf_update_command - $dvi_update_method = 1; - $hnt_update_method = 1; - $ps_update_method = 1; $pdf_update_method = 3; # acroread locks the pdf file } elsif ( $^O eq "cygwin" ) { @@ -1187,9 +1066,6 @@ elsif ( $^O eq "cygwin" ) { # $ps_update_signal, $pdf_update_signal # 3 => viewer can't update, because it locks the file and the file # cannot be updated. (acroread under MSWIN) - $dvi_update_method = 1; - $hnt_update_method = 1; - $ps_update_method = 1; $pdf_update_method = 3; # acroread locks the pdf file } elsif ( $^O eq "msys" ) { @@ -1335,8 +1211,8 @@ else { } ## default parameters -$auto_rc_use = 1; # Whether to read rc files automatically -$user_deleted_file_treated_as_changed = 0; # Whether when testing for changed +our $auto_rc_use = 1; # Whether to read rc files automatically +our $user_deleted_file_treated_as_changed = 0; # Whether when testing for changed # files, a user file that changes status from existing # to non-existing should be regarded as changed. # Value 1: only in non-preview-continuous mode. @@ -1345,7 +1221,7 @@ $user_deleted_file_treated_as_changed = 0; # Whether when testing for changed # compilation of .tex file tests for file existence and # adjusts behavior accordingly, instead of simply giving an # error. -$max_repeat = 5; # Maximum times I repeat latex. Normally +our $max_repeat = 5; # Maximum times I repeat latex. Normally # 3 would be sufficient: 1st run generates aux file, # 2nd run picks up aux file, and maybe toc, lof which # contain out-of-date information, e.g., wrong page @@ -1363,18 +1239,18 @@ $max_repeat = 5; # Maximum times I repeat latex. Normally # usually an indication of a problem; further # runs may not resolve the problem, and # instead could cause an infinite loop. -@cus_dep_list = (); # Custom dependency list -@default_files = ( '*.tex' ); # Array of LaTeX files to process when +our @cus_dep_list = (); # Custom dependency list +our @default_files = ( '*.tex' ); # Array of LaTeX files to process when # no files are specified on the command line. # Wildcards allowed # Best used for project specific files. -@default_excluded_files = ( ); +our @default_excluded_files = ( ); # Array of LaTeX files to exclude when using # @default_files, i.e., when no files are specified # on the command line. # Wildcards allowed # Best used for project specific files. -$texfile_search = ""; # Specification for extra files to search for +our $texfile_search = ""; # Specification for extra files to search for # when no files are specified on the command line # and the @default_files variable is empty. # Space separated, and wildcards allowed. @@ -1383,7 +1259,7 @@ $texfile_search = ""; # Specification for extra files to search for # This variable is obsolete, and only in here for # backward compatibility. -$jobname = ''; # Jobname: as with current tex, etc indicates +our $jobname = ''; # Jobname: as with current tex, etc indicates # basename of generated files. Defined so # that --jobname=STRING on latexmk's command # line has same effect as with current tex, @@ -1396,33 +1272,35 @@ $jobname = ''; # Jobname: as with current tex, etc indicates # dependent on name of main TeX file; this is # useful when a jobname is used and latexmk is # invoked on multiple files. -$out_dir = ''; # Directory for output files. +our $out_dir = ''; # Directory for output files. # Cf. --output-directory of current *latex # Blank means default, i.e., cwd. -$aux_dir = ''; # Directory for aux files (log, aux, etc). +our $aux_dir = ''; # Directory for aux files (log, aux, etc). # Cf. --aux-directory of current *latex in MiKTeX. # Blank means default, i.e., same as $out_dir. # Note that these values get modified when # processing a .tex file. +# Corresponding forms that can be concatenated (e.g., when $aux_dir is '.', $aux_dir1 is './'). +our $aux_dir1 = ''; +our $out_dir1 = ''; ## default flag settings. -$recorder = 1; # Whether to use recorder option on latex/pdflatex -$silent = 0; # Whether fo silence latex's messages (and others) -$warnings_as_errors = 0;# Treat warnings as errors and exit with non-zero exit code -$silence_logfile_warnings = 0; # Do list warnings in log file +our $recorder = 1; # Whether to use recorder option on latex/pdflatex +our $silent = 0; # Whether fo silence latex's messages (and others) +our $warnings_as_errors = 0;# Treat warnings as errors and exit with non-zero exit code +our $silence_logfile_warnings = 0; # Do list warnings in log file # The warnings reported are those about undefined refs # and citations, and the like. -$max_logfile_warnings = 7; # Max. # number of log file warnings to report -$rc_report = 1; # Whether to report on rc files read -$aux_out_dir_report = 0; # Whether to report on aux_dir & out_dir after +our $max_logfile_warnings = 7; # Max. # number of log file warnings to report +our $rc_report = 1; # Whether to report on rc files read +our $aux_out_dir_report = 0; # Whether to report on aux_dir & out_dir after # initialization and normalization. # When $aux_out_dir_report is set to 2, latexmk # does no further processing after the report of # the aux and out directories. -$kpsewhich_show = 0; # Show calls to and results from kpsewhich -$landscape_mode = 0; # default to portrait mode -$analyze_input_log_always = 1; # Always analyze .log for input files in the +our $kpsewhich_show = 0; # Show calls to and results from kpsewhich +our $analyze_input_log_always = 1; # Always analyze .log for input files in the # <...> and (...) constructions. Otherwise, only # do the analysis when fls file doesn't exist or is # out of date. @@ -1442,7 +1320,7 @@ $analyze_input_log_always = 1; # Always analyze .log for input files in the # To keep backward compatibility with older versions # of latexmk, the default is to set # $analyze_input_log_always to 1. -$fls_uses_out_dir = 0; # Whether fls file is to be in out directory (as with +our $fls_uses_out_dir = 0; # Whether fls file is to be in out directory (as with # pre-Oct-2020 MiKTeX), or in aux directory (as with # newer versions of MiKTeX). # If the implementation of *latex puts the fls file in @@ -1452,7 +1330,7 @@ $fls_uses_out_dir = 0; # Whether fls file is to be in out directory (as with # Which kinds of file do I have requests to make? our ($dvi_mode, $hnt_mode, $pdf_mode, $postscript_mode, $xdv_mode, - $cleanup_mode, $force_mode, $go_mode, $landscape_mode, $preview_mode, $preview_continuous_mode, $printout_mode ); + $landscape_mode ); # If no requests at all are made, then I will make dvi file # If particular requests are made then other files may also have to be # made. E.g., ps file requires a dvi file @@ -1472,59 +1350,60 @@ $pdf_mode = 0; # No pdf file requested to be made by pdflatex # 4 to create pdf file by lualatex # 5 to create pdf file by xelatex + xdvipdfmx $xdv_mode = 0; # No xdv file requested +$landscape_mode = 0; # default to portrait mode -$view = 'default'; # Default preview is of highest of dvi, ps, pdf -$min_sleep_time = 0.01; # Minimum non-zero sleep time -$sleep_time = 2; # time to sleep b/w checks for file changes in -pvc mode -$banner = 0; # Non-zero if we have a banner to insert -$banner_scale = 220; # Original default scale -$banner_intensity = 0.95; # Darkness of the banner message -$banner_message = 'DRAFT'; # Original default message -$do_cd = 0; # Do not do cd to directory of source file. +our $view = 'default'; # Default preview is of highest of dvi, ps, pdf +our $min_sleep_time = 0.01; # Minimum non-zero sleep time +our $sleep_time = 2; # time to sleep b/w checks for file changes in -pvc mode +our $banner = 0; # Non-zero if we have a banner to insert +our $banner_scale = 220; # Original default scale +our $banner_intensity = 0.95; # Darkness of the banner message +our $banner_message = 'DRAFT'; # Original default message +our $do_cd = 0; # Do not do cd to directory of source file. # Thus behave like latex. -$dependents_list = 0; # Whether to display list(s) of dependencies -$dependents_phony = 0; # Whether list(s) of dependencies includes phony targets +our $dependents_list = 0; # Whether to display list(s) of dependencies +our $dependents_phony = 0; # Whether list(s) of dependencies includes phony targets # (as with 'gcc -MP'). -$deps_file = '-'; # File for dependency list output. Default stdout. -$rules_list = 0; # Whether to display list(s) of dependencies +our $deps_file = '-'; # File for dependency list output. Default stdout. +our $rules_list = 0; # Whether to display list(s) of dependencies # Kind of escaping in names of files written to deps file. -$deps_escape = 'none'; +our $deps_escape = 'none'; # Allowed kinds of escape: -%deps_escape_kinds = ( 'none' => ' ', 'unix' => '\ ', 'nmake' => '^ '); +our %deps_escape_kinds = ( 'none' => ' ', 'unix' => '\ ', 'nmake' => '^ '); -@dir_stack = (); # Stack of pushed directories, each of form of +our @dir_stack = (); # Stack of pushed directories, each of form of # pointer to array [ cwd, good_cwd ], where # good_cwd differs from cwd by being converted # to native MSWin path when cygwin is used. -$cleanup_mode = 0; # No cleanup of nonessential LaTex-related files. +our $cleanup_mode = 0; # No cleanup of nonessential LaTex-related files. # $cleanup_mode = 0: no cleanup # $cleanup_mode = 1: full cleanup # $cleanup_mode = 2: cleanup except for dvi, # dviF, pdf, ps, psF & xdv -$cleanup_fdb = 0; # On normal run, no removal of file for latexmk's file-database -$cleanup_only = 0; # When doing cleanup, do not go on to making files -$cleanup_includes_generated = 0; +our $cleanup_fdb = 0; # On normal run, no removal of file for latexmk's file-database +our $cleanup_only = 0; # When doing cleanup, do not go on to making files +our $cleanup_includes_generated = 0; # Determines whether cleanup deletes files generated by # *latex (found from \openout lines in log file). # It's more than that. BUG -$cleanup_includes_cusdep_generated = 0; +our $cleanup_includes_cusdep_generated = 0; # Determines whether cleanup deletes files generated by # custom dependencies -$diagnostics = 0; -$dvi_filter = ''; # DVI filter command -$ps_filter = ''; # Postscript filter command +our $diagnostics = 0; +our $dvi_filter = ''; # DVI filter command +our $ps_filter = ''; # Postscript filter command -$force_mode = 0; # =1: to force processing past errors -$go_mode = 0; # =1: to force processing regardless of time-stamps +our $force_mode = 0; # =1: to force processing past errors +our $go_mode = 0; # =1: to force processing regardless of time-stamps # =2: full clean-up first # =3: Just force primary rule(s) to run -$preview_mode = 0; -$preview_continuous_mode = 0; -$printout_mode = 0; # Don't print the file +our $preview_mode = 0; +our $preview_continuous_mode = 0; +our $printout_mode = 0; # Don't print the file ## Control pvc inactivity timeout: -$pvc_timeout = 0; -$pvc_timeout_mins = 30; +our $pvc_timeout = 0; +our $pvc_timeout_mins = 30; # Timing information # Whether to report processing time: @@ -1542,39 +1421,42 @@ our ( $clock1, $processing_time1, $processing_time0, @timings1, @timings0); &init_timing_all; -$use_make_for_missing_files = 0; # Whether to use make to try to make missing files. +our $use_make_for_missing_files = 0; # Whether to use make to try to make missing files. # Do we make view file in temporary then move to final destination? # (To avoid premature updating by viewer). -$always_view_file_via_temporary = 0; # Set to 1 if viewed file is always +our $always_view_file_via_temporary = 0; # Set to 1 if viewed file is always # made through a temporary. -$pvc_view_file_via_temporary = 1; # Set to 1 if only in -pvc mode is viewed +our $pvc_view_file_via_temporary = 1; # Set to 1 if only in -pvc mode is viewed # file made through a temporary. # State variables initialized here: -$updated = 0; # Flags whether something has been remade in this round +our $updated = 0; # Flags whether something has been remade in this round # of compilation. -$waiting = 0; # Flags whether we are in loop waiting for an event +our $failure = 0; # Set nonzero to indicate failure at some point of + # a make. Use value as exit code if I exit. +our $failure_msg = ''; # Indicate reason for failure +our $waiting = 0; # Flags whether we are in loop waiting for an event # Used to avoid unnecessary repeated o/p in wait loop # The following are used for some results of parsing log file # Global variables, so results can be reported in main program. -$reference_changed = 0; -$mult_defined = 0; -$bad_reference = 0; -$bad_character = 0; -$bad_citation = 0; -@primary_warning_summary = (); +our $reference_changed = 0; +our $mult_defined = 0; +our $bad_reference = 0; +our $bad_character = 0; +our $bad_citation = 0; +our @primary_warning_summary = (); # Cache of expensive-to-compute state variables, e.g., cwd in form # fixed to deal with cygwin issues. -%cache = (); +our %cache = (); &cache_good_cwd; # Set search paths for includes. # Set them early so that they can be overridden -$BIBINPUTS = $ENV{'BIBINPUTS'}; +our $BIBINPUTS = $ENV{'BIBINPUTS'}; if (!$BIBINPUTS) { $BIBINPUTS = '.'; } # ???!!! @@ -1594,7 +1476,7 @@ if (!$BIBINPUTS) { $BIBINPUTS = '.'; } # directory. After these operations, @BIBINPUTS should # have all the directories that need to be searched # -@BIBINPUTS = find_dirs1( $BIBINPUTS ); +our @BIBINPUTS = find_dirs1( $BIBINPUTS ); our @BIBINPUTS_SAVE = @BIBINPUTS; our $BIBINPUTS_ENV_SAVE = $ENV{BIBINPUTS}; @@ -1713,34 +1595,34 @@ our $BIBINPUTS_ENV_SAVE = $ENV{BIBINPUTS}; # Hashes, whose keys give names of particular kinds of rule, and targets. # We use hashes for ease of lookup. -%possible_one_time = ( 'view' => 1, 'print' => 1, 'update_view' => 1, ); -%target_files = (); # Hash for target files. +our %possible_one_time = ( 'view' => 1, 'print' => 1, 'update_view' => 1, ); +our %target_files = (); # Hash for target files. # The keys are the filenames and the value is # currently irrelevant. -%target_rules = (); # Hash for target rules beyond those corresponding to files. +our %target_rules = (); # Hash for target rules beyond those corresponding to files. # The keys are the rule names and the value is # currently irrelevant. # The target **files** can only be set inside the FILE loop. -$current_primary = 'latex'; # Rule to compile .tex file. +our $current_primary = 'latex';# Rule to compile .tex file. # It will be overridden at rule-initialization time, and # is subject to document-dependent override if .tex document # uses metcommands and obeying them is implemented/enabled. -$pdf_method = ''; # How to make pdf file. '' if not requested, +our $pdf_method = ''; # How to make pdf file. '' if not requested, # else 'ps2pdf', 'dvipdf', 'pdflatex', 'lualatex' or 'xelatex' # Subject to document-dependent override if .tex document #uses \pdfoutput or c. -%requested_filetypes = (); # Hash of requested file types (dvi, dviF, etc) -%one_time = (); # Hash for requested one-time-only rules, currently +our %requested_filetypes = (); # Hash of requested file types (dvi, dviF, etc) +our %one_time = (); # Hash for requested one-time-only rules, currently # possible values 'print' and 'view'. -%actives = (); # Hash of active rules +our %actives = (); # Hash of active rules -$allow_switch = 1; # Allow switch of rule structure to accommodate +our $allow_switch = 1; # Allow switch of rule structure to accommodate # changed output file name of primary. Even if # this flag is set on, the switch may be # prohibited by other issues. -%rule_db = (); # Database of all rules: +our %rule_db = (); # Database of all rules: # Hash: rulename -> [array of rule data] # Rule data: # 0: [ cmd_type, ext_cmd, int_cmd, no_history, @@ -1948,10 +1830,10 @@ $allow_switch = 1; # Allow switch of rule structure to accommodate # The aim of this item is for flexible # rule-dependent add-ons. -%fdb_current = (); # Hash of information for all files used. +our %fdb_current = (); # Hash of information for all files used. # It maps filename to a reference to an array # (time, size, md5_checksum). -@nofile = (0,-1,0); # What we use for initializing a new entry in fdb +our @nofile = (0,-1,0); # What we use for initializing a new entry in fdb # or flagging non-existent file. # The following are variables which are set by the routine rdb_set_rule_net. @@ -1960,25 +1842,33 @@ $allow_switch = 1; # Allow switch of rule structure to accommodate # information is in a form useful for using the network of rules. # For recursing backwards through the network of rules: -%from_rules = (); # This maps file names to rule names. +our %from_rules = (); # This maps file names to rule names. # $from_rules{'File'} is the name of the rule that # generates file 'File'. If there is no rule to # generate the file, then $from_rules{'File'} is # not defined (or possibly the null string ''). # Classification of rules, for determining order of application -@pre_primary = (); # Array of rules that are thought of as pre-primary, +our @pre_primary = (); # Array of rules that are thought of as pre-primary, # Should be in an appropriate order for invoking # them, to optimize making. -@post_primary = (); # Array of rules that are thought of as post-primary. +our @post_primary = (); # Array of rules that are thought of as post-primary. # In suitable order for invocation -@unusual_one_time = (); # Array of rules that are special cases of +our @unusual_one_time = ();# Array of rules that are special cases of # one-time rules. # Currently not used. - +# Variables set in applying rules: +our ($rule, $PA_extra_gen, $PAint_cmd, $PArule_data, $Pbase, $Pchanged, + $Pcheck_time, $Pcmd_type, $Pdest, $Pext_cmd, + $PHdest, $PHextra, $PHrewritten_before_read, $PHsource, $PHsource_rules, + $Plast_message, $Plast_result, $Plast_result_info, + $Pno_history, $Pout_of_date, $Pout_of_date_user, $Prun_time, $Psource, + $file, $PAfile_data, $Ptime, $Psize, $Pmd5, $DUMMY, $Pcorrect_after_primary +); + # User's home directory -$HOME = ''; +our $HOME = ''; if (exists $ENV{'HOME'} ) { $HOME = $ENV{'HOME'}; } @@ -1986,7 +1876,7 @@ elsif (exists $ENV{'USERPROFILE'} ) { $HOME = $ENV{'USERPROFILE'}; } # XDG configuration home -$XDG_CONFIG_HOME = ''; +our $XDG_CONFIG_HOME = ''; if (exists $ENV{'XDG_CONFIG_HOME'} ) { $XDG_CONFIG_HOME = $ENV{'XDG_CONFIG_HOME'}; } @@ -2000,8 +1890,8 @@ elsif ($HOME ne '') { #================================================== # Which rc files did I read? -@rc_files_read = (); # In order of reading -%rc_files_read2 = (); # Map **abs** filename to 1; used to check duplicate reads. +our @rc_files_read = (); # In order of reading +our %rc_files_read2 = (); # Map **abs** filename to 1; used to check duplicate reads. # Options that are to be obeyed before rc files are read: # Also under MSWin32 and msys, CL arguments sometimes get quotes in them. @@ -2064,7 +1954,7 @@ if ( $auto_rc_use ) { } if ( $auto_rc_use && ($HOME ne "" ) ) { # User rc file: - @user_rc = (); + my @user_rc = (); if ( $XDG_CONFIG_HOME ) { push @user_rc, "$XDG_CONFIG_HOME/latexmk/latexmkrc"; } @@ -2083,12 +1973,13 @@ if ( $auto_rc_use ) { ## Process command line args. -@command_line_file_list = (); -$bad_options = 0; +our @command_line_file_list = (); +our $bad_options = 0; + while (defined(local $_ = $ARGV[0])) { # Make -- and - equivalent at beginning of option, # but save original for possible use in *latex command line - $original = $_; + my $original = $_; s/^--/-/; shift; if ( /^-aux-directory=(.*)$/ || /^-auxdir=(.*)$/ ) { @@ -2265,7 +2156,7 @@ while (defined(local $_ = $ARGV[0])) { $pre_tex_code = $1; } elsif (/^-print=(.*)$/) { - $value = $1; + my $value = $1; if ( $value =~ /^dvi$|^ps$|^pdf$|^auto$/ ) { $print_type = $value; $printout_mode = 1; @@ -2314,7 +2205,7 @@ while (defined(local $_ = $ARGV[0])) { "appear in the following list\n", "NOTE ALSO: Not all of these options are supported by all versions of *latex.\n", "\n"; - foreach $option ( sort( keys %allowed_latex_options, keys %allowed_latex_options_with_arg ) ) { + foreach my $option ( sort( keys %allowed_latex_options, keys %allowed_latex_options_with_arg ) ) { if (exists $allowed_latex_options{$option} ) { print " $allowed_latex_options{$option}\n"; } if (exists $allowed_latex_options_with_arg{$option} ) { print " $allowed_latex_options_with_arg{$option}\n"; } } @@ -2475,6 +2366,7 @@ if ( $texfile_search ne "" ) { # (OS detected as cygwin) # (3) UNIX Don't glob (cmd interpreter does it) # (Currently, I assume this is everything else) +our @file_list; if ( ($^O eq "MSWin32") || ($^O eq "cygwin") ) { # Preserve ordering of files @file_list = glob_list1(@command_line_file_list); @@ -2529,8 +2421,8 @@ else { } } -$num_files = $#file_list + 1; -$num_specified = $#command_line_file_list + 1; +our $num_files = $#file_list + 1; +our $num_specified = $#command_line_file_list + 1; #print "Command line file list:\n"; #for ($i = 0; $i <= $#command_line_file_list; $i++ ) { print "$i: '$command_line_file_list[$i]'\n"; } @@ -2746,7 +2638,7 @@ if ( $printout_mode ) { } if ( $preview_continuous_mode || $preview_mode ) { $one_time{'view'} = 1; } -$can_switch = $allow_switch; +our $can_switch = $allow_switch; if ( $dvi_mode || $hnt_mode || $postscript_mode || $xdv_mode || ( $printout_mode && ($print_type eq 'ps') || ($print_type eq 'dvi') ) || ( ($preview_mode || $preview_continuous_mode) && ( ($view eq 'ps') || ($view eq 'dvi') ) ) @@ -2792,15 +2684,15 @@ push @final_output_exts, split('\s+',$clean_full_ext); # Convert the arrays to hashes, for ease of deletion: # Keep extension without period! -%generated_exts = (); +our %generated_exts = (); foreach (@generated_exts ) { $generated_exts{$_} = 1; } -$quell_uptodate_msgs = $silent; +our $quell_uptodate_msgs = $silent; # Whether to quell informational messages when files are uptodate # Will turn off in -pvc mode -$failure_count = 0; -@failed_primaries = (); +our $failure_count = 0; +our @failed_primaries = (); if ($deps_file eq '' ) { # Standardize name used for stdout @@ -2826,7 +2718,7 @@ if ( ($cleanup_mode > 0) && $dependents_list && ( $deps_file ne '-' ) ) { # been opened and therefore being available to be written to after # compiling a file. -$deps_handle = undef; +our $deps_handle = undef; if ( $dependents_list && ! $preview_continuous_mode && ( ($cleanup_mode == 0) || ($go_mode == 2) ) @@ -2840,17 +2732,30 @@ if ( $dependents_list # Deal with illegal and problematic characters in filename: test_fix_texnames( @file_list ); -$quote = $quote_filenames ? '"' : ''; - +our $quote = $quote_filenames ? '"' : ''; +# Primary filename and path are variables of overall context, and hence global. +our $filename; +our $path; +# Other globals +our ( @default_includes, $texfile_name, $root_filename, $log_name, + $tex_basename, $fls_name, $fls_name_alt, $fdb_name, $aux_main, + $dvi_name, $dviF_name, $hnt_name, $ps_name, $psF_name, $pdf_name, + $xdv_name, + $dvi_final, $hnt_final, $ps_final, $pdf_final, $xdv_final, + $view_file, + %rule_list, + $missing_dvi_pdf, $switched_primary_output +); FILE: foreach $filename ( @file_list ) { # Global variables for making of current file: $updated = 0; - $failure = 0; # Set nonzero to indicate failure at some point of - # a make. Use value as exit code if I exit. + $failure = 0; # Set nonzero to indicate failure at some point of + # a make. Use value as exit code if I exit. $failure_msg = ''; # Indicate reason for failure + my $path = ''; if ( $do_cd ) { # Use my fileparse routine rather than the built-in one, otherwise # under msys, a directory separator \ won't be recognized by fileparse. @@ -2864,9 +2769,6 @@ foreach $filename ( @file_list ) if !$silent; pushd( dirname_no_tail( $path ) ); } - else { - $path = ''; - } # Localize the following, because they may get changed because of # conditions specific to the current tex file, notably: @@ -2958,12 +2860,12 @@ foreach $filename ( @file_list ) if ($go_mode == 3) { # Force primaries to be remade. if (!$silent) { print "Force *latex to be remade.\n"; } - rdb_for_some( [keys %possible_primaries], sub{$$Pout_of_date=1;} ); + rdb_for_some( [keys %possible_primaries], sub{$$Pout_of_date = 'go_mode=3';} ); } elsif ($go_mode) { # Force everything to be remade. if (!$silent) { print "Force everything to be remade.\n"; } - rdb_recurse( [ &rdb_target_array], sub{$$Pout_of_date=1;} ); + rdb_recurse( [ &rdb_target_array], sub{$$Pout_of_date = 'go_mode';} ); } @@ -2997,7 +2899,6 @@ foreach $filename ( @file_list ) $failure_msg = ''; &init_timing1; - if ($compiling_cmd) { Run_subst( $compiling_cmd ); } $failure = rdb_make(); if ( ( $failure <= 0 ) || $force_mode ) { rdb_for_some( [keys %one_time], \&rdb_run1 ); @@ -3023,7 +2924,7 @@ continue { # mode, since the rules list has already been printed. if ($rules_list && ! $preview_continuous_mode) { rdb_list(); } # Handle any errors - $error_message_count = rdb_show_rule_errors(); + my $error_message_count = rdb_show_rule_errors(); if ( ($error_message_count == 0) || ($failure > 0) ) { if ( $failure_msg ) { #Remove trailing space @@ -3179,6 +3080,7 @@ sub set_tex_cmds { # Usage, e.g., set_tex_cmds( '%O %S' ) # or set_tex_cmds( '%C-dev %O %S' ) my $args = $_[0]; + no strict "refs"; foreach my $cmd ( keys %possible_primaries ) { my $spec = $args; if ( $spec =~ /%C/ ) { $spec =~ s/%C/$cmd/g; } @@ -3504,6 +3406,7 @@ sub fix_cmds { sub add_option { # Call add_option( $opt, \$cmd ... ) # Add option to one or more commands + no strict "refs"; my $option = shift; while (@_) { if ( ${$_[0]} !~ /%/ ) { &fix_cmds; } @@ -3585,7 +3488,7 @@ sub rdb_initialize_rules { if ($hnt_mode) { $current_primary = 'hilatex'; } rdb_activate( $current_primary ); - + if ($dvi_mode) { $target_files{$dvi_final} = 1; } if ($hnt_mode) { $target_files{$hnt_final} = 1; } if ($postscript_mode) { $target_files{$ps_final} = 1; } @@ -3628,7 +3531,8 @@ sub rdb_set_rule_templates { my $viewer_update_signal = undef; my $viewer_update_command = undef; - if ( ($view eq 'dvi') || ($view eq 'hnt') || ($view eq 'pdf') || ($view eq 'ps') ) { + if ( ($view eq 'dvi') || ($view eq 'hnt') || ($view eq 'pdf') || ($view eq 'ps') ) { + no strict "refs"; $view_file = ${$view.'_final'}; $viewer = ${$view.'_previewer'}; $viewer_update_method = ${$view.'_update_method'}; @@ -3642,7 +3546,7 @@ sub rdb_set_rule_templates { %rule_list = ( 'dvilualatex' => [ 'primary', "$dvilualatex", '', "%T", $dvi_name, "%R", 1, [$aux_main, $log_name], [$aux_main] ], - 'hilatex' => [ 'primary', "$hilatex", '', "%T", $hnt_name, "%R", 1, [$aux_main, $log_name], [$aux_main] ], + 'hilatex' => [ 'primary', "$hilatex", '', "%T", $hnt_name, "%R", 1, [$aux_main, $log_name], [$aux_main] ], 'latex' => [ 'primary', "$latex", '', "%T", $dvi_name, "%R", 1, [$aux_main, $log_name], [$aux_main] ], 'lualatex' => [ 'primary', "$lualatex", '', "%T", $pdf_name, "%R", 1, [$aux_main, $log_name], [$aux_main] ], 'pdflatex' => [ 'primary', "$pdflatex", '', "%T", $pdf_name, "%R", 1, [$aux_main, $log_name], [$aux_main] ], @@ -3679,6 +3583,7 @@ sub rdb_set_rule_net { # it doesn't exist. Later a rule is created by latexmk to make that # file. Then the rule's main destination file should have priority # over non-main generated files from other rules. + our %from_rules_old; local %from_rules_old = %from_rules; %from_rules = (); # File to rule. rdb_for_actives( \&set_file_links_for_rule ); @@ -3738,6 +3643,7 @@ sub rdb_set_source_rules { # in rdb_make etc. # my ($base, $path, $ext) = fileparseA( $$Psource ); + our %from_rules_old; if ( ($ext eq '.dvi') || ($ext eq '.dviF') || ($ext eq '.xdv') ) { # Rules that use .dvi, .dviF, .xdv don't get all dependencies, # notably about included graphics files. @@ -3774,7 +3680,8 @@ sub rdb_classify_rules { # @unusual_one_time # Array of rules # @pre_primary and @post_primary are in natural order of application. - local @requested_targets = &rdb_target_array; + my @requested_targets = &rdb_target_array; + our (@classify_stack, $state); local $state = 0; # Post-primary local @classify_stack = (); @@ -3806,6 +3713,7 @@ sub rdb_classify1 { # Helper routine for rdb_classify_rules # Applied as rule_act1 in recursion over rules # Assumes rule context, and local variables from rdb_classify_rules + our (@classify_stack, $state, $depth); push @classify_stack, [$state]; if ( exists $possible_one_time{$rule} ) { # Normally, we will have already extracted the one_time rules, @@ -3836,6 +3744,7 @@ sub rdb_classify2 { # Helper routine for rdb_classify_rules # Applied as rule_act2 in recursion over rules # Assumes rule context + our (@classify_stack, $state); ($state) = @{ pop @classify_stack }; } #END rdb_classify2 @@ -3856,15 +3765,15 @@ sub set_trivial_aux_fdb { open( my $aux_file, '>', $aux_main ) or die "Cannot write file '$aux_main'\n"; - fprint8 $aux_file, "\\relax \n"; + fprint8( $aux_file, "\\relax \n" ); # The following is added by recent versions of latex for a # one page document - fprint8 $aux_file, "\\gdef \\\@abspage\@last{1}\n"; + fprint8( $aux_file, "\\gdef \\\@abspage\@last{1}\n" ); close($aux_file); foreach my $rule (keys %possible_primaries ) { rdb_one_rule( $rule, - sub{ $$Pout_of_date = 1; } + sub{ $$Pout_of_date = 'Initial setup'; } ); } &rdb_write( $fdb_name ); @@ -3879,7 +3788,7 @@ sub do_cleanup { my $kind = $_[0]; if (! $kind ) { return; } my @files_to_delete = (); - @dirs = ($aux_dir1); + my @dirs = ($aux_dir1); if ($out_dir1 ne $aux_dir1) { push @dirs, $out_dir1; } push @files_to_delete, &get_small_cleanup; @@ -3888,7 +3797,7 @@ sub do_cleanup { push @files_to_delete, cleanup_get1( $dir1, @final_output_exts ); } } - # show_array( "Files to delete", sort @files_to_delete ); + # show_array( "Files to delete", sort @files_to_delete ); # Names of contents of directory are longer than the name of the directory, # but contain the directory name as an initial segment. @@ -3896,8 +3805,6 @@ sub do_cleanup { # sort deletes contents of directory before attempting to delete the # directory: unlink_or_move( reverse sort @files_to_delete ); - - # If the fdb file (or log, fls and/or aux files) exist, it/they will have # been used to make a changed rule database. But a cleanup implies @@ -3936,6 +3843,8 @@ sub cleanup_get1 { sub get_small_cleanup { # Get list of files to be deleted in a small cleanup. # Assume dependency information from previous run has been obtained. + + my @files = (); my %other_generated = (); my %cusdep_generated = (); my @index_bibtex_generated = (); @@ -4066,6 +3975,7 @@ sub do_cusdep { # argument is the name of the subroutine to apply my $func_name = $_[0]; my $return = 0; + no strict "refs"; if ( !-e $$Psource ) { # Source does not exist. Users of this rule will need to turn # it off when custom dependencies are reset @@ -4217,12 +4127,12 @@ sub find_basename { # Returns non-zero if tex file does not exist my $fail = 0; - local ( $given_name, $base_name, $ext, $path, $tex_name, $source_name ); + my ( $given_name, $base_name, $ext, $path, $tex_name, $source_name ); $given_name = $_[0]; + $source_name = ''; $tex_name = $given_name; # Default name if I don't find the tex file ($base_name, $path, $ext) = fileparseB( $given_name ); - # Treatment of extensions (in TeXLive 2019), with omission of path search: # Exists: always means exists as a file, i.e., not as a directory. # A. Finding of tex file: @@ -4245,7 +4155,6 @@ sub find_basename { # file # 4. If that also fails, report non-existent tex file. - if ( ($ext eq '.tex') && (-f $given_name) ) { $tex_name = "$given_name"; } @@ -4315,10 +4224,10 @@ sub make_preview_continuous { my $viewer_running = 0; # No viewer known to be running yet # Get information from update_view rule - local $viewer_update_method = 0; + my $viewer_update_method = 0; # Pointers so we can update the following: - local $Pviewer_process = undef; - local $Pneed_to_get_viewer_process = undef; + my $Pviewer_process = undef; + my $Pneed_to_get_viewer_process = undef; rdb_one_rule( 'update_view', sub{ $viewer_update_method = $$PAint_cmd[1]; $Pviewer_process = \$$PAint_cmd[3]; @@ -4361,9 +4270,6 @@ CHANGE: # $MSWin_fudge_break. $SIG{BREAK} = $SIG{INT} = 'IGNORE'; } - if ($compiling_cmd) { - Run_subst( $compiling_cmd ); - } $failure = rdb_make(); if ( $MSWin_fudge_break && ($^O eq "MSWin32") ) { @@ -4391,7 +4297,7 @@ CHANGE: "------------\n"; } } - local $retcode = 0; + my $retcode = 0; rdb_one_rule( 'view', sub { $retcode = &rdb_run1;} ); if ( $retcode != 0 ) { if ($force_mode) { @@ -4477,7 +4383,8 @@ CHANGE: # command line to work: # latexmk -pvc foo; cleanup; &catch_break; - $have_break = 0; + our $have_break; + local $have_break = 0; $last_action_time = time(); $waiting = 1; rdb_for_some( @@ -4504,8 +4411,8 @@ CHANGE: # Don't count waiting time in processing: $processing_time1 = processing_time(); # Does this do this job????!!! - local $new_files = 0; - rdb_for_some( [keys %current_primaries], sub{ $new_files += &rdb_find_new_files } ); + my $new_files = 0; + rdb_for_some( [$current_primary], sub{ $new_files += &rdb_find_new_files } ); if ($new_files > 0) { print "$My_name: New file(s) found.\n"; last WAIT; @@ -4597,6 +4504,8 @@ sub process_rc_file { } my $BOM = Encode::encode( 'UTF-8', "\N{U+FEFF}" ); $code =~ s/^$BOM//; + no strict; + # !!!??? For backward compatibility, turn off strictness for evaluating rc files. eval $code; } else { @@ -4628,7 +4537,10 @@ sub execute_code_string { print "$My_name: Executing initialization code specified by -e:\n", " '$code'...\n" if $diagnostics; + { + no strict; eval $code; + } # The return value from the eval is not useful, since it is the value of # the last expression evaluated, which could be anything. # The correct test of errors is on the value of $@. @@ -5003,8 +4915,7 @@ sub after_biber { our ( $rule, $Pbase, $Pdest, $PHextra, $Plast_message, $Plast_result, $Pout_of_date, $Psource, $PHsource ); # Global variables used - our ( %current_primaries, $diagnostics, $My_name, $save_error_suffix, - $silent ); + our ( $diagnostics, $My_name, $save_error_suffix, $silent ); my $Preturn = $_[0]; my @biber_datasource = ( ); my @biber_remote = (); @@ -5024,7 +4935,7 @@ sub after_biber { print "Source '$$Psource' for '$rule' doesn't exist,\n", "so I'll force *latex to run to try and make it.\n"; } - rdb_for_some( [keys %current_primaries], sub{ $$Pout_of_date = 1; } ); + rdb_for_some( [$current_primary], sub{ $$Pout_of_date = "to make '$$Psource' for '$rule'"; } ); } rdb_set_source_here( @biber_datasource, $$Psource ); @@ -5034,7 +4945,7 @@ sub after_biber { print "$My_name: bibtex control file missing. Since that can\n", " be recreated, I'll try to do so.\n"; $$Preturn = -2; - rdb_for_some( [keys %current_primaries], sub{ $$Pout_of_date = 1; } ); + rdb_for_some( [$current_primary], sub{ $$Pout_of_date = "to make missing control file"; } ); } elsif ($retcode == 4) { $$Plast_result = 2; @@ -5125,8 +5036,8 @@ sub check_biber_log { my $control_file_malformed = 0; my @not_found = (); # Files, normally .bib files, not found. my @missing_citations = (); - - while (local $_= <$blg_file>) { + + while (local $_ = <$blg_file>) { $_ = utf8_to_mine($_); if (/> WARN /) { print "Biber warning: $_"; @@ -5303,7 +5214,7 @@ sub after_bibtex { our ( $rule, $Pbase, $Pdest, $Plast_message, $Plast_result, $Pout_of_date, $Psource ); # Global variables used - our ( %current_primaries, $diagnostics, $failure, $My_name, $silent ); + our ( $diagnostics, $failure, $My_name, $silent ); my $Preturn = $_[0]; my $retcode = check_bibtex_log($$Pbase); @@ -5315,7 +5226,7 @@ sub after_bibtex { print "Source '$$Psource' for '$rule' doesn't exist,\n", "so I'll force *latex to run to try and make it.\n"; } - rdb_for_some( [keys %current_primaries], sub{ $$Pout_of_date = 1; } ); + rdb_for_some( [$current_primary], sub{ $$Pout_of_date = "to make '$$Psource' for '$rule'"; } ); } if ($retcode == 3) { $$Plast_result = 2; @@ -5359,7 +5270,7 @@ sub check_bibtex_log { # Variable used in context of a rule action our ( $Pout_of_date ); # Global variables used - our ( %current_primaries, $My_name ); + our ( $My_name ); my $base = $_[0]; my $blg_name = "$base.blg"; @@ -5371,6 +5282,7 @@ sub check_bibtex_log { my @missing_aux = (); my @missing_bib = (); my $error_count = 0; + while (local $_ = <$blg_file>) { $_ = utf8_to_mine($_); if (/^Warning--/) { @@ -5398,7 +5310,7 @@ sub check_bibtex_log { # Need to make the missing files. print "$My_name: One or more aux files is missing for bibtex. I'll try\n", " to get *latex to remake them.\n"; - rdb_for_some( [keys %current_primaries], sub{ $$Pout_of_date = 1; } ); + rdb_for_some( [$current_primary], sub{ $$Pout_of_date = "to get missing aux file(s) made"; } ); } #print "Bibtex errors = $error_count, missing aux files and citations = $missing\n"; if ($have_error && ($error_count <= $weak_errors ) @@ -5536,7 +5448,7 @@ sub set_names { if ( length($ps_filter) > 0) { $ps_final = $psF_name; } -} +} #END set_names #************************************************** @@ -5551,6 +5463,9 @@ sub correct_locations { # of -aux-directory option. This is to be done first, since a run of # *latex always produces a log file unless there is a bad error, so # this gives the best chance of diagnosing errors. + + # Assumes rule context. + my $where_log = &find_set_log; if ( $emulate_aux && ($aux_dir ne $out_dir) ) { # Move output files from aux_dir to out_dir @@ -5558,8 +5473,8 @@ sub correct_locations { # Omit 'xdv', that goes to aux_dir (as with MiKTeX). It's not final output. foreach my $ext ( 'fls', 'dvi', 'hnt', 'pdf', 'ps', 'synctex', 'synctex.gz' ) { if ( ($ext eq 'fls') && ! $fls_uses_out_dir ) {next;} - my $from = "$aux_dir1$root_filename.$ext"; - my $to = "$out_dir1$root_filename.$ext" ; + my $from = "$aux_dir1$$Pbase.$ext"; + my $to = "$out_dir1$$Pbase.$ext" ; if ( test_gen_file_time( $from ) ) { if (! $silent) { print "$My_name: Moving '$from' to '$to'\n"; } my $ret = move( $from, $to ); @@ -5572,7 +5487,7 @@ sub correct_locations { if ($recorder) { # Deal with following special cases: # 1. Some implemenations of *latex give fls files of name latex.fls - # or pdflatex.fls instead of $root_filename.fls. + # or pdflatex.fls instead of $$Pbase.fls. # 2. In some implementations, the writing of the fls file (memory # of old implementations) may not respect the -output-directory # and -aux-directory options. @@ -5606,7 +5521,7 @@ sub correct_locations { push @other_fls_names, "latex.fls"; } if ( $aux_dir1 ne '' ) { - push @other_fls_names, "$root_filename.fls"; + push @other_fls_names, "$$Pbase.fls"; # The fls file may be in the opposite directory to the # one configured by $fls_uses_out_dir: push @other_fls_names, $fls_name_alt; @@ -5636,6 +5551,7 @@ sub correct_locations { sub find_log { # Locate log file generated on this run. + # Usage find_log( $log_aux, $log_out, $log_cwd) # Side effect: measure filetime offset if necessary. # Don't take other actions. # Returns @@ -5649,11 +5565,9 @@ sub find_log { # (only applies if $emulate_aux off) # 6 log file is in ., but out-of-date - + # Assumes rule context. + my ( $log_aux, $log_out, $log_cwd ) = @_; my $where_log = -1; # Nothing analyzed yet - my $log_aux = "$aux_dir1$root_filename.log"; - my $log_out = "$out_dir1$root_filename.log"; - my $log_cwd = "./$root_filename.log"; # Basic tests first that assume accuracy of time of file system: if ( test_gen_file_time( $log_aux ) ) { @@ -5699,7 +5613,9 @@ sub find_log { return 6; } return 0; -} +} #END find_log + +#--------------------- sub find_set_log { # Locate the log file, generated on this run. @@ -5734,13 +5650,11 @@ sub find_set_log { # Cases: 0, 4, 5, 6 are error conditions to be handled by caller # 2 is to be handled by caller by a rerun # 1 is success. + my $log_aux = "$aux_dir1$$Pbase.log"; + my $log_out = "$out_dir1$$Pbase.log"; + my $log_cwd = "./$$Pbase.log"; - - my $log_aux = "$aux_dir1$root_filename.log"; - my $log_out = "$out_dir1$root_filename.log"; - my $log_cwd = "./$root_filename.log"; - - my $where_log = &find_log; + my $where_log = find_log( $log_aux, $log_out, $log_cwd ); my $good_log_found = 0; if ($where_log == 1 ) { @@ -5752,7 +5666,7 @@ sub find_set_log { " But emulate_aux is off. So I'll turn it on.\n", " I'll copy the log file to the correct place.\n", " The next run of *latex **SHOULD** not have this problem.\n"; - copy( "$out_dir1$root_filename.log", "$aux_dir1$root_filename.log" ); + copy( $log_out, $log_aux ); $where_log = 2; $emulate_aux = 1; $emulate_aux_switched = 1; @@ -5768,8 +5682,8 @@ sub find_set_log { # .log file is not in out_dir nor in aux_dir, but is in cwd. # Presumably there is a configuration error # that prevents the directories from being used by latex. - die "$My_name: The log file found was '$root_filename.log' instead of\n", - " '$aux_dir1$root_filename.log'. Probably a configuration error\n", + die "$My_name: The log file found was '$log_cwd' instead of\n", + " '$log_aux'. Probably a configuration error\n", " prevented the use of the -aux-directory and/or the -output-directory\n", " options with the *latex command.\n", " I'll stop.\n"; @@ -5800,7 +5714,7 @@ sub find_set_log { $failure = 1; $$Plast_result = 2; $failure_msg - = "*LaTeX didn't generate the expected log file '$log_name'\n"; + = "*LaTeX didn't generate the expected log file '$log_aux'\n"; } return $where_log; @@ -5865,8 +5779,9 @@ sub parse_log { # # Input globals: $primary_out, $fls_file_analyzed # - my ($log_name, $PAlines, $PHinfo) = @_; + our ( $primary_out, $fls_file_analyzed, %generated_log, %idx_files, + %dependents, @bbl_files, %log_info, @missing_subdirs, %conversions ); # Give a quick way of looking up custom-dependency extensions my %cusdep_from = (); @@ -5899,7 +5814,8 @@ sub parse_log { my $tex_distribution = $$PHinfo{distribution}; # Now analyze the result: - $line_num = 0; + my $line_num = 0; + my @pwd_log = (); # Working directory as reported. !!?? CHECK CORRECTNESS my $state = 0; # 0 => before ** line, # 1 => after **filename line, before next line (first file-reading line) # 2 => pwd_log determined. @@ -5915,6 +5831,8 @@ sub parse_log { # data structure until block is ended.) my %new_conversions = (); my $log_silent = ($silent || $silence_logfile_warnings); + my $source_log; #Name of tex file that .log file reports as being on cmd line + our @warning_list; @warning_list = (); # Warnings about undefined citations and the like LINE: @@ -6398,7 +6316,7 @@ LINE: # Default includes are always definitive: foreach (@default_includes) { $dependents{$_} = 4; } - my @misparsed = (); + my @misparse = (); my @missing = (); my @not_found = (); @@ -7069,10 +6987,11 @@ sub parse_aux { # Return 3 if I couldn't locate all the bib_files # Set @new_aux_files to aux files parsed + our $Paux_files; my $aux_file = $_[0]; - local $Pbib_files = $_[1]; + my $Pbib_files = $_[1]; local $Paux_files = $_[2]; - local $Pbst_files = $_[3]; + my $Pbst_files = $_[3]; # Default return values @$Pbib_files = (); @$Pbst_files = (); @@ -7080,6 +6999,7 @@ sub parse_aux { # Map file specs (in \bibdata and \bibstyle lines) to actual filenames: + our ( %bib_files, %bst_files, @bad_bib_data ); local %bib_files = (); local %bst_files = (); @@ -7152,6 +7072,7 @@ sub parse_aux1 # Return 1 if success in opening $aux_file_name and parsing it # Return 0 if fail to open it { + our ( %bib_files, %bst_files, @bad_bib_data, $Paux_files ); my $aux_file = $_[0]; my $aux_fh; if (! open($aux_fh, $aux_file) ) { @@ -7159,9 +7080,10 @@ sub parse_aux1 return 0; } push @$Paux_files, $aux_file; + AUX_LINE: while (local $_ = <$aux_fh>) { - if ( /\^\^/ ) { + if ( /\^\^[[:xdigit:]]{2}/ ) { warn "$My_name: Line in '$aux_file' uses ^^ notation, which may\n". " cause trouble to bibtex:\n $_"; # At least I need to be able to handle the line: @@ -7234,7 +7156,6 @@ sub parse_bcf { # Win32 platform. To avoid requiring the installation, just search the # .bcf file for the relevant lines. # - # !!!!!!!!!!!!!!!!!??????????? Allow for remote bib files. use strict; # Global variables used @@ -7490,7 +7411,9 @@ sub rdb_read { # may/should be in the future.) # (e) Something else, e.g., copying/editing of fdb_latexmk file. # - local ($in_name, $inhibit_output_switch) = @_; + + our ( $dest, $run_time, $check_time, $inhibit_output_switch, $last_result ); + ( my $in_name, local $inhibit_output_switch ) = @_; my $in_handle; if ( ! -e $in_name ) { @@ -7499,7 +7422,7 @@ sub rdb_read { return -2; } if ( ! open( $in_handle, '<', $in_name ) ) { - warn "$My_name: Couldn't read '$fdb_name' even though it exists\n"; + warn "$My_name: Couldn't read '$in_name' even though it exists\n"; return -1; } print "$My_name: Examining fdb file '$fdb_name' for cached rules ...\n" @@ -7515,11 +7438,11 @@ sub rdb_read { my $rule = ''; local $run_time = 0; local $last_result = -1; - local $source = ''; + my $source = ''; local $dest = ''; my $base = ''; my %old_actives = (); # Hash: keys are rules in fdb_latexmk file - local %new_sources = (); # Hash: rule => { file=>[ time, size, md5, fromrule ] } + my %new_sources = (); # Hash: rule => { file=>[ time, size, md5, fromrule ] } my $new_source = undef; # Reference to hash of sources for current rule LINE: while (local $_ = <$in_handle>) { @@ -7633,6 +7556,7 @@ LINE: print "$My_name: File-database '$in_name': setting rule '$rule'\n" if $diagnostics; my $cmd_type = 'external'; + no strict "refs"; my $ext_cmd = ${$rule_generic}; print " Rule kind = '$rule_generic'; ext_cmd = '$ext_cmd';\n", " int_cmd = '$int_cmd';\n", @@ -7718,8 +7642,10 @@ LINE: sub rdb_read_set_rule { # Makes some settings for rule from data as read from .fdb_latexmk. # Rule context assumed. Implicit passing of $dest, $run_time, $check_time, - # $in_name used as local variables in calling routine rdb_read. + # $inhibit_output_switch, $last_result used as local variables in calling + # routine rdb_read. # + our ( $dest, $run_time, $check_time, $inhibit_output_switch, $last_result ); $$Pno_history = 0; $$Prun_time = $run_time; $$Pcheck_time = $check_time; @@ -7784,9 +7710,9 @@ sub rdb_write { # Writes to the given file name the database of file and rule data # for all rules needed to make final output # Returns 1 on success, 0 if file couldn't be opened. - local $out_name = $_[0]; + my $out_name = $_[0]; - local $out_handle; + my $out_handle; if ( ($out_name eq "") || ($out_name eq "-") ) { # Open STDOUT open( $out_handle, '>-' ); @@ -7807,7 +7733,7 @@ sub rdb_write { # Omit data on a unused and never-run primary rule: if ( ($$Prun_time == 0) && exists( $possible_primaries{$rule} ) - && ! exists( $current_primaries{$rule} ) + && ($rule ne $current_primary ) ) { return; @@ -7945,12 +7871,11 @@ sub rdb_set_latex_deps { # see pythontex-latexmk) for subroutine called to process a .tex to add items to # %PHdest. So initializing here is too late. - local ($inhibit_output_switch) = @_; - # Rules should only be primary + my ($inhibit_output_switch) = @_; if ( $$Pcmd_type ne 'primary' ) { warn "\n$My_name: ==========$My_name: Probable BUG======= \n ", " rdb_set_latex_deps called to set files ", - "for non-primary rule '$rule'\n\n"; + "for non-latex-like rule '$rule'\n\n"; return; } @@ -7959,6 +7884,9 @@ sub rdb_set_latex_deps { # Parse fls and log files to find relevant filenames # Result in the following variables: + our ( %dependents, @bbl_files, %idx_files, %generated_log, %generated_fls, + %source_fls, %first_read_after_write, %log_info, $pwd_latex, $primary_out, + @missing_subdirs, %conversions ); local %dependents = (); # Maps files to status local @bbl_files = (); local %idx_files = (); # Maps idx_file to (ind_file, base) @@ -7966,8 +7894,8 @@ sub rdb_set_latex_deps { local %generated_fls = (); # Lists generated files found in fls file local %source_fls = (); # Lists source files found in fls file local %first_read_after_write = (); # Lists source files that are only read - # after being written (so are not true - # source files). + # after being written (so are not true + # source files). local $primary_out = $$Pdest; # output file (dvi or pdf) local %conversions = (); # *latex-performed conversions. # Maps output file created and read by *latex @@ -7976,7 +7904,7 @@ sub rdb_set_latex_deps { local $pwd_latex = undef; # Cwd as reported in fls file by *latex - local %created_rules = (); # Maps files to rules existing or created to + my %created_rules = (); # Maps files to rules existing or created to # make them. Use to avoid misunderstood # dependencies when a package creates a # missing file during *latex compliation @@ -7999,7 +7927,7 @@ sub rdb_set_latex_deps { # can be set to use another program.) our $tex_distribution = ''; local %log_info = (); # Info. returned by get_log_file - local @log_lines = (); # Lines in log file after unwrapping and converting + my @log_lines = (); # Lines in log file after unwrapping and converting # to use my internal CS. # Get lines from log file now, with side effect of setting $engine and # $tex_distribution, so parse_fls can adjust its behavior if necessary). @@ -8012,11 +7940,11 @@ sub rdb_set_latex_deps { $tex_distribution = $log_info{distribution}; } - - + # Analyze fls file first. It tells us the working directory as seen by *latex # But we'll use the results later, so that they take priority over the findings # from the log file. + our $fls_file_analyzed; local $fls_file_analyzed = 0; if ($recorder && test_gen_file_time($fls_name) ) { $fls_file_analyzed = @@ -8187,7 +8115,7 @@ sub rdb_set_latex_deps { $created_rules{$ind_file} = $from_rule; } # end IDX_FILE - local %processed_aux_files = (); + my %processed_aux_files = (); BBL_FILE: foreach my $bbl_file ( uniqs( @bbl_files ) ) { my ($bbl_base, $bbl_path, $bbl_ext) = fileparseA( $bbl_file ); @@ -8351,7 +8279,6 @@ NEW_SOURCE: rdb_one_file( $new_source, sub{ $$Pcorrect_after_primary = 1; } ); } elsif ( $dependents{$new_source} == 8 ) { - print "================= REWRITE '$new_source'\n"; # File was read only after being written # and the file existed at the beginning of the run rdb_ensure_file( $rule, $new_source ); @@ -8494,6 +8421,7 @@ sub test_gen_file { # file being listed in %generated_log or %generated_fls # Assumes context for primary rule. my $file = shift; + our ( %generated_fls, %generated_log ); return exists $generated_log{$file} || $generated_fls{$file} || test_gen_file_time($file); } @@ -8601,7 +8529,7 @@ MISSING_FILE: # if ( $file =~ /\"/ ) {next; } my $stripped = $file; $stripped =~ s{^\./}{}; - if ( exists $PHsource{$file} ) { + if ( exists $$PHsource{$file} ) { delete $new_includes{$file}; } else { @@ -8621,6 +8549,7 @@ MISSING_FILE: sub rdb_set_dependents { # Call rdb_set_dependents( rules ...) # Returns array (sorted), of new source files for the given rules. + our ( @new_sources, @deletions ); local @new_sources = (); local @deletions = (); @@ -8664,7 +8593,8 @@ sub rdb_one_dep { if ( (! exists $possible_primaries{$rule}) && ($rule !~ /^cusdep/) ) { return; } - local $new_dest = $file; + our ( @new_sources, @deletions ); + my $new_dest = $file; if ($$PHdest{$new_dest} ) { # We already have a way of making the file. # No need to find another one. @@ -8697,13 +8627,13 @@ DEP: rdb_ensure_file( $rule, $new_new_dest ); $new_dest = $new_new_dest; } - local @PAnew_cmd = ( 'do_cusdep', $func_name ); + my @Anew_cmd = ( 'do_cusdep', $func_name ); if ( !-e $new_dest ) { push @new_sources, $new_dest; } if (! rdb_rule_exists( $from_rule ) ) { print "$My_name: === Creating rule '$from_rule'\n" if $diagnostics; - rdb_create_rule( $from_rule, 'cusdep', '', \@PAnew_cmd, 3, + rdb_create_rule( $from_rule, 'cusdep', '', \@Anew_cmd, 3, $source, $new_dest, $base_name, 0 ); } return; @@ -8748,10 +8678,10 @@ DEP: push @new_sources, $new_dest; print "$My_name: Ensuring rule for '$from_rule', to make '$new_dest'\n" if $diagnostics > -1; - local @PAnew_cmd = ( 'do_cusdep', $func_name ); + my @Anew_cmd = ( 'do_cusdep', $func_name ); if (! rdb_rule_exists( $from_rule ) ) { print "$My_name: === Creating rule '$from_rule'\n" if $diagnostics; - rdb_create_rule( $from_rule, 'cusdep', '', \@PAnew_cmd, 3, + rdb_create_rule( $from_rule, 'cusdep', '', \@Anew_cmd, 3, $source, $new_dest, $base_name, 0 ); } rdb_ensure_file( $rule, $new_dest, $from_rule ); @@ -8794,7 +8724,7 @@ DEP: push @deletions, [$rule, $file]; # Flag need for a new run of *latex despite # the error due to a missing file. - $$Pout_of_date_user = 1; + $$Pout_of_date_user = "Missing file '$new_dest' now exists"; return; } } @@ -8808,7 +8738,7 @@ sub rdb_list { # Call: rdb_list() # List rules and their source files print "===Rules:\n"; - local $count_rules = 0; + my $count_rules = 0; my @accessible_all = &rdb_accessible; rdb_for_some( \@accessible_all, @@ -8833,7 +8763,7 @@ sub deps_list { # Call: deps_list(fh) # List dependent files to file open on fh my $fh = $_[0]; - fprint8 $fh, "#===Dependents, and related info, for $filename:\n"; + fprint8( $fh, "#===Dependents, and related info, for $filename:\n" ); my @dest_exts = (); if ($pdf_mode) {push @dest_exts, '.pdf';} if ($dvi_mode) {push @dest_exts, '.dvi';} @@ -8843,7 +8773,7 @@ sub deps_list { my $deps_space = ' '; if ($deps_escape eq 'unix' ) { $deps_space = '\ '; } elsif ($deps_escape eq 'nmake' ) { $deps_space = '^ '; } - $Pescape = sub { + my $Pescape = sub { my $name = shift; $name =~ s/ /$deps_space/g; return $name; @@ -8876,19 +8806,19 @@ sub deps_list { # deps file out-of-date are the same as those that make the real # target file (e.g., .pdf) out-of-date. So the GNU method seems # completely unnecessary. - fprint8 $fh, &$Pescape(${out_dir1}.${root_filename}.${ext}), " :"; + fprint8( $fh, &$Pescape(${out_dir1}.${root_filename}.${ext}), " :" ); foreach (sort keys %source) { - fprint8 $fh, "\\\n ", &$Pescape($_); + fprint8( $fh, "\\\n ", &$Pescape($_) ); } - fprint8 $fh, "\n"; + fprint8( $fh, "\n" ); } - fprint8 $fh, "#===End dependents for $filename:\n"; + fprint8( $fh, "#===End dependents for $filename:\n" ); if ($dependents_phony) { - fprint8 $fh, "\n#===Phony rules for $filename:\n\n"; + fprint8( $fh, "\n#===Phony rules for $filename:\n\n" ); foreach (sort keys %source) { - fprint8 $fh, "$_ :\n\n"; + fprint8( $fh, "$_ :\n\n" ); } - fprint8 $fh, "#===End phony rules for $filename:\n"; + fprint8( $fh, "#===End phony rules for $filename:\n" ); } } #END deps_list @@ -8899,7 +8829,7 @@ sub rdb_show { # Displays contents of rule data base. # Side effect: Exercises access routines! print "===Rules:\n"; - local $count_rules = 0; + my $count_rules = 0; rdb_for_actives( sub{ $count_rules++; my @int_cmd = @$PAint_cmd; @@ -8943,7 +8873,7 @@ sub rdb_accessible { # Call: &rdb_accessible # Returns array of rules accessible from target rules and rules to make target files - local %accessible_rules = &rdb_target_hash; + my %accessible_rules = &rdb_target_hash; rdb_recurse( [keys %accessible_rules], sub{ $accessible_rules{$rule} = 1; } ); return keys %accessible_rules; } #END rdb_accessible @@ -9167,9 +9097,11 @@ sub rdb_make { # they are run by the calling routines, since the needs may be # quite special. - # ???!!! Overkill? + if ($compiling_cmd) { Run_subst( $compiling_cmd ); } + # ???!!! Overkill? No. $compiling_cmd might have injected something. &rdb_set_rule_net; + our %pass; local %pass = (); # Counts runs on each rule: Used for testing for # exceeding maximum runs and for determining # whether to run rules that have a list of source @@ -9187,12 +9119,14 @@ sub rdb_make { } ); + our ($runs, $runs_total, $too_many_passes, $newrule_nofile); local $failure = 0; # General accumulated error flag local $missing_dvi_pdf = ''; # Did primary run fail to make its output file? local $runs = 0; local $runs_total = 0; local $too_many_passes = 0; local $switched_primary_output = 0; + our @warning_list; local @warning_list = (); # Undef refs etc reported in last primary run my $retry_msg = 0; # Did I earlier say I was going to attempt # another pass after a failure? @@ -9275,7 +9209,7 @@ sub rdb_make { continue { # Re-evaluate rule classification and accessibility, # but do not change primaries. - # Problem is that %current_primaries gets altered + # Problem is that $current_primary gets altered &rdb_set_rule_net; } #End PASS @@ -9412,21 +9346,14 @@ sub rdb_make { print "$My_name: Errors, so I did not complete making targets\n"; } else { -# local @dests = ( keys %current_primaries, @pre_primary, @post_primary, @unusual_one_time ); - local @rules = ( keys %current_primaries, @post_primary, @unusual_one_time ); - local @dests = (); +# local @dests = ( $current_primary, @pre_primary, @post_primary, @unusual_one_time ); + my @rules = ( $current_primary, @post_primary, @unusual_one_time ); + my @dests = (); rdb_for_some( [@rules], sub{ push @dests, $$Pdest if ($$Pdest); } ); print "$My_name: All targets (@dests) are up-to-date\n"; } } - # ???!!! Rethink use of %pass, and it's scoping. - # Currently %pass is local in rdb_make and is used only to determine - # whether a rule needs to be run because a source rule has been run, - # and this would be within the same call to rdb_make. - # OLD COMMENT: Update source_rules. Is this too late? I don't think so, it's - # internal to make and to multiple calls to it (pvc). Is this - # necessary? rdb_for_some( [keys %rule_db], sub{ foreach my $s_rule (keys %$PHsource_rules) { @@ -9440,8 +9367,8 @@ sub rdb_make { #------------------- sub rdb_show_rule_errors { - local @errors = (); - local @warnings = (); + my @errors = (); + my @warnings = (); rdb_for_actives( sub { my $message_tail = ""; @@ -9489,7 +9416,8 @@ sub rdb_make1 { # Assumes contexts for recursion, make, and rule, and # assumes that source files for the rule are to be considered # up-to-date. - our $rule; + our ($rule, %pass, $runs, $runs_total, $too_many_passes, $newrule_nofile); + if ($diagnostics) { print " Make for rule '$rule'\n"; } # Is this needed? Yes; rdb_make1 is called on a sequence of rules and # if one gives an error, then it provides source files directly or @@ -9620,7 +9548,7 @@ sub rdb_run1 { $$Plast_result_info = 'CURR'; $$Plast_message = ''; my $latex_like = ($$Pcmd_type eq 'primary'); - + # Return value for external command: my $return = 0; @@ -9663,6 +9591,7 @@ sub rdb_run1 { if ($int_cmd) { print "For rule '$rule', use internal command '\&$int_cmd( @int_args_for_printing )' ...\n" if $diagnostics; + no strict "refs"; $return = &$int_cmd( @int_args ); } elsif ($$Pext_cmd) { @@ -9689,7 +9618,7 @@ sub rdb_run1 { # $$Pout_of_date = $$Pout_of_date_user = 0; if ($latex_like) { - &correct_locations; + correct_locations(); run_hooks( 'after_xlatex' ); $return = analyze_latex_run( $return ); run_hooks( 'after_xlatex_analysis' ); @@ -9838,7 +9767,7 @@ sub analyze_latex_run { if (-e $$Pdest) { $missing_dvi_pdf = '';} # Find current set of source files: - my ($missing_dirs, $PA_missing_subdirs, $bad_warnings) = &rdb_set_latex_deps; + my ($missing_dirs, $PA_missing_subdirs, $bad_warnings) = rdb_set_latex_deps(); if ($bad_warning_is_error && $bad_warnings) { warn "$My_name: Serious warnings in .log configured to be errors\n"; $return ||= $bad_warnings; @@ -9965,7 +9894,8 @@ sub rdb_user_changes { @{$changes_rule{changed_user}}; push @{$$PHchanges{rules_to_apply}}, $rule; $user_changes = 1; - $$Pout_of_date = $$Pout_of_date_user = $user_changes; + if ($user_changes) { $$Pout_of_date = $$Pout_of_date_user = 'Changed user file'; } + else { $$Pout_of_date = $$Pout_of_date_user = 0; } } } ); @@ -9989,15 +9919,12 @@ sub rdb_rerun_needed { # make_preview_continuous. Otherwise use rerun criterion suitable for # with rdb_make's looping through rules. # - # ???!!!! - # Check all uses!!!!!!!!!!!!! our ($rule, %pass); local our $PHchanges = shift; local our $outside_make_loop = shift; my $bibx_rule = ( $rule =~ /^(biber|bibtex)/ ); - # File level routine reports its results in %$PHchanges: maps kind of # change to ref to array of files with that kind of change. @@ -10010,7 +9937,7 @@ sub rdb_rerun_needed { my $rerun_needed = $$Pout_of_date; if ($rerun_needed) { push @{$$PHchanges{other}}, - "Rerun of '$rule' forced or previously required"; + "Rerun of '$rule' forced or previously required:\n Reason or flag: '$rerun_needed'"; goto rdb_rerun_needed_CLEAN_UP; } @@ -10022,6 +9949,7 @@ sub rdb_rerun_needed { $$Pcheck_time = time(); + our $dest_mtime; local $dest_mtime = 0; $dest_mtime = get_mtime($$Pdest) if ($$Pdest); @@ -10106,15 +10034,7 @@ sub rdb_rerun_needed { # rerun rule until there's a change in source file(s), which # presumably contain the cause of the error. # But there are other reasons for not rerunning: - if ( $$Psource && (! -e $$Psource) - && ( $$Pcmd_type ne 'primary' ) - ) { - # Main source file doesn't exist, and rule is NOT primary. - # No action, since a run is pointless. Primary is different: - # file might be found elsewhere (by kpsearch from *latex), - # while non-existence of main source file is a clear error. - } - elsif ( $$Pcmd_type eq 'delegated' ) { + if ( $$Pcmd_type eq 'delegated' ) { # Delegate to destination rule } elsif ( $$PHextra{bibx_vetoed} ) { @@ -10129,16 +10049,19 @@ sub rdb_rerun_needed { } rdb_rerun_needed_CLEAN_UP: + if ( $$Psource && (! -e $$Psource) && ( $$Pcmd_type ne 'primary' ) ) { + # Main source file doesn't exist, and rule is NOT primary. + # No action, since a run is pointless. Primary is different: + # file might be found elsewhere (by kpsearch from *latex), + # while non-existence of main source file is a clear error. + $rerun_needed = 0; + } foreach my $file ( @{$$PHchanges{changed}} ) { if ( ! $from_rules{$file} ) { push @{$$PHchanges{changed_user}}, $file; } } $$Pno_history = 0; # See comments in definition of %rule_db. - if ( $$Psource && (! -e $$Psource) ) { -# print "================In '$rule', no source '$$Psource'\n"; - } - if ( $bibx_rule ) { # Check whether run of biber/bibtex rule is to be vetoed. # Default to no veto: @@ -10184,7 +10107,7 @@ sub rdb_file_change1 { # Call: &rdb_file_change1 # Assumes rule and file context. Assumes $dest_mtime set. # Flag whether $file in $rule has changed or disappeared. - our ($rule, $file, $PHchanges); + our ($rule, $file, $PHchanges, $outside_make_loop, $dest_mtime); my $check_time_argument = ($outside_make_loop ? 0 : max($$Pcheck_time, $$Prun_time) ); @@ -10367,6 +10290,7 @@ sub rdb_recurse { # This routine sets a context for anything recursive, with @heads, # %visited and $depth being set as local variables. + our ($depth, @heads, %visited); local @heads = (); my $rules = shift; @@ -10417,6 +10341,7 @@ sub rdb_for_some { # Rule data and file data are made available in local variables # for access by the subroutines. + our (@heads); local @heads = (); my $rules = shift; # Distinguish between single rule (a string) and a reference to an @@ -10430,18 +10355,6 @@ sub rdb_for_some { } } #END rdb_for_some -#************************************************************ - -sub rdb_for_one_file { - # Use : rdb_for_one_file( rule, file, ref to action subroutine ) - my $rule = shift; - # Avoid name collisions with general recursion and iteraction routines: - local $file1 = shift; - local $action1 = shift; - rdb_for_some( $rule, sub{rdb_one_file($file1,$action1)} ); -} #END rdb_for_one_file - - #************************************************************ # Routines for inner part of recursion and iterations @@ -10455,10 +10368,13 @@ sub rdb_recurse_rule { # the sources of the rules. # Assumes recursion context, i.e. that %visited, @heads, $depth. # We are overriding actions: - my ($rule, $rule_act1, $new_file_act1, $new_file_act2, $rule_act2) + our (%visited, @heads, $depth); + our ($rule, $rule_act1, $new_file_act1, $new_file_act2, $rule_act2); + local ($rule, $rule_act1, $new_file_act1, $new_file_act2, $rule_act2) = @_; if (! rdb_is_active($rule)) { return; } # and must propagate the file actions: + our ( $file_act1, $file_act2 ); local $file_act1 = $new_file_act1; local $file_act2 = $new_file_act2; # Prevent loops: @@ -10481,6 +10397,7 @@ sub rdb_recurse_file { # This has no arguments, since it is used as an action subroutine, # passed as a reference in calls in higher-level subroutine. # Assumes contexts set for: Recursion, rule, and file + our ( $file_act1, $file_act2, $rule_act1, $rule_act2 ); &$file_act1 if $file_act1; my $from_rule = $from_rules{$file} || ''; rdb_recurse_rule( $from_rule, $rule_act1, $file_act1, $file_act2, @@ -10494,9 +10411,9 @@ sub rdb_recurse_file { sub rdb_do_files { # Assumes rule context, including $PHsource. # Applies an action to all the source files of the rule. - local $file_act = shift; + my $file_act = shift; my @file_list = sort keys %$PHsource; - foreach my $file ( @file_list ){ + foreach my $file ( @file_list ) { rdb_one_file( $file, $file_act ); } } #END rdb_do_files @@ -10514,7 +10431,8 @@ sub rdb_one_rule { # Sets context for rule and carries out the actions. #===== Accesses rule part of database structure ======= - local ( $rule, $rule_act1, $file_act, $rule_act2 ) = @_; + local $rule = shift; + my ( $rule_act1, $file_act, $rule_act2 ) = @_; if ( (! $rule) || ! rdb_rule_exists($rule) ) { die_trace( "$My_name: BUG in call to rdb_one_rule: non-existent rule '$rule'" ); } @@ -10592,7 +10510,8 @@ sub rdb_one_file { # Call: rdb_one_file($file, $file_act) # Sets context for file and carries out the action. # Assumes $rule context set. -#===== Accesses file part of database structure ======= + #===== Accesses file part of database structure ======= + our $file_act; local ($file, $file_act) = @_; if ( (!$file) ||(!exists ${$PHsource}{$file}) ) { return; } local $PAfile_data = ${$PHsource}{$file}; @@ -10645,6 +10564,7 @@ sub rdb_create_rule { foreach ( $needs_making, $run_time, $check_time, $DUMMY ) { if (! defined $_) { $_ = 0; } } + if ($needs_making) {$needs_making = 'Initial set up of rule'; } foreach ( $cmd_type, $ext_cmd, $PAint_cmd, $source, $dest, $base, $set_file_not_exists ) { if (! defined $_) { $_ = ''; } @@ -10758,8 +10678,7 @@ sub rdb_ensure_file { # (2) When initializing rules, when there is no previous # known run under the control of latexmk. #============ NOTE: rule and file data set here =============================== - my $rule = shift; - local ( $new_file, $new_from_rule, $set_not_exists ) = @_; + my ( $rule, $new_file, $new_from_rule, $set_not_exists ) = @_; if ( ! rdb_rule_exists( $rule ) ) { die_trace( "$My_name: BUG in call to rdb_ensure_file: non-existent rule '$rule'" ); } @@ -10799,18 +10718,19 @@ sub rdb_ensure_files_here { # as is appropriate if the file was read in latest run of rule use strict; our ($rule, $My_name, $PHsource, $Prun_time); - foreach (@_) { - if ( /\"/ ) { + foreach my $file (@_) { + # Use $file, not $_, since called subroutine may change it! + if ( $file =~ /\"/ ) { warn "$My_name: in rdb_ensure_files_here for rule '$rule', there\n", - " is a double quote in the filename: '$_'.\n", + " is a double quote in the filename: '$file'.\n", " I cannot handle this, will ignore this file.\n"; next; } - if (! exists ${$PHsource}{$_} ) { - ${$PHsource}{$_} = [fdb_get($_, $$Prun_time), '', 0]; + if (! exists ${$PHsource}{$file} ) { + ${$PHsource}{$file} = [fdb_get($file, $$Prun_time), '', 0]; } } -} #DN rdb_ensure_files_here +} #END rdb_ensure_files_here #************************************************************ @@ -10822,18 +10742,18 @@ sub rdb_ensure_new_files_here { # as is appropriate if the file is new to the rule use strict; our ($rule, $My_name, $PHsource, @nofile); - foreach (@_) { - if ( /\"/ ) { + foreach my $file (@_) { + if ( $file =~ /\"/ ) { warn "$My_name: in rdb_ensure_new_files_here for rule '$rule', there\n", - " is a double quote in the filename: '$_'.\n", + " is a double quote in the filename: '$file'.\n", " I cannot handle this, will ignore this file.\n"; next; } - if (! exists ${$PHsource}{$_} ) { - ${$PHsource}{$_} = [@nofile, '', 0]; + if (! exists ${$PHsource}{$file} ) { + ${$PHsource}{$file} = [@nofile, '', 0]; } } -} +} #END rdb_ensure_new_files_here #************************************************************ @@ -10842,7 +10762,7 @@ sub rdb_remove_files { # Removes file(s) for the rule. my $rule = shift; if (!$rule) { return; } - local @files = @_; + my @files = @_; rdb_one_rule( $rule, sub{ foreach (@files) { delete ${$PHsource}{$_}; } } ); @@ -10943,7 +10863,7 @@ sub rdb_file_exists { # Call rdb_file_exists($rule, $file): # Returns whether source file item in rule exists. local ( $rule, $file ) = @_; - local $exists = 0; + my $exists = 0; rdb_one_rule( $rule, sub{ $exists = exists( ${$PHsource}{$file} ) ? 1:0; } ); @@ -10985,12 +10905,12 @@ sub rdb_update1 { #************************************************************ sub rdb_set_file1 { - # Call: fdb_file1(rule, file, new_time, new_size, new_md5) - # Sets file time, size and md5. - my $rule = shift; - my $file = shift; - local @new_file_data = @_; - rdb_for_one_file( $rule, $file, sub{ ($$Ptime,$$Psize,$$Pmd5)=@new_file_data; } ); + # Call: rdb_set_file1(rule, file, new_time, new_size, new_md5) + # Sets file time, size and md5, in rule data. + my ( $rule, $file, @new_file_data ) = @_; + rdb_for_some( $rule, + sub{ rdb_one_file($file, sub{ ($$Ptime,$$Psize,$$Pmd5)=@new_file_data; } ); } + ); } #************************************************************ @@ -11045,11 +10965,11 @@ sub cus_dep_require_primary_run { # It is assumed that the resulting file will be read by the # primary run. - local $cus_dep_target = $$Pdest; + my $cus_dep_target = $$Pdest; # Loop over all active rules and source files: rdb_for_actives( 0, sub { if ($file eq $cus_dep_target) { - $$Pout_of_date = 1; + $$Pout_of_date = "A new file has been made"; $$Pcorrect_after_primary = 1; } } @@ -11499,7 +11419,7 @@ sub kpsewhich { $cmd =~ s/%[RBTDO]//g; $cmd =~ s/%S/@args/g; my @found = (); - local $fh; + my $fh; if ( $kpsewhich_show || $diagnostics ) { print "$My_name.kpsewhich: Running '$cmd'...\n"; } @@ -11576,8 +11496,9 @@ sub find_cus_dep { #################################################### sub add_hook { - # Usage: add_book( name of stack, name of orpointer to subroutine ) + # Usage: add_book( name of stack, name of or pointer to subroutine ) # Return 1 for success, 0 for failure. + no strict "refs"; our %hooks; my ($stack, $routine ) = @_; unless ( exists $hooks{$stack} ) { @@ -11694,7 +11615,7 @@ sub find_dirs { # is added to the list. # Non-existent directories and non-directories are removed from the list # Trailing "/"s and "\"s are removed - local @result = (); + my @result = (); my $find_action = sub { ## Subroutine for use in File::find @@ -11855,7 +11776,7 @@ sub split_search_path push @list, ""; } # Replace each blank argument (default) by current directory: - for ($i = 0; $i <= $#list ; $i++ ) { + for (my $i = 0; $i <= $#list ; $i++ ) { if ($list[$i] eq "") {$list[$i] = $default;} } return @list; @@ -12006,12 +11927,14 @@ sub Run { my @args = parse_quotes( $2 ); print "$My_name: calling $routine( $2 )\n" if (! $silent); + no strict "refs"; return ( 0, &$routine( @args ) ); } elsif ( $cmd_line =~ /^internal\s+([a-zA-Z_]\w*)\s*$/ ) { my $routine = $1; print "$My_name: calling $routine()\n" if (! $silent); + no strict "refs"; return ( 0, &$routine() ); } elsif ( $cmd_line =~ /^NONE/ ) { @@ -12207,7 +12130,7 @@ sub good_cwd { sub pushd { push @dir_stack, [cwd(), $cache{cwd}]; if ( $#_ > -1) { - local $ret = 0; + my $ret = 0; eval { if ( -d $_[0] ) { $ret = chdir dirname_no_tail( $_[0] ); @@ -12261,6 +12184,7 @@ sub end_wait { # Handler for break: Set global variable $have_break to 1. # Some systems (e.g., MSWin reset) appear to reset the handler. # So I'll re-enable it + our $have_break; &catch_break; $have_break = 1; } @@ -12289,3 +12213,128 @@ sub default_break { #************************************************************ #************************************************************ + +#************************************************************ +#************************************************************ +# Unicode manipuation and normalization +# Notes about Perl strings: +# 1. Strings have a flag utf8. +# a. If the utf8 flag is on, the string is to be interpreted as a sequence +# of code points. +# When "use utf8;" is used, a string containing non-ASCII characters +# has the utf8 flag set. +# If 'no bytes;' is in effect, the ordinal value for each item in the +# string is the Unicode code point value. +# b. If the utf8 flag is off for a string, the string is a sequence of +# bytes, to be interpreted according to whatever CS the user happens +# to choose to use. +# c. The utf8 flag is NOT to be interpreted as saying that the string is +# encoded as UTF-8, even though under the hood that may be the case. +# d. Indeed, setting 'use bytes;' appears to expose the internal +# byte-level representation of a string with the utf8 flag set, and +# that appears to be UTF-8. +# 2. The utf8 flag is quite confusing in its meaning. +# 3. When encode is applied to a string whose utf8 flag is on, the result +# is a string with the utf8 flag off, and the result consists of a sequence +# of bytes in the chosen encoding scheme, which may be chosen as UTF-8. +# 4. Strings received from the command line have the utf8 flag off and are +# encoded in whatever CS the OS/terminal is using. +# 5. When a string is supplied to print (or c), by default: +# a. If the utf8 flag is off or if 'use bytes;' is in effect, then the +# string is sent as a sequence of bytes. They are UTF-8 coded if +# the utf8 flag is on and 'use bytes;' is in effect. +# b. If the utf8 flag is on and if 'no bytes;' is in effect, then mostly +# garbage results for non-ASCII characters; the string must first be +# encoded as a byte string, in the CS suitable for the OS. +# c. Correct results are obtained when the utf8 flag is on and 'no bytes' +# is used when the binmode for the file handle is set suitably. +# 6. Generally OS calls and interactions with the OS need encoded byte strings. +# 7. Even more generally, interaction with the external world, including file +# contents is in terms of byte strings, with some CS chosen by default, by +# the user, or the OS. Unix-like OSs: Default is UTF-8, but as much by +# convention as by a requirement of the OS. + +#------------------------------------- + +sub utf8_to_mine { + # Given string encoded in UTF-8, return encoded string in my current CS. + # Don't use Encode::from_to, which does in-place conversion. + if ($no_CP_conversions) { return $_[0]; } + else { return encode( $CS_system, decode('UTF-8', $_[0])); } +} + +#------------------------------------- + +sub utf8_to_mine_errors { + # Given string encoded in UTF-8, return encoded string in my current CS. + # Don't use Encode::from_to, which does in-place conversion. + # Assume coding of input string is correctly UTF-8, but + # check for correct encoding in CS_system. + # Error message is returned in $@. No error => $@ is null string. + # (Same style as eval!) + $@ = ''; + if ($no_CP_conversions) { return $_[0]; } + else { + my $result = ''; + eval { + $result = encode( $CS_system, + decode('UTF-8', $_[0]), + Encode::FB_CROAK | Encode::LEAVE_SRC + ); + }; + return $result; + } +} + +#------------------------------------- + +sub config_to_mine { + # Ensure that configuration strings about files and directories are + # encoded in system CS. + # Configuration strings set in an rc file SHOULD either be: + # a. ASCII only, with Perl's utf8 flag off. + # b. Containing non-ASCII characters, with utf8 flag on. + # These need to be converted to encoded strings in system CS (and + # hence with utf8 flag off). + # Configuration variables set from the command line, e.g., from an + # -outdir=... option, are already in the system CS, because that is + # how strings are passed on the command line. + # So we just need to do a conversion for strings with utf8 flag on: + foreach ( $out_dir, $aux_dir, @default_files, @default_excluded_files ) { + if (utf8::is_utf8($_)) { $_ = encode( $CS_system, $_ ); } + } +} #END config_to_mine + +#************************************************************ + +sub mine_to_utf8 { + # Given string encoded in my current CS, return utf-8 encoded string. + # Don't use Encode::from_to, which does in-place conversion. + if ($no_CP_conversions) { return $_[0]; } + else { return encode( 'UTF-8', decode($CS_system, $_[0])); } +} + +#------------------------------------- + +sub is_valid_utf8 { + eval { decode( 'UTF-8', $_[0], (Encode::FB_CROAK | Encode::LEAVE_SRC ) ); }; + if ($@) { return 0; } + else { return 1; } +} + +#------------------------------------- + +sub fprint8 { + # Usage: fprint8( handle, data array) + # Write to file converting from my CS to UTF-8 + my $fh = shift; + print $fh mine_to_utf8( join( '', @_ ) ); +} + +#------------------------------------- + +################################################################ + + + + diff --git a/support/latexmk/latexmk.txt b/support/latexmk/latexmk.txt index cf97de03fe..462e9a80da 100644 --- a/support/latexmk/latexmk.txt +++ b/support/latexmk/latexmk.txt @@ -61,7 +61,7 @@ DESCRIPTION - 10 January 2024 1 + 31 January 2024 1 @@ -127,7 +127,7 @@ LATEXMK OPTIONS AND ARGUMENTS ON COMMAND LINE - 10 January 2024 2 + 31 January 2024 2 @@ -188,12 +188,12 @@ LATEXMK(1) General Commands Manual LATEXMK(1) sionally result from filenames that have been incorrectly quoted on the command line. In addition, under Microsoft Windows, the forward slash character "\" is a directory separator, so latexmk - replaces it by a backward slash "/", which is also a legal di- - rectory separator in Windows, and is accepted by latex etc. + replaces it by a forward slash "/", which is also a legal direc- + tory separator in Windows, and is accepted by latex etc. - 10 January 2024 3 + 31 January 2024 3 @@ -203,21 +203,21 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -auxdir=FOO or -aux-directory=FOO - Sets the directory for auxiliary output files of *latex (.aux, - .log etc). These are all the generated files, with the excep- + Sets the directory for auxiliary output files of *latex (.aux, + .log etc). These are all the generated files, with the excep- tion of final output files (.dvi, .ps, .pdf, .synctex.gz, .sync- - tex). See the -outdir/-output-directory option for directories + tex). See the -outdir/-output-directory option for directories for the final output files. If the directory specified for the -aux/-aux-directory option is - blank, then the default is used, which is to be the same as the + blank, then the default is used, which is to be the same as the output directory. If you also use the -cd option, and the specified auxiliary out- - put directory is a relative path, then the path is interpreted + put directory is a relative path, then the path is interpreted relative to the document directory. - See the section AUXILIARY AND OUTPUT DIRECTORIES for more de- + See the section AUXILIARY AND OUTPUT DIRECTORIES for more de- tails. @@ -225,41 +225,41 @@ LATEXMK(1) General Commands Manual LATEXMK(1) When the source file uses bbl files for bibliography, run bibtex or biber as needed to regenerate the bbl files. - This property can also be configured by setting the $bibtex_use + This property can also be configured by setting the $bibtex_use variable to 2 in a configuration file. -bibtex- - Never run bibtex or biber. Also, always treat .bbl files as + Never run bibtex or biber. Also, always treat .bbl files as precious, i.e., do not delete them in a cleanup operation. - A common use for this option is when a document comes from an - external source, complete with its bbl file(s), and the user - does not have the corresponding bib files available. In this - situation use of the -bibtex- option will prevent latexmk from + A common use for this option is when a document comes from an + external source, complete with its bbl file(s), and the user + does not have the corresponding bib files available. In this + situation use of the -bibtex- option will prevent latexmk from trying to run bibtex or biber, which would result in overwriting of the bbl files. - This property can also be configured by setting the $bibtex_use + This property can also be configured by setting the $bibtex_use variable to 0 in a configuration file. -bibtex-cond - When the source file uses a bbl file for the bibliography and - bibtex is used to generate the bibliography, run bibtex as - needed to regenerate the bbl files only if the relevant bib - file(s) exist. Thus when the bib file(s) are not available, + When the source file uses a bbl file for the bibliography and + bibtex is used to generate the bibliography, run bibtex as + needed to regenerate the bbl files only if the relevant bib + file(s) exist. Thus when the bib file(s) are not available, bibtex is not run, thereby avoiding overwriting of the bbl file. - Also, always treat .bbl files as precious, i.e., do not delete + Also, always treat .bbl files as precious, i.e., do not delete them in a cleanup operation. - This is the default setting. It can also be configured by set- + This is the default setting. It can also be configured by set- ting the $bibtex_use variable to 1 in a configuration file. - 10 January 2024 4 + 31 January 2024 4 @@ -268,21 +268,21 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - The reason for using this setting is first to allow automatic + The reason for using this setting is first to allow automatic switching between the use and non-use of bibtex depending on the - existence or not of a bib file. In addition, when submitting - articles to a scientific journal, it is common to submit only - .tex and .bbl files (plus graphics files), but not a .bib file. - Hence it is often useful to treat .bbl files as true source + existence or not of a bib file. In addition, when submitting + articles to a scientific journal, it is common to submit only + .tex and .bbl files (plus graphics files), but not a .bib file. + Hence it is often useful to treat .bbl files as true source files, that should be preserved under a clean up operation. - This property can also be configured by setting the $bibtex_use + This property can also be configured by setting the $bibtex_use variable to 1 in a configuration file. Note that when biber is used, and a bib file doesn't exist, this - option does not prevent biber from being run, with the bbl file - then being incorrect. See the documentation on $bibtex_use for - more details. However, a bbl file is treated as precious in a + option does not prevent biber from being run, with the bbl file + then being incorrect. See the documentation on $bibtex_use for + more details. However, a bbl file is treated as precious in a clean up operation. @@ -290,42 +290,42 @@ LATEXMK(1) General Commands Manual LATEXMK(1) The same as -bibtex-cond except that .bbl files are only treated as precious if one or more bibfiles fails to exist. - Thus if all the bib files exist, bibtex is run to generate .bbl - files as needed, and then it is appropriate to delete the bbl + Thus if all the bib files exist, bibtex is run to generate .bbl + files as needed, and then it is appropriate to delete the bbl files in a cleanup operation since they can be re-generated. - This property can also be configured by setting the $bibtex_use + This property can also be configured by setting the $bibtex_use variable to 1.5 in a configuration file. Note that when biber is used, and a bib file doesn't exist, this - option does not prevent biber from being run, with the bbl file - then being incorrect. See the documentation on $bibtex_use for - more details. However, a bbl file is treated as precious in a + option does not prevent biber from being run, with the bbl file + then being incorrect. See the documentation on $bibtex_use for + more details. However, a bbl file is treated as precious in a clean up operation. -bibtexfudge or -bibfudge - Turn on the change-directory fudge for bibtex. See documenta- + Turn on the change-directory fudge for bibtex. See documenta- tion of $bibtex_fudge for details. -bibtexfudge- or -bibfudge- - Turn off the change-directory fudge for bibtex. See documenta- + Turn off the change-directory fudge for bibtex. See documenta- tion of $bibtex_fudge for details. -bm - A banner message to print diagonally across each page when con- - verting the dvi file to postscript. The message must be a sin- - gle argument on the command line so be careful with quoting + A banner message to print diagonally across each page when con- + verting the dvi file to postscript. The message must be a sin- + gle argument on the command line so be careful with quoting spaces and such. - Note that if the -bm option is specified, the -ps option is as- + Note that if the -bm option is specified, the -ps option is as- sumed. - 10 January 2024 5 + 31 January 2024 5 @@ -335,16 +335,16 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -bi - How dark to print the banner message. A decimal number between + How dark to print the banner message. A decimal number between 0 and 1. 0 is black and 1 is white. The default is 0.95, which is OK unless your toner cartridge is getting low. -bs - A decimal number that specifies how large the banner message - will be printed. Experimentation is necessary to get the right - scale for your message, as a rule of thumb the scale should be - about equal to 1100 divided by the number of characters in the + A decimal number that specifies how large the banner message + will be printed. Experimentation is necessary to get the right + scale for your message, as a rule of thumb the scale should be + about equal to 1100 divided by the number of characters in the message. The default is 220.0 which is just right for 5 charac- ter messages. @@ -356,42 +356,42 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -c Clean up (remove) all regeneratable files generated by latex and bibtex or biber except dvi, postscript and pdf. These files are - a combination of log files, aux files, latexmk's database file - of source file information, and those with extensions specified - in the @generated_exts configuration variable. In addition, + a combination of log files, aux files, latexmk's database file + of source file information, and those with extensions specified + in the @generated_exts configuration variable. In addition, files specified by the $clean_ext and @generated_exts configura- tion variables are removed. - This cleanup is instead of a regular make. See the -gg option + This cleanup is instead of a regular make. See the -gg option if you want to do a cleanup followed by a make. - Treatment of .bbl files: If $bibtex_use is set to 0 or 1, bbl - files are always treated as non-regeneratable. If $bibtex_use + Treatment of .bbl files: If $bibtex_use is set to 0 or 1, bbl + files are always treated as non-regeneratable. If $bibtex_use is set to 1.5, bbl files are counted as non-regeneratable condi- - tionally: If the bib file exists, then bbl files are regenerat- - able, and are deleted in a clean up. But if $bibtex_use is 1.5 - and a bib file doesn't exist, then the bbl files are treated as + tionally: If the bib file exists, then bbl files are regenerat- + able, and are deleted in a clean up. But if $bibtex_use is 1.5 + and a bib file doesn't exist, then the bbl files are treated as non-regeneratable and hence are not deleted. - In contrast, if $bibtex_use is set to 2, bbl files are always + In contrast, if $bibtex_use is set to 2, bbl files are always treated as regeneratable, and are deleted in a cleanup. - Treatment of files generated by custom dependencies: If - $cleanup_includes_cusdep_generated is nonzero, regeneratable - files are considered as including those generated by custom de- - pendencies and are also deleted. Otherwise these files are not + Treatment of files generated by custom dependencies: If + $cleanup_includes_cusdep_generated is nonzero, regeneratable + files are considered as including those generated by custom de- + pendencies and are also deleted. Otherwise these files are not deleted. -C Clean up (remove) all regeneratable files generated by latex and bibtex or biber. This is the same as the -c option with the ad- - dition of dvi, postscript and pdf files, and those specified in + dition of dvi, postscript and pdf files, and those specified in the $clean_full_ext configuration variable. - 10 January 2024 6 + 31 January 2024 6 @@ -400,64 +400,64 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - This cleanup is instead of a regular make. See the -gg option + This cleanup is instead of a regular make. See the -gg option if you want to do a cleanup followed by a make. - See the -c option for the specification of whether or not .bbl + See the -c option for the specification of whether or not .bbl files are treated as non-regeneratable or regeneratable. - If $cleanup_includes_cusdep_generated is nonzero, regeneratable - files are considered as including those generated by custom de- - pendencies and are also deleted. Otherwise these files are not + If $cleanup_includes_cusdep_generated is nonzero, regeneratable + files are considered as including those generated by custom de- + pendencies and are also deleted. Otherwise these files are not deleted. - -CA (Obsolete). Now equivalent to the -C option. See that option + -CA (Obsolete). Now equivalent to the -C option. See that option for details. - -cd Change to the directory containing the main source file before - processing it. Then all the generated files (.aux, .log, .dvi, + -cd Change to the directory containing the main source file before + processing it. Then all the generated files (.aux, .log, .dvi, .pdf, etc) will be relative to the source file. - This option is particularly useful when latexmk is invoked from - a GUI configured to invoke latexmk with a full pathname for the + This option is particularly useful when latexmk is invoked from + a GUI configured to invoke latexmk with a full pathname for the source file. - This option works by setting the $do_cd configuration variable - to one; you can set that variable if you want to configure la- + This option works by setting the $do_cd configuration variable + to one; you can set that variable if you want to configure la- texmk to have the effect of the -cd option without specifying it on the command line. See the documentation for that variable. - -cd- Do NOT change to the directory containing the main source file + -cd- Do NOT change to the directory containing the main source file before processing it. Then all the generated files (.aux, .log, - .dvi, .pdf, etc) will be relative to the current directory + .dvi, .pdf, etc) will be relative to the current directory rather than the source file. - This is the default behavior and corresponds to the behavior of + This is the default behavior and corresponds to the behavior of the *latex programs. However, it is not desirable behavior when - latexmk is invoked by a GUI configured to invoke latexmk with a + latexmk is invoked by a GUI configured to invoke latexmk with a full pathname for the source file. See the -cd option. - This option works by setting the $do_cd configuration variable - to zero. See the documentation for that variable for more in- + This option works by setting the $do_cd configuration variable + to zero. See the documentation for that variable for more in- formation. - -CF Remove the file containing the database of source file informa- + -CF Remove the file containing the database of source file informa- tion, before doing the other actions requested. - -d Set draft mode. This prints the banner message "DRAFT" across - your page when converting the dvi file to postscript. Size and + -d Set draft mode. This prints the banner message "DRAFT" across + your page when converting the dvi file to postscript. Size and intensity can be modified with the -bs and -bi options. The -bm - option will override this option as this is really just a short + option will override this option as this is really just a short way of specifying: - 10 January 2024 7 + 31 January 2024 7 @@ -468,27 +468,27 @@ LATEXMK(1) General Commands Manual LATEXMK(1) latexmk -bm DRAFT - Note that if the -d option is specified, the -ps option is as- + Note that if the -d option is specified, the -ps option is as- sumed. -deps Show a list of dependent files after processing. This is in the - form of a dependency list of the form used by the make program, + form of a dependency list of the form used by the make program, and it is therefore suitable for use in a Makefile. It gives an overall view of the files without listing intermediate files, as well as latexmk can determine them. - By default the list of dependent files is sent to stdout (i.e., - normally to the screen unless you've redirected latexmk's out- + By default the list of dependent files is sent to stdout (i.e., + normally to the screen unless you've redirected latexmk's out- put). But you can set the filename where the list is sent by the -deps-out= option. - See the section "USING latexmk WITH make" for an example of how + See the section "USING latexmk WITH make" for an example of how to use a dependency list with make. - Users familiar with GNU automake and gcc will find that the - -deps option is very similar in its purpose and results to the - -M option to gcc. (In fact, latexmk also has options -M, -MF, + Users familiar with GNU automake and gcc will find that the + -deps option is very similar in its purpose and results to the + -M option to gcc. (In fact, latexmk also has options -M, -MF, and -MP options that behave like those of gcc.) @@ -496,7 +496,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Equivalent to -deps. - -deps- Do not show a list of dependent files after processing. (This + -deps- Do not show a list of dependent files after processing. (This is the default.) @@ -506,24 +506,24 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -deps-escape= Set the kind of escaping used for spaces in the dependency list. - The possible values are "none", "unix", "nmake", corresponding - respectively to no escaping, escaping with a "\" suitable for - standard Unix make, and escaping with "^", suitable for Mi- + The possible values are "none", "unix", "nmake", corresponding + respectively to no escaping, escaping with a "\" suitable for + standard Unix make, and escaping with "^", suitable for Mi- crosoft's nmake. -deps-out=FILENAME - Set the filename to which the list of dependent files is writ- - ten. If the FILENAME argument is omitted or set to "-", then + Set the filename to which the list of dependent files is writ- + ten. If the FILENAME argument is omitted or set to "-", then the output is sent to stdout. - Use of this option also turns on the output of the list of de- + Use of this option also turns on the output of the list of de- pendent files after processing. - 10 January 2024 8 + 31 January 2024 8 @@ -532,10 +532,10 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - -dF Dvi file filtering. The argument to this option is a filter - which will generate a filtered dvi file with the extension - ".dviF". All extra processing (e.g. conversion to postscript, - preview, printing) will then be performed on this filtered dvi + -dF Dvi file filtering. The argument to this option is a filter + which will generate a filtered dvi file with the extension + ".dviF". All extra processing (e.g. conversion to postscript, + preview, printing) will then be performed on this filtered dvi file. Example usage: To use dviselect to select only the even pages of @@ -545,26 +545,26 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -diagnostics - Print detailed diagnostics during a run. This may help for de- - bugging problems or to understand latexmk's behavior in diffi- + Print detailed diagnostics during a run. This may help for de- + bugging problems or to understand latexmk's behavior in diffi- cult situations. -dir-report - For each .tex file processed, list the settings for aux and out - directories, after they have been normalized from the settings - specified during initialization. See the description of the + For each .tex file processed, list the settings for aux and out + directories, after they have been normalized from the settings + specified during initialization. See the description of the variable $aux_out_dir_report for more details. -dir-report- - Do not report the settings for aux and out directories. (De- + Do not report the settings for aux and out directories. (De- fault) -dir-report-only - After all initialization is complete, give the settings for the - aux and out directories, and then halt. This option is primar- + After all initialization is complete, give the settings for the + aux and out directories, and then halt. This option is primar- ily used for debugging configuration issues. @@ -572,24 +572,24 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -dvilua - Generate dvi version of document using lualatex instead of la- + Generate dvi version of document using lualatex instead of la- tex. - -dvi- Turn off generation of dvi version of document. (This may get - overridden, if some other file is made (e.g., a .ps file) that - is generated from the dvi file, or if no generated file at all + -dvi- Turn off generation of dvi version of document. (This may get + overridden, if some other file is made (e.g., a .ps file) that + is generated from the dvi file, or if no generated file at all is requested.) -dvilualatex="COMMAND" This sets the string specifying the command to run dvi lualatex. - It behaves like the -pdflatex option, but sets the variable + It behaves like the -pdflatex option, but sets the variable $dvilualatex. - 10 January 2024 9 + 31 January 2024 9 @@ -598,44 +598,44 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - Note: This option when provided with the COMMAND argument only - sets the command for invoking dvilualatex; it does not turn on - the use of dvilualatex. That is done by other options or in an + Note: This option when provided with the COMMAND argument only + sets the command for invoking dvilualatex; it does not turn on + the use of dvilualatex. That is done by other options or in an initialization file. -e - Execute the specified initialization code before processing. - The code is Perl code of the same form as is used in latexmk's - initialization files. For more details, see the information on - the -r option, and the section about "Configuration/initializa- - tion (RC) files". The code is typically a sequence of assign- + Execute the specified initialization code before processing. + The code is Perl code of the same form as is used in latexmk's + initialization files. For more details, see the information on + the -r option, and the section about "Configuration/initializa- + tion (RC) files". The code is typically a sequence of assign- ment statements separated by semicolons. - The code is executed when the -e option is encountered during - latexmk's parsing of its command line. See the -r option for a - way of executing initialization code from a file. An error re- - sults in latexmk stopping. Multiple instances of the -r and -e + The code is executed when the -e option is encountered during + latexmk's parsing of its command line. See the -r option for a + way of executing initialization code from a file. An error re- + sults in latexmk stopping. Multiple instances of the -r and -e options can be used, and they are executed in the order they ap- pear on the command line. Some care is needed to deal with proper quoting of special char- - acters in the code on the command line. For example, suppose - you want to set the latex command to use its -shell-escape op- + acters in the code on the command line. For example, suppose + you want to set the latex command to use its -shell-escape op- tion, then under UNIX/Linux you could use the line latexmk -e '$latex=q/latex %O -shell-escape %S/' file.tex - Note that the single quotes block normal UNIX/Linux command - shells from treating the characters inside the quotes as spe- - cial. (In this example, the q/.../ construct is a Perl idiom - equivalent to using single quotes. This avoids the complica- - tions of getting a quote character inside an already quoted - string in a way that is independent of both the shell and the + Note that the single quotes block normal UNIX/Linux command + shells from treating the characters inside the quotes as spe- + cial. (In this example, the q/.../ construct is a Perl idiom + equivalent to using single quotes. This avoids the complica- + tions of getting a quote character inside an already quoted + string in a way that is independent of both the shell and the operating-system.) - The above command line will NOT work under MS-Windows with - cmd.exe or command.com or 4nt.exe. For MS-Windows with these + The above command line will NOT work under MS-Windows with + cmd.exe or command.com or 4nt.exe. For MS-Windows with these command shells you could use latexmk -e "$latex=q/latex %O -shell-escape %S/" file.tex @@ -644,18 +644,18 @@ LATEXMK(1) General Commands Manual LATEXMK(1) latexmk -e "$latex='latex %O -shell-escape %S'" file.tex - The last two examples will NOT work with UNIX/Linux command + The last two examples will NOT work with UNIX/Linux command shells. - (Note: the above examples show are to show how to use the -e to - specify initialization code to be executed. But the particular + (Note: the above examples show are to show how to use the -e to + specify initialization code to be executed. But the particular effect can be achieved also by the use of the -latex option with less problems in dealing with quoting.) - 10 January 2024 10 + 31 January 2024 10 @@ -666,45 +666,45 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -emulate-aux-dir Emulate the use of an aux directory instead of leaving it to the - *latex programs to do it. (MiKTeX supports -aux-directory, but + *latex programs to do it. (MiKTeX supports -aux-directory, but TeXLive doesn't.) - See the section AUXILIARY AND OUTPUT DIRECTORIES for more de- + See the section AUXILIARY AND OUTPUT DIRECTORIES for more de- tails. -emulate-aux-dir- Turn off emulation to implement an aux directory and leave it to - the *latex program to handle the case that the aux directory is - different from the output directory. Note that if you use - TeXLive, which doesn't support -aux-directory, latexmk will au- - tomatically switch aux_dir emulation on after the first run of + the *latex program to handle the case that the aux directory is + different from the output directory. Note that if you use + TeXLive, which doesn't support -aux-directory, latexmk will au- + tomatically switch aux_dir emulation on after the first run of *latex, because it will find the .log file in the wrong place. - -f Force latexmk to continue document processing despite errors. + -f Force latexmk to continue document processing despite errors. Normally, when latexmk detects that LaTeX or another program has found an error which will not be resolved by further processing, no further processing is carried out. - Note: "Further processing" means the running of other programs - or the rerunning of latex (etc) that would be done if no errors - had occurred. If instead, or additionally, you want the latex - (etc) program not to pause for user input after an error, you - should arrange this by an option that is passed to the program, - e.g., by latexmk's option -interaction=nonstopmode (which la- + Note: "Further processing" means the running of other programs + or the rerunning of latex (etc) that would be done if no errors + had occurred. If instead, or additionally, you want the latex + (etc) program not to pause for user input after an error, you + should arrange this by an option that is passed to the program, + e.g., by latexmk's option -interaction=nonstopmode (which la- texmk passes to *latex). -f- Turn off the forced processing-past-errors such as is set by the - -f option. This could be used to override a setting in a con- + -f option. This could be used to override a setting in a con- figuration file. - -g Force latexmk to process document fully, even under situations - where latexmk would normally decide that no changes in the - source files have occurred since the previous run. This option - is useful, for example, if you change some options and wish to + -g Force latexmk to process document fully, even under situations + where latexmk would normally decide that no changes in the + source files have occurred since the previous run. This option + is useful, for example, if you change some options and wish to reprocess the files. @@ -721,7 +721,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 11 + 31 January 2024 11 @@ -730,24 +730,24 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - -hnt Generate hnt (HINT) version of document using hilatex. (And + -hnt Generate hnt (HINT) version of document using hilatex. (And turn off dvi, postscript, and pdf modes.) -jobname=STRING - Set the basename of output files(s) to STRING, instead of the - default, which is the basename of the specified TeX file. (At + Set the basename of output files(s) to STRING, instead of the + default, which is the basename of the specified TeX file. (At present, STRING should not contain spaces.) - This is like the same option for current implementations of the + This is like the same option for current implementations of the *latex, and the passing of this option to these programs is part of latexmk's implementation of -jobname. There is one enhancement, that the STRING may contain the place- holder '%A'. This will be substituted by the basename of the TeX - file. The primary purpose is when multiple files are specified - on the command line to latexmk, and you wish to use a jobname - with a different file-dependent value for each file. For exam- + file. The primary purpose is when multiple files are specified + on the command line to latexmk, and you wish to use a jobname + with a different file-dependent value for each file. For exam- ple, suppose you had .tex files test1.tex and test2.tex, and you wished to compare the results of compilation by *latex and those with xelatex. Then under a unix-type operating system you could @@ -756,13 +756,13 @@ LATEXMK(1) General Commands Manual LATEXMK(1) latexmk -pdf -jobname=%A-pdflatex *.tex latexmk -pdfxe -jobname=%A-xelatex *.tex - Then the .aux, .log, and .pdf files from the use of pdflatex - would have basenames test1-pdflatex and test2-pdflatex, while + Then the .aux, .log, and .pdf files from the use of pdflatex + would have basenames test1-pdflatex and test2-pdflatex, while from xelatex, the basenames would be test1-xelatex and test2-xe- latex. Under MS-Windows with cmd.exe, you would need to double the per- - cent sign, so that the percent character is passed to latexmk + cent sign, so that the percent character is passed to latexmk rather than being used to substitute an environment variable: latexmk -pdf -jobname=%%A-pdflatex *.tex @@ -770,24 +770,24 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -l Run in landscape mode, using the landscape mode for the preview- - ers and the dvi to postscript converters. This option is not - normally needed nowadays, since current previewers normally de- + ers and the dvi to postscript converters. This option is not + normally needed nowadays, since current previewers normally de- termine this information automatically. -l- Turn off -l. - -latex This sets the generation of dvi files by latex, and turns off + -latex This sets the generation of dvi files by latex, and turns off the generation of pdf and ps files. - Note: to set the command used when latex is specified, see the + Note: to set the command used when latex is specified, see the -latex="COMMAND" option. - 10 January 2024 12 + 31 January 2024 12 @@ -798,20 +798,20 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -latex="COMMAND" This sets the string specifying the command to run latex, and is - typically used to add desired options. Since the string nor- + typically used to add desired options. Since the string nor- mally contains spaces, it should be quoted, e.g., latexmk -latex="latex --shell-escape %O %S" foo.tex - The specification of the contents of the string are the same as - for the $latex configuration variable. Depending on your oper- - ating system and the command-line shell you are using, you may - need to change the single quotes to double quotes (or something + The specification of the contents of the string are the same as + for the $latex configuration variable. Depending on your oper- + ating system and the command-line shell you are using, you may + need to change the single quotes to double quotes (or something else). - Note: This option when provided with the COMMAND argument only + Note: This option when provided with the COMMAND argument only sets the command for invoking latex; it does not turn on the use - of latex. That is done by other options or in an initialization + of latex. That is done by other options or in an initialization file. To set the command for running pdflatex (rather than the command @@ -819,31 +819,31 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -logfilewarninglist - -logfilewarnings After a run of *latex, give a list of warnings - about undefined citations and references (unless silent mode is + -logfilewarnings After a run of *latex, give a list of warnings + about undefined citations and references (unless silent mode is on). See also the $silence_logfile_warnings configuration variable. -logfilewarninglist- - -logfilewarnings- After a run of *latex, do not give a list of + -logfilewarnings- After a run of *latex, do not give a list of warnings about undefined citations and references. (Default) See also the $silence_logfile_warnings configuration variable. -lualatex - Use lualatex. That is, use lualatex to process the source - file(s) to pdf. The generation of dvi and postscript files is + Use lualatex. That is, use lualatex to process the source + file(s) to pdf. The generation of dvi and postscript files is turned off. This option is equivalent to using the following set of options -pdflua -dvi- -ps- - (Note: Note that the method of implementation of this option, - but not its intended effect, differ from some earlier versions + (Note: Note that the method of implementation of this option, + but not its intended effect, differ from some earlier versions of latexmk.) @@ -853,7 +853,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 13 + 31 January 2024 13 @@ -864,29 +864,29 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $lualatex. - Note: This option when provided with the COMMAND argument only - sets the command for invoking lualatex; it does not turn on the + Note: This option when provided with the COMMAND argument only + sets the command for invoking lualatex; it does not turn on the use of lualatex. That is done by other options or in an initial- ization file. - -M Show list of dependent files after processing. This is equiva- + -M Show list of dependent files after processing. This is equiva- lent to the -deps option. -MF file - If a list of dependents is made, the -MF specifies the file to + If a list of dependents is made, the -MF specifies the file to write it to. -MP If a list of dependents is made, include a phony target for each - source file. If you use the dependents list in a Makefile, the + source file. If you use the dependents list in a Makefile, the dummy rules work around errors the program make gives if you re- move header files without updating the Makefile to match. -makeindexfudge - Turn on the change-directory fudge for makeindex. See documen- + Turn on the change-directory fudge for makeindex. See documen- tation of $makeindex_fudge for details. @@ -902,24 +902,24 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -MSWinBackSlash This option only has an effect when latexmk is running under MS- Windows. This is that when latexmk runs a command under MS-Win- - dows, the Windows standard directory separator "\" is used to - separate directory components in a file name. Internally, la- - texmk uses "/" for the directory separator character, which is + dows, the Windows standard directory separator "\" is used to + separate directory components in a file name. Internally, la- + texmk uses "/" for the directory separator character, which is the character used by Unix-like systems. This is the default behavior. However the default may have been - overridden by a configuration file (latexmkrc file) which sets + overridden by a configuration file (latexmkrc file) which sets $MSWin_back_slash=0. -MSWinBackSlash- This option only has an effect when latexmk is running under MS- Windows. This is that when latexmk runs a command under MS-Win- - dows, the substitution of "\" for the separator character + dows, the substitution of "\" for the separator character - 10 January 2024 14 + 31 January 2024 14 @@ -938,18 +938,18 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -new-viewer - When in continuous-preview mode, always start a new viewer to - view the generated file. By default, latexmk will, in continu- - ous-preview mode, test for a previously running previewer for + When in continuous-preview mode, always start a new viewer to + view the generated file. By default, latexmk will, in continu- + ous-preview mode, test for a previously running previewer for the same file and not start a new one if a previous previewer is running. However, its test sometimes fails (notably if there is - an already-running previewer that is viewing a file of the same - name as the current file, but in a different directory). This + an already-running previewer that is viewing a file of the same + name as the current file, but in a different directory). This option turns off the default behavior. -new-viewer- - The inverse of the -new-viewer option. It puts latexmk in its + The inverse of the -new-viewer option. It puts latexmk in its normal behavior that in preview-continuous mode it checks for an already-running previewer. @@ -959,7 +959,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -nobibtexfudge or -nobibfudge - Turn off the change-directory fudge for bibtex. See documenta- + Turn off the change-directory fudge for bibtex. See documenta- tion of $bibtex_fudge for details. @@ -974,9 +974,9 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -norc Turn off the automatic reading of initialization (rc) files. - N.B. Normally the initialization files are read and obeyed, and - then command line options are obeyed in the order they are en- - countered. But -norc is an exception to this rule: it is acted + N.B. Normally the initialization files are read and obeyed, and + then command line options are obeyed in the order they are en- + countered. But -norc is an exception to this rule: it is acted on first, no matter where it occurs on the command line. @@ -985,7 +985,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 15 + 31 January 2024 15 @@ -997,48 +997,48 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Sets the directory for the output files of *latex. If the aux directory is not set or is the same as the output di- - rectory, then all output files of *latex are sent to the output + rectory, then all output files of *latex are sent to the output directory. If the aux directory is set, e.g., by the option -auxdir, and is - not equal to the output directory, then only final output files - (.dvi, .ps, .pdf, .synctex, .synctex.gz) are sent to the output + not equal to the output directory, then only final output files + (.dvi, .ps, .pdf, .synctex, .synctex.gz) are sent to the output directory. Other generated files are sent to the aux directory. - See the section AUXILIARY AND OUTPUT DIRECTORIES for more de- + See the section AUXILIARY AND OUTPUT DIRECTORIES for more de- tails. -output-format=FORMAT - This option is one that is allowed for latex, lualatex, and - pdflatex. But it is not passed to these programs. Instead la- - texmk emulates it in a way suitable for the context of latexmk + This option is one that is allowed for latex, lualatex, and + pdflatex. But it is not passed to these programs. Instead la- + texmk emulates it in a way suitable for the context of latexmk and its workflows. - If FORMAT is dvi, then dvi output is turned on, and postscript - and pdf output are turned off. This is equivalent to using the + If FORMAT is dvi, then dvi output is turned on, and postscript + and pdf output are turned off. This is equivalent to using the options -dvi -ps- -pdf-. - If FORMAT is pdf, then pdf output is turned on, and dvi and - postscript output are turned off. This is equivalent to using + If FORMAT is pdf, then pdf output is turned on, and dvi and + postscript output are turned off. This is equivalent to using the options -pdf -ps- -dvi-. If FORMAT is anything else, latexmk gives an error. - -p Print out the document. By default the file to be printed is - the first in the list postscript, pdf, dvi that is being made. + -p Print out the document. By default the file to be printed is + the first in the list postscript, pdf, dvi that is being made. But you can use the -print=... option to change the type of file to be printed, and you can configure this in a start up file (by setting the $print_type variable). - However, printing is enabled by default only under UNIX/Linux + However, printing is enabled by default only under UNIX/Linux systems, where the default is to use the lpr command and only on postscript files. In general, the correct behavior for printing very much depends on your system's software. In particular, un- - der MS-Windows you must have suitable program(s) available, and - you must have configured the print commands used by latexmk. - This can be non-trivial. See the documentation on the $lpr, + der MS-Windows you must have suitable program(s) available, and + you must have configured the print commands used by latexmk. + This can be non-trivial. See the documentation on the $lpr, $lpr_dvi, and $lpr_pdf configuration variables to see how to set the commands for printing. @@ -1046,12 +1046,12 @@ LATEXMK(1) General Commands Manual LATEXMK(1) turns them off. - -pdf Generate pdf version of document using pdflatex. (If you wish + -pdf Generate pdf version of document using pdflatex. (If you wish to use lualatex or xelatex, you can use whichever of the options - 10 January 2024 16 + 31 January 2024 16 @@ -1060,17 +1060,17 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - -pdflua, -pdfxe, -lualatex or -xelatex applies.) To configure - latexmk to have such behavior by default, see the section on + -pdflua, -pdfxe, -lualatex or -xelatex applies.) To configure + latexmk to have such behavior by default, see the section on "Configuration/initialization (rc) files". -pdfdvi - Generate dvi file and then pdf version of document from the dvi + Generate dvi file and then pdf version of document from the dvi file, by default using dvipdf. - The program used to compile the document to dvi is latex by de- - fault, but this can be changed to dvilulatex by the use of the + The program used to compile the document to dvi is latex by de- + fault, but this can be changed to dvilulatex by the use of the -dvilua option or by setting $dvi_mode to 2. @@ -1081,43 +1081,43 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -pdfps Generate dvi file, ps file from the dvi file, and then pdf file from the ps file. - The program used to compile the document to dvi is latex by de- - fault, but this can be changed to dvilulatex by the use of the + The program used to compile the document to dvi is latex by de- + fault, but this can be changed to dvilulatex by the use of the -dvilua option or by setting $dvi_mode to 2. - -pdfxe Generate pdf version of document using xelatex. Note that to - optimize processing time, latexmk uses xelatex to generate an - .xdv file rather than a pdf file directly. Only after possibly - multiple runs to generate a fully up-to-date .xdv file does la- + -pdfxe Generate pdf version of document using xelatex. Note that to + optimize processing time, latexmk uses xelatex to generate an + .xdv file rather than a pdf file directly. Only after possibly + multiple runs to generate a fully up-to-date .xdv file does la- texmk then call xdvipdfmx to generate the final .pdf file. - (Note: The reason why latexmk arranges for xelatex to make an - .xdv file instead of the xelatex's default of a .pdf file is as - follows: When the document includes large graphics files, espe- - cially .png files, the production of a .pdf file can be quite + (Note: The reason why latexmk arranges for xelatex to make an + .xdv file instead of the xelatex's default of a .pdf file is as + follows: When the document includes large graphics files, espe- + cially .png files, the production of a .pdf file can be quite time consuming, even when the creation of the .xdv file by xela- - tex is fast. So the use of the intermediate .xdv file can re- + tex is fast. So the use of the intermediate .xdv file can re- sult in substantial gains in procesing time, since the .pdf file is produced once rather than on every run of xelatex.) - -pdf- Turn off generation of pdf version of document. (This can be - used to override a setting in a configuration file. It may get + -pdf- Turn off generation of pdf version of document. (This can be + used to override a setting in a configuration file. It may get overridden if some other option requires the generation of a pdf file.) - If after all options have been processed, pdf generation is - still turned off, then generation of a dvi file will be turned + If after all options have been processed, pdf generation is + still turned off, then generation of a dvi file will be turned on, and then the program used to compiled a document will be la- - tex (or, more precisely, whatever program is configured to be + tex (or, more precisely, whatever program is configured to be used in the $latex configuration variable). - 10 January 2024 17 + 31 January 2024 17 @@ -1130,7 +1130,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) This sets the generation of pdf files by pdflatex, and turns off the generation of dvi and ps files. - Note: to set the command used when pdflatex is specified, see + Note: to set the command used when pdflatex is specified, see the -pdflatex="COMMAND" option. @@ -1142,19 +1142,19 @@ LATEXMK(1) General Commands Manual LATEXMK(1) latexmk -pdf -pdflatex="pdflatex --shell-escape %O %S" foo.tex - The specification of the contents of the string are the same as + The specification of the contents of the string are the same as for the $pdflatex configuration variable. (The option -pdflatex in fact sets the variable $pdflatex.) Depending on your operat- - ing system and the command-line shell you are using, you may - need to change the single quotes to double quotes (or something + ing system and the command-line shell you are using, you may + need to change the single quotes to double quotes (or something else). - Note: This option when provided with the COMMAND argument only - sets the command for invoking pdflatex; it does not turn on the + Note: This option when provided with the COMMAND argument only + sets the command for invoking pdflatex; it does not turn on the use of pdflatex. That is done by other options or in an initial- ization file. - To set the command for running latex (rather than the command + To set the command for running latex (rather than the command for pdflatex) see the -latex option. @@ -1169,10 +1169,10 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -pretex=CODE Given that CODE is some TeX code, this options sets that code to - be executed before inputting source file. This only works if + be executed before inputting source file. This only works if the command for invoking the relevant *latex is suitably config- - ured. See the documentation of the variable $pre_tex_code, and - the substitution strings %P and %U for more details. This op- + ured. See the documentation of the variable $pre_tex_code, and + the substitution strings %P and %U for more details. This op- tion works by setting the variable $pre_tex_code. See also the -usepretex option. @@ -1183,7 +1183,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 18 + 31 January 2024 18 @@ -1204,12 +1204,12 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -print=dvi, -print=ps, -print=pdf, -print=auto, - Define which kind of file is printed. This option also ensures + Define which kind of file is printed. This option also ensures that the requisite file is made, and turns on printing. The (default) case -print=auto determines the kind of print file - automatically from the set of files that is being made. The - first in the list postscript, pdf, dvi that is among the files + automatically from the set of files that is being made. The + first in the list postscript, pdf, dvi that is among the files to be made is the one used for print out. @@ -1217,13 +1217,13 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -ps- Turn off generation of postscript version of document. This can - be used to override a setting in a configuration file. (It may - get overridden by some other option that requires a postscript + be used to override a setting in a configuration file. (It may + get overridden by some other option that requires a postscript file, for example a request for printing.) - -pF Postscript file filtering. The argument to this option is a - filter which will generate a filtered postscript file with the + -pF Postscript file filtering. The argument to this option is a + filter which will generate a filtered postscript file with the extension ".psF". All extra processing (e.g. preview, printing) will then be performed on this filtered postscript file. @@ -1236,20 +1236,20 @@ LATEXMK(1) General Commands Manual LATEXMK(1) latexmk -ps -pF "psnup -2" foo.tex Whether to use single or double quotes round the "psnup -2" will - depend on your command interpreter, as used by the particular + depend on your command interpreter, as used by the particular version of perl and the operating system on your computer. - -pv Run file previewer. If the -view option is used, that will se- + -pv Run file previewer. If the -view option is used, that will se- lect the kind of file to be previewed (.pdf, .ps or .dvi). Oth- - erwise the viewer views the "highest" kind of output file that - is made, with the ordering being .pdf, .ps, .dvi (high to low). - This option is incompatible with the -p and -pvc options, so it + erwise the viewer views the "highest" kind of output file that + is made, with the ordering being .pdf, .ps, .dvi (high to low). + This option is incompatible with the -p and -pvc options, so it turns them off. - 10 January 2024 19 + 31 January 2024 19 @@ -1261,43 +1261,43 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -pv- Turn off -pv. - -pvc Run a file previewer and continually update the .dvi, .ps, + -pvc Run a file previewer and continually update the .dvi, .ps, and/or .pdf files whenever changes are made to source files (see - the Description above). Which of these files is generated and - which is viewed is governed by the other options, and is the - same as for the -pv option. The preview-continuous option -pvc - can only work with one file. So in this case you will normally - only specify one filename on the command line. It is also in- - compatible with the -p and -pv options, so it turns these op- + the Description above). Which of these files is generated and + which is viewed is governed by the other options, and is the + same as for the -pv option. The preview-continuous option -pvc + can only work with one file. So in this case you will normally + only specify one filename on the command line. It is also in- + compatible with the -p and -pv options, so it turns these op- tions off. - The -pvc option also turns off force mode (-f), as is normally - best for continuous preview mode. If you really want force + The -pvc option also turns off force mode (-f), as is normally + best for continuous preview mode. If you really want force mode, use the options in the order -pvc -f. With a good previewer the display will be automatically updated. - (Under some but not all versions of UNIX/Linux "gv -watch" does - this for postscript files; this can be set by a configuration - variable. This would also work for pdf files except for an ap- + (Under some but not all versions of UNIX/Linux "gv -watch" does + this for postscript files; this can be set by a configuration + variable. This would also work for pdf files except for an ap- parent bug in gv that causes an error when the newly updated pdf file is read.) Many other previewers will need a manual update. Important note: the acroread program on MS-Windows locks the pdf - file, and prevents new versions being written, so it is a bad - idea to use acroread to view pdf files in preview-continuous - mode. It is better to use a different viewer: SumatraPDF and + file, and prevents new versions being written, so it is a bad + idea to use acroread to view pdf files in preview-continuous + mode. It is better to use a different viewer: SumatraPDF and gsview are good possibilities. - There are some other methods for arranging an update, notably - useful for many versions of xdvi and xpdf. These are best set + There are some other methods for arranging an update, notably + useful for many versions of xdvi and xpdf. These are best set in latexmk's configuration; see below. - Note that if latexmk dies or is stopped by the user, the + Note that if latexmk dies or is stopped by the user, the "forked" previewer will continue to run. Successive invocations - with the -pvc option will not fork new previewers, but latexmk - will normally use the existing previewer. (At least this will - happen when latexmk is running under an operating system where - it knows how to determine whether an existing previewer is run- + with the -pvc option will not fork new previewers, but latexmk + will normally use the existing previewer. (At least this will + happen when latexmk is running under an operating system where + it knows how to determine whether an existing previewer is run- ning.) @@ -1305,9 +1305,9 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -pvctimeout - Do timeout in pvc mode after period of inactivity, which is 30 + Do timeout in pvc mode after period of inactivity, which is 30 min. by default. Inactivity means a period when latexmk has de- - tected no file changes and hence has not taken any actions like + tected no file changes and hence has not taken any actions like compiling the document. @@ -1315,7 +1315,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 20 + 31 January 2024 20 @@ -1336,31 +1336,31 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -r - Read the specified initialization file ("RC file") before pro- + Read the specified initialization file ("RC file") before pro- cessing. Be careful about the ordering: (1) Standard initialization files - -- see the section below on "Configuration/initialization (RC) - files" -- are read first. (2) Then the options on the command - line are acted on in the order they are given. Therefore if an - initialization file is specified by the -r option, it is read - during this second step. Thus an initialization file specified + -- see the section below on "Configuration/initialization (RC) + files" -- are read first. (2) Then the options on the command + line are acted on in the order they are given. Therefore if an + initialization file is specified by the -r option, it is read + during this second step. Thus an initialization file specified with the -r option can override both the standard initialization files and previously specified options. But all of these can be overridden by later options. The contents of the RC file just comprise a piece of code in the - Perl programming language (typically a sequence of assignment + Perl programming language (typically a sequence of assignment statements); they are executed when the -r option is encountered during latexmk's parsing of its command line. See the -e option - for a way of giving initialization code directly on latexmk's - command line. An error results in latexmk stopping. Multiple + for a way of giving initialization code directly on latexmk's + command line. An error results in latexmk stopping. Multiple instances of the -r and -e options can be used, and they are ex- ecuted in the order they appear on the command line. -rc-report - After initialization, give a list of the RC files read. (De- + After initialization, give a list of the RC files read. (De- fault) @@ -1369,10 +1369,10 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -recorder - Give the -recorder option with *latex. In (most) modern ver- - sions of these programs, this results in a file of extension - .fls containing a list of the files that these programs have - read and written. Latexmk will then use this file to improve + Give the -recorder option with *latex. In (most) modern ver- + sions of these programs, this results in a file of extension + .fls containing a list of the files that these programs have + read and written. Latexmk will then use this file to improve its detection of source files and generated files after a run of *latex. This is the default setting of latexmk, unless overrid- den in an initialization file. @@ -1381,7 +1381,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 21 + 31 January 2024 21 @@ -1401,53 +1401,53 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -rules- - Do not show a list of latexmk's rules and dependencies after + Do not show a list of latexmk's rules and dependencies after processing. (This is the default.) -showextraoptions - Show the list of extra *latex options that latexmk recognizes, - but that it simply passes through to the programs *latex when - they are run. These options are (currently) a combination of - those allowed by the TeXLive and MiKTeX implementations. (If a - particular option is given to latexmk but is not handled by the - particular implementation of *latex that is being used, that - program will probably give a warning or an error.) These op- - tions are very numerous, but are not listed in this documenta- + Show the list of extra *latex options that latexmk recognizes, + but that it simply passes through to the programs *latex when + they are run. These options are (currently) a combination of + those allowed by the TeXLive and MiKTeX implementations. (If a + particular option is given to latexmk but is not handled by the + particular implementation of *latex that is being used, that + program will probably give a warning or an error.) These op- + tions are very numerous, but are not listed in this documenta- tion because they have no effect on latexmk's actions. - There are a few options (e.g., -includedirectory=dir, -initial- - ize, -ini) that are not recognized, either because they don't - fit with latexmk's intended operations, or because they need - special processing by latexmk that isn't implemented (at least, + There are a few options (e.g., -includedirectory=dir, -initial- + ize, -ini) that are not recognized, either because they don't + fit with latexmk's intended operations, or because they need + special processing by latexmk that isn't implemented (at least, not yet). - There are certain options for *latex (e.g., -recorder) that + There are certain options for *latex (e.g., -recorder) that trigger special actions or behavior by latexmk itself. Depending - on the action, they may also be passed in some form to the + on the action, they may also be passed in some form to the called *latex program, and/or may affect other programs as well. - These options do have entries in this documentation. Among + These options do have entries in this documentation. Among these options are: -jobname=STRING, -aux-directory=dir, -output- directory=DIR, -quiet, and -recorder. - There are also options that are accepted by *latex, but instead + There are also options that are accepted by *latex, but instead trigger actions purely by latexmk: -help, -version. -silent Run commands silently, i.e., with options that reduce the amount - of diagnostics generated. For example, with the default set- - tings, the command "latex -interaction=batchmode" is used for + of diagnostics generated. For example, with the default set- + tings, the command "latex -interaction=batchmode" is used for latex, and similarly for its friends. - See also the -logfilewarninglist and -logfilewarninglist- op- + See also the -logfilewarninglist and -logfilewarninglist- op- tions. - Also reduce the number of informational messages that latexmk + Also reduce the number of informational messages that latexmk - 10 January 2024 22 + 31 January 2024 22 @@ -1458,62 +1458,62 @@ LATEXMK(1) General Commands Manual LATEXMK(1) itself generates. - To change the options used to make the commands run silently, + To change the options used to make the commands run silently, you need to configure latexmk with changed values of its config- - uration variables, the relevant ones being $bib- - tex_silent_switch, $biber_silent_switch, $dvipdf_silent_switch, + uration variables, the relevant ones being $bib- + tex_silent_switch, $biber_silent_switch, $dvipdf_silent_switch, $dvips_silent_switch, $dvilualatex_silent_switch, $la- - tex_silent_switch, $lualatex_silent_switch $makein- - dex_silent_switch, $pdflatex_silent_switch, and $xela- + tex_silent_switch, $lualatex_silent_switch $makein- + dex_silent_switch, $pdflatex_silent_switch, and $xela- tex_silent_switch -stdtexcmds - Sets the commands for latex, etc, so that they are the standard + Sets the commands for latex, etc, so that they are the standard ones. This is useful to override special configurations. - The result is that $latex = 'latex %O %S', and similarly for - $pdflatex, $lualatex, and $xelatex. (The option -no-pdf needed + The result is that $latex = 'latex %O %S', and similarly for + $pdflatex, $lualatex, and $xelatex. (The option -no-pdf needed for $xelatex is provided automatically, given that %O appears in the definition.) -time Show time used. (On MS Windows, what is shown is clock time; on - other systems CPU time.) See also the configuration variable + other systems CPU time.) See also the configuration variable $show_time. - -time- Do not show time used. See also the configuration variable + -time- Do not show time used. See also the configuration variable $show_time. -use-make - When after a run of *latex, there are warnings about missing - files (e.g., as requested by the LaTeX \input, \include, and - \includgraphics commands), latexmk tries to make them by a cus- - tom dependency. If no relevant custom dependency with an appro- + When after a run of *latex, there are warnings about missing + files (e.g., as requested by the LaTeX \input, \include, and + \includgraphics commands), latexmk tries to make them by a cus- + tom dependency. If no relevant custom dependency with an appro- priate source file is found, and if the -use-make option is set, - then as a last resort latexmk will try to use the make program + then as a last resort latexmk will try to use the make program to try to make the missing files. - Note that the filename may be specified without an extension, - e.g., by \includegraphics{drawing} in a LaTeX file. In that - case, latexmk will try making drawing.ext with ext set in turn - to the possible extensions that are relevant for latex (or as + Note that the filename may be specified without an extension, + e.g., by \includegraphics{drawing} in a LaTeX file. In that + case, latexmk will try making drawing.ext with ext set in turn + to the possible extensions that are relevant for latex (or as appropriate pdflatex, lualatex, xelatex). - See also the documentation for the $use_make_for_missing_files + See also the documentation for the $use_make_for_missing_files configuration variable. -use-make- - Do not use the make program to try to make missing files. (De- + Do not use the make program to try to make missing files. (De- fault.) - 10 January 2024 23 + 31 January 2024 23 @@ -1524,13 +1524,13 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -usepretex Sets the command lines for latex, etc, so that they use the code - that is defined by the variable $pre_tex_code or that is set by + that is defined by the variable $pre_tex_code or that is set by the option -pretex=CODE to execute the specified TeX code before the source file is read. This option overrides any previous de- finition of the command lines. - The result is that $latex = 'latex %O %P', and similarly for - $pdflatex, $lualatex, and $xelatex. (The option -no-pdf needed + The result is that $latex = 'latex %O %P', and similarly for + $pdflatex, $lualatex, and $xelatex. (The option -no-pdf needed for $xelatex is provided automatically, given that %O appears in the definition.) @@ -1552,25 +1552,25 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -view=default, -view=dvi, -view=ps, -view=pdf, -view=none Set the kind of file used when previewing is requested (e.g., by the -pv or -pvc switches). The default is to view the "highest" - kind of requested file (in the low-to-high order .dvi, .ps, + kind of requested file (in the low-to-high order .dvi, .ps, .pdf). - Note the possibility -view=none where no viewer is opened at - all. One example of is use is in conjunction with the -pvc op- - tion, when you want latexmk to do a compilation automatically - whenever source file(s) change, but do not want a previewer to + Note the possibility -view=none where no viewer is opened at + all. One example of is use is in conjunction with the -pvc op- + tion, when you want latexmk to do a compilation automatically + whenever source file(s) change, but do not want a previewer to be opened. -Werror - This causes latexmk to return a non-zero status code if any of - the files processed gives a warning about problems with cita- - tions or references (i.e., undefined citations or references or - about multiply defined references). This is after latexmk has - completed all the runs it needs to try and resolve references - and citations. Thus -Werror causes latexmk to treat such warn- + This causes latexmk to return a non-zero status code if any of + the files processed gives a warning about problems with cita- + tions or references (i.e., undefined citations or references or + about multiply defined references). This is after latexmk has + completed all the runs it needs to try and resolve references + and citations. Thus -Werror causes latexmk to treat such warn- ings as errors, but only when they occur on the last run of *la- - tex and only after processing is complete. Also can be set by + tex and only after processing is complete. Also can be set by the configuration variable $warnings_as_errors. @@ -1579,7 +1579,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 24 + 31 January 2024 24 @@ -1590,51 +1590,51 @@ LATEXMK(1) General Commands Manual LATEXMK(1) -xelatex Use xelatex. That is, use xelatex to process the source file(s) - to pdf. The generation of dvi and postscript files is turned + to pdf. The generation of dvi and postscript files is turned off. This option is equivalent to using the following set of options -pdfxe -dvi- -ps- - [Note: Note that the method of implementation of this option, - but not its intended primary effect, differ from some earlier - versions of latexmk. Latexmk first uses xelatex to make an .xdv - file, and does all the extra runs needed (including those of - bibtex, etc). Only after that does it make the pdf file from - the .xdv file, using xdvipdfmx. See the documentation for the + [Note: Note that the method of implementation of this option, + but not its intended primary effect, differ from some earlier + versions of latexmk. Latexmk first uses xelatex to make an .xdv + file, and does all the extra runs needed (including those of + bibtex, etc). Only after that does it make the pdf file from + the .xdv file, using xdvipdfmx. See the documentation for the -pdfxe for why this is done.] -xelatex="COMMAND" - This sets the string specifying the command to run xelatex. It + This sets the string specifying the command to run xelatex. It sets the variable $xelatex. Warning: It is important to ensure that the -no-pdf is used when - xelatex is invoked, since latexmk expects xelatex to produce an - .xdv file, not a .pdf file. If you provide %O in the command - specification, this will be done automatically. See the docu- - mentation for the -pdfxe option for why latexmk makes a .xdv + xelatex is invoked, since latexmk expects xelatex to produce an + .xdv file, not a .pdf file. If you provide %O in the command + specification, this will be done automatically. See the docu- + mentation for the -pdfxe option for why latexmk makes a .xdv file rather than a .pdf file when xelatex is used. An example of the use of the -pdfxelatex option: - latexmk -pdfxe -pdfxelatex="xelatex --shell-escape %O %S" + latexmk -pdfxe -pdfxelatex="xelatex --shell-escape %O %S" foo.tex - Note: This option when provided with the COMMAND argument only - sets the command for invoking lualatex; it does not turn on the + Note: This option when provided with the COMMAND argument only + sets the command for invoking lualatex; it does not turn on the use of lualatex. That is done by other options or in an initial- ization file. Compatibility between options - The preview-continuous option -pvc can only work with one file. So in - this case you will normally only specify one filename on the command + The preview-continuous option -pvc can only work with one file. So in + this case you will normally only specify one filename on the command line. - Options -p, -pv and -pvc are mutually exclusive. So each of these op- + Options -p, -pv and -pvc are mutually exclusive. So each of these op- tions turns the others off. @@ -1645,7 +1645,7 @@ EXAMPLES - 10 January 2024 25 + 31 January 2024 25 @@ -1674,44 +1674,44 @@ LATEXMK(1) General Commands Manual LATEXMK(1) DEALING WITH ERRORS, PROBLEMS, ETC Some possibilities: - a. If you get a strange error, do look carefully at the output that is - on the screen and in log files. While there is much that is notori- + a. If you get a strange error, do look carefully at the output that is + on the screen and in log files. While there is much that is notori- ously verbose in the output of latex (and that is added to by latexmk), - the verbosity is there for a reason: to enable the user to diagnose - problems. Latexmk does repeat some messages at the end of a run that - it thinks would otherwise be easy to miss in the middle of other out- + the verbosity is there for a reason: to enable the user to diagnose + problems. Latexmk does repeat some messages at the end of a run that + it thinks would otherwise be easy to miss in the middle of other out- put. b. Generally, remember that latexmk does its work by running other pro- grams. Your first priority in dealing with errors should be to examine what went wrong with the individual programs. Then you need to correct - the causes of errors in the runs of these programs. (Often these come - from errors in the source document, but they could also be about miss- + the causes of errors in the runs of these programs. (Often these come + from errors in the source document, but they could also be about miss- ing LaTeX packages, etc.) c. If latexmk doesn't run the programs the way you would like, then you - need to look in this documentation at the list of command line options - and then at the sections on configuration/initialization files. A lot - of latexmk's behavior is configurable to deal with particular situa- + need to look in this documentation at the list of command line options + and then at the sections on configuration/initialization files. A lot + of latexmk's behavior is configurable to deal with particular situa- tions. (But there is a lot of reading!) - The remainder of these notes consists of ideas for dealing with more + The remainder of these notes consists of ideas for dealing with more difficult situations. - d. Further tricks can involve replacing the standard commands that la- + d. Further tricks can involve replacing the standard commands that la- texmk runs by other commands or scripts. - e. For possible examples of code for use in an RC file, see the direc- - tory example_rcfiles in the distribution of latexmk (e.g., at + e. For possible examples of code for use in an RC file, see the direc- + tory example_rcfiles in the distribution of latexmk (e.g., at http://mirror.ctan.org/support/latexmk/example_rcfiles). Even if these examples don't do what you want, they may provide suitable inspiration. - f. There's a useful trick that can be used when you use lualatex in- - stead of pdflatex (and in some related situations). The problem is + f. There's a useful trick that can be used when you use lualatex in- + stead of pdflatex (and in some related situations). The problem is - 10 January 2024 26 + 31 January 2024 26 @@ -1720,64 +1720,64 @@ DEALING WITH ERRORS, PROBLEMS, ETC LATEXMK(1) General Commands Manual LATEXMK(1) - that latexmk won't notice a dependency on a file, bar.baz say, that is - input by the lua code in your document instead of by the LaTeX part. - (Thus if you change bar.baz and rerun latexmk, then latexmk will think - no files have changed and not rerun lualatex, whereas if you had '\in- - put{bar.baz}' in the LaTeX part of the document, latexmk would notice - the change.) One solution is just to put the following somewhere in + that latexmk won't notice a dependency on a file, bar.baz say, that is + input by the lua code in your document instead of by the LaTeX part. + (Thus if you change bar.baz and rerun latexmk, then latexmk will think + no files have changed and not rerun lualatex, whereas if you had '\in- + put{bar.baz}' in the LaTeX part of the document, latexmk would notice + the change.) One solution is just to put the following somewhere in the LaTeX part of the document: \typeout{(bar.baz)} - This puts a line in the log file that latexmk will treat as implying - that the file bar.baz was read. (At present I don't know a way of do- - ing this automatically.) Of course, if the file has a different name, + This puts a line in the log file that latexmk will treat as implying + that the file bar.baz was read. (At present I don't know a way of do- + ing this automatically.) Of course, if the file has a different name, change bar.baz to the name of your file. g. See also the section "Advanced Configuration: Some extra resources". - h. Look on tex.stackexchange, i.e., at http://tex.stackex- - change.com/questions/tagged/latexmk Someone may have already solved + h. Look on tex.stackexchange, i.e., at http://tex.stackex- + change.com/questions/tagged/latexmk Someone may have already solved your problem. i. Ask a question at tex.stackexchange.com. - j. Or ask me (the author of latexmk). My e-mail is at the end of this + j. Or ask me (the author of latexmk). My e-mail is at the end of this documentation. AUXILIARY AND OUTPUT DIRECTORIES - Running *latex and the associated programs generate a number of files, - it is often convenient to arrange for the generated files to be in a - different directory than the source file(s) of a document. For our + Running *latex and the associated programs generate a number of files, + it is often convenient to arrange for the generated files to be in a + different directory than the source file(s) of a document. For our purposes here, we identify two classes of generated file. One class is what one may term the final output files, for example, the - .pdf file generated by running pdflatex, or the .dvi file from latex. + .pdf file generated by running pdflatex, or the .dvi file from latex. Also in this class is the ps file generated by applying dvips to a .dvi - file. There are also .synctec or .synctex.gz files that can be used by - programs that display .pdf files and the like to relate positions in + file. There are also .synctec or .synctex.gz files that can be used by + programs that display .pdf files and the like to relate positions in them to positions in source files. - The second class of file is composed of all other generated files: - These include notably .aux files that are used for implementing cross + The second class of file is composed of all other generated files: + These include notably .aux files that are used for implementing cross referencing, and are both generated on one run and read on a later run. - Many packages generate yet more such intermediate files, as well as - programs like bibtex, makeindex, etc. There are also .log files from + Many packages generate yet more such intermediate files, as well as + programs like bibtex, makeindex, etc. There are also .log files from *latex and corresponding files from other programs. - Let us use the term "output directory" for the directory that receives - the final output files, and "aux directory" for the directory for the - other generated files. If no special options are provided to the *la- - tex programs, these directories default to the current directory, and + Let us use the term "output directory" for the directory that receives + the final output files, and "aux directory" for the directory for the + other generated files. If no special options are provided to the *la- + tex programs, these directories default to the current directory, and then the generated files aren't segregated. If the two directories are - the same, as is the simplest situation, then all generated files are + the same, as is the simplest situation, then all generated files are - 10 January 2024 27 + 31 January 2024 27 @@ -1786,64 +1786,64 @@ AUXILIARY AND OUTPUT DIRECTORIES LATEXMK(1) General Commands Manual LATEXMK(1) - written to the same directory, and one often simply refers to the out- + written to the same directory, and one often simply refers to the out- put directory, without mentioning a separate aux directory. - Support for them is provided for them in the *latex programs: by the + Support for them is provided for them in the *latex programs: by the single option -output-directory for the TeXLive implementations, and by - the options -aux-directory and -output-directory for the MiKTeX imple- + the options -aux-directory and -output-directory for the MiKTeX imple- mentations. Special support like this is needed for two reasons: First - is that there are many packages that write files and it needs to be + is that there are many packages that write files and it needs to be arranged that these are automatically written to the appropriate direc- - tory without any rewriting of the packages' code. Second is that the - files are often read in again on subsequent runs of *latex, and it is + tory without any rewriting of the packages' code. Second is that the + files are often read in again on subsequent runs of *latex, and it is necessary that the program knows where to find the files. - A complication is that the TeXLive implementation does not allow for - separate aux and output directories. Latexmk deals with this by being - able to emulating a separate aux directory: In this method it invokes - *latex with just an -output-directory option, with the directory set - not to the desired output directory, but to the aux directory. After - running *latex, it moves the relevant final output file(s) to the in- - tended output directory. Emulation can be turned on by setting the - configuration variable $emulate_aux to one in a configuration file or + A complication is that the TeXLive implementation does not allow for + separate aux and output directories. Latexmk deals with this by being + able to emulating a separate aux directory: In this method it invokes + *latex with just an -output-directory option, with the directory set + not to the desired output directory, but to the aux directory. After + running *latex, it moves the relevant final output file(s) to the in- + tended output directory. Emulation can be turned on by setting the + configuration variable $emulate_aux to one in a configuration file or by using latexmk's -emulate-aux-dir option. The emulation method works equally well if MiKTeX is used. - Latexmk also turns emulation on if it is found to be needed, as fol- - lows. Suppose emulation is initially off, but the aux and output di- - rectories are different. Then latexmk invokes *latex with an -aux-di- - rectory option and after the run finds that it hasn't been obeyed, no- - tably because the .log file is in the output directory rather than the - aux directory. Latexmk then sets emulation on, and retries. Conceiv- + Latexmk also turns emulation on if it is found to be needed, as fol- + lows. Suppose emulation is initially off, but the aux and output di- + rectories are different. Then latexmk invokes *latex with an -aux-di- + rectory option and after the run finds that it hasn't been obeyed, no- + tably because the .log file is in the output directory rather than the + aux directory. Latexmk then sets emulation on, and retries. Conceiv- ably, it could move all the appropriate generated files from the output - directory to the aux directory; but there is such a large variety of + directory to the aux directory; but there is such a large variety of possibilities for these files that this is hard to identify all of them reliably except for simple cases. - Note that the emulation issue only arises when the user has arranged - for the the aux and output directories to be different. When instead - they are equal, e.g., because the user only set the $out_dir variable, - then latexmk invokes *latex with only an -output-directory option, + Note that the emulation issue only arises when the user has arranged + for the the aux and output directories to be different. When instead + they are equal, e.g., because the user only set the $out_dir variable, + then latexmk invokes *latex with only an -output-directory option, which works as intended with both TeXLive and MiKTeX. In addition, latexmk arranges the invocations of any auxiliary programs like bibtex and makeindex so that they will read and write the relevant - files from and to the aux directory. Programs like dvips, dvipdf, - ps2pdf, and xdvipdfmx are invoked so that they read from the appropri- + files from and to the aux directory. Programs like dvips, dvipdf, + ps2pdf, and xdvipdfmx are invoked so that they read from the appropri- ate places and write their output to the output directory. - Files considered as final output files, i.e., those that belong in the - output directory rather than the aux directory: These have the exten- + Files considered as final output files, i.e., those that belong in the + output directory rather than the aux directory: These have the exten- sions .dvi, .ps., .pdf, .synctex, and .synctex.gz. A special case, be- cause of compatibility issues, is of .fls files: See below. - Note that xelatex when invoked with its -no-pdf option, as latexmk - does, generates an .xdv file, which would appear to have the same + Note that xelatex when invoked with its -no-pdf option, as latexmk + does, generates an .xdv file, which would appear to have the same - 10 January 2024 28 + 31 January 2024 28 @@ -1853,36 +1853,36 @@ LATEXMK(1) General Commands Manual LATEXMK(1) status as a .dvi file generated by latex. Nevertheless, latexmk treats - .xdv as an intermediate file that is found in the aux directory. This - is to match MiKTeX's treatment of the -aux-directory option. As fur- - ther justification, one can say that under modern conditions an .xdv + .xdv as an intermediate file that is found in the aux directory. This + is to match MiKTeX's treatment of the -aux-directory option. As fur- + ther justification, one can say that under modern conditions an .xdv file is (almost) always an intermediate file. Historically, the situa- - tion with .dvi files from latex was different, and currently dvi pre- + tion with .dvi files from latex was different, and currently dvi pre- viewers do exist. - Variables and options for directories: The variables for setting the - aux and output directories are $aux_dir and $out_dir, with correspond- - ing command line options -auxdir (or -aux-directory) and -outdir (or - -output-directory). When a value for these is blank (which is the de- - fault value), it implies the use of a default: For the aux directory, + Variables and options for directories: The variables for setting the + aux and output directories are $aux_dir and $out_dir, with correspond- + ing command line options -auxdir (or -aux-directory) and -outdir (or + -output-directory). When a value for these is blank (which is the de- + fault value), it implies the use of a default: For the aux directory, the default is to set it equal to the output directory. For the output directory, the default is to be the current directory. For the turning on and off of the emulation mode, there is the configu- - ration variable $emulate_aux and the options -emulate-aux-dir, -emu- + ration variable $emulate_aux and the options -emulate-aux-dir, -emu- late-aux-dir-, -noemulate-aux-dir. Interaction with -cd option: When the -cd option is used (or the equiv- alent setting of $do_cd variable), then latexmk changes the working di- - rectory to the document directory before invoking *latex. If the aux - and/or output directories are given by relative paths, e.g., by -out- - dir=output for a directory named "output", then the directories are + rectory to the document directory before invoking *latex. If the aux + and/or output directories are given by relative paths, e.g., by -out- + dir=output for a directory named "output", then the directories are relative to the document directory, rather than relative to the working directory that was in effect when latexmk was invoked. This matches the - behavior of *latex as invoked with the provided command line directory - argument(s) after the change of working directory to the document di- + behavior of *latex as invoked with the provided command line directory + argument(s) after the change of working directory to the document di- rectory. Automatic creation of aux and output directories: Unlike *latex, if la- @@ -1891,25 +1891,25 @@ LATEXMK(1) General Commands Manual LATEXMK(1) If the document uses the \include macro to read a .tex file from a sub- directory, *latex will attempt to write an extra aux file to the corre- - sponding subdirectory of the aux directory. If the subdirectory - doesn't exist, then *latex will complain that it can't write the aux + sponding subdirectory of the aux directory. If the subdirectory + doesn't exist, then *latex will complain that it can't write the aux file. After the run of *latex, latexmk detects this situation, creates - the necessary directory, and reruns *latex with the error situation + the necessary directory, and reruns *latex with the error situation corrected. Choice of aux and output directories: Often the aux and output directo- - ries are given as subdirectories of the document directory, e.g., by + ries are given as subdirectories of the document directory, e.g., by -outdir=output. But it is possible to provide, for example, an absolute - path or a path relative to a parent directory, e.g., "/tmp/foo" or + path or a path relative to a parent directory, e.g., "/tmp/foo" or "../output". Be aware that in general this can cause problems, notably - with makeindex or bibtex. This is because modern versions of these - programs, by default, will refuse to work when they find that they are + with makeindex or bibtex. This is because modern versions of these + programs, by default, will refuse to work when they find that they are asked to write to a file in a directory that appears not to be the cur- - rent working directory or one of its subdirectories. This is part of + rent working directory or one of its subdirectories. This is part of - 10 January 2024 29 + 31 January 2024 29 @@ -1921,61 +1921,61 @@ LATEXMK(1) General Commands Manual LATEXMK(1) security measures by the whole TeX system that try to prevent malicious or errant TeX documents from incorrectly messing with a user's files. - By default, latexmk evades this issue: Before running bibtex and + By default, latexmk evades this issue: Before running bibtex and makeindex, latexmk changes working directory to the aux directory, with appropriate settings of search paths. The use or non-use of this trick - is governed by the variables $bibtex_fudge and $makeindex_fudge. Un- - fortunately, the trick sometimes makes bibtex and makeindex unable to + is governed by the variables $bibtex_fudge and $makeindex_fudge. Un- + fortunately, the trick sometimes makes bibtex and makeindex unable to find files. If necessary the trick can be turned off. But this is incompatible with - an aux directory like, "/tmp/foo" of "../output"). If you really have + an aux directory like, "/tmp/foo" of "../output"). If you really have to deal with this situation, and only if you have to deal with it, then - you need to disable the security measures (and assume any risks). One + you need to disable the security measures (and assume any risks). One way of doing this is to temporarily set an operating system environment - variable openout_any to "a" (as in "all"), to override the default + variable openout_any to "a" (as in "all"), to override the default "paranoid" setting. - Certain names of aux and output directories not allowed on Microsoft + Certain names of aux and output directories not allowed on Microsoft Windows: It is natural to want to use the name "aux" for the aux direc- - tory, e.g., by using the option -auxdir=aux. But on Microsoft operat- + tory, e.g., by using the option -auxdir=aux. But on Microsoft operat- ing systems "aux" is one of the names that is not allowed for a file or - directory. I find it useful to standardize on a name like "auxdir" - (e.g., by -auxdir=auxdir); this works independently of operating sys- + directory. I find it useful to standardize on a name like "auxdir" + (e.g., by -auxdir=auxdir); this works independently of operating sys- tem. - Location of .fls file: Much of the dependency information that latexmk + Location of .fls file: Much of the dependency information that latexmk uses comes from the .fls file generated when *latex is invoked with the - -recorder option, which latexmk does by default. It may seem rational - that this is written to the aux directory. But in fact versions of + -recorder option, which latexmk does by default. It may seem rational + that this is written to the aux directory. But in fact versions of MiKTeX prior to Oct. 2020 wrote it to the output directory. Later ver- - sions do write it to the aux directory. To deal with this, latexmk - does two things: First, if latexmk finds that the .fls file has only - been generated in the "wrong" directory, then latexmk copies it to the + sions do write it to the aux directory. To deal with this, latexmk + does two things: First, if latexmk finds that the .fls file has only + been generated in the "wrong" directory, then latexmk copies it to the expected directory, after which latexmk's operation continues correctly - independently of the behavior of *latex. Second it allows its idea of - the "correct" (or expected) directory to be configured by the variable - $fls_uses_aux_dir. This defaults to zero, to correspond to MiKTeX's + independently of the behavior of *latex. Second it allows its idea of + the "correct" (or expected) directory to be configured by the variable + $fls_uses_aux_dir. This defaults to zero, to correspond to MiKTeX's current behavior. ALLOWING FOR CHANGE OF OUTPUT FILE TYPE When one of the latex engines is run, the usual situation is that latex - produces a .dvi file, while pdflatex and lualatex produce a .pdf file. + produces a .dvi file, while pdflatex and lualatex produce a .pdf file. For xelatex the default is to produce a .pdf file, but to optimize pro- - cessing time latexmk runs xelatex its -no-pdf option so that it pro- - duces an .xdv file. Further processing by latexmk takes this as a + cessing time latexmk runs xelatex its -no-pdf option so that it pro- + duces an .xdv file. Further processing by latexmk takes this as a starting point. However, the actual output file may differ from the normal expectation; - and then latexmk can adjust its processing to accommodate this situa- - tion. The difference in output file type can happen for two reasons: - One is that for latex, pdflatex and lualatex the document itself can + and then latexmk can adjust its processing to accommodate this situa- + tion. The difference in output file type can happen for two reasons: + One is that for latex, pdflatex and lualatex the document itself can - 10 January 2024 30 + 31 January 2024 30 @@ -1984,64 +1984,64 @@ ALLOWING FOR CHANGE OF OUTPUT FILE TYPE LATEXMK(1) General Commands Manual LATEXMK(1) - override the defaults. The other is that there may be a configuration, + override the defaults. The other is that there may be a configuration, or misconfiguration, such that the program that latexmk invokes to com- - pile the document is not the expected one, or is given options incom- + pile the document is not the expected one, or is given options incom- patible with what latexmk initially expects. - Under latex and pdflatex, control of the output format by the document - is done by setting the \pdfoutput macro. Under lualatex, the \output- + Under latex and pdflatex, control of the output format by the document + is done by setting the \pdfoutput macro. Under lualatex, the \output- mode macro is used instead. One example of an important use-case for document control of the output - format is a document that uses the psfrag package to insert graphical + format is a document that uses the psfrag package to insert graphical elements in the output file. The psfrag package achieves its effects by inserting postscript code in the output of the compilation of the docu- - ment. This entails the use of compilation to a .dvi file, followed by - the use of conversion to a postscript file (either directly, as by - dvips or implicitly, as an intermediate step by dvipdf). Then it is - useful to force output to be of the .dvi format by inserting \pdfout- + ment. This entails the use of compilation to a .dvi file, followed by + the use of conversion to a postscript file (either directly, as by + dvips or implicitly, as an intermediate step by dvipdf). Then it is + useful to force output to be of the .dvi format by inserting \pdfout- put=0 in the preamble of the document. - Another example is where the document uses graphics file of the .pdf, - .jpg, and png types. With the default setting for the graphicx pack- - age, these can be processed in compilation to .pdf but not with compi- - lation to .dvi. In this case, it is useful to insert \pdfoutput=1 in - the preamble of the document to force compilation to .pdf output for- + Another example is where the document uses graphics file of the .pdf, + .jpg, and png types. With the default setting for the graphicx pack- + age, these can be processed in compilation to .pdf but not with compi- + lation to .dvi. In this case, it is useful to insert \pdfoutput=1 in + the preamble of the document to force compilation to .pdf output for- mat. In all of these cases, it is needed that latexmk has to adjust its pro- - cessing to deal with a mismatch between the actual output format (out - of .pdf, .dvi, .xdv) and the initially expected output, if possible. + cessing to deal with a mismatch between the actual output format (out + of .pdf, .dvi, .xdv) and the initially expected output, if possible. Latexmk does this provided the following conditions are met. The first is that latexmk's $allow_switch configuration variable is set - to a non-zero value as it is by default. If this variable is zero, a + to a non-zero value as it is by default. If this variable is zero, a mismatch of filetypes in the compilation results in an error. - The second condition for latexmk to be able to handle a change of out- - put type is that no explicit requests for .dvi or .ps output files are - made. Explicit requests are by the -dvi and -ps, -print=dvi, - -print=ps, -view=dvi, and -view=ps options, and by corresponding set- - tings of the $dvi_mode, $postscript_mode, $print_type, and $view con- - figuration variables. The print-type and view-type restrictions only + The second condition for latexmk to be able to handle a change of out- + put type is that no explicit requests for .dvi or .ps output files are + made. Explicit requests are by the -dvi and -ps, -print=dvi, + -print=ps, -view=dvi, and -view=ps options, and by corresponding set- + tings of the $dvi_mode, $postscript_mode, $print_type, and $view con- + figuration variables. The print-type and view-type restrictions only apply when printing and viewing are explicitly requested, respectively. - For this purpose, the use of the -pdfdvi and -pdfps options (and the - corresponding setting of the $pdf_mode variable) does not count as an - explicit request for the .dvi and .ps files; they are merely regarded - as a request for making a .pdf file together with an initial proposal + For this purpose, the use of the -pdfdvi and -pdfps options (and the + corresponding setting of the $pdf_mode variable) does not count as an + explicit request for the .dvi and .ps files; they are merely regarded + as a request for making a .pdf file together with an initial proposal for the processing route to make it. Note that when accommodating a change in output file type, there is in- - volved a substantial change in the network of rules that latexmk uses - in its actions. The second condition applied to accommodate a change + volved a substantial change in the network of rules that latexmk uses + in its actions. The second condition applied to accommodate a change is to avoid situations where the change in the rule network is too rad- ical to be readily handled automatically. - 10 January 2024 31 + 31 January 2024 31 @@ -2051,11 +2051,11 @@ LATEXMK(1) General Commands Manual LATEXMK(1) CONFIGURATION/INITIALIZATION (RC) FILES - In this section is explained which configuration files are read by la- - texmk. Subsequent sections "How to Set Variables in Initialization - Files", "Format of Command Specifications", "List of Configuration - Variables Usable in Initialization Files", "Custom Dependencies", and - "Advanced Configuration" give details on what can be configured and + In this section is explained which configuration files are read by la- + texmk. Subsequent sections "How to Set Variables in Initialization + Files", "Format of Command Specifications", "List of Configuration + Variables Usable in Initialization Files", "Custom Dependencies", and + "Advanced Configuration" give details on what can be configured and how. Latexmk can be customized using initialization files, which are read at @@ -2063,7 +2063,7 @@ CONFIGURATION/INITIALIZATION (RC) FILES 1) The system RC file, if it exists. On a UNIX system, latexmk searches the following directories for a - system RC file, which may be named either "LatexMk" or "latexmkrc". + system RC file, which may be named either "LatexMk" or "latexmkrc". The directories are searched in the following order, and latexmk uses the first such file it finds (if any): @@ -2072,7 +2072,7 @@ CONFIGURATION/INITIALIZATION (RC) FILES "/usr/local/share/latexmk", "/usr/local/lib/latexmk". On a MS-Windows system it looks just in "C:\latexmk". - On a cygwin system (i.e., a MS-Windows system in which Perl is that + On a cygwin system (i.e., a MS-Windows system in which Perl is that of cygwin), latexmk looks in the directories "/cygdrive/c/latexmk", "/etc", @@ -2080,34 +2080,34 @@ CONFIGURATION/INITIALIZATION (RC) FILES "/usr/local/share/latexmk", "/usr/local/lib/latexmk". - If the environment variable LATEXMKRCSYS is set, its value is used as + If the environment variable LATEXMKRCSYS is set, its value is used as the name of the system RC file, instead of any of the above. 2) The user's RC file, if it exists. This can be in one of two places. - The traditional one is ".latexmkrc" in the user's home directory. The - other possibility is "latexmk/latexmkrc" in the user's XDG configura- - tion home directory. The actual file read is the first of "$XDG_CON- - FIG_HOME/latexmk/latexmkrc" or "$HOME/.latexmkrc" which exists. (See + The traditional one is ".latexmkrc" in the user's home directory. The + other possibility is "latexmk/latexmkrc" in the user's XDG configura- + tion home directory. The actual file read is the first of "$XDG_CON- + FIG_HOME/latexmk/latexmkrc" or "$HOME/.latexmkrc" which exists. (See https://specifications.freedesktop.org/basedir-spec/basedir-spec-lat- est.html for details on the XDG Base Directory Specification.) - Here $HOME is the user's home directory. [Latexmk determines the - user's home directory as follows: It is the value of the environment - variable HOME, if this variable exists, which normally is the case on - UNIX-like systems (including Linux and OS-X). Otherwise the environ- - ment variable USERPROFILE is used, if it exists, which normally is the + Here $HOME is the user's home directory. [Latexmk determines the + user's home directory as follows: It is the value of the environment + variable HOME, if this variable exists, which normally is the case on + UNIX-like systems (including Linux and OS-X). Otherwise the environ- + ment variable USERPROFILE is used, if it exists, which normally is the case on MS-Windows systems. Otherwise a blank string is used instead of $HOME, in which case latexmk does not look for an RC file in it.] - $XDG_CONFIG_HOME is the value of the environment variable XDG_CON- - FIG_HOME if it exists. If this environment variable does not exist, - but $HOME is non-blank, then $XDG_CONFIG_HOME is set to the default - value of $HOME/.config. Otherwise $XDG_CONFIG_HOME is blank, and la- + $XDG_CONFIG_HOME is the value of the environment variable XDG_CON- + FIG_HOME if it exists. If this environment variable does not exist, + but $HOME is non-blank, then $XDG_CONFIG_HOME is set to the default + value of $HOME/.config. Otherwise $XDG_CONFIG_HOME is blank, and la- texmk does not look for an RC file under it. - 10 January 2024 32 + 31 January 2024 32 @@ -2116,35 +2116,35 @@ CONFIGURATION/INITIALIZATION (RC) FILES LATEXMK(1) General Commands Manual LATEXMK(1) - 3) The RC file in the current working directory. This file can be - named either "latexmkrc" or ".latexmkrc", and the first of these to be + 3) The RC file in the current working directory. This file can be + named either "latexmkrc" or ".latexmkrc", and the first of these to be found is used, if any. 4) Any RC file(s) specified on the command line with the -r option. Each RC file is a sequence of Perl commands. Naturally, a user can use - this in creative ways. But for most purposes, one simply uses a se- + this in creative ways. But for most purposes, one simply uses a se- quence of assignment statements that override some of the built-in set- - tings of Latexmk. Straightforward cases can be handled without knowl- - edge of the Perl language by using the examples in this document as + tings of Latexmk. Straightforward cases can be handled without knowl- + edge of the Perl language by using the examples in this document as templates. Comment lines are introduced by the "#" character. - Note that command line options are obeyed in the order in which they + Note that command line options are obeyed in the order in which they are written; thus any RC file specified on the command line with the -r - option can override previous options but can be itself overridden by - later options on the command line. There is also the -e option, which + option can override previous options but can be itself overridden by + later options on the command line. There is also the -e option, which allows initialization code to be specified in latexmk's command line. For possible examples of code for in an RC file, see the directory ex- - ample_rcfiles in the distribution of latexmk (e.g., at http://mir- + ample_rcfiles in the distribution of latexmk (e.g., at http://mir- ror.ctan.org/support/latexmk/example_rcfiles). HOW TO SET VARIABLES IN INITIALIZATION FILES - The important variables that can be configured are described in the - section "List of configuration variables usable in initialization - files". (See the earlier section "Configuration/Initialization (rc) - Files" for the files where the configurations are done.) Syntax for + The important variables that can be configured are described in the + section "List of configuration variables usable in initialization + files". (See the earlier section "Configuration/Initialization (rc) + Files" for the files where the configurations are done.) Syntax for setting these variables is of the following forms: $bibtex = 'bibtex %O %S'; @@ -2157,23 +2157,23 @@ HOW TO SET VARIABLES IN INITIALIZATION FILES @default_files = ('paper', 'paper1'); - for the setting of an array of strings. It is possible to append an + for the setting of an array of strings. It is possible to append an item to an array variable as follows: push @default_files, 'paper2'; - Note that simple "scalar" variables have names that begin with a $ + Note that simple "scalar" variables have names that begin with a $ character and array variables have names that begin with a @ character. Each statement ends with a semicolon. - Strings should be enclosed in single quotes. (You could use double - quotes, as in many programming languages. But then the Perl program- - ming language brings into play some special rules for interpolating - variables into strings. People not fluent in Perl will want to avoid + Strings should be enclosed in single quotes. (You could use double + quotes, as in many programming languages. But then the Perl program- + ming language brings into play some special rules for interpolating + variables into strings. People not fluent in Perl will want to avoid - 10 January 2024 33 + 31 January 2024 33 @@ -2184,33 +2184,33 @@ LATEXMK(1) General Commands Manual LATEXMK(1) these complications.) - You can do much more complicated things, but for this you will need to + You can do much more complicated things, but for this you will need to consult a manual for the Perl programming language. FORMAT OF COMMAND SPECIFICATIONS - Some of the variables set the commands that latexmk uses for carrying - out its work, for example to generate a .dvi file from a .tex file or - to view a postscript file. This section describes some important fea- + Some of the variables set the commands that latexmk uses for carrying + out its work, for example to generate a .dvi file from a .tex file or + to view a postscript file. This section describes some important fea- tures of how the commands are specified. (Note that some of the possi- - bilities listed here do not apply to the $kpsewhich variable; see its + bilities listed here do not apply to the $kpsewhich variable; see its documentation.) Placeholders: Supposed you wanted latexmk to use the command elatex in - place of the regular latex command, and suppose moreover that you - wanted to give it the option "--shell-escape". You could do this by + place of the regular latex command, and suppose moreover that you + wanted to give it the option "--shell-escape". You could do this by the following setting: $latex = 'elatex --shell-escape %O %S'; - The two items starting with the % character are placeholders. These - are substituted by appropriate values before the command is run. Thus - %S will be replaced by the source file that elatex will be applied to, - and %O will be replaced by any options that latexmk has decided to use + The two items starting with the % character are placeholders. These + are substituted by appropriate values before the command is run. Thus + %S will be replaced by the source file that elatex will be applied to, + and %O will be replaced by any options that latexmk has decided to use for this command. (E.g., if you used the -silent option in the invoca- - tion of latexmk, it results in the replacement of %O by "-interac- + tion of latexmk, it results in the replacement of %O by "-interac- tion=batchmode".) The available placeholders are: @@ -2219,27 +2219,27 @@ FORMAT OF COMMAND SPECIFICATIONS the setting of a jobname by the -jobname option or the $jobname configuration value. - %B base of filename for current command. E.g., if a postscript - file document.ps is being made from the dvi file document.dvi, + %B base of filename for current command. E.g., if a postscript + file document.ps is being made from the dvi file document.dvi, then the basename is document. - %D destination file (e.g., the name of the postscript file when + %D destination file (e.g., the name of the postscript file when converting a dvi file to postscript). %O options - %P If the variable $pre_tex_code is non-empty, then %P is substi- - tuted by the contents of $pre_tex_code followed by \in- - put{SOURCE}, where SOURCE stands for the name of the source + %P If the variable $pre_tex_code is non-empty, then %P is substi- + tuted by the contents of $pre_tex_code followed by \in- + put{SOURCE}, where SOURCE stands for the name of the source file. Appropriate quoting is done. This enables TeX code to be - passed to one of the *latex engines to be executed before the + passed to one of the *latex engines to be executed before the source file is read. - If the variable $pre_tex_code is the empty string, then %P is + If the variable $pre_tex_code is the empty string, then %P is - 10 January 2024 34 + 31 January 2024 34 @@ -2252,60 +2252,60 @@ LATEXMK(1) General Commands Manual LATEXMK(1) %R root filename. This is the base name for the main tex file. - By default this is the basename of the main tex file. However - the value can be changed by the use of the -jobname option or + By default this is the basename of the main tex file. However + the value can be changed by the use of the -jobname option or the $jobname configuration variable. - %S source file (e.g., the name of the dvi file when converting a + %S source file (e.g., the name of the dvi file when converting a .dvi file to ps). %T The name of the primary tex file. - %U If the variable $pre_tex_code is non-empty, then its value is - substituted for %U (appropriately quoted). Otherwise it is re- + %U If the variable $pre_tex_code is non-empty, then its value is + substituted for %U (appropriately quoted). Otherwise it is re- placed by a null string. %Y Name of directory for auxiliary output files (see the configura- tion variable $aux_dir). A directory separation character ('/') is appended if $aux_dir is non-empty and does not end in a suit- able character, with suitable characters being those appropriate - to UNIX and MS-Windows, i.e., ':', '/' and '\'. Note that if - after initialization, $out_dir is set, but $aux_dir is not set - (i.e., it is blank), then latexmk sets $aux_dir to the same + to UNIX and MS-Windows, i.e., ':', '/' and '\'. Note that if + after initialization, $out_dir is set, but $aux_dir is not set + (i.e., it is blank), then latexmk sets $aux_dir to the same value $out_dir. - %Z Name of directory for output files (see the configuration vari- - able $out_dir). A directory separation character ('/') is ap- - pended if $out_dir is non-empty and does not end in a suitable - character, with suitable characters being those appropriate to + %Z Name of directory for output files (see the configuration vari- + able $out_dir). A directory separation character ('/') is ap- + pended if $out_dir is non-empty and does not end in a suitable + character, with suitable characters being those appropriate to UNIX and MS-Windows, i.e., ':', '/' and '\'. - If for some reason you need a literal % character in your string not + If for some reason you need a literal % character in your string not subject to the above rules, use "%%". - Appropriate quoting will be applied to the filename substitutions, so - you mustn't supply them yourself even if the names of your files have + Appropriate quoting will be applied to the filename substitutions, so + you mustn't supply them yourself even if the names of your files have spaces in them. (But if your TeX filenames have spaces in them, beware - that some older versions of the TeX program cannot correctly handle - filenames containing spaces.) In case latexmk's quoting does not work - correctly on your system, you can turn it off -- see the documentation + that some older versions of the TeX program cannot correctly handle + filenames containing spaces.) In case latexmk's quoting does not work + correctly on your system, you can turn it off -- see the documentation for the variable $quote_filenames. - See the default values in the section "List of configuration variables + See the default values in the section "List of configuration variables usable in initialization files" for what is normally the most appropri- ate usage. If you omit to supply any placeholders whatever in the specification of - a command, latexmk will supply what its author thinks are appropriate + a command, latexmk will supply what its author thinks are appropriate defaults. This gives compatibility with configuration files for previ- ous versions of latexmk, which didn't use placeholders. - "Detaching" a command: Normally when latexmk runs a command, it waits + "Detaching" a command: Normally when latexmk runs a command, it waits for the command to run to completion. This is appropriate for commands - 10 January 2024 35 + 31 January 2024 35 @@ -2315,24 +2315,24 @@ LATEXMK(1) General Commands Manual LATEXMK(1) like latex, of course. But for previewers, the command should normally - run detached, so that latexmk gets the previewer running and then re- - turns to its next task (or exits if there is nothing else to do). To - achieve this effect of detaching a command, you need to precede the + run detached, so that latexmk gets the previewer running and then re- + turns to its next task (or exits if there is nothing else to do). To + achieve this effect of detaching a command, you need to precede the command name with "start ", as in $dvi_previewer = 'start xdvi %O %S'; - This will be translated to whatever is appropriate for your operating + This will be translated to whatever is appropriate for your operating system. Notes: (1) In some circumstances, latexmk will always run a command de- - tached. This is the case for a previewer in preview continuous mode, - since otherwise previewing continuously makes no sense. (2) This pre- - cludes the possibility of running a command named start. (3) If the - word start occurs more than once at the beginning of the command - string, that is equivalent to having just one. (4) Under cygwin, some - complications happen, since cygwin amounts to a complicated merging of - UNIX and MS-Windows. See the source code for how I've handled the + tached. This is the case for a previewer in preview continuous mode, + since otherwise previewing continuously makes no sense. (2) This pre- + cludes the possibility of running a command named start. (3) If the + word start occurs more than once at the beginning of the command + string, that is equivalent to having just one. (4) Under cygwin, some + complications happen, since cygwin amounts to a complicated merging of + UNIX and MS-Windows. See the source code for how I've handled the problem. Command names containing spaces: Under MS-Windows it is common that the @@ -2344,26 +2344,26 @@ LATEXMK(1) General Commands Manual LATEXMK(1) %S'; $pdf_previewer = 'start "c:/Program Files/SumatraPDF/Suma- traPDF.exe" %O %S'; - $pdf_previewer = 'start "c:/Program Files/SumatraPDF (x86)/Suma- + $pdf_previewer = 'start "c:/Program Files/SumatraPDF (x86)/Suma- traPDF.exe" %O %S'; - (Note about the above example: Under MS-Windows forward slashes are + (Note about the above example: Under MS-Windows forward slashes are equivalent to backslashes in a filename under almost all circumstances, - provided that the filename is inside double quotes. It is easier to + provided that the filename is inside double quotes. It is easier to use forward slashes in examples like the one above, since then one does - not have to worry about the rules for dealing with forward slashes in + not have to worry about the rules for dealing with forward slashes in strings in the Perl language.) - Command names under Cygwin: If latexmk is executed by Cygwin's Perl, + Command names under Cygwin: If latexmk is executed by Cygwin's Perl, be particularly certain that pathnames in commands have forward slashes - not the usual backslashes for the separator of pathname components. - See the above examples. Backslashes often get misinterpreted by the + not the usual backslashes for the separator of pathname components. + See the above examples. Backslashes often get misinterpreted by the Unix shell used by Cygwin's Perl to execute external commands. Forward slashes don't suffer from this problem, and (when quoted, as above) are equally acceptable to MS-Windows. - Using MS-Windows file associations: A useful trick under modern ver- + Using MS-Windows file associations: A useful trick under modern ver- sions of MS-Windows (e.g., WinXP) is to use just the command 'start' by itself: @@ -2371,7 +2371,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 36 + 31 January 2024 36 @@ -2381,9 +2381,9 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Under MS-Windows, this will cause to be run whatever program the system - has associated with dvi files. (The same applies for a postscript + has associated with dvi files. (The same applies for a postscript viewer and a pdf viewer.) But note that this trick is not always suit- - able for the pdf previwer, if your system has acroread for the default + able for the pdf previwer, if your system has acroread for the default pdf viewer. As explained elsewhere, acroread under MS-Windows does not work well with latex and latexmk, because acroread locks the pdf file. @@ -2392,18 +2392,18 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $lpr = 'NONE lpr'; - This typically is used when an appropriate command does not exist on + This typically is used when an appropriate command does not exist on your system. The string after the "NONE" is effectively a comment. Options to commands: Setting the name of a command can be used not only for changing the name of the command called, but also to add options to - command. Suppose you want latexmk to use latex with source specials - enabled. Then you might use the following line in an initialization + command. Suppose you want latexmk to use latex with source specials + enabled. Then you might use the following line in an initialization file: $latex = 'latex --src-specials %O %S'; - Running a subroutine instead of an external command: Use a specifica- + Running a subroutine instead of an external command: Use a specifica- tion starting with "internal", as in $latex = 'internal mylatex %O %S'; @@ -2413,31 +2413,31 @@ LATEXMK(1) General Commands Manual LATEXMK(1) return system 'latex', @args; } - For some of the more exotic possibilities that then become available, - see the section "Advanced configuration: Some extra resources and ad- - vanced tricks". Also see some of the examples in the directory exam- + For some of the more exotic possibilities that then become available, + see the section "Advanced configuration: Some extra resources and ad- + vanced tricks". Also see some of the examples in the directory exam- ple_rcfiles in the latexmk distribution. - Advanced tricks: Normally one specifies a single command for the com- - mands invoked by latexmk. Naturally, if there is some complicated ad- - ditional processing you need to do in your special situation, you can + Advanced tricks: Normally one specifies a single command for the com- + mands invoked by latexmk. Naturally, if there is some complicated ad- + ditional processing you need to do in your special situation, you can write a script (or batch file) to do the processing, and then configure latexmk to use your script in place of the standard program. - You can also use a Perl subroutine instead of a script -- see above. + You can also use a Perl subroutine instead of a script -- see above. This is generally the most flexible and portable solution. It is also possible to configure latexmk to run multiple commands. For - example, if when running pdflatex to generate a pdf file from a tex + example, if when running pdflatex to generate a pdf file from a tex file you need to run another program after pdflatex to perform some ex- tra processing, you could do something like: - $pdflatex = 'pdflatex --shell-escape %O %S; pst2pdf_for_latexmk + $pdflatex = 'pdflatex --shell-escape %O %S; pst2pdf_for_latexmk %B'; - 10 January 2024 37 + 31 January 2024 37 @@ -2446,8 +2446,8 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - This definition assumes you are using a UNIX-like system (which in- - cludes Linux and OS-X), so that the two commands to be run are sepa- + This definition assumes you are using a UNIX-like system (which in- + cludes Linux and OS-X), so that the two commands to be run are sepa- rated by the semicolon in the middle of the string. If you are using MS-Windows, you would replace the above line by @@ -2455,36 +2455,36 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $pdflatex = 'cmd /c pdflatex --shell-escape %O %S' . '&& pst2pdf_for_latexmk %B'; - Here, the UNIX command separator ; is replaced by &&. In addition, + Here, the UNIX command separator ; is replaced by &&. In addition, there is a problem that some versions of Perl on MS-Windows do not obey - the command separator; this problem is overcome by explicitly invoking + the command separator; this problem is overcome by explicitly invoking the MS-Windows command-line processor cmd.exe. LIST OF CONFIGURATION VARIABLES USABLE IN INITIALIZATION FILES - In this section are specified the variables whose values can be ad- - justed to configure latexmk. (See the earlier section "Configura- - tion/Initialization (rc) Files" for the files where the configurations + In this section are specified the variables whose values can be ad- + justed to configure latexmk. (See the earlier section "Configura- + tion/Initialization (rc) Files" for the files where the configurations are done.) Default values are indicated in brackets. Note that for variables that - are boolean in character, concerning whether latexmk does or does not - behave in a certain way, a non-zero value, normally 1, indicates true, - i.e., the behavior occurs, while a zero value indicates a false value, + are boolean in character, concerning whether latexmk does or does not + behave in a certain way, a non-zero value, normally 1, indicates true, + i.e., the behavior occurs, while a zero value indicates a false value, i.e., the behavior does not occur. $allow_switch [1] - This controls what happens when the output extension of latex, - pdflatex, lualatex or xelatex differs from what is expected. + This controls what happens when the output extension of latex, + pdflatex, lualatex or xelatex differs from what is expected. (The possible extensions are .dvi, .pdf, .xdv.) This can happen - with the use of the \pdfoutput macro in a document compiled un- - der latex or pdflatex, or with the use of the \outputmode macro + with the use of the \pdfoutput macro in a document compiled un- + der latex or pdflatex, or with the use of the \outputmode macro under lualatex. It can also happen with certain kinds of incor- rect configuration. - In such a case, latexmk can appropriately adjust its network of + In such a case, latexmk can appropriately adjust its network of rules. The adjustment is made if $allow_switch is on, and if no request for a dvi or ps file has been made. @@ -2492,18 +2492,18 @@ LIST OF CONFIGURATION VARIABLES USABLE IN INITIALIZATION FILES $always_view_file_via_temporary [0] - Whether .ps and .pdf files are initially to be made in a tempo- - rary directory and then moved to the final location. (This ap- + Whether .ps and .pdf files are initially to be made in a tempo- + rary directory and then moved to the final location. (This ap- plies to dvips, dvipdf, and ps2pdf operations, and the filtering operators on .dvi and .ps files. It does not apply to pdflatex, - unfortunately, since pdflatex provides no way of specifying a + unfortunately, since pdflatex provides no way of specifying a chosen name for the output file.) This use of a temporary file solves a problem that the making of - 10 January 2024 38 + 31 January 2024 38 @@ -2518,58 +2518,58 @@ LATEXMK(1) General Commands Manual LATEXMK(1) which can cause havoc. See the $pvc_view_file_via_temporary variable for a setting that - applies only if preview-continuous mode (-pvc option) is used. + applies only if preview-continuous mode (-pvc option) is used. See $tmpdir for the setting of the directory where the temporary file is created. $analyze_input_log_always [1] - After a run of latex (etc), always analyze .log for input files - in the <...> and (...) constructions. Otherwise, only do the + After a run of latex (etc), always analyze .log for input files + in the <...> and (...) constructions. Otherwise, only do the analysis when fls file doesn't exist or is out of date. - Under normal circumstances, the data in the fls file is reli- + Under normal circumstances, the data in the fls file is reli- able, and the test of the log file gets lots of false positives; - usually $analyze_input_log_always is best set to zero. But the - test of the log file is needed at least in the following situa- - tion: When a user needs to persuade latexmk that a certain file - is a source file, and latexmk doesn't otherwise find it. Then - the user can write code that causes a line with (...) to be - written to log file. One important case is for lualatex, which - doesn't always generate lines in the .fls file for input lua - files. (The situation with lualatex is HIGHLY version depen- - dent, e.g., there was a big change between TeXLive 2016 and + usually $analyze_input_log_always is best set to zero. But the + test of the log file is needed at least in the following situa- + tion: When a user needs to persuade latexmk that a certain file + is a source file, and latexmk doesn't otherwise find it. Then + the user can write code that causes a line with (...) to be + written to log file. One important case is for lualatex, which + doesn't always generate lines in the .fls file for input lua + files. (The situation with lualatex is HIGHLY version depen- + dent, e.g., there was a big change between TeXLive 2016 and TeXLive 2017.) - To keep backward compatibility with older versions of latexmk, + To keep backward compatibility with older versions of latexmk, the default is to set $analyze_input_log_always to 1. $auto_rc_use [1] - Whether to automatically read the standard initialization (rc) + Whether to automatically read the standard initialization (rc) files, which are the system RC file, the user's RC file, and the RC file in the current directory. The command line option -norc - can be used to turn this setting off. Each RC file co2uld also - turn this setting off, i.e., it could set $auto_rc_use to zero + can be used to turn this setting off. Each RC file co2uld also + turn this setting off, i.e., it could set $auto_rc_use to zero to prevent automatic reading of the later RC files. - This variable does not affect the reading of RC files specified + This variable does not affect the reading of RC files specified on the command line by the -r option. $aux_dir [""] - The aux directory, i.e., the directory in which auxiliary files + The aux directory, i.e., the directory in which auxiliary files (aux, log, etc) are to be written by a run of *latex. - If this variable is not set, but $out_dir is set, then latexmk - takes the aux directory to equal the output directory which is + If this variable is not set, but $out_dir is set, then latexmk + takes the aux directory to equal the output directory which is the directory to which final output files are to be written. - If neither variable is set, then the current directory when + If neither variable is set, then the current directory when - 10 January 2024 39 + 31 January 2024 39 @@ -2578,64 +2578,64 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - *latex is invoked is used both for the aux and output directo- + *latex is invoked is used both for the aux and output directo- ries. If the aux and output directories are distinct, then the aux di- - rectory contains all generated files with the exception of "fi- - nal output files", which are defined to be .dvi, .ps, .pdf, + rectory contains all generated files with the exception of "fi- + nal output files", which are defined to be .dvi, .ps, .pdf, .synctex, and .synctex.gz files. - See the section AUXILIARY AND OUTPUT DIRECTORIES for more de- + See the section AUXILIARY AND OUTPUT DIRECTORIES for more de- tails. $aux_out_dir_report [0] - If this variable is set to 1, then prior to the processing of + If this variable is set to 1, then prior to the processing of each primary .tex file, list the settings for aux and output di- - rectories, after they have been normalized from the settings + rectories, after they have been normalized from the settings specified during initialization. - This report gives a reminder of where to look for generated + This report gives a reminder of where to look for generated files. - The report is done per primary .tex file, because of possible - directory changes for each file (when the -cd option is used). + The report is done per primary .tex file, because of possible + directory changes for each file (when the -cd option is used). In the simplest cases, the directory names are the same as orig- inally specified. But in general some clean up/normalization is - performed; this helps performance and cleans up output to the + performed; this helps performance and cleans up output to the screen. If this variable is set to 2, then halt after reporting the set- - tings for the aux and out directories, rather than continuing - with processing of tex files. This setting is primarily used - for debugging configuration issues. See the -dir-report-only + tings for the aux and out directories, rather than continuing + with processing of tex files. This setting is primarily used + for debugging configuration issues. See the -dir-report-only option. $bad_warning_is_error [0] - Whether to treat bad warnings reported by *latex in log file as - errors. The specifications of the warning messages are in + Whether to treat bad warnings reported by *latex in log file as + errors. The specifications of the warning messages are in @bad_warnings. @bad_warnings - Array of regular expressions specifying messages in log file - that are officially treated as warnings rather than errors by - *latex, but which a user may treat as errors: See $bad_warn- + Array of regular expressions specifying messages in log file + that are officially treated as warnings rather than errors by + *latex, but which a user may treat as errors: See $bad_warn- ing_is_error. - Currently the default set of these warnings is those about \end - occuring inside constructs. + Currently the default set of these warnings is those about \end + occurring inside constructs. $banner [0] - If nonzero, the banner message is printed across each page when + If nonzero, the banner message is printed across each page when - 10 January 2024 40 + 31 January 2024 40 @@ -2644,8 +2644,8 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - converting the dvi file to postscript. Without modifying the - variable $banner_message, this is equivalent to specifying the + converting the dvi file to postscript. Without modifying the + variable $banner_message, this is equivalent to specifying the -d option. Note that if $banner is nonzero, the $postscript_mode is assumed @@ -2654,7 +2654,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $banner_intensity [0.95] Equivalent to the -bi option, this is a decimal number between 0 - and 1 that specifies how dark to print the banner message. 0 is + and 1 that specifies how dark to print the banner message. 0 is black, 1 is white. The default is just right if your toner car- tridge isn't running too low. @@ -2663,19 +2663,19 @@ LATEXMK(1) General Commands Manual LATEXMK(1) dvi file to postscript. This is equivalent to the -bm option. $banner_scale [220.0] - A decimal number that specifies how large the banner message - will be printed. Experimentation is necessary to get the right - scale for your message, as a rule of thumb the scale should be - about equal to 1100 divided by the number of characters in the - message. The Default is just right for 5 character messages. + A decimal number that specifies how large the banner message + will be printed. Experimentation is necessary to get the right + scale for your message, as a rule of thumb the scale should be + about equal to 1100 divided by the number of characters in the + message. The Default is just right for 5 character messages. This is equivalent to the -bs option. @BIBINPUTS - This is an array variable, now mostly obsolete, that specifies - directories where latexmk should look for .bib files. By de- - fault it is set from the BIBINPUTS environment variable of the - operating system. If that environment variable is not set, a - single element list consisting of the current directory is set. + This is an array variable, now mostly obsolete, that specifies + directories where latexmk should look for .bib files. By de- + fault it is set from the BIBINPUTS environment variable of the + operating system. If that environment variable is not set, a + single element list consisting of the current directory is set. The format of the directory names depends on your operating sys- tem, of course. Examples for setting this variable are: @@ -2685,23 +2685,23 @@ LATEXMK(1) General Commands Manual LATEXMK(1) @BIBINPUTS = ( ".", "//server/bibfiles" ); @BIBINPUTS = ( ".", "/usr/local/texmf/bibtex/bib" ); - Note that under MS Windows, either a forward slash "/" or a - backward slash "\" can be used to separate pathname components, - so the first two and the second two examples are equivalent. - Each backward slash should be doubled to avoid running afoul of - Perl's rules for writing strings. Generally, it is simplest al- + Note that under MS Windows, either a forward slash "/" or a + backward slash "\" can be used to separate pathname components, + so the first two and the second two examples are equivalent. + Each backward slash should be doubled to avoid running afoul of + Perl's rules for writing strings. Generally, it is simplest al- ways to use forward slashes instead of backward slashes. Important note: This variable is now mostly obsolete in the cur- - rent version of latexmk, since it now uses a better method of - searching for files using the kpsewhich command. However, if + rent version of latexmk, since it now uses a better method of + searching for files using the kpsewhich command. However, if your system is an unusual one without the kpsewhich command, you may need to set the variable @BIBINPUTS. - 10 January 2024 41 + 31 January 2024 41 @@ -2715,29 +2715,29 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $biber_silent_switch ["--onlylog"] - Switch(es) for the biber processing program when silent mode is + Switch(es) for the biber processing program when silent mode is on. $bibtex ["bibtex %O %S"] The BibTeX processing program. $bibtex_fudge [1] - When using bibtex, whether to change directory to $aux_dir be- + When using bibtex, whether to change directory to $aux_dir be- fore running bibtex. The need arises as follows: - a. With bibtex before about 2019, if the filename given to it + a. With bibtex before about 2019, if the filename given to it contains a path component, there was a bug that bibtex would not - find extra aux files, as produced by the \include command in + find extra aux files, as produced by the \include command in TeX. - b. With all moderately recent versions of bibtex, bibtex may + b. With all moderately recent versions of bibtex, bibtex may refuse to write its bbl and blg files, for security reasons, for certain cases of the path component of the filename given to it. - However, there are also rare cases where the change-directory - method prevents bibtex from finding certain bib or bst files. + However, there are also rare cases where the change-directory + method prevents bibtex from finding certain bib or bst files. Then $bibtex_fudge needs to be set to 0. @@ -2748,26 +2748,26 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $bibtex_use [1] Under what conditions to run bibtex or biber. When latexmk dis- - covers from the log file that one (or more) bibtex/biber-gener- - ated bibliographies are used, it can run bibtex or biber when- - ever it appears necessary to regenerate the bbl file(s) from - their source bib database file(s). But sometimes, the bib + covers from the log file that one (or more) bibtex/biber-gener- + ated bibliographies are used, it can run bibtex or biber when- + ever it appears necessary to regenerate the bbl file(s) from + their source bib database file(s). But sometimes, the bib file(s) are not available (e.g., for a document obtained from an external archive), but the bbl files are provided. In that case - use of bibtex or biber will result in incorrect overwriting of - the precious bbl files. The variable $bibtex_use controls - whether this happens, and also controls whether or not .bbl + use of bibtex or biber will result in incorrect overwriting of + the precious bbl files. The variable $bibtex_use controls + whether this happens, and also controls whether or not .bbl files are deleted in a cleanup operation. The possible values of $bibtex_use are: - 0: never use bibtex or biber; never delete .bbl files in a + 0: never use bibtex or biber; never delete .bbl files in a cleanup. 1: only use bibtex or biber if the bib file(s) exist; never delete .bbl files in a cleanup. - 10 January 2024 42 + 31 January 2024 42 @@ -2777,63 +2777,63 @@ LATEXMK(1) General Commands Manual LATEXMK(1) 1.5: only use bibtex or biber if the bib files exist; - conditionally delete .bbl files in a cleanup (i.e., delete + conditionally delete .bbl files in a cleanup (i.e., delete them only when the bib files all exist). 2: run bibtex or biber whenever it appears necessary to update - the bbl file(s), without testing for the existence of the bib + the bbl file(s), without testing for the existence of the bib files; always delete .bbl files in a cleanup. - Note: When biber is being used, conditional use of biber can be - problematic. From latexmk's point of view the problem is that + Note: When biber is being used, conditional use of biber can be + problematic. From latexmk's point of view the problem is that because of how biber works, a full knowledge of its source files can only be obtained after running biber. In contrast, for bib- - tex, full information on which bib files are used is obtained + tex, full information on which bib files are used is obtained from the .aux file(s) after a run of *latex. But for biber, the - corresponding information is somewhat incomplete; this the in- - formation obtained in the .bcf file that is generated by the + corresponding information is somewhat incomplete; this the in- + formation obtained in the .bcf file that is generated by the biblatex package during a run of *latex. $cleanup_includes_cusdep_generated [0] - If nonzero, specifies that cleanup also deletes files that are + If nonzero, specifies that cleanup also deletes files that are generated by custom dependencies. (When doing a clean up, e.g., by use of the -C option, custom dependencies are those listed in the .fdb_latexmk file from a previous run.) $cleanup_includes_generated [0] - If nonzero, specifies that cleanup also deletes files that are + If nonzero, specifies that cleanup also deletes files that are detected in the fls file (or failing that, in log file) as being - generated. It will also include files made from these first + generated. It will also include files made from these first generation generated files. - This operation is somewhat dangerous, and can have unintended - consequences, since the files to be deleted are determined from - a file created by *latex, which can contain erroneous informa- + This operation is somewhat dangerous, and can have unintended + consequences, since the files to be deleted are determined from + a file created by *latex, which can contain erroneous informa- tion. Therefore this variable is turned off by default, and then files to be deleted are restricted to those explicitly specified - by patterns configured in the variables clean_ext, + by patterns configured in the variables clean_ext, clean_full_ext, and @generated_exts. Standard cases (e.g., .log - files) appear in latexmk's initial value for the array @gener- + files) appear in latexmk's initial value for the array @gener- ated_exts. $cleanup_mode [0] - If nonzero, specifies cleanup mode: 1 for full cleanup, 2 for - cleanup except for .dvi, .ps and .pdf files, 3 for cleanup ex- - cept for dep and aux files. (There is also extra cleaning as + If nonzero, specifies cleanup mode: 1 for full cleanup, 2 for + cleanup except for .dvi, .ps and .pdf files, 3 for cleanup ex- + cept for dep and aux files. (There is also extra cleaning as specified by the $clean_ext, $clean_full_ext and @generated_exts variables.) - This variable is equivalent to specifying one of the -c or -C - options. But there should be no need to set this variable from + This variable is equivalent to specifying one of the -c or -C + options. But there should be no need to set this variable from an RC file. - 10 January 2024 43 + 31 January 2024 43 @@ -2843,9 +2843,9 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $clean_ext [""] - Extra extensions of files for latexmk to remove when any of the - clean-up options (-c or -C) is selected. The value of this - variable is a string containing the extensions separated by + Extra extensions of files for latexmk to remove when any of the + clean-up options (-c or -C) is selected. The value of this + variable is a string containing the extensions separated by spaces. It is also possible to specify a more general pattern of file to @@ -2856,50 +2856,50 @@ LATEXMK(1) General Commands Manual LATEXMK(1) files-%R/*"; in an initialization file will imply that when a clean-up opera- - tion is specified, not only is the standard set of files - deleted, but also files of the form FOO.out, FOO-blx.bib, FOO- - figures*.log, and pythontex-files-FOO/*, where FOO stands for + tion is specified, not only is the standard set of files + deleted, but also files of the form FOO.out, FOO-blx.bib, FOO- + figures*.log, and pythontex-files-FOO/*, where FOO stands for the basename of the file being processed (as in FOO.tex). - Most of the files to be deleted are relative to the directory - specified by $aux_dir. Note that if $out_dir but not $aux_dir - is set, then in its initialization, latexmk sets $aux_dir equal - to $out_dir. A normal situation is therefore that $aux_dir - equals $out_dir, which is the only case directly supported by - TeXLive, unlike MiKTeX. Note that even with TeXLive latexmk + Most of the files to be deleted are relative to the directory + specified by $aux_dir. Note that if $out_dir but not $aux_dir + is set, then in its initialization, latexmk sets $aux_dir equal + to $out_dir. A normal situation is therefore that $aux_dir + equals $out_dir, which is the only case directly supported by + TeXLive, unlike MiKTeX. Note that even with TeXLive latexmk does now support different values for the directories -- see the explanation of the $emulate_aux variable. If $out_dir and $aux_dir different, latexmk actually deletes any files of the specified names in both $aux_dir and $out_dir; this - is because under certain error conditions, the files may be put - in $out_dir instead of $aux_dir. This also handles the case of + is because under certain error conditions, the files may be put + in $out_dir instead of $aux_dir. This also handles the case of deleting any fls file, since that file is in $out_dir. - The filenames specified for a clean-up operation can refer not - only to regular files but also to directories. Directories are + The filenames specified for a clean-up operation can refer not + only to regular files but also to directories. Directories are only deleted if they are empty. An example of an application is - to pythontex, which creates files in a particular directory. - You can arrange to remove both the files and the directory by + to pythontex, which creates files in a particular directory. + You can arrange to remove both the files and the directory by setting $clean_ext = "pythontex-files-%R/* pythontex-files-%R"; - See also the (array) variable @generated_exts. In the past, - this variable had certain uses beyond that of $clean_ext. But - now, they accomplish the same things. In fact, after initial- - ization including the processing of command line options, la- + See also the (array) variable @generated_exts. In the past, + this variable had certain uses beyond that of $clean_ext. But + now, they accomplish the same things. In fact, after initial- + ization including the processing of command line options, la- texmk simply appends the list of extensions in $clean_ext to the array @generated_exts. $clean_full_ext [""] - Extra extensions of files for latexmk to remove when the -C op- - tion is selected, i.e., extensions of files to remove when the + Extra extensions of files for latexmk to remove when the -C op- + tion is selected, i.e., extensions of files to remove when the .dvi, etc files are to be cleaned-up. - 10 January 2024 44 + 31 January 2024 44 @@ -2910,62 +2910,62 @@ LATEXMK(1) General Commands Manual LATEXMK(1) More general patterns are allowed, as for $clean_ext. - The files specified by $clean_full_ext to be deleted are rela- + The files specified by $clean_full_ext to be deleted are rela- tive to the directory specified by $out_dir. $compiling_cmd [""], $failure_cmd [""], $warning_cmd [""], $success_cmd [""] - These variables specify commands that are executed at certain - points of compilations. One motivation for their existence is - to allow very useful convenient visual indications of compila- - tion status even when the window receiving the screen output of - the compilation is hidden. This is particularly useful in pre- + These variables specify commands that are executed at certain + points of compilations. One motivation for their existence is + to allow very useful convenient visual indications of compila- + tion status even when the window receiving the screen output of + the compilation is hidden. This is particularly useful in pre- view-continuous mode. - The commands are executed at the following points: $compil- - ing_cmd at the start of compilation, $success_cmd at the end of - a completely successful compilation, $failure_cmd at the end of + The commands are executed at the following points: $compil- + ing_cmd at the start of compilation, $success_cmd at the end of + a completely successful compilation, $failure_cmd at the end of an unsuccessful compilation, $warning_cmd at the of an otherwise successful compilation that gives warnings about undefined cita- tions or references or about multiply defined references. If any - of above variables is undefined or blank (the default situa- + of above variables is undefined or blank (the default situa- tion), then the corresponding command is not executed. - However, when $warning_cmd is not set, then in the case of a - compilation with warnings about references or citations, but - with no other error, one or other of $success_cmd or $fail- - ure_cmd is used (if it is set) according to the setting of + However, when $warning_cmd is not set, then in the case of a + compilation with warnings about references or citations, but + with no other error, one or other of $success_cmd or $fail- + ure_cmd is used (if it is set) according to the setting of $warnings_as_errors. An example of a simple setting of these variables is as follows - $compiling_cmd = "xdotool search --name \"%D\" set_window + $compiling_cmd = "xdotool search --name \"%D\" set_window --name \"%D compiling\""; - $success_cmd = "xdotool search --name \"%D\" set_window + $success_cmd = "xdotool search --name \"%D\" set_window --name \"%D OK\""; $warning_cmd = "xdotool search --name \"%D\" ". "set_window --name \"%D CITE/REF ISSUE\""; - $failure_cmd = "xdotool search --name \"%D\" set_window + $failure_cmd = "xdotool search --name \"%D\" set_window --name \"%D FAILURE\""; - These assume that the program xdotool is installed, that the - previewer is using an X-Window system for display, and that the - title of the window contains the name of the displayed file, as - it normally does. When the commands are executed, the place- - holder string %D is replaced by the name of the destination + These assume that the program xdotool is installed, that the + previewer is using an X-Window system for display, and that the + title of the window contains the name of the displayed file, as + it normally does. When the commands are executed, the place- + holder string %D is replaced by the name of the destination file, which is the previewed file. The above commands result in an appropriate string being appended to the filename in the win- dow title: " compiling", " OK", or " FAILURE". - Other placeholders that can be used are %S, %T, and %R, with %S - and %T normally being identical. These can be useful for a com- - mand changing the title of the edit window. The visual + Other placeholders that can be used are %S, %T, and %R, with %S + and %T normally being identical. These can be useful for a com- + mand changing the title of the edit window. The visual - 10 January 2024 45 + 31 January 2024 45 @@ -2975,17 +2975,17 @@ LATEXMK(1) General Commands Manual LATEXMK(1) indication in a window title can useful, since the user does not - have to keep shifting attention to the (possibly hidden) compi- + have to keep shifting attention to the (possibly hidden) compi- lation window to know the status of the compilation. - More complicated situations can best be handled by defining a - Perl subroutine to invoke the necessary commands, and using the - "internal" keyword in the definitions to get the subroutine to + More complicated situations can best be handled by defining a + Perl subroutine to invoke the necessary commands, and using the + "internal" keyword in the definitions to get the subroutine to be invoked. (See the section "Format of Command Specifications" for how to do this.) - Naturally, the above settings that invoke the xdotool program - are only applicable when the X-Window system is used for the + Naturally, the above settings that invoke the xdotool program + are only applicable when the X-Window system is used for the relevant window(s). For other cases, you will have to find what software solutions are available. @@ -2994,15 +2994,15 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Custom dependency list -- see section on "Custom Dependencies". @default_excluded_files [()] - When latexmk is invoked with no files specified on the command + When latexmk is invoked with no files specified on the command line, then, by default, it will process all files in the current directory with the extension .tex. (In general, it will process the files specified in the @default_files variable.) But sometimes you want to exclude particular files from this de- - fault list. In that case you can specify the excluded files in + fault list. In that case you can specify the excluded files in the array @default_excluded_files. For example if you wanted to - process all .tex files with the exception of common.tex, which + process all .tex files with the exception of common.tex, which is a not a standard alone LaTeX file but a file input by some or all of the others, you could do @@ -3012,26 +3012,26 @@ LATEXMK(1) General Commands Manual LATEXMK(1) If you have a variable or large number of files to be processed, this method saves you from having to list them in detail in @de- - fault_files and having to update the list every time you change + fault_files and having to update the list every time you change the set of files to be processed. - Notes: 1. This variable has no effect except when no files are + Notes: 1. This variable has no effect except when no files are specified on the latexmk command line. 2. Wildcards are allowed in @default_excluded_files. @default_files [("*.tex")] Default list of files to be processed. - If no filenames are specified on the command line, latexmk - processes all tex files specified in the @default_files vari- - able, which by default is set to all tex files ("*.tex") in the - current directory. This is a convenience: just run latexmk and - it will process an appropriate set of files. But sometimes you + If no filenames are specified on the command line, latexmk + processes all tex files specified in the @default_files vari- + able, which by default is set to all tex files ("*.tex") in the + current directory. This is a convenience: just run latexmk and + it will process an appropriate set of files. But sometimes you want only some of these files to be processed. In this case you - 10 January 2024 46 + 31 January 2024 46 @@ -3040,10 +3040,10 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - can list the files to be processed by setting @default_files in - an initialization file (e.g., the file "latexmkrc" in the cur- - rent directory). Then if no files are specified on the command - line then the files you specify by setting @default_files are + can list the files to be processed by setting @default_files in + an initialization file (e.g., the file "latexmkrc" in the cur- + rent directory). Then if no files are specified on the command + line then the files you specify by setting @default_files are processed. Three examples: @@ -3054,50 +3054,50 @@ LATEXMK(1) General Commands Manual LATEXMK(1) @default_files = ("*.tex", "*.dtx"); - Note that more than file may be given, and that the default ex- + Note that more than file may be given, and that the default ex- tension is ".tex". Wild cards are allowed. The parentheses are because @default_files is an array variable, i.e., a sequence of filename specifications is possible. - If you want latexmk to process all .tex files with a few excep- + If you want latexmk to process all .tex files with a few excep- tions, see the @default_excluded_files array variable. $dependents_phony [0] - If a list of dependencies is output, this variable determines - whether to include a phony target for each source file. If you - use the dependents list in a Makefile, the dummy rules work - around errors make gives if you remove header files without up- + If a list of dependencies is output, this variable determines + whether to include a phony target for each source file. If you + use the dependents list in a Makefile, the dummy rules work + around errors make gives if you remove header files without up- dating the Makefile to match. $dependents_list [0] - Whether to display a list(s) of dependencies at the end of a + Whether to display a list(s) of dependencies at the end of a run. $deps_escape ["none"] This variable determines which kind of escaping of space charac- ters to use in dependency lists. The possible values are "none", - "unix", "nmake", corresponding respectively to no escaping, es- - caping with a "\" suitable for standard Unix make, and escaping + "unix", "nmake", corresponding respectively to no escaping, es- + caping with a "\" suitable for standard Unix make, and escaping with "^", suitable for Microsoft's nmake. - Currently the only character escaped is a space, since that is - particularly common in file names and directory names. There - are other characters that would need escaping if a dependency + Currently the only character escaped is a space, since that is + particularly common in file names and directory names. There + are other characters that would need escaping if a dependency list is to be used as-is by a make program; but those characters (e.g., "$") commonly cause difficulties when used for .tex docu- - ments. Moreover, the detailed rules for which characters need + ments. Moreover, the detailed rules for which characters need to be escaped depends on the version of make. $deps_file ["-"] - Name of file to receive list(s) of dependencies at the end of a - run, to be used if $dependents_list is set. If the filename is - "-", then the dependency list is set to stdout (i.e., normally + Name of file to receive list(s) of dependencies at the end of a + run, to be used if $dependents_list is set. If the filename is + "-", then the dependency list is set to stdout (i.e., normally - 10 January 2024 47 + 31 January 2024 47 @@ -3110,10 +3110,10 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $do_cd [0] - Whether to change working directory to the directory specified - for the main source file before processing it. The default be- - havior is not to do this, which is the same as the behavior of - *latex programs. This variable is set by the -cd and -cd- op- + Whether to change working directory to the directory specified + for the main source file before processing it. The default be- + havior is not to do this, which is the same as the behavior of + *latex programs. This variable is set by the -cd and -cd- op- tions on latexmk's command line. $dvi_filter [empty] @@ -3122,48 +3122,48 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $dvilualatex ["dvilualatex %O %S"] - Specifies the command line to invoke the dvilualatex program. - Note that as with other programs, you can use this variable not - just to change the name of the program used, but also specify + Specifies the command line to invoke the dvilualatex program. + Note that as with other programs, you can use this variable not + just to change the name of the program used, but also specify options to the program. E.g., - $dvilualatex = "dvilualatex --src-specials + $dvilualatex = "dvilualatex --src-specials %O %S"; - To do a coordinated setting of all of $dvilualatex, $hilatex, + To do a coordinated setting of all of $dvilualatex, $hilatex, $latex, $pdflatex, $lualatex, and $xelatex, see the section "Ad- vanced Configuration". $dvi_mode [See below for default] - If one, generate a dvi version of the document by use of latex. + If one, generate a dvi version of the document by use of latex. Equivalent to the -dvi option. If 2, generate a dvi version of the document by use of dviluala- tex. Equivalent to the -dvilua option. - The variable $dvi_mode defaults to 0, but if no explicit re- - quests are made for other types of file (postscript, pdf), then - $dvi_mode will be set to 1. In addition, if a request for a - file for which a .dvi file is a prerequisite and $dvi_mode is + The variable $dvi_mode defaults to 0, but if no explicit re- + quests are made for other types of file (postscript, pdf), then + $dvi_mode will be set to 1. In addition, if a request for a + file for which a .dvi file is a prerequisite and $dvi_mode is zero, then $dvi_mode is set to 1. $dvilualatex_silent_switch ["-interaction=batchmode"] - Switch(es) for the dvilualatex program (specified in the vari- + Switch(es) for the dvilualatex program (specified in the vari- able $dvilualatex) when silent mode is on. - See details of the $latex_silent_switch for other information + See details of the $latex_silent_switch for other information that equally applies to $dvilualatex_silent_switch. $dvi_previewer ["start xdvi %O %S" under UNIX] - The command to invoke a dvi-previewer. [Under MS-Windows the + The command to invoke a dvi-previewer. [Under MS-Windows the - 10 January 2024 48 + 31 January 2024 48 @@ -3172,64 +3172,64 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - default is "start"; then latexmk arranges to use the MS-Windows - start program, which will cause to be run whatever command the + default is "start"; then latexmk arranges to use the MS-Windows + start program, which will cause to be run whatever command the system has associated with .dvi files.] - Important note: Normally you will want to have a previewer run + Important note: Normally you will want to have a previewer run detached, so that latexmk doesn't wait for the previewer to ter- - minate before continuing its work. So normally you should pre- - fix the command by "start ", which flags to latexmk that it - should do the detaching of the previewer itself (by whatever - method is appropriate to the operating system). But sometimes + minate before continuing its work. So normally you should pre- + fix the command by "start ", which flags to latexmk that it + should do the detaching of the previewer itself (by whatever + method is appropriate to the operating system). But sometimes letting latexmk do the detaching is not appropriate (for a vari- - ety of non-trivial reasons), so you should put the "start " bit + ety of non-trivial reasons), so you should put the "start " bit in yourself, whenever it is needed. $dvi_previewer_landscape ["start xdvi %O %S"] The command to invoke a dvi-previewer in landscape mode. [Under - MS-Windows the default is "start"; then latexmk arranges to use - the MS-Windows start program, which will cause to be run what- + MS-Windows the default is "start"; then latexmk arranges to use + the MS-Windows start program, which will cause to be run what- ever command the system has associated with .dvi files.] $dvipdf ["dvipdf -dALLOWPSTRANSPARENCY %O %S %D"] - Command to convert .dvi to .pdf file. A common reconfiguration - is to use the dvipdfm command, which needs its arguments in a + Command to convert .dvi to .pdf file. A common reconfiguration + is to use the dvipdfm command, which needs its arguments in a different order: $dvipdf = "dvipdfm %O -o %D %S"; - WARNING: The default dvipdf script generates pdf files with + WARNING: The default dvipdf script generates pdf files with bitmapped fonts, which do not look good when viewed by acroread. - That script should be modified to give dvips the options "-P + That script should be modified to give dvips the options "-P pdf" to ensure that type 1 fonts are used in the pdf file. $dvipdf_silent_switch ["-q"] Switch(es) for dvipdf program when silent mode is on. - N.B. The standard dvipdf program runs silently, so adding the - silent switch has no effect, but is actually innocuous. But if - an alternative program is used, e.g., dvipdfmx, then the silent - switch has an effect. The default setting is correct for + N.B. The standard dvipdf program runs silently, so adding the + silent switch has no effect, but is actually innocuous. But if + an alternative program is used, e.g., dvipdfmx, then the silent + switch has an effect. The default setting is correct for dvipdfm and dvipdfmx. $dvips ["dvips %O -o %D %S"] - The program to used as a filter to convert a .dvi file to a .ps - file. If pdf is going to be generated from pdf, then the value - of the $dvips_pdf_switch variable -- see below -- will be in- + The program to used as a filter to convert a .dvi file to a .ps + file. If pdf is going to be generated from pdf, then the value + of the $dvips_pdf_switch variable -- see below -- will be in- cluded in the options substituted for "%O". $dvips_landscape ["dvips -tlandscape %O -o %D %S"] - The program to used as a filter to convert a .dvi file to a .ps + The program to used as a filter to convert a .dvi file to a .ps file in landscape mode. $dvips_pdf_switch ["-P pdf"] - Switch(es) for dvips program when pdf file is to be generated + Switch(es) for dvips program when pdf file is to be generated from .ps file. - 10 January 2024 49 + 31 January 2024 49 @@ -3242,60 +3242,60 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Switch(es) for dvips program when silent mode is on. $dvi_update_command [""] - When the dvi previewer is set to be updated by running a com- - mand, this is the command that is run. See the information for + When the dvi previewer is set to be updated by running a com- + mand, this is the command that is run. See the information for the variable $dvi_update_method for further information, and see - information on the variable $pdf_update_method for an example + information on the variable $pdf_update_method for an example for the analogous case of a pdf previewer. $dvi_update_method [2 under UNIX, 1 under MS-Windows] - How the dvi viewer updates its display when the dvi file has - changed. The values here apply equally to the $pdf_up- + How the dvi viewer updates its display when the dvi file has + changed. The values here apply equally to the $pdf_up- date_method and to the $ps_update_method variables. 0 => update is automatic, 1=> manual update by user, which may only mean a mouse click on the viewer's window or may mean a more serious action. - 2 => Send the signal, whose number is in the variable - $dvi_update_signal. The default value under UNIX is suitable + 2 => Send the signal, whose number is in the variable + $dvi_update_signal. The default value under UNIX is suitable for xdvi. - 3 => Viewer cannot do an update, because it locks the file. + 3 => Viewer cannot do an update, because it locks the file. (As with acroread under MS-Windows.) - 4 => run a command to do the update. The command is speci- + 4 => run a command to do the update. The command is speci- fied by the variable $dvi_update_command. - See information on the variable $pdf_update_method for an exam- + See information on the variable $pdf_update_method for an exam- ple of updating by command. $dvi_update_signal [Under UNIX: SIGUSR1, which is a system-dependent value] - The number of the signal that is sent to the dvi viewer when it - is updated by sending a signal -- see the information on the - variable $dvi_update_method. The default value is the one ap- + The number of the signal that is sent to the dvi viewer when it + is updated by sending a signal -- see the information on the + variable $dvi_update_method. The default value is the one ap- propriate for xdvi on a UNIX system. $emulate_aux [0] - Whether to emulate the use of aux directory when $aux_dir and + Whether to emulate the use of aux directory when $aux_dir and $out_dir are different, rather than using the -aux-directory op- - tion for the *latex programs. (MiKTeX supports -aux-directory, + tion for the *latex programs. (MiKTeX supports -aux-directory, but TeXLive doesn't.) - If you use a version of *latex that doesn't support -aux-direc- - tory, e.g., TeXLive, latexmk will automatically switch aux_dir + If you use a version of *latex that doesn't support -aux-direc- + tory, e.g., TeXLive, latexmk will automatically switch aux_dir emulation on after the first run of *latex, because it will find the .log file in the wrong place. But it is better to set $emu- - late_aux to 1 in an rc file, or equivalently to use the -emu- + late_aux to 1 in an rc file, or equivalently to use the -emu- late-aux-dir option. This emulation mode works equally well with MiKTeX. - Aux directory emulation means that when *latex is invoked, the + Aux directory emulation means that when *latex is invoked, the output directory provided to *latex is set to be the desired aux - directory. After that, any files that need to be in the output - directory will be moved there by latexmk. (These are the files - with extensions .dvi, .ps, .pdf, .synctex, .synctex.gz, and, + directory. After that, any files that need to be in the output + directory will be moved there by latexmk. (These are the files + with extensions .dvi, .ps, .pdf, .synctex, .synctex.gz, and, - 10 January 2024 50 + 31 January 2024 50 @@ -3313,26 +3313,26 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $fdb_ext ["fdb_latexmk"] - The extension of the file which latexmk generates to contain a - database of information on source files. You will not normally + The extension of the file which latexmk generates to contain a + database of information on source files. You will not normally need to change this. @file_not_found - This an array of Perl regular expressions that are patterns to - find messages in the .log file from a run of *latex that indi- - cate that a file was looked for and not found. To see the cur- - rent default set, you should look at the definition of + This an array of Perl regular expressions that are patterns to + find messages in the .log file from a run of *latex that indi- + cate that a file was looked for and not found. To see the cur- + rent default set, you should look at the definition of @file_not_found in the latexmk.pl file. - In the regular expression, the string for the name of the miss- - ing file should be enclosed in parentheses. That carries the - implication that after latexmk gets a succesful match to the - pattern, the variable $1 is set to the filename, which is then + In the regular expression, the string for the name of the miss- + ing file should be enclosed in parentheses. That carries the + implication that after latexmk gets a successful match to the + pattern, the variable $1 is set to the filename, which is then picked up by latexmk. - If you happen to encounter a package that gives a missing file - message of a different form than one that matches one of the + If you happen to encounter a package that gives a missing file + message of a different form than one that matches one of the built-in patterns, you can add another pattern to the array. An example would be @@ -3345,23 +3345,23 @@ LATEXMK(1) General Commands Manual LATEXMK(1) But the corresponding string specification in the push statement has to have the backslashes doubled. - This regular expression matches a line that starts with 'No - file', then has one or more white space characters, then any - number of characters forming the filename, then possible white - space, and finally the end of the line. (See documentation on + This regular expression matches a line that starts with 'No + file', then has one or more white space characters, then any + number of characters forming the filename, then possible white + space, and finally the end of the line. (See documentation on Perl regular expressions for details.) $filetime_causality_threshold [5] - The use of this variable is as follows: At a number of places, - latexmk needs to determine whether a particular file has been - produced during a just-concluded run of some rule/program or is + The use of this variable is as follows: At a number of places, + latexmk needs to determine whether a particular file has been + produced during a just-concluded run of some rule/program or is leftover from a previous run. (An example is the production of a - .bcf file by the biblatex package during a run of *latex to + .bcf file by the biblatex package during a run of *latex to - 10 January 2024 51 + 31 January 2024 51 @@ -3370,52 +3370,52 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - provide bibliographic information to the biber program. If a + provide bibliographic information to the biber program. If a .bcf file is not produced during a current run of *latex, but is - leftover from a previous run, then latexmk has to conclude that - the .tex document has changed so that biber is no longer to be + leftover from a previous run, then latexmk has to conclude that + the .tex document has changed so that biber is no longer to be used.) - Latexmk's criterion that a file has been produced during a run - is that the modification time of the file is more recent than - the system time at the beginning of the run. Bascially, if the - modification time is earlier than this, then it is a leftover + Latexmk's criterion that a file has been produced during a run + is that the modification time of the file is more recent than + the system time at the beginning of the run. Bascially, if the + modification time is earlier than this, then it is a leftover from a previous run. However, a naive use of the criterion can, - among other things, run afoul of the granularity of how file - times are stored in some file systems, which means it is possi- - ble that the filesystem's reported time for a file might be a - second or more earlier than the actual modification time, the + among other things, run afoul of the granularity of how file + times are stored in some file systems, which means it is possi- + ble that the filesystem's reported time for a file might be a + second or more earlier than the actual modification time, the exact difference being quite random. - The variable $filetime_causality_threshold allows an appopriate - sloppiness in latexmk's use of file modification time. It can - be quite generous; it should merely be less than the time scale - on which a human user makes changes to source files for a docu- + The variable $filetime_causality_threshold allows an appopriate + sloppiness in latexmk's use of file modification time. It can + be quite generous; it should merely be less than the time scale + on which a human user makes changes to source files for a docu- ment (or to configuration files, etc). $fls_uses_out_dir [0] - This variable determines whether or not the .fls file should be - in the output directory instead of the natural directory, which + This variable determines whether or not the .fls file should be + in the output directory instead of the natural directory, which is the aux directory. If the variable is nonzero, the .fls file is to be in the output directory. See the section AUXILIARY AND - OUTPUT DIRECTORIES for more details about these directories. - The rationale for the existence of the variable + OUTPUT DIRECTORIES for more details about these directories. + The rationale for the existence of the variable $fls_uses_aux_dir is explained there. In all cases, if latexmk finds that an .fls file has been gener- - ated in the opposite directory to the one specified by - $fls_uses_out_dir, it copies the file to the other directory - (aux or output directory as appropriate). The file is copied - rather than simply moved, to avoid potential clashes with other - software that assumes the .fls file is generated in the direc- - tory it was written to by *latex. Thus the effect an incorrect + ated in the opposite directory to the one specified by + $fls_uses_out_dir, it copies the file to the other directory + (aux or output directory as appropriate). The file is copied + rather than simply moved, to avoid potential clashes with other + software that assumes the .fls file is generated in the direc- + tory it was written to by *latex. Thus the effect an incorrect setting of $fls_uses_out_dir is only to cause a superfluous copy of the .fls file to be generated. $force_mode [0] - If nonzero, continue processing past minor latex errors includ- + If nonzero, continue processing past minor latex errors includ- ing unrecognized cross references. Equivalent to specifying the -f option. @@ -3423,11 +3423,11 @@ LATEXMK(1) General Commands Manual LATEXMK(1) @generated_exts [( 'aux', 'bcf', 'fls', 'idx', 'ind', 'lof', 'lot', 'out', 'toc', 'blg', 'ilg', 'log', 'xdv' )] - This contains a list of extensions for files that are generated + This contains a list of extensions for files that are generated - 10 January 2024 52 + 31 January 2024 52 @@ -3436,64 +3436,64 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - during processing, and that should be deleted during a main - clean up operation, as invoked by the command line option -c. + during processing, and that should be deleted during a main + clean up operation, as invoked by the command line option -c. (The use of -C or -gg gives this clean up and more.) - The default values are extensions for standard files generated - by *latex, bibtex, and the like. (Note that the clean up also - deletes the fdb_latexmk file, but that's separately coded into + The default values are extensions for standard files generated + by *latex, bibtex, and the like. (Note that the clean up also + deletes the fdb_latexmk file, but that's separately coded into latexmk, currently.) - After initialization of latexmk and the processing of its com- - mand line, the items in clean_ext are appended to @gener- - ated_exts. So these two variables have the same meaning (con- + After initialization of latexmk and the processing of its com- + mand line, the items in clean_ext are appended to @gener- + ated_exts. So these two variables have the same meaning (con- trary to older versions of latexmk). - The items in @generated_exts are normally extensions of files, - whose base name is the same as the main tex file. But it is - also possible to specify patterns including that basename --- + The items in @generated_exts are normally extensions of files, + whose base name is the same as the main tex file. But it is + also possible to specify patterns including that basename --- see the explanation of the variable $clean_ext. In addition to specifying files to be deleted in a clean up, la- - texmk uses the same specification to assist its examination of - changes in source files: Under some situations it needs to find - those changes in files (since a previous run) that are expected - to be due to the user editing a file. This contrasts with the + texmk uses the same specification to assist its examination of + changes in source files: Under some situations it needs to find + those changes in files (since a previous run) that are expected + to be due to the user editing a file. This contrasts with the cases of files that are generated by some program run by latexmk - and that differ from the results of the previous run. This use - of @generated_exts is normally unimportant, given the usual ac- - curacy of latexmk's other ways of determining these generated + and that differ from the results of the previous run. This use + of @generated_exts is normally unimportant, given the usual ac- + curacy of latexmk's other ways of determining these generated files. - A convenient way to add an extra extension to the list, without - losing the already defined ones is to use a push command in the + A convenient way to add an extra extension to the list, without + losing the already defined ones is to use a push command in the line in an RC file. E.g., push @generated_exts, "end"; adds the extension "end" to the list of predefined generated ex- - tensions. (This extension is used by the RevTeX package, for + tensions. (This extension is used by the RevTeX package, for example.) $go_mode [0] - If nonzero, process files regardless of timestamps, and is then + If nonzero, process files regardless of timestamps, and is then equivalent to the -g option. %hash_calc_ignore_pattern !!!This variable is for experts only!!! - The general rule latexmk uses for determining when an extra run - of some program is needed is that one of the source files has - changed. But consider for example a latex package that causes - an encapsulated postscript file (an "eps" file) to be made that - is to be read in on the next run. The file contains a comment + The general rule latexmk uses for determining when an extra run + of some program is needed is that one of the source files has + changed. But consider for example a latex package that causes + an encapsulated postscript file (an "eps" file) to be made that + is to be read in on the next run. The file contains a comment - 10 January 2024 53 + 31 January 2024 53 @@ -3502,10 +3502,10 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - line giving its creation date and time. On the next run the - time changes, latex sees that the eps file has changed, and - therefore reruns latex. This causes an infinite loop, that is - only terminated because latexmk has a limit on the number of + line giving its creation date and time. On the next run the + time changes, latex sees that the eps file has changed, and + therefore reruns latex. This causes an infinite loop, that is + only terminated because latexmk has a limit on the number of runs to guard against pathological situations. But the changing line has no real effect, since it is a comment. @@ -3514,31 +3514,31 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $hash_calc_ignore_pattern{'eps'} = '^%%CreationDate: '; This creates a rule for files with extension .eps about lines to - ignore. The left-hand side is a Perl idiom for setting an item - in a hash. Note that the file extension is specified without a + ignore. The left-hand side is a Perl idiom for setting an item + in a hash. Note that the file extension is specified without a period. The value, on the right-hand side, is a string contain- - ing a regular expression. (See documentation on Perl for how - they are to be specified in general.) This particular regular - expression specifies that lines beginning with "%%CreationDate: - " are to be ignored in deciding whether a file of the given ex- + ing a regular expression. (See documentation on Perl for how + they are to be specified in general.) This particular regular + expression specifies that lines beginning with "%%CreationDate: + " are to be ignored in deciding whether a file of the given ex- tension .eps has changed. - There is only one regular expression available for each exten- - sion. If you need more one pattern to specify lines to ignore, - then you need to combine the patterns into a single regular ex- - pression. The simplest method is separate the different simple - patterns by a vertical bar character (indicating "alternation" + There is only one regular expression available for each exten- + sion. If you need more one pattern to specify lines to ignore, + then you need to combine the patterns into a single regular ex- + pression. The simplest method is separate the different simple + patterns by a vertical bar character (indicating "alternation" in the jargon of regular expressions). For example, - $hash_calc_ignore_pattern{'eps'} = '^%%CreationDate: |^%%Ti- + $hash_calc_ignore_pattern{'eps'} = '^%%CreationDate: |^%%Ti- tle: '; causes lines starting with either "^%%CreationDate: " or "^%%Ti- tle: " to be ignored. - It may happen that a pattern to be ignored is specified in, for - example, in a system or user initialization file, and you wish - to remove this in a file that is read later. To do this, you + It may happen that a pattern to be ignored is specified in, for + example, in a system or user initialization file, and you wish + to remove this in a file that is read later. To do this, you use Perl's delete function, e.g., delete $hash_calc_ignore_pattern{'eps'}; @@ -3549,17 +3549,17 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $hnt_mode [0] - Whether to generate a hnt version of the document by use of hi- + Whether to generate a hnt version of the document by use of hi- latex. Can be turned on by the use of the -hnt option. $jobname [""] - This specifies the jobname, i.e., the basename that is used for + This specifies the jobname, i.e., the basename that is used for - 10 January 2024 54 + 31 January 2024 54 @@ -3568,56 +3568,56 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - generated files (.aux, .log, .dvi, .ps, .pdf, etc). If this - variable is a null string, then the basename is the basename of - the main tex file. (At present, the string in $jobname should + generated files (.aux, .log, .dvi, .ps, .pdf, etc). If this + variable is a null string, then the basename is the basename of + the main tex file. (At present, the string in $jobname should not contain spaces.) - The placeholder '%A' is permitted. This will be substituted by + The placeholder '%A' is permitted. This will be substituted by the basename of the TeX file. The primary purpose is when a va- - riety of tex files are to be processed, and you want to use a - different jobname for each but one that is distinct for each. - Thus if you wanted to compare compilations of a set of files on + riety of tex files are to be processed, and you want to use a + different jobname for each but one that is distinct for each. + Thus if you wanted to compare compilations of a set of files on different operating systems, with distinct filenames for all the cases, you could set $jobname = "%A-$^O"; - in an initialization file. (Here $^O is a variable provided by + in an initialization file. (Here $^O is a variable provided by perl that contains perl's name for the operating system.) - Suppose you had .tex files test1.tex and test2.tex. Then when + Suppose you had .tex files test1.tex and test2.tex. Then when you run latexmk -pdf *.tex - both files will be compiled. The .aux, .log, and .pdf files - will have basenames test1-MSWin32 ante test2-MSWin32 on a MS- + both files will be compiled. The .aux, .log, and .pdf files + will have basenames test1-MSWin32 ante test2-MSWin32 on a MS- Windows system, test1-darwin and test2-darwin on an OS-X system, and a variety of similar cases on linux systems. $kpsewhich ["kpsewhich %S"] - The program called to locate a source file when the name alone - is not sufficient. Most filenames used by latexmk have suffi- + The program called to locate a source file when the name alone + is not sufficient. Most filenames used by latexmk have suffi- cient path information to be found directly. But sometimes, no- tably when a .bib or a .bst file is found from the log file of a - bibtex or biber run, only the base name of the file is known, + bibtex or biber run, only the base name of the file is known, but not its path. The program specified by $kpsewhich is used to find it. - (For advanced users: Because of the different way in which la- + (For advanced users: Because of the different way in which la- texmk uses the command specified in $kpsewhich, some of the pos- sibilities listed in the FORMAT OF COMMAND SPECIFICATIONS do not - apply. The internal and start keywords are not available. A + apply. The internal and start keywords are not available. A simple command specification with possible options and then "%S" - is all that is guaranteed to work. Note that for other com- + is all that is guaranteed to work. Note that for other com- mands, "%S" is substituted by a single source file. In contrast, for $kpsewhich, "%S" may be substituted by a long list of space- - separated filenames, each of which is quoted. The result on + separated filenames, each of which is quoted. The result on STDOUT of running the command is then piped to latexmk.) - See also the @BIBINPUTS variable for another way that latexmk + See also the @BIBINPUTS variable for another way that latexmk also uses to try to locate files; it applies only in the case of .bib files. @@ -3625,7 +3625,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 55 + 31 January 2024 55 @@ -3635,52 +3635,52 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $kpsewhich_show [0] - Whether to show diagnostics about invocations of kpsewhich: the - command line use to invoke it and the results. These diagnos- - tics are shown if $kpsewhich_show is non-zero or if diagnostics - mode is on. (But in the second case, lots of other diagnostics - are also shown.) Without these diagnostics there is nothing - visible in latexmk's screen output about invocations of kpse- + Whether to show diagnostics about invocations of kpsewhich: the + command line use to invoke it and the results. These diagnos- + tics are shown if $kpsewhich_show is non-zero or if diagnostics + mode is on. (But in the second case, lots of other diagnostics + are also shown.) Without these diagnostics there is nothing + visible in latexmk's screen output about invocations of kpse- which. $landscape_mode [0] If nonzero, run in landscape mode, using the landscape mode pre- - viewers and dvi to postscript converters. Equivalent to the -l + viewers and dvi to postscript converters. Equivalent to the -l option. Normally not needed with current previewers. $latex ["latex %O %S"] - Specifies the command line for the LaTeX processing program. - Note that as with other programs, you can use this variable not - just to change the name of the program used, but also specify + Specifies the command line for the LaTeX processing program. + Note that as with other programs, you can use this variable not + just to change the name of the program used, but also specify options to the program. E.g., $latex = "latex --src-specials %O %S"; - To do a coordinated setting of all of $dvilualatex, $hilatex, + To do a coordinated setting of all of $dvilualatex, $hilatex, $latex, $pdflatex, $lualatex, and $xelatex, see the section "Ad- vanced Configuration". %latex_input_extensions - This variable specifies the extensions tried by latexmk when it - finds that a LaTeX run resulted in an error that a file has not - been found, and the file is given without an extension. This - typically happens when LaTeX commands of the form \input{file} - or \includegraphics{figure}, when the relevant source file does + This variable specifies the extensions tried by latexmk when it + finds that a LaTeX run resulted in an error that a file has not + been found, and the file is given without an extension. This + typically happens when LaTeX commands of the form \input{file} + or \includegraphics{figure}, when the relevant source file does not exist. - In this situation, latexmk searches for custom dependencies to - make the missing file(s), but restricts it to the extensions - specified by the variable %latex_input_extensions. The default + In this situation, latexmk searches for custom dependencies to + make the missing file(s), but restricts it to the extensions + specified by the variable %latex_input_extensions. The default extensions are 'tex' and 'eps'. - (For Perl experts: %latex_input_extensions is a hash whose keys - are the extensions. The values are irrelevant.) Two subrou- - tines are provided for manipulating this and the related vari- - able %pdflatex_input_extensions, add_input_ext and remove_in- - put_ext. They are used as in the following examples are possi- + (For Perl experts: %latex_input_extensions is a hash whose keys + are the extensions. The values are irrelevant.) Two subrou- + tines are provided for manipulating this and the related vari- + able %pdflatex_input_extensions, add_input_ext and remove_in- + put_ext. They are used as in the following examples are possi- ble lines in an initialization file: remove_input_ext( 'latex', 'tex' ); @@ -3691,7 +3691,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 56 + 31 January 2024 56 @@ -3700,19 +3700,19 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - add the extension 'asdf to latex_input_extensions. (Naturally + add the extension 'asdf to latex_input_extensions. (Naturally with such an extension, you should have made an appropriate cus- tom dependency for latexmk, and should also have done the appro- - priate programming in the LaTeX source file to enable the file - to be read. The standard extensions are handled by LaTeX and + priate programming in the LaTeX source file to enable the file + to be read. The standard extensions are handled by LaTeX and its graphics/graphicx packages.) $latex_silent_switch ["-interaction=batchmode"] - Switch(es) for the LaTeX processing program when silent mode is + Switch(es) for the LaTeX processing program when silent mode is on. - If you use MikTeX, you may prefer the results if you configure - the options to include -c-style-errors, e.g., by the following + If you use MikTeX, you may prefer the results if you configure + the options to include -c-style-errors, e.g., by the following line in an initialization file $latex_silent_switch = "-interaction=batchmode -c-style-er- @@ -3722,19 +3722,19 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $lpr ["lpr %O %S" under UNIX/Linux, "NONE lpr" under MS-Windows] The command to print postscript files. - Under MS-Windows (unlike UNIX/Linux), there is no standard pro- + Under MS-Windows (unlike UNIX/Linux), there is no standard pro- gram for printing files. But there are ways you can do it. For example, if you have gsview installed, you could use it with the option "/p": $lpr = '"c:/Program Files/Ghostgum/gsview/gsview32.exe" /p'; - If gsview is installed in a different directory, you will need - to make the appropriate change. Note the combination of single - and double quotes around the name. The single quotes specify - that this is a string to be assigned to the configuration vari- - able $lpr. The double quotes are part of the string passed to - the operating system to get the command obeyed; this is neces- + If gsview is installed in a different directory, you will need + to make the appropriate change. Note the combination of single + and double quotes around the name. The single quotes specify + that this is a string to be assigned to the configuration vari- + able $lpr. The double quotes are part of the string passed to + the operating system to get the command obeyed; this is neces- sary because one part of the command name ("Program Files") con- tains a space which would otherwise be misinterpreted. @@ -3744,20 +3744,20 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $lpr_pdf ["NONE lpr_pdf"] The printing program to print pdf files. - Under MS-Windows you could set this to use gsview, if it is in- + Under MS-Windows you could set this to use gsview, if it is in- stalled, e.g., $lpr = '"c:/Program Files/Ghostgum/gsview/gsview32.exe" /p'; - If gsview is installed in a different directory, you will need - to make the appropriate change. Note the double quotes around + If gsview is installed in a different directory, you will need + to make the appropriate change. Note the double quotes around the name: this is necessary because one part of the command name ("Program Files") contains a space which would otherwise be mis- interpreted. - 10 January 2024 57 + 31 January 2024 57 @@ -3768,35 +3768,35 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $lualatex ["lualatex %O %S"] Specifies the command line for the LaTeX processing program that - is to be used when the lualatex program is called for (e.g., by + is to be used when the lualatex program is called for (e.g., by the option -lualatex. - To do a coordinated setting of all of $dvilualatex, $hilatex, + To do a coordinated setting of all of $dvilualatex, $hilatex, $latex, $pdflatex, $lualatex, and $xelatex, see the section "Ad- vanced Configuration". %lualatex_input_extensions - This variable specifies the extensions tried by latexmk when it - finds that a lualatex run resulted in an error that a file has - not been found, and the file is given without an extension. - This typically happens when LaTeX commands of the form \in- - put{file} or \includegraphics{figure}, when the relevant source + This variable specifies the extensions tried by latexmk when it + finds that a lualatex run resulted in an error that a file has + not been found, and the file is given without an extension. + This typically happens when LaTeX commands of the form \in- + put{file} or \includegraphics{figure}, when the relevant source file does not exist. - In this situation, latexmk searches for custom dependencies to - make the missing file(s), but restricts it to the extensions - specified by the variable %pdflatex_input_extensions. The de- + In this situation, latexmk searches for custom dependencies to + make the missing file(s), but restricts it to the extensions + specified by the variable %pdflatex_input_extensions. The de- fault extensions are 'tex', 'pdf', 'jpg, and 'png'. See details of the %latex_input_extensions for other information that equally applies to %lualatex_input_extensions. $lualatex_silent_switch ["-interaction=batchmode"] - Switch(es) for the lualatex program (specified in the variable + Switch(es) for the lualatex program (specified in the variable $lualatex) when silent mode is on. - See details of the $latex_silent_switch for other information + See details of the $latex_silent_switch for other information that equally applies to $lualatex_silent_switch. $make ["make"] @@ -3806,24 +3806,24 @@ LATEXMK(1) General Commands Manual LATEXMK(1) The index processing program. $makeindex_fudge [0] - When using makeindex, whether to change directory to $aux_dir - before running makeindex. Set to 1 if $aux_dir is not an ex- - plicit subdirectory of current directory, otherwise makeindex + When using makeindex, whether to change directory to $aux_dir + before running makeindex. Set to 1 if $aux_dir is not an ex- + plicit subdirectory of current directory, otherwise makeindex will refuse to write its output and log files, for security rea- sons. $makeindex_silent_switch ["-q"] - Switch(es) for the index processing program when silent mode is + Switch(es) for the index processing program when silent mode is on. $max_repeat [5] - The maximum number of times latexmk will run *latex before de- - ciding that there may be an infinite loop and that it needs to - bail out, rather than rerunning *latex again to resolve cross- + The maximum number of times latexmk will run *latex before de- + ciding that there may be an infinite loop and that it needs to + bail out, rather than rerunning *latex again to resolve cross- - 10 January 2024 58 + 31 January 2024 58 @@ -3838,58 +3838,58 @@ LATEXMK(1) General Commands Manual LATEXMK(1) tex generates files to be read in on a later run.) $MSWin_back_slash [1] - This configuration variable only has an effect when latexmk is - running under MS-Windows. With the default value of 1 for this - variable, when a command is executed under MS-Windows, latexmk - substitutes "\" for the separator character between components - of a directory name. Internally, latexmk uses "/" for the di- - rectory separator character, which is the character used by + This configuration variable only has an effect when latexmk is + running under MS-Windows. With the default value of 1 for this + variable, when a command is executed under MS-Windows, latexmk + substitutes "\" for the separator character between components + of a directory name. Internally, latexmk uses "/" for the di- + rectory separator character, which is the character used by Unix-like systems. - For almost all programs and for almost all filenames under MS- - Windows, both "\" and "/" are acceptable as the directory sepa- - rator character, provided at least that filenames are properly + For almost all programs and for almost all filenames under MS- + Windows, both "\" and "/" are acceptable as the directory sepa- + rator character, provided at least that filenames are properly quoted. But it is possible that programs exist that only accept - "\" on the command line, since that is the standard directory - separator for MS-Windows. So for safety latexmk makes the sub- + "\" on the command line, since that is the standard directory + separator for MS-Windows. So for safety latexmk makes the sub- stitution from "/" to "\", by default. - However there are also programs on MS-Windows for which a back + However there are also programs on MS-Windows for which a back slash "\" is interpreted differently than as a directory separa- - tor; for these the directory separator should be "/". Programs - with this behavior include all the *latex programs in the - TeXLive implementation (but not the MiKTeX implementation). - Hence if you use TeXLive on MS-Windows, then $MSWin_back_slash + tor; for these the directory separator should be "/". Programs + with this behavior include all the *latex programs in the + TeXLive implementation (but not the MiKTeX implementation). + Hence if you use TeXLive on MS-Windows, then $MSWin_back_slash should be set to zero. $new_viewer_always [0] - This variable applies to latexmk only in continuous-preview + This variable applies to latexmk only in continuous-preview mode. If $new_viewer_always is 0, latexmk will check for a pre- - viously running previewer on the same file, and if one is run- - ning will not start a new one. If $new_viewer_always is non- - zero, this check will be skipped, and latexmk will behave as if + viously running previewer on the same file, and if one is run- + ning will not start a new one. If $new_viewer_always is non- + zero, this check will be skipped, and latexmk will behave as if no viewer is running. $out_dir [""] If non-blank, this variable specifies the output directory. - This is the directory in which final output files are written - (dvi, ps, pdf, synctex, synctex.gz). In addition, if the aux - directory equals the output directory, as is the case by de- - fault, then other generated files are in effect written to the + This is the directory in which final output files are written + (dvi, ps, pdf, synctex, synctex.gz). In addition, if the aux + directory equals the output directory, as is the case by de- + fault, then other generated files are in effect written to the output directory. If $out_dir is blank, the output directory is the current direc- - tory at the invocation of *latex; this is equivalent to setting + tory at the invocation of *latex; this is equivalent to setting $out_dir to '.'. - See the section AUXILIARY AND OUTPUT DIRECTORIES for more de- + See the section AUXILIARY AND OUTPUT DIRECTORIES for more de- tails. - 10 January 2024 59 + 31 January 2024 59 @@ -3899,21 +3899,21 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $pdf_mode [0] - If zero, do NOT generate a pdf version of the document. If - equal to 1, generate a pdf version of the document using pdfla- - tex, using the command specified by the $pdflatex variable. If - equal to 2, generate a pdf version of the document from the ps - file, by using the command specified by the $ps2pdf variable. - If equal to 3, generate a pdf version of the document from the - dvi file, by using the command specified by the $dvipdf vari- + If zero, do NOT generate a pdf version of the document. If + equal to 1, generate a pdf version of the document using pdfla- + tex, using the command specified by the $pdflatex variable. If + equal to 2, generate a pdf version of the document from the ps + file, by using the command specified by the $ps2pdf variable. + If equal to 3, generate a pdf version of the document from the + dvi file, by using the command specified by the $dvipdf vari- able. If equal to 4, generate a pdf version of the document us- ing lualatex, using the command specified by the $lualatex vari- - able. If equal to 5, generate a pdf version (and an xdv ver- - sion) of the document using xelatex, using the commands speci- + able. If equal to 5, generate a pdf version (and an xdv ver- + sion) of the document using xelatex, using the commands speci- fied by the $xelatex and xdvipdfmx variables. - In $pdf_mode=2, it is ensured that .dvi and .ps files are also - made. In $pdf_mode=3, it is ensured that a .dvi file is also + In $pdf_mode=2, it is ensured that .dvi and .ps files are also + made. In $pdf_mode=3, it is ensured that a .dvi file is also made. But this may be overridden by the document. $pdflatex ["pdflatex %O %S"] @@ -3925,28 +3925,28 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $pdflatex = "pdflatex --shell-escape %O %S"; - (In some earlier versions of latexmk, you needed to use an as- - signment to $pdflatex to allow the use of lualatex or xelatex + (In some earlier versions of latexmk, you needed to use an as- + signment to $pdflatex to allow the use of lualatex or xelatex instead of pdflatex. There are now separate configuration vari- - ables for the use of lualatex or xelatex. See $lualatex and + ables for the use of lualatex or xelatex. See $lualatex and $xelatex.) - To do a coordinated setting of all of $dvilualatex, $hilatex, + To do a coordinated setting of all of $dvilualatex, $hilatex, $latex, $pdflatex, $lualatex, and $xelatex, see the section "Ad- vanced Configuration". %pdflatex_input_extensions - This variable specifies the extensions tried by latexmk when it - finds that a pdflatex run resulted in an error that a file has - not been found, and the file is given without an extension. - This typically happens when LaTeX commands of the form \in- - put{file} or \includegraphics{figure}, when the relevant source + This variable specifies the extensions tried by latexmk when it + finds that a pdflatex run resulted in an error that a file has + not been found, and the file is given without an extension. + This typically happens when LaTeX commands of the form \in- + put{file} or \includegraphics{figure}, when the relevant source file does not exist. - In this situation, latexmk searches for custom dependencies to - make the missing file(s), but restricts it to the extensions - specified by the variable %pdflatex_input_extensions. The de- + In this situation, latexmk searches for custom dependencies to + make the missing file(s), but restricts it to the extensions + specified by the variable %pdflatex_input_extensions. The de- fault extensions are 'tex', 'pdf', 'jpg, and 'png'. See details of the %latex_input_extensions for other information @@ -3955,7 +3955,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 60 + 31 January 2024 60 @@ -3965,55 +3965,55 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $pdflatex_silent_switch ["-interaction=batchmode"] - Switch(es) for the pdflatex program (specified in the variable + Switch(es) for the pdflatex program (specified in the variable $pdflatex) when silent mode is on. - See details of the $latex_silent_switch for other information + See details of the $latex_silent_switch for other information that equally applies to $pdflatex_silent_switch. $pdf_previewer ["start acroread %O %S"] The command to invoke a pdf-previewer. - On MS-Windows, the default is changed to "cmd /c start """; un- - der more recent versions of Windows, this will cause to be run + On MS-Windows, the default is changed to "cmd /c start """; un- + der more recent versions of Windows, this will cause to be run whatever command the system has associated with .pdf files. But - this may be undesirable if this association is to acroread -- + this may be undesirable if this association is to acroread -- see the notes in the explanation of the -pvc option.] - On OS-X the default is changed to "open %S", which results in - OS-X starting up (and detaching) the viewer associated with the - file. By default, for pdf files this association is to OS-X's + On OS-X the default is changed to "open %S", which results in + OS-X starting up (and detaching) the viewer associated with the + file. By default, for pdf files this association is to OS-X's preview, which is quite satisfactory. - WARNING: Problem under MS-Windows: if acroread is used as the - pdf previewer, and it is actually viewing a pdf file, the pdf - file cannot be updated. Thus makes acroread a bad choice of - previewer if you use latexmk's previous-continuous mode (option + WARNING: Problem under MS-Windows: if acroread is used as the + pdf previewer, and it is actually viewing a pdf file, the pdf + file cannot be updated. Thus makes acroread a bad choice of + previewer if you use latexmk's previous-continuous mode (option -pvc) under MS-windows. This problem does not occur if, for ex- ample, SumatraPDF or gsview is used to view pdf files. - Important note: Normally you will want to have a previewer run + Important note: Normally you will want to have a previewer run detached, so that latexmk doesn't wait for the previewer to ter- - minate before continuing its work. So normally you should pre- - fix the command by "start ", which flags to latexmk that it - should do the detaching of the previewer itself (by whatever - method is appropriate to the operating system). But sometimes + minate before continuing its work. So normally you should pre- + fix the command by "start ", which flags to latexmk that it + should do the detaching of the previewer itself (by whatever + method is appropriate to the operating system). But sometimes letting latexmk do the detaching is not appropriate (for a vari- - ety of non-trivial reasons), so you should put the "start " bit + ety of non-trivial reasons), so you should put the "start " bit in yourself, whenever it is needed. $pdf_update_command [""] - When the pdf previewer is set to be updated by running a com- - mand, this is the command that is run. See the information for + When the pdf previewer is set to be updated by running a com- + mand, this is the command that is run. See the information for the variable $pdf_update_method. $pdf_update_method [1 under UNIX, 3 under MS-Windows] - How the pdf viewer updates its display when the pdf file has - changed. See the information on the variable $dvi_update_method + How the pdf viewer updates its display when the pdf file has + changed. See the information on the variable $dvi_update_method for the codes. (Note that information needs be changed slightly - so that for the value 4, to run a command to do the update, the - command is specified by the variable $pdf_update_command, and - for the value 2, to specify update by signal, the signal is + so that for the value 4, to run a command to do the update, the + command is specified by the variable $pdf_update_command, and + for the value 2, to specify update by signal, the signal is specified by $pdf_update_signal.) Note that acroread under MS-Windows (but not UNIX) locks the pdf @@ -4021,7 +4021,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 61 + 31 January 2024 61 @@ -4037,47 +4037,47 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $pdf_update_method = 4; $pdf_update_command = "xpdf -remote %R -reload"; - The first setting arranges for the xpdf program to be used in - its "remote server mode", with the server name specified as the - rootname of the TeX file. The second setting arranges for up- - dating to be done in response to a command, and the third set- + The first setting arranges for the xpdf program to be used in + its "remote server mode", with the server name specified as the + rootname of the TeX file. The second setting arranges for up- + dating to be done in response to a command, and the third set- ting sets the update command. $pdf_update_signal [Under UNIX: SIGHUP, which is a system-dependent value] - The number of the signal that is sent to the pdf viewer when it - is updated by sending a signal -- see the information on the - variable $pdf_update_method. The default value is the one ap- + The number of the signal that is sent to the pdf viewer when it + is updated by sending a signal -- see the information on the + variable $pdf_update_method. The default value is the one ap- propriate for gv on a UNIX system. $pid_position[1 under UNIX, -1 under MS-Windows] - The variable $pid_position is used to specify which word in - lines of the output from $pscmd corresponds to the process ID. - The first word in the line is numbered 0. The default value of + The variable $pid_position is used to specify which word in + lines of the output from $pscmd corresponds to the process ID. + The first word in the line is numbered 0. The default value of 1 (2nd word in line) is correct for Solaris 2.6, Linux, and OS-X with their default settings of $pscmd. - Setting the variable to -1 is used to indicate that $pscmd is + Setting the variable to -1 is used to indicate that $pscmd is not to be used. $postscript_mode [0] - If nonzero, generate a postscript version of the document. + If nonzero, generate a postscript version of the document. Equivalent to the -ps option. - If some other request is made for which a postscript file is + If some other request is made for which a postscript file is needed, then $postscript_mode will be set to 1. $pre_tex_code [''] - Sets TeX code to be executed before inputting the source file. - This works if the relevant one of $latex, etc contains a suit- + Sets TeX code to be executed before inputting the source file. + This works if the relevant one of $latex, etc contains a suit- able command line with a %P or %U substitution. For example you could do $latex = 'latex %O %P'; $pre_tex_code = '\AtBeginDocument{An initial message\par}'; - To set all of $latex, $pdflatex, $lualatex, and $xelatex you + To set all of $latex, $pdflatex, $lualatex, and $xelatex you could use the subroutine alt_tex_cmds: &alt_tex_cmds; @@ -4087,7 +4087,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 62 + 31 January 2024 62 @@ -4097,41 +4097,41 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $preview_continuous_mode [0] - If nonzero, run a previewer to view the document, and continue + If nonzero, run a previewer to view the document, and continue running latexmk to keep .dvi up-to-date. Equivalent to the -pvc - option. Which previewer is run depends on the other settings, + option. Which previewer is run depends on the other settings, see the command line options -view=, and the variable $view. $preview_mode [0] If nonzero, run a previewer to preview the document. Equivalent - to the -pv option. Which previewer is run depends on the other - settings, see the command line options -view=, and the variable + to the -pv option. Which previewer is run depends on the other + settings, see the command line options -view=, and the variable $view. $printout_mode [0] - If nonzero, print the document using the command specified in + If nonzero, print the document using the command specified in the $lpr variable. Equivalent to the -p option. This is recom- - mended not to be set from an RC file, otherwise you could waste + mended not to be set from an RC file, otherwise you could waste lots of paper. $print_type = ["auto"] - Type of file to printout: possibilities are "auto", "dvi", + Type of file to printout: possibilities are "auto", "dvi", "none", "pdf", or "ps". See the option -print= for the meaning of the "auto" value. $pscmd Command used to get all the processes currently run by the user. - The -pvc option uses the command specified by the variable - $pscmd to determine if there is an already running previewer, - and to find the process ID (needed if latexmk needs to signal + The -pvc option uses the command specified by the variable + $pscmd to determine if there is an already running previewer, + and to find the process ID (needed if latexmk needs to signal the previewer about file changes). Each line of the output of this command is assumed to correspond - to one process. See the $pid_position variable for how the + to one process. See the $pid_position variable for how the process number is determined. - The default for pscmd is "NONE" under MS-Windows and cygwin - (i.e., the command is not used), "ps -ww -u $ENV{USER}" under - OS-X, and "ps -f -u $ENV{USER}" under other operating systems + The default for pscmd is "NONE" under MS-Windows and cygwin + (i.e., the command is not used), "ps -ww -u $ENV{USER}" under + OS-X, and "ps -f -u $ENV{USER}" under other operating systems (including Linux). In these specifications "$ENV{USER}" is sub- stituted by the username. @@ -4140,20 +4140,20 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $ps_filter [empty] The postscript file filter to be run on the newly produced post- - script file before other processing. Equivalent to specifying + script file before other processing. Equivalent to specifying the -pF option. $ps_previewer ["start gv %O %S", but start %O %S under MS-Windows] - The command to invoke a ps-previewer. (The default under MS- + The command to invoke a ps-previewer. (The default under MS- Windows will cause to be run whatever command the system has as- sociated with .ps files.) - Note that gv could be used with the -watch option updates its - display whenever the postscript file changes, whereas ghostview + Note that gv could be used with the -watch option updates its + display whenever the postscript file changes, whereas ghostview - 10 January 2024 63 + 31 January 2024 63 @@ -4162,22 +4162,22 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - does not. However, different versions of gv have slightly dif- - ferent ways of writing this option. You can configure this + does not. However, different versions of gv have slightly dif- + ferent ways of writing this option. You can configure this variable appropriately. WARNING: Linux systems may have installed one (or more) versions - of gv under different names, e.g., ggv, kghostview, etc, but + of gv under different names, e.g., ggv, kghostview, etc, but perhaps not one actually called gv. - Important note: Normally you will want to have a previewer run + Important note: Normally you will want to have a previewer run detached, so that latexmk doesn't wait for the previewer to ter- - minate before continuing its work. So normally you should pre- - fix the command by "start ", which flags to latexmk that it - should do the detaching of the previewer itself (by whatever - method is appropriate to the operating system). But sometimes + minate before continuing its work. So normally you should pre- + fix the command by "start ", which flags to latexmk that it + should do the detaching of the previewer itself (by whatever + method is appropriate to the operating system). But sometimes letting latexmk do the detaching is not appropriate (for a vari- - ety of non-trivial reasons), so you should put the "start " bit + ety of non-trivial reasons), so you should put the "start " bit in yourself, whenever it is needed. @@ -4186,29 +4186,29 @@ LATEXMK(1) General Commands Manual LATEXMK(1) The command to invoke a ps-previewer in landscape mode. $ps_update_command [""] - When the postscript previewer is set to be updated by running a - command, this is the command that is run. See the information + When the postscript previewer is set to be updated by running a + command, this is the command that is run. See the information for the variable $ps_update_method. $ps_update_method [0 under UNIX, 1 under MS-Windows] - How the postscript viewer updates its display when the .ps file - has changed. See the information on the variable $dvi_up- - date_method for the codes. (Note that information needs be + How the postscript viewer updates its display when the .ps file + has changed. See the information on the variable $dvi_up- + date_method for the codes. (Note that information needs be changed slightly so that for the value 4, to run a command to do - the update, the command is specified by the variable $ps_up- - date_command, and for the value 2, to specify update by signal, + the update, the command is specified by the variable $ps_up- + date_command, and for the value 2, to specify update by signal, the signal is specified by $ps_update_signal.) $ps_update_signal [Under UNIX: SIGHUP, which is a system-dependent value] - The number of the signal that is sent to the pdf viewer when it - is updated by sending a signal -- see $ps_update_method. The + The number of the signal that is sent to the pdf viewer when it + is updated by sending a signal -- see $ps_update_method. The default value is the one appropriate for gv on a UNIX system. $pvc_timeout [0] - If this variable is nonzero, there will be a timeout in pvc - mode after a period of inactivity. Inactivity means a period - when latexmk has detected no file changes and hence has not + If this variable is nonzero, there will be a timeout in pvc + mode after a period of inactivity. Inactivity means a period + when latexmk has detected no file changes and hence has not taken any actions like compiling the document. The period of in- activity is in the variable $pvc_timeout_mins. @@ -4219,7 +4219,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 64 + 31 January 2024 64 @@ -4235,57 +4235,57 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $quote_filenames [1] This specifies whether substitutions for placeholders in command specifications (as in $pdflatex) are surrounded by double - quotes. If this variable is 1 (or any other value Perl regards + quotes. If this variable is 1 (or any other value Perl regards as true), then quoting is done. Otherwise quoting is omitted. - The quoting method used by latexmk is tested to work correctly - under UNIX systems (including Linux and Mac OS-X) and under MS- - Windows. It allows the use of filenames containing special - characters, notably spaces. (But note that many versions of - *latex cannot correctly deal with TeX files whose names contain - spaces. Latexmk's quoting only ensures that such filenames are - correctly treated by the operating system in passing arguments + The quoting method used by latexmk is tested to work correctly + under UNIX systems (including Linux and Mac OS-X) and under MS- + Windows. It allows the use of filenames containing special + characters, notably spaces. (But note that many versions of + *latex cannot correctly deal with TeX files whose names contain + spaces. Latexmk's quoting only ensures that such filenames are + correctly treated by the operating system in passing arguments to programs.) $rc_report [1] - After initialization, whether to give a list of the RC files + After initialization, whether to give a list of the RC files read. $recorder [1] - Whether to use the -recorder option to *latex. Use of this op- - tion results in a file of extension .fls containing a list of - the files that these programs have read and written. Latexmk + Whether to use the -recorder option to *latex. Use of this op- + tion results in a file of extension .fls containing a list of + the files that these programs have read and written. Latexmk will then use this file to improve its detection of source files and generated files after a run of *latex. - It is generally recommended to use this option (or to configure - the $recorder variable to be on.) But it only works if *latex - supports the -recorder option, which is true for most current + It is generally recommended to use this option (or to configure + the $recorder variable to be on.) But it only works if *latex + supports the -recorder option, which is true for most current implementations - Note about the name of the .fls file: Most implementations of - *latex produce an .fls file with the same basename as the main + Note about the name of the .fls file: Most implementations of + *latex produce an .fls file with the same basename as the main document's LaTeX, e.g., for Document.tex, the .fls file is Docu- - ment.fls. However, some implementations instead produce files + ment.fls. However, some implementations instead produce files named for the program, i.e., latex.fls or pdflatex.fls. In this - second case, latexmk copies the latex.fls or pdflatex.fls to a - file with the basename of the main LaTeX document, e.g., Docu- + second case, latexmk copies the latex.fls or pdflatex.fls to a + file with the basename of the main LaTeX document, e.g., Docu- ment.fls. $search_path_separator [See below for default] The character separating paths in the environment variables TEX- - INPUTS, BIBINPUTS, and BSTINPUTS. This variable is mainly used - by latexmk when the -outdir, -output-directory, -auxdir, and/or - -aux-directory options are used. In that case latexmk needs to + INPUTS, BIBINPUTS, and BSTINPUTS. This variable is mainly used + by latexmk when the -outdir, -output-directory, -auxdir, and/or + -aux-directory options are used. In that case latexmk needs to communicate appropriately modified search paths to bibtex, dvipdf, dvips, and *latex. - [Comment to technically savvy readers: *latex doesn't actually - need the modified search path. But, surprisingly, dvipdf and + [Comment to technically savvy readers: *latex doesn't actually + need the modified search path. But, surprisingly, dvipdf and - 10 January 2024 65 + 31 January 2024 65 @@ -4294,25 +4294,25 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - dvips do, because sometimes graphics files get generated in the + dvips do, because sometimes graphics files get generated in the output or aux directories.] - The default under MSWin and Cygwin is ';' and under UNIX-like - operating systems (including Linux and OS-X) is ':'. Normally - the defaults give correct behavior. But there can be difficul- - ties if your operating system is of one kind, but some of your - software is running under an emulator for the other kind of op- - erating system; in that case you'll need to find out what is - needed, and set $search_path_separator explicitly. (The same - goes, of course, for unusual operating systems that are not in + The default under MSWin and Cygwin is ';' and under UNIX-like + operating systems (including Linux and OS-X) is ':'. Normally + the defaults give correct behavior. But there can be difficul- + ties if your operating system is of one kind, but some of your + software is running under an emulator for the other kind of op- + erating system; in that case you'll need to find out what is + needed, and set $search_path_separator explicitly. (The same + goes, of course, for unusual operating systems that are not in the MSWin, Linux, OS-X, Unix collection.) $show_time [0] - Whether to show time used, both the total and for individual + Whether to show time used, both the total and for individual steps. Note: On MS Windows, this is clock time. On other OSs it is the - CPU time used (by latexmk and the child processes it invokes). + CPU time used (by latexmk and the child processes it invokes). The OS-dependence is because of a limitation of Windows. If you wish to force the use of clock instead of CPU time, you can set @@ -4321,37 +4321,37 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $silence_logfile_warnings [0] - Whether after a run of *latex to summarize warnings in the log - file about undefined citations and references. Setting $si- + Whether after a run of *latex to summarize warnings in the log + file about undefined citations and references. Setting $si- lence_logfile_warnings=0 gives the summary of warnings (provided - silent mode isn't also set), and this is useful to locate unde- - fined citations and references without searching through the - much more verbose log file or the screen output of *latex. But - the summary can also be excessively annoying. The default is - not to give these warnings. The command line options -si- - lence_logfile_warning_list and -silence_logfile_warning_list- + silent mode isn't also set), and this is useful to locate unde- + fined citations and references without searching through the + much more verbose log file or the screen output of *latex. But + the summary can also be excessively annoying. The default is + not to give these warnings. The command line options -si- + lence_logfile_warning_list and -silence_logfile_warning_list- also set this variable. - Note that multiple occurrences for the same undefined object on + Note that multiple occurrences for the same undefined object on the same page and same line will be compressed to a single warn- ing. $silent [0] - Whether to run silently. Setting $silent to 1 has the same ef- + Whether to run silently. Setting $silent to 1 has the same ef- fect as the -quiet of -silent options on the command line. $sleep_time [2] - The time to sleep (in seconds) between checking for source-file - changes when running with the -pvc option. If non-zero, it is + The time to sleep (in seconds) between checking for source-file + changes when running with the -pvc option. If non-zero, it is subject to a minimum value give by the $min_sleep_time variable. But a zero value is also allowed. - 10 January 2024 66 + 31 January 2024 66 @@ -4360,24 +4360,24 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - A value of exactly 0 gives no delay between checks for source- - file changes; it typically results in 100% CPU usage, which may + A value of exactly 0 gives no delay between checks for source- + file changes; it typically results in 100% CPU usage, which may not be desirable. - In old versions of latexmk, the default value of $sleep_time of - 2 wB-pvctmodegand theeamountlofcCPUrusage.beOnemodernpocomputers + In old versions of latexmk, the default value of $sleep_time of + 2 waB-pvc modeiandatheaamounteofoCPUousage.etOnemodernocomputers in - with fast multi-core CPUs, a smaller value, e.g., 0.1 can give + with fast multi-core CPUs, a smaller value, e.g., 0.1 can give good results, especially when working with small documents whose compilation may take well under a second. $texfile_search [""] - This is an obsolete variable, replaced by the @default_files + This is an obsolete variable, replaced by the @default_files variable. - For backward compatibility, if you choose to set $tex- - file_search, it is a string of space-separated filenames, and + For backward compatibility, if you choose to set $tex- + file_search, it is a string of space-separated filenames, and then latexmk replaces @default_files with the filenames in $tex- file_search to which is added "*.tex". @@ -4385,39 +4385,39 @@ LATEXMK(1) General Commands Manual LATEXMK(1) See the documentation for $compiling_cmd. $tmpdir [See below for default] - Directory to store temporary files that latexmk may generate + Directory to store temporary files that latexmk may generate while running. - The default under MSWindows (including cygwin), is to set $tm- - pdir to the value of the first of whichever of the system envi- - ronment variables TMPDIR or TEMP exists, otherwise to the cur- - rent directory. Under other operating systems (expected to be - UNIX/Linux, including OS-X), the default is the value of the - system environment variable TMPDIR if it exists, otherwise + The default under MSWindows (including cygwin), is to set $tm- + pdir to the value of the first of whichever of the system envi- + ronment variables TMPDIR or TEMP exists, otherwise to the cur- + rent directory. Under other operating systems (expected to be + UNIX/Linux, including OS-X), the default is the value of the + system environment variable TMPDIR if it exists, otherwise "/tmp". $use_make_for_missing_files [0] Whether to use make to try and make files that are missing after - a run of *latex, and for which a custom dependency has not been - found. This is generally useful only when latexmk is used as - part of a bigger project which is built by using the make pro- + a run of *latex, and for which a custom dependency has not been + found. This is generally useful only when latexmk is used as + part of a bigger project which is built by using the make pro- gram. Note that once a missing file has been made, no further calls to - make will be made on a subsequent run of latexmk to update the - file. Handling this problem is the job of a suitably defined - Makefile. See the section "USING latexmk WITH make" for how to - do this. The intent of calling make from latexmk is merely to + make will be made on a subsequent run of latexmk to update the + file. Handling this problem is the job of a suitably defined + Makefile. See the section "USING latexmk WITH make" for how to + do this. The intent of calling make from latexmk is merely to detect dependencies. $view ["default"] - Which kind of file is to be previewed if a previewer is used. - The possible values are "default", "dvi", "ps", "pdf". The + Which kind of file is to be previewed if a previewer is used. + The possible values are "default", "dvi", "ps", "pdf". The value of "default" means that the "highest" of the kinds of file - 10 January 2024 67 + 31 January 2024 67 @@ -4430,60 +4430,60 @@ LATEXMK(1) General Commands Manual LATEXMK(1) $warnings_as_errors [0] - Normally latexmk copies the behavior of latex in treating unde- - fined references and citations and multiply defined references - as conditions that give a warning but not an error. The vari- + Normally latexmk copies the behavior of latex in treating unde- + fined references and citations and multiply defined references + as conditions that give a warning but not an error. The vari- able $warnings_as_errors controls whether this behavior is modi- fied. - When the variable is non-zero, latexmk at the end of its run - will return a non-zero status code to the operating system if - any of the files processed gives a warning about problems with + When the variable is non-zero, latexmk at the end of its run + will return a non-zero status code to the operating system if + any of the files processed gives a warning about problems with citations or references (i.e., undefined citations or references or multiply defined references). This is after latexmk has com- - pleted all the runs it needs to try and resolve references and - citations. Thus $warnings_as_errors being nonzero causes la- + pleted all the runs it needs to try and resolve references and + citations. Thus $warnings_as_errors being nonzero causes la- texmk to treat such warnings as errors, but only when they occur on the last run of *latex and only after processing is complete. - A non-zero value $warnings_as_errors can be set by the command- + A non-zero value $warnings_as_errors can be set by the command- line option -Werror. The default behavior is normally satisfactory in the usual edit- - compile-edit cycle. But, for example, latexmk can also be used - as part of a build process for some bigger project, e.g., for - creating documentation in the build of a software application. - Then it is often sensible to treat citation and reference warn- - ings as errors that require the overall build process to be + compile-edit cycle. But, for example, latexmk can also be used + as part of a build process for some bigger project, e.g., for + creating documentation in the build of a software application. + Then it is often sensible to treat citation and reference warn- + ings as errors that require the overall build process to be aborted. Of course, since multiple runs of *latex are generally - needed to resolve references and citations, what matters is not + needed to resolve references and citations, what matters is not the warnings on the first run, but the warnings on the last run; latexmk takes this into account appropriately. - In addition, when preview-continuous mode is used, a non-zero - value for $warnings_as_errors changes the use of the commands - $failure_cmd, $warning_cmd, and $success_cmd after a complia- + In addition, when preview-continuous mode is used, a non-zero + value for $warnings_as_errors changes the use of the commands + $failure_cmd, $warning_cmd, and $success_cmd after a complia- tion. If there are citation or reference warnings, but no other - errors, the behavior is as follows. If $warning_cmd is set, it - is used. If it is not set, then then if $warnings_as_errors is - non-zero and $failure_cmd is set, then $failure_cmd. Otherwise - $success_cmd is used, if it is set. (The foregoing explanation + errors, the behavior is as follows. If $warning_cmd is set, it + is used. If it is not set, then then if $warnings_as_errors is + non-zero and $failure_cmd is set, then $failure_cmd. Otherwise + $success_cmd is used, if it is set. (The foregoing explanation is rather complicated, because latexmk has to deal with the case that one or more of the commands isn't set.) $xdv_mode [0] - If one, generate an xdv version of the document by use of xela- + If one, generate an xdv version of the document by use of xela- tex. $xdvipdfmx ["xdvipdfmx -E -o %D %O %S"] - The program to make a pdf file from an xdv file (used in con- + The program to make a pdf file from an xdv file (used in con- junction with xelatex when $pdf_mode=5). - 10 January 2024 68 + 31 January 2024 68 @@ -4496,60 +4496,60 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Switch(es) for the xdvipdfmx program when silent mode is on. $xelatex ["xelatex %O %S"] - Specifies the command line for the LaTeX processing program of - when the xelatex program is called for. See the documentation - of the -xelatex option for some special properties of latexmk's + Specifies the command line for the LaTeX processing program of + when the xelatex program is called for. See the documentation + of the -xelatex option for some special properties of latexmk's use of xelatex. - Note about xelatex: latexmk uses xelatex to make an .xdv rather - than .pdf file, with the .pdf file being created in a separate + Note about xelatex: latexmk uses xelatex to make an .xdv rather + than .pdf file, with the .pdf file being created in a separate step. This is enforced by the use of the -no-pdf option. If %O - is part of the command for invoking xelatex, then latexmk will + is part of the command for invoking xelatex, then latexmk will insert the -no-pdf option automatically, otherwise you must pro- - vide the option yourself. See the documentation for the -pdfxe + vide the option yourself. See the documentation for the -pdfxe option for why latexmk makes a .xdv file rather than a .pdf file when xelatex is used. - To do a coordinated setting of all of $dvilualatex, $hilatex, + To do a coordinated setting of all of $dvilualatex, $hilatex, $latex, $pdflatex, $lualatex, and $xelatex, see the section "Ad- vanced Configuration". %xelatex_input_extensions - This variable specifies the extensions tried by latexmk when it - finds that an xelatex run resulted in an error that a file has - not been found, and the file is given without an extension. - This typically happens when LaTeX commands of the form \in- - put{file} or \includegraphics{figure}, when the relevant source + This variable specifies the extensions tried by latexmk when it + finds that an xelatex run resulted in an error that a file has + not been found, and the file is given without an extension. + This typically happens when LaTeX commands of the form \in- + put{file} or \includegraphics{figure}, when the relevant source file does not exist. - In this situation, latexmk searches for custom dependencies to - make the missing file(s), but restricts it to the extensions - specified by the variable %xelatex_input_extensions. The de- + In this situation, latexmk searches for custom dependencies to + make the missing file(s), but restricts it to the extensions + specified by the variable %xelatex_input_extensions. The de- fault extensions are 'tex', 'pdf', 'jpg, and 'png'. See details of the %latex_input_extensions for other information that equally applies to %xelatex_input_extensions. $xelatex_silent_switch ["-interaction=batchmode"] - Switch(es) for the xelatex program (specified in the variable + Switch(es) for the xelatex program (specified in the variable $xelatex) when silent mode is on. - See details of the $latex_silent_switch for other information + See details of the $latex_silent_switch for other information that equally applies to $xelatex_silent_switch. CUSTOM DEPENDENCIES - In any RC file a set of custom dependencies can be set up to convert a + In any RC file a set of custom dependencies can be set up to convert a file with one extension to a file with another. An example use of this would be to allow latexmk to convert a .fig file to .eps to be included in the .tex file. - 10 January 2024 69 + 31 January 2024 69 @@ -4560,9 +4560,9 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Defining a custom dependency: The old method of configuring latexmk to use a custom dependency was to - directly manipulate the @cus_dep_list array that contains information - defining the custom dependencies. (See the section "Old Method of - Defining Custom Dependencies" for details.) This method still works, + directly manipulate the @cus_dep_list array that contains information + defining the custom dependencies. (See the section "Old Method of + Defining Custom Dependencies" for details.) This method still works, but is no longer preferred. A better method is to use the subroutines that allow convenient manipu- @@ -4575,47 +4575,47 @@ LATEXMK(1) General Commands Manual LATEXMK(1) The arguments are as follows: from extension: - The extension of the file we are converting from (e.g. "fig"). + The extension of the file we are converting from (e.g. "fig"). It is specified without a period. to extension: The extension of the file we are converting to (e.g. "eps"). It is specified without a period. - must: If non-zero, the file from which we are converting must exist, - if it doesn't exist latexmk will give an error message and exit + must: If non-zero, the file from which we are converting must exist, + if it doesn't exist latexmk will give an error message and exit unless the -f option is specified. If must is zero and the file - we are converting from doesn't exist, then no action is taken. + we are converting from doesn't exist, then no action is taken. Generally, the appropriate value of must is zero. function: - The name of the subroutine that latexmk should call to perform - the file conversion. The first argument to the subroutine is + The name of the subroutine that latexmk should call to perform + the file conversion. The first argument to the subroutine is the base name of the file to be converted without any extension. - The subroutines are declared in the syntax of Perl. The func- - tion should return 0 if it was successful and a nonzero number + The subroutines are declared in the syntax of Perl. The func- + tion should return 0 if it was successful and a nonzero number if it failed. - Naturally add_cus_dep adds a custom dependency with the specified from - and to extensions. If a custom dependency has been previously defined - (e.g., in an rcfile that was read earlier), then it is replaced by the + Naturally add_cus_dep adds a custom dependency with the specified from + and to extensions. If a custom dependency has been previously defined + (e.g., in an rcfile that was read earlier), then it is replaced by the new one. - The subroutine remove_cus_dep removes the specified custom dependency. + The subroutine remove_cus_dep removes the specified custom dependency. The subroutine show_cus_dep causes a list of the currently defined cus- tom dependencies to be sent to the screen output. How custom dependencies are used: An instance of a custom dependency rule is created whenever latexmk de- - tects that a run of *latex needs to read a file, like a graphics file, - whose extension is the to-extension of a custom dependency. Then la- - texmk examines whether a file exists with the same name, but with the + tects that a run of *latex needs to read a file, like a graphics file, + whose extension is the to-extension of a custom dependency. Then la- + texmk examines whether a file exists with the same name, but with the - 10 January 2024 70 + 31 January 2024 70 @@ -4624,45 +4624,45 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - corresponding from-extension, as specified in the custom-dependency. - If it does, then a corresponding instance of the custom dependency is - created, after which the rule is invoked whenever the destination file + corresponding from-extension, as specified in the custom-dependency. + If it does, then a corresponding instance of the custom dependency is + created, after which the rule is invoked whenever the destination file (the one with the to-extension) is out-of-date with respect to the cor- responding source file. - To make the new destination file, the Perl subroutine specified in the + To make the new destination file, the Perl subroutine specified in the rule is invoked, with an argument that is the base name of the files in - question. Simple cases just involve a subroutine invoking an external - program; this can be done by following the templates below, even by - those without knowledge of the Perl programming language. Of course, + question. Simple cases just involve a subroutine invoking an external + program; this can be done by following the templates below, even by + those without knowledge of the Perl programming language. Of course, experts could do something much more elaborate. - One item in the specification of each custom-dependency rule, labeled - "must" above, specifies how the rule should be applied when the source + One item in the specification of each custom-dependency rule, labeled + "must" above, specifies how the rule should be applied when the source file fails to exist. - When latex reports that an input file (e.g., a graphics file) does not + When latex reports that an input file (e.g., a graphics file) does not exist, latexmk tries to find a source file and a custom dependency that can be used to make it. If it succeeds, then it creates an instance of - the custom dependency and invokes it to make the missing file, after + the custom dependency and invokes it to make the missing file, after which the next pass of latex etc will be able to read the newly created file. - Note for advanced usage: The operating system's environment variable + Note for advanced usage: The operating system's environment variable TEXINPUTS can be used to specify a search path for finding files by la- - tex etc. Correspondingly, when a missing file is reported, latexmk - looks in the directories specified in TEXINPUTS as well as in the cur- - rent directory, to find a source file from which an instance of a cus- + tex etc. Correspondingly, when a missing file is reported, latexmk + looks in the directories specified in TEXINPUTS as well as in the cur- + rent directory, to find a source file from which an instance of a cus- tom dependency can be used to make the missing file. Function to implement custom dependency, traditional method: - The function that implements a custom dependency gets the information + The function that implements a custom dependency gets the information on the files to be processed in two ways. The first is through its one - argument; the argument contains the base name of the source and desti- + argument; the argument contains the base name of the source and desti- nation files. The second way is described later. - A simple and typical example of code in an initialization rcfile using + A simple and typical example of code in an initialization rcfile using the first method is: add_cus_dep( 'fig', 'eps', 0, 'fig2eps' ); @@ -4670,18 +4670,18 @@ LATEXMK(1) General Commands Manual LATEXMK(1) system( "fig2dev -Leps \"$_[0].fig\" \"$_[0].eps\"" ); } - The first line adds a custom dependency that converts a file with ex- + The first line adds a custom dependency that converts a file with ex- tension "fig", as created by the xfig program, to an encapsulated post- - script file, with extension "eps". The remaining lines define a sub- - routine that carries out the conversion. If a rule for converting - "fig" to "eps" files already exists (e.g., from a previously read-in - initialization file), the latexmk will delete this rule before making + script file, with extension "eps". The remaining lines define a sub- + routine that carries out the conversion. If a rule for converting + "fig" to "eps" files already exists (e.g., from a previously read-in + initialization file), the latexmk will delete this rule before making the new one. - 10 January 2024 71 + 31 January 2024 71 @@ -4690,25 +4690,25 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - Suppose latexmk is using this rule to convert a file "figure.fig" to - "figure.eps". Then it will invoke the fig2eps subroutine defined in - the above code with a single argument "figure", which is the basename - of each of the files (possibly with a path component). This argument - is referred to by Perl as $_[0]. In the example above, the subroutine + Suppose latexmk is using this rule to convert a file "figure.fig" to + "figure.eps". Then it will invoke the fig2eps subroutine defined in + the above code with a single argument "figure", which is the basename + of each of the files (possibly with a path component). This argument + is referred to by Perl as $_[0]. In the example above, the subroutine uses the Perl command system to invoke the program fig2dev. The double quotes around the string are a Perl idiom that signify that each string - of the form of a variable name, $_[0] in this case, is to be substi- + of the form of a variable name, $_[0] in this case, is to be substi- tuted by its value. - If the return value of the subroutine is non-zero, then latexmk will - assume an error occurred during the execution of the subroutine. In - the above example, no explicit return value is given, and instead the - return value is the value returned by the last (and only) statement, + If the return value of the subroutine is non-zero, then latexmk will + assume an error occurred during the execution of the subroutine. In + the above example, no explicit return value is given, and instead the + return value is the value returned by the last (and only) statement, i.e., the invocation of system, which returns the value 0 on success. - If you use pdflatex, lualatex or xelatex instead of latex, then you - will probably prefer to convert your graphics files to pdf format, in - which case you would replace the above code in an initialization file + If you use pdflatex, lualatex or xelatex instead of latex, then you + will probably prefer to convert your graphics files to pdf format, in + which case you would replace the above code in an initialization file by add_cus_dep( 'fig', 'pdf, 0, 'fig2pdf' ); @@ -4716,30 +4716,30 @@ LATEXMK(1) General Commands Manual LATEXMK(1) system( "fig2dev -Lpdf \"$_[0].fig\" \"$_[0].pdf\"" ); } - Note 1: In the command lines given in the system commands in the above - examples, double quotes have been inserted around the file names (im- - plemented by '\"' in the Perl language). They immunize the running of - the program against special characters in filenames. Very often these - quotes are not necessary, i.e., they can be omitted. But it is nor- - mally safer to keep them in. Even though the rules for quoting vary - between operating systems, command shells and individual pieces of + Note 1: In the command lines given in the system commands in the above + examples, double quotes have been inserted around the file names (im- + plemented by '\"' in the Perl language). They immunize the running of + the program against special characters in filenames. Very often these + quotes are not necessary, i.e., they can be omitted. But it is nor- + mally safer to keep them in. Even though the rules for quoting vary + between operating systems, command shells and individual pieces of software, the quotes in the above examples do not cause problems in the cases I have tested. - Note 2: One case in which the quotes are important is when the files - are in a subdirectory and your operating system is Microsoft Windows. - Then the separator character for directory components can be either a - forward slash '/' or Microsoft's more usual backward slash '\'. For- - ward slashes are generated by latexmk, to maintain its sanity from - software like MiKTeX that mixes both directory separators; but their + Note 2: One case in which the quotes are important is when the files + are in a subdirectory and your operating system is Microsoft Windows. + Then the separator character for directory components can be either a + forward slash '/' or Microsoft's more usual backward slash '\'. For- + ward slashes are generated by latexmk, to maintain its sanity from + software like MiKTeX that mixes both directory separators; but their correct use normally requires quoted filenames. (See a log file from a - run of MiKTeX (at least in v. 2.9) for an example of the use of both + run of MiKTeX (at least in v. 2.9) for an example of the use of both directory separators.) - Note 3: The subroutines implementing custom dependencies in the exam- - ples given just have a single line invoking an external program. - That's the usual situation. But since the subroutines are in the Perl - language, you can implement much more complicated processing if you + Note 3: The subroutines implementing custom dependencies in the exam- + ples given just have a single line invoking an external program. + That's the usual situation. But since the subroutines are in the Perl + language, you can implement much more complicated processing if you need it. @@ -4747,7 +4747,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 72 + 31 January 2024 72 @@ -4757,19 +4757,19 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Removing custom dependencies, and when you might need to do this: - If you have some general custom dependencies defined in the system or - user initialization file, you may find that for a particular project - they are undesirable. So you might want to delete the unneeded ones. - A situation where this would be desirable is where there are multiple - custom dependencies with the same from-extension or the same to-exten- - sion. In that case, latexmk might choose a different one from the one + If you have some general custom dependencies defined in the system or + user initialization file, you may find that for a particular project + they are undesirable. So you might want to delete the unneeded ones. + A situation where this would be desirable is where there are multiple + custom dependencies with the same from-extension or the same to-exten- + sion. In that case, latexmk might choose a different one from the one you want for a specific project. As an example, to remove any "fig" to "eps" rule you would use: remove_cus_dep( 'fig', 'eps' ); - If you have complicated sets of custom dependencies, you may want to - get a listing of the custom dependencies. This is done by using the + If you have complicated sets of custom dependencies, you may want to + get a listing of the custom dependencies. This is done by using the line show_cus_dep(); @@ -4780,29 +4780,29 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Function implementing custom dependency, alternative methods: So far the examples for functions to implement custom dependencies have used the argument of the function to specify the base name of converted - file. This method has been available since very old versions of la- + file. This method has been available since very old versions of la- texmk, and many examples can be found, e.g., on the web. - However in later versions of latexmk the internal structure of the im- + However in later versions of latexmk the internal structure of the im- plementation of its "rules" for the steps of processing, including cus- tom dependencies, became much more powerful. The function implementing a custom dependency is executed within a special context where a number - of extra variables and subroutines are defined. Publicly documented - ones, intended to be long-term stable, are listed below, under the + of extra variables and subroutines are defined. Publicly documented + ones, intended to be long-term stable, are listed below, under the heading "Variables and subroutines for processing a rule". - Examples of their use is given in the following examples, concerning + Examples of their use is given in the following examples, concerning multiple index files and glossaries. - The only index-file conversion built-in to latexmk is from an ".idx" - file written on one run of *latex to an ".ind" file to be read in on a - subsequent run. But with the index.sty package, for example, you can - create extra indexes with extensions that you configure. Latexmk does + The only index-file conversion built-in to latexmk is from an ".idx" + file written on one run of *latex to an ".ind" file to be read in on a + subsequent run. But with the index.sty package, for example, you can + create extra indexes with extensions that you configure. Latexmk does not know how to deduce the extensions from the information it has. But - you can easily write a custom dependency. For example if your latex + you can easily write a custom dependency. For example if your latex file uses the command "\newindex{special}{ndx}{nnd}{Special index}" you - will need to get latexmk to convert files with the extension .ndx to - .nnd. The most elementary method is to define a custom dependency as + will need to get latexmk to convert files with the extension .ndx to + .nnd. The most elementary method is to define a custom dependency as follows: add_cus_dep( 'ndx', 'nnd', 0, 'ndx2nnd' ); @@ -4813,7 +4813,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 73 + 31 January 2024 73 @@ -4822,14 +4822,14 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - Notice the added line compared with earlier examples. The extra line + Notice the added line compared with earlier examples. The extra line gets the extensions "ndx" and "nnd" added to the list of extensions for generated files; then the extra index files will be deleted by clean-up operations - But if you have yet more indexes with yet different extensions, e.g., - "adx" and "and", then you will need a separate function for each pair - of extensions. This is quite annoying. You can use the Run_subst + But if you have yet more indexes with yet different extensions, e.g., + "adx" and "and", then you will need a separate function for each pair + of extensions. This is quite annoying. You can use the Run_subst function to simplify the definitions to use a single function: add_cus_dep( 'ndx', 'nnd', 0, 'dx2nd' ); @@ -4848,38 +4848,38 @@ LATEXMK(1) General Commands Manual LATEXMK(1) } push @generated_exts, 'ndx', 'nnd', 'adx', 'and'; - This last example uses the command specification in $makeindex, and so - any customization you have made for the standard index also applies to + This last example uses the command specification in $makeindex, and so + any customization you have made for the standard index also applies to your extra indexes. Similar techniques can be applied for glossaries. Those of you with experience with Makefiles, may get concerned that the - .ndx file is written during a run of *latex and is always later than + .ndx file is written during a run of *latex and is always later than the .nnd last read in. Thus the .nnd appears to be perpetually out-of- - date. This situation, of circular dependencies, is endemic to latex, - and is one of the issues that latexmk is programmed to overcome. It - examines the contents of the files (by use of a checksum), and only + date. This situation, of circular dependencies, is endemic to latex, + and is one of the issues that latexmk is programmed to overcome. It + examines the contents of the files (by use of a checksum), and only does a remake when the file contents have actually changed. - Of course if you choose to write random data to the .nnd (or the .aux - file, etc) that changes on each new run, then you will have a problem. + Of course if you choose to write random data to the .nnd (or the .aux + file, etc) that changes on each new run, then you will have a problem. For real experts: See the %hash_calc_ignore_pattern if you have to deal with such problems. Old Method of Defining Custom Dependencies: - In much older versions of latexmk, the only method of defining custom - dependencies was to directly manipulate the table of custom dependen- + In much older versions of latexmk, the only method of defining custom + dependencies was to directly manipulate the table of custom dependen- cies. This is contained in the @cus_dep_list array. It is an array of - strings, and each string in the array has four items in it, each sepa- - rated by a space, the from-extension, the to-extension, the "must" - item, and the name of the subroutine for the custom dependency. These + strings, and each string in the array has four items in it, each sepa- + rated by a space, the from-extension, the to-extension, the "must" + item, and the name of the subroutine for the custom dependency. These were all defined above. - 10 January 2024 74 + 31 January 2024 74 @@ -4889,7 +4889,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) An example of the old method of defining custom dependencies is as fol- - lows. It is the code in an RC file to ensure automatic conversion of + lows. It is the code in an RC file to ensure automatic conversion of .fig files to .eps files: push @cus_dep_list, "fig eps 0 fig2eps"; @@ -4897,21 +4897,21 @@ LATEXMK(1) General Commands Manual LATEXMK(1) return system( "fig2dev -Lps \"$_[0].fig\" \"$_[0].eps\"" ); } - This method still works, and is almost equivalent to the code given - earlier that used the add_cus_dep subroutine. However, the old method - doesn't delete any previous custom-dependency for the same conversion. + This method still works, and is almost equivalent to the code given + earlier that used the add_cus_dep subroutine. However, the old method + doesn't delete any previous custom-dependency for the same conversion. So the new method is preferable. Advanced configuration: Some extra resources and advanced tricks - For most purposes, simple configuration for latexmk along the lines of - the examples given is sufficient. But sometimes you need something - harder. In this section, I indicate some extra possibilities. Gener- - ally to use these, you need to be fluent in the Perl language, since + For most purposes, simple configuration for latexmk along the lines of + the examples given is sufficient. But sometimes you need something + harder. In this section, I indicate some extra possibilities. Gener- + ally to use these, you need to be fluent in the Perl language, since this is what is used in the rc files. - See also the section DEALING WITH ERRORS, PROBLEMS, ETC. See also the + See also the section DEALING WITH ERRORS, PROBLEMS, ETC. See also the examples in the directory example_rcfiles in the latexmk distributions. Even if none of the examples apply to your case, they may give you use- ful ideas @@ -4920,13 +4920,13 @@ Advanced configuration: Some extra resources and advanced tricks Utility subroutines ensure_path( var, values ...) - The first parameter is the name of one of the system's environ- - ment variables for search paths. The remaining parameters are - values that should be in the variable. For each of the value - parameters, if it isn't already in the variable, then it is + The first parameter is the name of one of the system's environ- + ment variables for search paths. The remaining parameters are + values that should be in the variable. For each of the value + parameters, if it isn't already in the variable, then it is prepended to the variable; in that case the environment variable - is created if it doesn't already exist. For separating values, - the character appropriate the the operating system is used -- + is created if it doesn't already exist. For separating values, + the character appropriate the the operating system is used -- see the configuration variable $search_path_separator. Example: @@ -4934,18 +4934,18 @@ Advanced configuration: Some extra resources and advanced tricks ensure_path( 'TEXINPUTS', './custom_cls_sty_files//' ); (In this example, the trailing '//' is documented by TeX systems - to mean that *latex search for files in the specified directory + to mean that *latex search for files in the specified directory and in all subdirectories.) - Technically ensure_path works by setting Perl's variable - $ENV{var}, where var is the name of the target variable. The - changed value is then passed as an environment variable to any + Technically ensure_path works by setting Perl's variable + $ENV{var}, where var is the name of the target variable. The + changed value is then passed as an environment variable to any invoked programs. - 10 January 2024 75 + 31 January 2024 75 @@ -4956,22 +4956,22 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Variables and subroutines for processing a rule A step in the processing is called a rule. One possibility to implement - the processing of a rule is by a Perl subroutine. This is always the - case for custom dependencies. Also, for any other rule, you can use a - subroutine by prefixing the command specification by the word "inter- + the processing of a rule is by a Perl subroutine. This is always the + case for custom dependencies. Also, for any other rule, you can use a + subroutine by prefixing the command specification by the word "inter- nal" -- see the section FORMAT OF COMMAND SPECIFICATIONS. - When you use a subroutine for processing a rule, all the possibilities + When you use a subroutine for processing a rule, all the possibilities of Perl programming are available, of course. In addition, some of la- - texmk's internal variables and subroutines are available. The ones - listed below are intended to be available to (advanced) users, and + texmk's internal variables and subroutines are available. The ones + listed below are intended to be available to (advanced) users, and their specifications will generally have stability under upgrades. Gen- - erally, the variables should be treated as read-only: Changing their - values can have bad consequences, since it is liable to mess up the + erally, the variables should be treated as read-only: Changing their + values can have bad consequences, since it is liable to mess up the consistency of what latexmk is doing. - $rule This variable has the name of the rule, as known to latexmk. - Note that the exact contents of this variable for a given rule + $rule This variable has the name of the rule, as known to latexmk. + Note that the exact contents of this variable for a given rule may be dependent on the version of latexmk $$Psource @@ -4979,39 +4979,39 @@ LATEXMK(1) General Commands Manual LATEXMK(1) dollar signs. $$Pdest - This gives the name of the main output file if any. Note the + This gives the name of the main output file if any. Note the double dollar signs. pushd( path ), popd() - These subroutines are used when it is needed to temporarily + These subroutines are used when it is needed to temporarily change the working directory, as in pushd( 'some_directory' ); - ... Processing done with 'some_directory' as the working + ... Processing done with 'some_directory' as the working directory popd() - They perform exactly the same function as the commands of the + They perform exactly the same function as the commands of the same names in operating system command shells like bash on Unix, and cmd.exe on the Windows. rdb_add_generated( file, ... ) This subroutine is to be used in the context of a rule, that is, - from within a subroutine that is carrying out processing of a + from within a subroutine that is carrying out processing of a rule. Such is the case for the subroutine implementing a custom - dependency, or the subroutine invoked by using the "internal" - keyword in the command specification like that in the variable + dependency, or the subroutine invoked by using the "internal" + keyword in the command specification like that in the variable $latex. - Its arguments are a sequence of filenames which are generated - during the running of the rule. The names might arise from an + Its arguments are a sequence of filenames which are generated + during the running of the rule. The names might arise from an analysis of the results of the run, e.g., in a log file, or from - 10 January 2024 76 + 31 January 2024 76 @@ -5020,64 +5020,64 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - knowledge of properties of the specific rule. Calling - rdb_add_generated with these filenames ensures that these files - are flagged as generated by the rule in latexmk's internal data + knowledge of properties of the specific rule. Calling + rdb_add_generated with these filenames ensures that these files + are flagged as generated by the rule in latexmk's internal data structures. Basically, no action is taken if the files have al- ready been flagged as generated. - A main purpose of using this subroutine is for the situation - when a generated file is also the source file for some rule, so - that latexmk can correctly link the dependency information in + A main purpose of using this subroutine is for the situation + when a generated file is also the source file for some rule, so + that latexmk can correctly link the dependency information in its network of rules. Note: Unlike some other subroutines in this section, there is no - argument for a rule for rdb_add_generated. Instead, the subrou- - tine is to be invoked during the processing of a rule when la- + argument for a rule for rdb_add_generated. Instead, the subrou- + tine is to be invoked during the processing of a rule when la- texmk has set up an appropriate context (i.e., appropriate vari- - ables). In contrast, subroutines with a rule argument can be + ables). In contrast, subroutines with a rule argument can be used also outside a rule context. rdb_ensure_file( $rule, file ) - This subroutine ensures that the given file is among the source + This subroutine ensures that the given file is among the source files for the specified rule. It is typically used when, during - the processing of a rule, it is known that a particular extra + the processing of a rule, it is known that a particular extra file is among the dependencies that latexmk should know, but its - default methods don't find the dependency. Almost always the - first argument is the name of the rule currently being + default methods don't find the dependency. Almost always the + first argument is the name of the rule currently being processed, so it is then appropriate to specify it by $rule. - For examples of its use, see some of the files in the directory - example_rcfiles of latexmk's distribution. Currently the cases - that use this subroutine are bib2gls-latexmkrc, exceltex_la- - texmkrc and texinfo-latexmkrc. These illustrate typical cases - where latexmk's normal processing fails to detect certain extra + For examples of its use, see some of the files in the directory + example_rcfiles of latexmk's distribution. Currently the cases + that use this subroutine are bib2gls-latexmkrc, exceltex_la- + texmkrc and texinfo-latexmkrc. These illustrate typical cases + where latexmk's normal processing fails to detect certain extra source files. Note that rdb_ensure_file only has one filename argument, unlike other subroutines in this section. If you want to apply its ac- - tion to multiple files, you will need one call to rdb_en- + tion to multiple files, you will need one call to rdb_en- sure_file for each file. rdb_remove_files( $rule, file, ... ) - This subroutine removes one or more files from the dependency + This subroutine removes one or more files from the dependency list for the given rule. rdb_remove_generated( file, ... ) This subroutine is to be used in the context of a rule, that is, - from within a subroutine that is carrying out processing of a - rule. It performs the opposite action to rdb_add_generated. - Its effect is to ensure that the given filenames are not listed - in latexmk's internal data structures as being generated by the + from within a subroutine that is carrying out processing of a + rule. It performs the opposite action to rdb_add_generated. + Its effect is to ensure that the given filenames are not listed + in latexmk's internal data structures as being generated by the rule. - 10 January 2024 77 + 31 January 2024 77 @@ -5087,7 +5087,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) rdb_list_source( $rule ) - This subroutine returns the list of source files (i.e., the de- + This subroutine returns the list of source files (i.e., the de- pendency list) for the given rule. @@ -5095,9 +5095,9 @@ LATEXMK(1) General Commands Manual LATEXMK(1) rdb_set_source( $rule, @files ) - This subroutine sets the dependency list for the given rule to + This subroutine sets the dependency list for the given rule to be the specified files. Files that are already in the list have - unchanged information. Files that were not in the list are + unchanged information. Files that were not in the list are added to it. Files in the previous dependency list that are not in the newly specified list of files are removed from the depen- dency list. @@ -5105,18 +5105,18 @@ LATEXMK(1) General Commands Manual LATEXMK(1) Run_subst( command_spec ) This subroutine runs the command specified by command_spec. The - specification is a string in the format listed in the section - "Format of Command Specifications". An important action of the + specification is a string in the format listed in the section + "Format of Command Specifications". An important action of the Run_subst is to make substitutions of placeholders, e.g., %S and - %D for source and destination files; these get substituted be- + %D for source and destination files; these get substituted be- fore the command is run. In addition, the command after substi- - tution is printed to the screen unless latexmk is running in + tution is printed to the screen unless latexmk is running in silent mode. Coordinated Setting of Commands for *latex To set all of $dvilualatex, $hilatex, $latex, $pdflatex, $lualatex, and - $xelatex to a common pattern, you can use one of the following subrou- + $xelatex to a common pattern, you can use one of the following subrou- tines, std_tex_cmds, alt_tex_cmds, and set_tex_cmds. To get the standard commands, use @@ -5124,26 +5124,26 @@ LATEXMK(1) General Commands Manual LATEXMK(1) &std_tex_cmds; This results in $latex = 'latex %O %S', and similarly for $dvilualatex, - $hilatex, $pdflatex, $lualatex, and $xelatex. Note the ampersand in - the invocation; this indicates to Perl that a subroutine is being - called. (The use of this subroutine enables you to override previous - redefinitions of the $latex, etc variables, which might have occurred + $hilatex, $pdflatex, $lualatex, and $xelatex. Note the ampersand in + the invocation; this indicates to Perl that a subroutine is being + called. (The use of this subroutine enables you to override previous + redefinitions of the $latex, etc variables, which might have occurred in an earlier-read rc file.) - To be able to use the string provided by the -pretex option (if any), + To be able to use the string provided by the -pretex option (if any), you can use &alt_tex_cmds; - This results in $latex = 'latex %O %P', etc. Again note the ampersand - in the invocation; this indicates to Perl that a subroutine is being + This results in $latex = 'latex %O %P', etc. Again note the ampersand + in the invocation; this indicates to Perl that a subroutine is being called. A more general way of specifying the variables is using - 10 January 2024 78 + 31 January 2024 78 @@ -5154,9 +5154,9 @@ LATEXMK(1) General Commands Manual LATEXMK(1) set_tex_cmds( 'CMD_SPEC' ); - Here CMD_SPEC is the command line without the program name. This re- - sults in $latex = 'latex CMD_SPEC', and similarly for $pdflatex, etc. - (An ampersand preceding the subroutine name is not necessary here, + Here CMD_SPEC is the command line without the program name. This re- + sults in $latex = 'latex CMD_SPEC', and similarly for $pdflatex, etc. + (An ampersand preceding the subroutine name is not necessary here, since the parentheses show Perl that a subroutine is being invoked.) An example that provides the --interaction=batchmode option to the *la- @@ -5164,52 +5164,52 @@ LATEXMK(1) General Commands Manual LATEXMK(1) set_tex_cmds( '--interaction=batchmode %O %S' ); - This results in $latex = 'latex --interaction=batchmode %O %S ', etc. - Note that when '%O' appears after the added option, as here, options + This results in $latex = 'latex --interaction=batchmode %O %S ', etc. + Note that when '%O' appears after the added option, as here, options provided on the command line to latexmk can override the supplied one. A more general command line can be set up by using the placeholder '%C' in CMD_SPEC. The '%C' is substituted by the basic name of the command, i.e., whichever of 'latex', 'pdflatex', etc is appropriate. (More than - one occurrence of '%C' is allowed.) For example to use the develop- + one occurrence of '%C' is allowed.) For example to use the develop- ment/pre-release versions of latex, etc, which have names, 'latex-dev', 'pdflatex-dev', etc, you could use set_tex_cmds( '%C-dev %O %S' ); This results in $latex = 'latex-dev %O %S', etc. (The pre-release pro- - grams latex-dev etc are provided in current distributions of TeXLive + grams latex-dev etc are provided in current distributions of TeXLive and MiKTeX.) Advanced configuration: Using latexmk with make - This section is targeted only at advanced users who use the make pro- + This section is targeted only at advanced users who use the make pro- gram for complex projects, as for software development, with the depen- dencies specified by a Makefile. - Now the basic task of latexmk is to run the appropriate programs to - make a viewable version of a LaTeX document. However, the usual make - program is not suited to this purpose for at least two reasons. First + Now the basic task of latexmk is to run the appropriate programs to + make a viewable version of a LaTeX document. However, the usual make + program is not suited to this purpose for at least two reasons. First is that the use of LaTeX involves circular dependencies (e.g., via .aux files), and these cannot be handled by the standard make program. Sec- - ond is that in a large document the set of source files can change - quite frequently, particularly with included graphics files; in this - situation keeping a Makefile manually updated is inappropriate and er- + ond is that in a large document the set of source files can change + quite frequently, particularly with included graphics files; in this + situation keeping a Makefile manually updated is inappropriate and er- ror-prone, especially when the dependencies can be determined automati- cally. Latexmk solves both of these problems robustly. - Thus for many standard LaTeX documents latexmk can be used by itself - without the make program. In a complex project it simply needs to be - suitably configured. A standard configuration would be to define cus- - tom dependencies to make graphics files from their source files (e.g., - as created by the xfig program). Custom dependencies are latexmk's + Thus for many standard LaTeX documents latexmk can be used by itself + without the make program. In a complex project it simply needs to be + suitably configured. A standard configuration would be to define cus- + tom dependencies to make graphics files from their source files (e.g., + as created by the xfig program). Custom dependencies are latexmk's equivalent of pattern rules in Makefiles. - Nevertheless there are projects for which a Makefile is appropriate, + Nevertheless there are projects for which a Makefile is appropriate, - 10 January 2024 79 + 31 January 2024 79 @@ -5220,13 +5220,13 @@ LATEXMK(1) General Commands Manual LATEXMK(1) and it is useful to know how to use latexmk from a Makefile. A typical example would be to generate documentation for a software project. Po- - tentially the interaction with the rest of the rules in the Makefile + tentially the interaction with the rest of the rules in the Makefile could be quite complicated, for example if some of the source files for a LaTeX document are generated by the project's software. In this section, I give a couple of examples of how latexmk can be use- - fully invoked from a Makefile. The examples use specific features of - current versions of GNU make, which is the default on both linux and + fully invoked from a Makefile. The examples use specific features of + current versions of GNU make, which is the default on both linux and OS-X systems. They may need modifications for other versions of make. The simplest method is simply to delegate all the relevant tasks to la- @@ -5238,33 +5238,33 @@ LATEXMK(1) General Commands Manual LATEXMK(1) %.pdf : %.tex FORCE_MAKE latexmk -pdf -dvi- -ps- $< - (Note: the last line must be introduced by a tab for the Makefile to - function correctly!) Naturally, if making try.pdf from its associated - LaTeX file try.tex were the only task to be performed, a direct use of - latexmk without a Makefile would normally be better. The benefit of - using a Makefile for a LaTeX document would be in a larger project, + (Note: the last line must be introduced by a tab for the Makefile to + function correctly!) Naturally, if making try.pdf from its associated + LaTeX file try.tex were the only task to be performed, a direct use of + latexmk without a Makefile would normally be better. The benefit of + using a Makefile for a LaTeX document would be in a larger project, where lines such as the above would be only be a small part of a larger Makefile. The above example has a pattern rule for making a .pdf file from a .tex - file, and it is defined to use latexmk in the obvious way. There is a + file, and it is defined to use latexmk in the obvious way. There is a conventional default target named "all", with a prerequisite of - try.pdf. So when make is invoked, by default it makes try.pdf. The - only complication is that there may be many source files beyond + try.pdf. So when make is invoked, by default it makes try.pdf. The + only complication is that there may be many source files beyond try.tex, but these aren't specified in the Makefile, so changes in them - will not by themselves cause latexmk to be invoked. Instead, the pat- - tern rule is equipped with a "phony" prerequisite FORCE_MAKE; this has - the effect of causing the rule to be always out-of-date, so that la- - texmk is always run. It is latexmk that decides whether any action is - needed, e.g., a rerun of pdflatex. Effectively the Makefile delegates - all decisions to latexmk, while make has no knowledge of the list of + will not by themselves cause latexmk to be invoked. Instead, the pat- + tern rule is equipped with a "phony" prerequisite FORCE_MAKE; this has + the effect of causing the rule to be always out-of-date, so that la- + texmk is always run. It is latexmk that decides whether any action is + needed, e.g., a rerun of pdflatex. Effectively the Makefile delegates + all decisions to latexmk, while make has no knowledge of the list of source files except for primary LaTeX file for the document. If there are, for example, graphics files to be made, these must be made by cus- tom dependencies configured in latexmk. - But something better is needed in more complicated situations, for ex- + But something better is needed in more complicated situations, for ex- ample, when the making of graphics files needs to be specified by rules - in the Makefile. To do this, one can use a Makefile like the follow- + in the Makefile. To do this, one can use a Makefile like the follow- ing: TARGETS = document1.pdf document2.pdf @@ -5275,7 +5275,7 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 80 + 31 January 2024 80 @@ -5295,53 +5295,53 @@ LATEXMK(1) General Commands Manual LATEXMK(1) %.pdf : %.fig fig2dev -Lpdf $< $@ - (Again, the lines containing the commands for the rules should be + (Again, the lines containing the commands for the rules should be started with tabs.) This example was inspired by how GNU automake han- dles automatic dependency tracking of C source files. - After each run of latexmk, dependency information is put in a file in - the .deps subdirectory. The Makefile causes these dependency files to + After each run of latexmk, dependency information is put in a file in + the .deps subdirectory. The Makefile causes these dependency files to be read by make, which now has the full dependency information for each - target .pdf file. To make things less trivial it is specificed that - two files document1.pdf and document2.pdf are the targets. The depen- + target .pdf file. To make things less trivial it is specificed that + two files document1.pdf and document2.pdf are the targets. The depen- dency files are .deps/document1.pdfP and .deps/document2.pdfP. - There is now no need for the phony prerequisite for the rule to make + There is now no need for the phony prerequisite for the rule to make .pdf files from .tex files. But I have added a rule to make .pdf files - from .fig files produced by the xfig program; these are commonly used - for graphics insertions in LaTeX documents. Latexmk is arranged to + from .fig files produced by the xfig program; these are commonly used + for graphics insertions in LaTeX documents. Latexmk is arranged to output a dependency file after each run. It is given the -recorder op- - tion, which improves its detection of files generated during a run of - pdflatex; such files should not be in the dependency list. The -e op- - tions are used to turn off all custom dependencies, and to document - this. Instead the -use-make is used to delegate the making of missing + tion, which improves its detection of files generated during a run of + pdflatex; such files should not be in the dependency list. The -e op- + tions are used to turn off all custom dependencies, and to document + this. Instead the -use-make is used to delegate the making of missing files to make itself. - Suppose in the LaTeX file there is a command \includegraphics{graph}, - and an xfig file "graph.fig" exists. On a first run, pdflatex reports - a missing file, named "graph". Latexmk succeeds in making "graph.pdf" + Suppose in the LaTeX file there is a command \includegraphics{graph}, + and an xfig file "graph.fig" exists. On a first run, pdflatex reports + a missing file, named "graph". Latexmk succeeds in making "graph.pdf" by calling "make graph.pdf", and after completion of its work, it lists "fig.pdf" among the dependents of the file latexmk is making. Then let - "fig.fig" be updated, and then let make be run. Make first remakes + "fig.fig" be updated, and then let make be run. Make first remakes "fig.pdf", and only then reruns latexmk. - Thus we now have a method by which all the subsidiary processing is + Thus we now have a method by which all the subsidiary processing is delegated to make. - Escaping of characters in dependency lists: There are certain special - characters that need to be escaped when names of files and directories - containing them appear in a dependency list used by a make program. + Escaping of characters in dependency lists: There are certain special + characters that need to be escaped when names of files and directories + containing them appear in a dependency list used by a make program. Generally, such special characters are best avoided. - By default, latexmk does no escaping of this kind, and the user will + By default, latexmk does no escaping of this kind, and the user will have to arrange to deal with the issue separately, if the relevant spe- - cial characters are used. Note that the rules for escaping depend on + cial characters are used. Note that the rules for escaping depend on which make program is used, and on its version. - 10 January 2024 81 + 31 January 2024 81 @@ -5350,20 +5350,20 @@ LATEXMK(1) General Commands Manual LATEXMK(1) LATEXMK(1) General Commands Manual LATEXMK(1) - One special case is of spaces, since those are particularly prevalent, - notably in standard choices of name for a user's home directory. So - latexmk does provide an option to escape spaces. See the option + One special case is of spaces, since those are particularly prevalent, + notably in standard choices of name for a user's home directory. So + latexmk does provide an option to escape spaces. See the option -deps_escape=... and the variable $deps_escape for details. NON_ASCII CHARACTERS IN FILENAMES, RC FILES, ETC Modern operating systems and file systems allow non-ASCII characters in - the names of files and directories that encompass the full Unicode + the names of files and directories that encompass the full Unicode range. Mostly, latexmk deals with these correctly. However, there are - some situations in which there are problems, notably on Microsoft Win- + some situations in which there are problems, notably on Microsoft Win- dows. Prior to version 4.77, latexmk had problems with non-ASCII file- - names on Windows, even though there were no corresponding problems on + names on Windows, even though there were no corresponding problems on macOS and Linux. These problems are corrected in the present version. DETAILS TO BE FILLED IN @@ -5376,38 +5376,38 @@ SEE ALSO BUGS (SELECTED) Sometimes a viewer (gv) tries to read an updated .ps or .pdf file after - its creation is started but before the file is complete. Work around: + its creation is started but before the file is complete. Work around: manually refresh (or reopen) display. Or use one of the other preview- ers and update methods. - (The following isn't really a bug, but concerns features of preview- - ers.) Preview continuous mode only works perfectly with certain pre- - viewers: Xdvi on UNIX/Linux works for dvi files. Gv on UNIX/Linux - works for both postscript and pdf. Ghostview on UNIX/Linux needs a - manual update (reopen); it views postscript and pdf. Gsview under MS- - Windows works for both postscript and pdf, but only reads the updated - file when its screen is refreshed. Acroread under UNIX/Linux views - pdf, but the file needs to be closed and reopened to view an updated - version. Under MS-Windows, acroread locks its input file and so the - pdf file cannot be updated. (Remedy: configure latexmk to use suma- + (The following isn't really a bug, but concerns features of preview- + ers.) Preview continuous mode only works perfectly with certain pre- + viewers: Xdvi on UNIX/Linux works for dvi files. Gv on UNIX/Linux + works for both postscript and pdf. Ghostview on UNIX/Linux needs a + manual update (reopen); it views postscript and pdf. Gsview under MS- + Windows works for both postscript and pdf, but only reads the updated + file when its screen is refreshed. Acroread under UNIX/Linux views + pdf, but the file needs to be closed and reopened to view an updated + version. Under MS-Windows, acroread locks its input file and so the + pdf file cannot be updated. (Remedy: configure latexmk to use suma- trapdf instead.) THANKS TO - Authors of previous versions. Many users with their feedback, and es- + Authors of previous versions. Many users with their feedback, and es- pecially David Coppit (username david at node coppit.org) who made many - useful suggestions that contributed to version 3, and Herbert Schulz. - (Please note that the e-mail addresses are not written in their stan- + useful suggestions that contributed to version 3, and Herbert Schulz. + (Please note that the e-mail addresses are not written in their stan- dard form to avoid being harvested too easily.) AUTHOR - Current version, by John Collins (Version 4.82a). Report bugs etc to + Current version, by John Collins (Version 4.83). Report bugs etc to his e-mail (jcc8 at psu.edu). - Released version can be obtained from CTAN: + Released version can be obtained from CTAN: - 10 January 2024 82 + 31 January 2024 82 @@ -5416,7 +5416,7 @@ AUTHOR LATEXMK(1) General Commands Manual LATEXMK(1) - , and from the author's website + , and from the author's website . Modifications and enhancements by Evan McLean (Version 2.0) Original script called "go" by David J. Musliner (RCS Version 3.2) @@ -5473,6 +5473,6 @@ LATEXMK(1) General Commands Manual LATEXMK(1) - 10 January 2024 83 + 31 January 2024 83 diff --git a/support/splint/INSTALL b/support/splint/INSTALL index 033877aba0..a8a1634b55 100644 --- a/support/splint/INSTALL +++ b/support/splint/INSTALL @@ -1,4 +1,4 @@ -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2024, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify @@ -40,7 +40,13 @@ compiled and used. For this purpose, make variables BISON_ROOT and FLEX_ROOT can be set to the appropriate locations in makefile.loc. The appropriate versions of bison and flex can be downloaded from http://ftp.gnu.org/gnu/bison/ and http://flex.sourceforge.net/, -respectively. The installation instructions in those packages are easy +respectively. Due to the changes in glibc, the bison that comes with the +distribution (bison-2.7) needs to be patched first. Uncompress the archive +(bison-2.7.tar.gz) in some directory, copy bison_patch1 to it and run + + # patch -p0 < bison_patch1 + +The installation instructions in those packages are easy to follow (the standard ./configure --prefix= &&\ make && cp src/bison && cp -a data/* \ /share/bison should work). diff --git a/support/splint/Makefile b/support/splint/Makefile index b7f0269350..e122cfb363 100644 --- a/support/splint/Makefile +++ b/support/splint/Makefile @@ -1,4 +1,4 @@ -# Copyright 2012-2020, Alexander Shibakov +# Copyright 2012-2024, Alexander Shibakov # This file is part of SPLinT # # SPLinT is free software: you can redistribute it and/or modify @@ -13,11 +13,16 @@ # # You should have received a copy of the GNU General Public License # along with SPLinT. If not, see . +SPLINT_EXAMPLES_BASE = expression ld +SPLINT_EXAMPLES_EXTRA = symbols xxpression +SPLINT_EXAMPLE_OTHER = $(if $BISON_IS_CRIPPLED,,$SPLINT_EXAMPLES_EXTRA) -SPLINT_EXAMPLE_OTHER = $(if $BISON_IS_CRIPPLED,,symbols xxpression) +SPLINT_EXAMPLES_DIRS = ${SPLINT_EXAMPLES_BASE} ${SPLINT_EXAMPLE_OTHER} +SPLINT_EXAMPLES_DIRS_ALL = ${SPLINT_EXAMPLES_BASE} ${SPLINT_EXAMPLES_EXTRA} -SPLINT_EXAMPLES_DIRS = expression ld ${SPLINT_EXAMPLE_OTHER} -SPLINT_EXAMPLES_DIRS_ALL = expression ld symbols xxpression +# the install directory; should be replaced by the appropriate local directory +# in makefile.loc +SPLINT_INSTALL_DIR = /tmp DO_SUBMAKE = for dir in ${SPLINT_EXAMPLES_DIRS}; do cd ${SPLINT_ROOT}examples/$$dir && ${MAKE} $(1); done CLEAN_SUBMAKE = for dir in ${SPLINT_EXAMPLES_DIRS_ALL}; do cd ${SPLINT_ROOT}examples/$$dir && ${MAKE} $(1); done @@ -31,12 +36,28 @@ lists: tex/*.sty perl scripts/cslist.pl $^ > cseqs.lst manual: - cd ${SPLINT_ROOT}cweb && ${MAKE} splint.pdf + cd ${SPLINT_ROOT}cweb && ${MAKE} docs docs: - cd ${SPLINT_ROOT}cweb && ${MAKE} splint.pdf && ${MAKE} ssffo.pdf + cd ${SPLINT_ROOT}cweb && ${MAKE} docs $(call DO_SUBMAKE,docs) +# install a stand alone version of all the parsers in the package + +install: all + @cp ${SPLINT_ROOT}tex/*.sty ${SPLINT_INSTALL_DIR}/tex/ + @cp ${SPLINT_ROOT}cweb/*.tok ${SPLINT_INSTALL_DIR}/cweb/ + @cp -a ${SPLINT_ROOT}other/ ${SPLINT_INSTALL_DIR}/other/ + @cp ${SPLINT_XPTABLES} ${SPLINT_INSTALL_DIR}/cweb/ + @cp ${SPLINT_XLTABLES} ${SPLINT_INSTALL_DIR}/cweb/ + @cd ${SPLINT_ROOT}examples/ld && ${MAKE} install + +uninstall: + @cd ${SPLINT_ROOT}examples/ld && ${MAKE} uninstall + @rm -f ${SPLINT_INSTALL_DIR}/tex/* + @rm -f ${SPLINT_INSTALL_DIR}/cweb/* + @rm -rf ${SPLINT_INSTALL_DIR}/other/texmf/ + # clean will erase all automatically generated files in the current directory clean: clean_core diff --git a/support/splint/README b/support/splint/README index 9665ca2e7c..56e01e55d4 100644 --- a/support/splint/README +++ b/support/splint/README @@ -1,6 +1,6 @@ To make the licensing part clear, SPLinT is GPL v.~3: -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2022, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify @@ -38,7 +38,6 @@ cweb/* - executables and documentation: fo.w - parser for the flex grammar so.w - lexer for the flex grammar np.w - scanner and parser for token names - ssffo.w - lexer for state grabbing mkeparser.w - parser output `driver' mkscanner.w - lexer output `driver' splint.w - documentation @@ -51,7 +50,7 @@ tex/* - \TeX\ macros xarithm.sty - expandable arithmetic for parsing macros grabstates.sty - macros for state grabbing *tokenset.sty - token typesetting definitions - gindex.sty -generic indexing macros + gindex.sty - generic indexing macros dcols.sty - multiple column output noweb.sty - noweb style references (local within a page) limbo.sty - limbo section macros @@ -85,4 +84,4 @@ VERSION - the current version The most recent version of this software can be downloaded at - math.tntech.edu/alex/splint.tar.bz2 + www.shibakov.org/splint/archive/splint.tar.bz2 diff --git a/support/splint/TODO b/support/splint/TODO index 95e44e9459..ad8473cb6d 100644 --- a/support/splint/TODO +++ b/support/splint/TODO @@ -4,22 +4,32 @@ o Typo and style fixes ... sometime in the future -o Change generic macro names (such as \table, \symstream, etc) to something more specific +* Add an `install_macros' (or the like) to makefile.loc to automate macro installation + for the parser generated by this package (the parsers and lexers are not separated + into different directories, the new targets are `install' and `uninstall') +* Fix the double column output macros to correctly process the \mark commands (every time + an output routine runs it resets the \topmark; this needs to be corrected) +* Change generic macro names (such as \table) to something more specific (\table will stay + but most macro names are unique enough) +* Add a macro to index arbitrary strings in an arbitrary domain (store the string in a + global array and pass the pointer to the indexing macros) +* Reimplement the action for the bison parser using lists * Add \bgrulealign and \egrulealign macros to align rules across sections (a simple way to implement this is given as an example in the included package, a more flexible method would have to wait) * Rewrite yytexlex.sty for better \TeX\ pretty printing macros (* the new macros are still not ideal but are very unlikely to change in the near future) - o Change the name of the namespace (currently 'index') used by the \TeXx macros to avoid - confusion with the special '[index]' namespace used by the parser for inserted symbols - (like an empty right hand side and implicit terms) + * Change the name of the namespace (currently `index') used by the \TeXx macros to avoid + confusion with the special `[index]' namespace used by the parser for inserted symbols + (like an empty right hand side and implicit terms) (`index' has been changed to `index:tex') o Develop a 'loose' parsing scheme for \TeX\ macros by requiring some macros to follow stricter rules * Rewrite limbo.sty to provide a more logical structure (* several changes have been implemented) * Add indexing features to \TeXx macros (* there is a mechanism to do this) +o Optimize \yyinput to minimize expansion in the most common cases o Change CWEB macros so that \pdfoutput=0 does not cause conflicts (this is a bug in cwebmac.tex) -o Change the support for named references so that the driver generates references while outputting - the 'action switch' (using code like stack_depth = $$ - $[name]) +* Change the support for named references so that the driver generates references while outputting + the 'action switch' (using code like stack_depth = $$ - $[name];* done using `lazy' postprocessing) ... very remote future diff --git a/support/splint/VERSION b/support/splint/VERSION index 9084fa2f71..f0bb29e763 100644 --- a/support/splint/VERSION +++ b/support/splint/VERSION @@ -1 +1 @@ -1.1.0 +1.3.0 diff --git a/support/splint/cweb/Makefile b/support/splint/cweb/Makefile index 1c3b4d6bc3..f80b6b5886 100644 --- a/support/splint/cweb/Makefile +++ b/support/splint/cweb/Makefile @@ -1,4 +1,4 @@ -# Copyright 2012-2020, Alexander Shibakov +# Copyright 2012-2024, Alexander Shibakov # This file is part of SPLinT # # SPLinT is free software: you can redistribute it and/or modify @@ -13,17 +13,30 @@ # # You should have received a copy of the GNU General Public License # along with SPLinT. If not, see . +docs: splint.pdf include ../makefile.inc -all: ${SPLINT_PTABLES} ${SPLINT_LTABLES} +tables: ${SPLINT_PTABLES} ${SPLINT_LTABLES} -b%out: mkeparser.c b%.c - ${CC} ${BISON_STATE} -DPARSER_FILE=\"$(lastword $^)\" -DYYPARSE_PARAMETERS= -o $@ $< +bdout bbout bgout \ +bfout:b%out: mkeparser.c b%.c + ${CC} ${BISON_STATE} -DPARSER_FILE=\"$(lastword $^)\" -DYYPARSE_PARAMETERS= -o $@ $< -b%.yy: bo.x +bd.yy bg.yy \ +bb.yy bf.yy:b%.yy: bo.u bo.m ${CTANGLE} $< +bd.yx bg.yx \ +bb.yx bf.yx:%.yx: %.yy + ${BRACK} --replace-only --bison-link=bo.m $*.yy $*.yx + +bd.y bg.y \ +bb.y bf.y:%.y: %.yx + cp -f $^ $@ + +byytab.tex gyytab.tex \ +dyytab.tex fyytab.tex:\ %yytab.tex: b%out ${SPLINT_DRIVER_DIR}/$< --optimize-actions $@ @@ -33,15 +46,13 @@ ltab.tex: ltout ltout: mkscanner.c lo_states.h lo.c ${CC} -DLEXER_FILE=\"$(lastword $^)\" -o $@ $< -ssffo.ll lo.ll: \ -%.ll: %.x +lo.ll: %.ll: %.x ${CTANGLE} $< && rm $(patsubst %.x, %.c, $^) fil.ll: so.x ${CTANGLE} $< && rm $(patsubst %.x, %.c, $^) -fip.yy rep.yy rap.yy \ -ddp.yy: fo.x +fip.yy rep.yy rap.yy ddp.yy: fo.x ${CTANGLE} $< && rm $(patsubst %.x, %.c, $^) # flex parser @@ -52,19 +63,21 @@ fil.c: fil.l fil_out: mkscanner.c fil_states.h fil.c ${CC} -DLEXER_FILE=\"$(lastword $^)\" -o $@ $< -fil_states.h: so.tex lstab.tex byytab.tex - ${PDFTEX} $< - filtab.tex: fil_out ${SPLINT_DRIVER_DIR}/$< --optimize-actions --optimize-tables $@ -fip.c rep.c rap.c \ -ddp.c:%.c: %.y +# state parsing for the \flex\ input scanner + +fil_states.h: so.tex ssfstab.tex ddptab.tex ${SPLINT_ROOT}tex/grabstates.sty + @echo "Generating state list for the flex lexer ..." + @${PDFTEX} $< + +fip.c rep.c rap.c ddp.c:%.c: %.y ${BISON} -o $@ $< fip_out rap_out \ -ddp_out rep_out:%_out: mkeparser.c %.c - ${CC} ${BISON_STATE} -DPARSER_FILE=\"$(lastword $^)\" -DYYPARSE_PARAMETERS= -o $@ $< +ddp_out rep_out:%_out: mkeparser.c %.c + ${CC} ${BISON_STATE} -DPARSER_FILE=\"$(lastword $^)\" -DYYPARSE_PARAMETERS= -o $@ $< fiptab.tex raptab.tex \ ddptab.tex reptab.tex:%tab.tex: %_out @@ -74,10 +87,11 @@ so.tex: so.x ${CWEAVE} $< fo.tex: fo.x - ${CWEAVE} $< + -${CWEAVE} $< -fo.tok: fo.tex ltab.tex byytab.tex - ${TEX} ${MODEBOOTSTRAP} \\input $< +fo.tok: fo.tex ltab.tex dyytab.tex bo.tok + @echo "Generating token equivalences for flex input parser ..." + @${TEX} ${MODEBOOTSTRAP} \\input $< lo.c: lo.l ${FLEX} -o $@ $< @@ -86,10 +100,24 @@ mkscanner.c mkeparser.c: \ %.c: %.w ${CTANGLE} $< +# bootstrap flex parser + +ssfs.ll: so.x + ${CTANGLE} $< && rm $(patsubst %.x, %.c, $^) + +ssfs.c: ssfs.l + ${FLEX} -o $@ $< + +ssfs_out: mkscanner.c ssfs.c + ${CC} -DLEXER_FILE=\"$(lastword $^)\" -o $@ $< + +ssfstab.tex: ssfs_out + ${SPLINT_DRIVER_DIR}/$< --optimize-actions --optimize-tables $@ + # name parser -smallp_out: mkeparser.c small_parser.c - ${CC} ${BISON_STATE} -DPARSER_FILE=\"$(lastword $^)\" -DYYPARSE_PARAMETERS= -o $@ $< +smallp_out: mkeparser.c small_parser.c + ${CC} ${BISON_STATE} -DPARSER_FILE=\"$(lastword $^)\" -DYYPARSE_PARAMETERS= -o $@ $< smalll_out: mkscanner.c small_lexer.c ${CC} -DLEXER_FILE=\"$(lastword $^)\" -o $@ $< @@ -105,71 +133,56 @@ small_lexer.ll: np.x @${CTANGLE} $< bo.tex: bo.x - -${CWEAVE} -x $< + -${CWEAVE} -x $< 1>/dev/null splint.tex \ splint.idx \ splint.scn: splint.x bo.x lo.x fo.x so.x np.x common.w bs.w \ fk.w philosophy.w checklists.w references.w alphas.hx - -${CWEAVE} $< + -${CWEAVE} $< 1>/dev/null alphas.hx: - ${MISCCW} --alpha-list --alpha-length=1 $@ - -ssffo.tex \ -ssffo.idx ssffo.scn: ssffo.x - ${CWEAVE} $< + @${MISCCW} --alpha-list --alpha-length=1 $@ bo.tok: bo.tex ltab.tex byytab.tex - ${TEX} ${MODEBOOTSTRAP} \\input $< - -ssffo.pdf: %.pdf: ${SPLINT_DOC_PREREQS_XREF} - ${PDFTEX} $*.tex - -ssffo.dvi: %.dvi: ${SPLINT_DOC_PREREQS_XREF} - ${TEX} $*.tex + @echo "Making token equivalence tables for the bison parser ..." + @${TEX} ${MODEBOOTSTRAP} \\input $< #1>/dev/null -splint.gdx: %.gdx: ${SPLINT_DOC_PREREQS_XREF} +splint.gdx splint.aux: ${SPLINT_DOC_PREREQS_XREF} @echo "Making the bison and TeX indices ..." - ${PDFTEX} $*.tex + @${PDFTEX} splint.tex #1>/dev/null + +# remove the implicit rule before building the main index %.gdy: %.gdx splint.gdy: splint.gdx ${BINDX} --fine $^ $@ -splint.xxr: %.xxr: ${SPLINT_DOC_PREREQS_XREF} - @echo "Generating the cross references ..." - ${PDFTEX} $*.tex - -splint.pdf: %.pdf: ${SPLINT_DOC_PREREQS_XREF} %.gdy %.xxr - ${PDFTEX} \\input $*.tex && touch $*.gdy && touch $*.pdf +splint.pdf: %.pdf: ${SPLINT_DOC_PREREQS_XREF} %.gdy %.aux + @echo "Generating SPLinT documentation (splint.pdf) ..." + while test "`diff --new-file splint.pdf /tmp/splint.pdf`"; do \ + echo "Files differ" && mv splint.pdf /tmp/; \ + ${PDFTEX} \\input $*.tex && touch $*.gdy && touch $*.pdf; \ + done splint.dvi: %.dvi: ${SPLINT_DOC_PREREQS_XREF} %.gdy - ${TEX} $*.tex && touch $*.gdy && touch $*.dvi && rm $*.xxr && rm $*.ftn - -${SPLINT_ROOT}tex/btokenset.sty: # stupid make weirdness - @ + @${TEX} $*.tex && touch $*.gdy && touch $*.dvi && rm $*.ftn # state parsing -lstabout: mkscanner.c ssffo.c - ${CC} -DLEXER_FILE=\"$(lastword $^)\" -o $@ $< - -lstab.tex: lstabout - ${SPLINT_DRIVER_DIR}/$< --optimize-actions $@ - lo.tex: lo.x ${CWEAVE} $< -lo_states.h: lo.tex lstab.tex byytab.tex - ${PDFTEX} $< +lo_states.h: lo.tex ssfstab.tex ddptab.tex ${SPLINT_ROOT}tex/grabstates.sty + @echo "Generating state list for the bison lexer ..." + @${PDFTEX} $< # clean will erase all automatically generated files in the current directory clean: clean_core - -rm -f ctablesout b?out ltout smallp_out \ - smalll_out lstabout fil_out fip_out rep_out rap_out ddp_out + -rm -f ctablesout b?out ltout smallp_out /tmp/splint.pdf \ + smalll_out ssfs_out fil_out fip_out rep_out rap_out ddp_out include ${SPLINT_ROOT}makefile.loc @@ -178,9 +191,9 @@ include ${SPLINT_ROOT}makefile.loc # of bo.tok, lo.tex, eventually leading to remaking of splint.pdf; # the special target below tells make to treat bg.yy as if it were not an intermediate file -.PRECIOUS: %.yy bo.tok fo.tok %.ll b%.y splint.gdx splint.xxr +.PRECIOUS: %.yy bo.tok fo.tok %.ll b%.y splint.gdx # the files below appear as targets but are really intermediaries for other files -.INTERMEDIATE: smallp_out smalll_out lstabout ltout fil_out \ +.INTERMEDIATE: smallp_out smalll_out ssfs_out ltout fil_out \ fip_out rep_out rap_out ddp_out splint.gdx diff --git a/support/splint/cweb/bo.w b/support/splint/cweb/bo.w index fe7bf59f52..630602559e 100644 --- a/support/splint/cweb/bo.w +++ b/support/splint/cweb/bo.w @@ -1,4 +1,4 @@ -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2024, Alexander Shibakov % Copyright 2002-2014 Free Software Foundation, Inc. % This file is part of SPLinT % @@ -24,6 +24,20 @@ \fi @**The \eatone{bison}\bison\ parser stack. +{% +\newdimen\halfhsize +\newdimen\preskip +\halfhsize=\hsize +\divide\halfhsize by2 +\def\mypar{% +\parshape 6 +0pt \hsize +0pt \hsize +0pt \hsize +0pt \hsize +0pt \hsize +\halfhsize \halfhsize +}% The input language for \bison\ loosely follows the {\sc BNF} notation, with a few enhancements, such as the syntax for {\em actions}, to implement the syntax-directed translation@^syntax-directed translation@>, as @@ -33,8 +47,8 @@ On the one hand, the language is relatively easy to handle, is nearly whitespace agnostic, on the other, a primitive parser is required for some basic setup even at a very early stage, so the design must be carefully thought out. This {\em -bootstrapping\/}@^bootstrapping@> step is discussed in more details -later on. +bootstrapping\/}@^bootstrapping@> step is discussed in more detail +further down. The path chosen here is by no means optimal. What it lacks in efficiency, though, it may amply gain in practicality, as we reuse the @@ -47,13 +61,13 @@ As was described in the stacks \endlink\fi@^parser stack@> above, to pretty print a variety of grammar fragments, one may employ a {\em parser stack\/} derived from the original grammar. The most -natural and common unit of a \bison\ grammar is a set of +common unit of a \bison\ grammar is a set of productions. It is thus natural to begin our discussion of the parsers in the \bison\ stack with the parser responsible for processing individual rules. -One should note that the productions below are not concerned with the -typesetting of the grammar. Instead this task is delegated to the +One should note that the productions below are not directly concerned with the +typesetting of the grammar. Instead, this task is delegated to the macros in \.{yyunion.sty} and its companions. The first pass of the parser merely constructs an `executable abstract syntax tree' (or \EAST\footnote{One may argue that \EAST\ is still merely a syntactic @@ -61,7 +75,11 @@ construct requiring a proper macro framework for its execution and should be called a `weak executable syntax tree' or \WEST. This acronym extravagnza is heading south so we shall stop here.}) which can serve very diverse purposes: from collecting token declarations in -the boostrapping pass to typesetting the grammar rules. +the boostrapping pass to typesetting the grammar rules. This allows for a +great deal of flexibility in where and when the parsing results are +used. A clear divide between the parsing step and the typesetting step +provides for better debugging facilities, as well as more reliable +macro design. It would be impossible to completely avoid the question of the visual presentation of the \bison\ input, however. It has already been @@ -72,14 +90,23 @@ variety of typographic devices that take advantage of the meaningful positioning of text on the page: skips, indents, etc. Therefore, the macros for \bison\ pretty printing trade a number of \bison\ syntax elements (such as \.{\yl}, \.{;}, action braces, etc.) for the careful -placement of each fragment of the input on the page. +placement of each fragment of the input on the page. The syntax tree +generated by the parsers in the \bison\ stack is not fully {\em faithful\/} in +that it does not preserve every syntactic element from the original input. +Thus, e.g.\ optional semicolons (\prodstyle{semi.opt}) never find their way into +the tree and their original position is lost\footnote{The opposite is true about +the {\em whitespace\/} the parser sees (or {\em stash\/} as it is called +in this document): all of it is carefully packaged into streams, as was described +\locallink{parser.streams}earlier\endlink.}. Let's take a short break for a broad overview of the input file. The basic structure is that of an ordinary \bison\ file that produces plain \Cee\ output. The \Cee\ actions, however, are programmed to output \TeX. The \bison\ sections (separated by \.{\%\%} (shown (pretty printed) as \prodstyle{\%\%} below)) appear between the successive dotted lines. - +A number of sections are empty, since the generated \Cee\ is rather trivial. +}% +%\checktabletrue @(bg.yy@>= @G Switch to generic mode. %{@> @ @=%} @@ -94,11 +121,13 @@ as \prodstyle{\%\%} below)) appear between the successive dotted lines. %% @g -@ Bootstrap\namedspot{bootstrapping}@^bootstrapping@> mode is next. -The reason for a separate bootstrap parser is to -collect the minimal amount of information to `spool up' the `production' -parsers. To understand the mechanics and the reasons behind it, consider what happens -following a declaration such as \.{\%token TOKEN "token"} +@*1 Bootstrapping. +%\checktablefalse +Bootstrap\namedspot{bootstrapping}@^bootstrapping@> parser is +defined next. The purpose of the bootstrapping parser is to +collect a minimal amount of information to `spool up' the `production' +parsers. To understand its inner workings and the reasons behind it, +consider what happens following a declaration such as \.{\%token TOKEN "token"} (or, as it would be typeset by the macros in this package `\prodstyle{\%token} \.{TOKEN} \.{token}'; see the index entries for more details)% @@ -119,8 +148,8 @@ equivalences or find some other means to find out the numerical values of the tokens. One approach is to parse the file containing the {\it declarations\/} -and extract the equivalences between the names from it. This is the -function of the bootstrap parser. Since the lexer is reused, some +and extract the equivalences between the names from it. This is +precisely the function of the bootstrap parser. Since the lexer is reused, some token values need to be known in advance (and the rest either ignored or replaced by some `made up' values). These tokens are `hard coded' into the parser file generated by \bison\ and output using a special @@ -145,25 +174,43 @@ which it would need a parser for a subset of \bison\ syntax $\ldots$ it is a genuine `chicken and egg' problem). Hence the need for `bootstrap'. Once a functional parser for a large enough subset of the \bison\ input grammar is operational, {\it it\/} can be used to pair -up the token names. - -The second function of the bootstrap parser is to collect information -about the scanner's states. The mechanism is slightly different for -states. While the token equivalences are collected purely in -`\TeX\ mode', the bootstrap parser collects all the state names into a +up the token names. The bootstrap parser is not strictly minimal in that +it is also capable of parsing the \prodstyle{\%nterm} declarations. +This ability is not utilized by the parsers in \splint, however (nor +is the accompanying bootstrap lexer designed to output the +\prodstyle{\%nterm} tokens), and was added for the scenarios other +than bootstrapping. + +The second, perhaps even more important function of the bootstrap process +is to collect information about the scanner's states. The mechanism +is slightly different from that for token definition gathering. +While the token equivalences are collected purely in +`\TeX\ mode', the bootstrap mode parser collects all the state names into a special \Cee\ header file. The reason is simple: unlike the token values, the numerical values of the scanner states are not passed to -the `driver' program in any data structure and are instead defined as -ordinary macros. The header file is the information the `driver' file -needs to output the state values. - -An additional subtlety in the case of the state value output is that the -main lexer for the \bison\ grammar utilizes states extensively and thus -cannot be easily used with the bootstrap parser before the state -values are known. The solution is to substitute a very simple scanner barely -capable of lexing state declarations. Such a scanner is implemented -in \.{ssffo.w} (the somewhat cryptic name stands for `{\bf s}imple {\bf s}canner -{\bf f}or {\bf f}lex {\bf o}ptions'). +the `driver' program in any data structure (the |yytname| array) and are instead defined as +ordinary (\Cee) macros. The header file is the information the `driver' file +needs to output the state values for the use by the lexer. + +Naturally, to accomplish their task, the lexer and the parser emplyed in +state gathering need the state and token information, as well. Fortunately, +the parser is a subset of the \flex\ input parser that does not define +any `string' names for it tokens. Similarly, the lexer collects all the necessary +tokens in the \flexsnstyle{INITIAL} state\footnote{An additional subtlety is +the necessity to gracefully handle (and, in some cases, cause) the multiple +possible {\em failures\/} for which the lexer redefines \inlineTeXx{/yyBEGIN}\ +to fail immediately when attempting to switch states. Note that the bootstrap +mode parser looks at sections other than those where the declarations reside +and must fail quickly and quietly in such cases.}. + +To reiterate a point made in the middle of this section, the bootstrapping +process described here is necessary to `spool up' the \bison\ and \flex\ input parsers. +A simpler procedure may be followed while designing other custom parsers where +the programmer uses, say the full \bison\ parser to collect information about +the token equivalences (whether such information is needed to make the parser operational +or just to facilitate the typesetting of the token names). By adding custom +`bootstrapping' macros to the ones defined in \.{yyunion.sty}, a number of different +preprocessing tasks can be accomplished. @(bb.yy@>= @G Switch to generic mode. %{ @@ -177,13 +224,11 @@ in \.{ssffo.w} (the somewhat cryptic name stands for `{\bf s}imple {\bf s}canner %% @> @ @= @> @ @= - @> @<\flex\ options parser productions@> @= - @> @ @= - @> @ @= %% @g -@ The prologue parser is responsible for parsing various grammar +@*1 Prologue and full parsers. +The prologue parser is responsible for parsing various grammar declarations as well as parser options. @(bd.yy@>= @G Switch to generic mode. @@ -201,7 +246,12 @@ declarations as well as parser options. @ The full \bison\ input parser is used when a complete \bison\ file is expected. It is also capable of parsing a `skeleton' of such a file, -similar to the one that follows this paragraph. +similar to the one that follows this paragraph. As a stopgap measure, +the skeleton of a \flex\ scanner is also parsed by this parser, as they have +an almost identical structure. This is not a perfect arrangement, however, since +it precludes one from putting the constructs that this parser does not +recognize into the outline. To give an example, one cannot put \flex\ specific +options into such `skeleton'. @(bf.yy@>= @G Switch to generic mode. %{@> @ @=%} @@ -227,7 +277,7 @@ parsing algorithm to be used (provided the supplied grammar is in the appropriate class): {\sc LALR}($n$), {\sc LR}($n$), {\sc GLR}, etc. The default is to use the {\sc LALR}($1$) algorithm (with the corresponding assumption about the grammar) which can also be set -explicitly by putting +explicitly by putting\gtextidx{\bison\ options example}{bison options example}{\bisonidxdomain}% \medskip \beginprod \%define lr.type canonical-lr @@ -259,7 +309,6 @@ special bootstrapping parser as explained earlier. \iffalse \checktrailingstashtrue % see what is left at the end \checktabletrue % display the table - \let\stashnext\stashnextwithnothing % collect the stash expanded \fi @= @G @@ -289,7 +338,6 @@ the original parser. \iffalse \checktrailingstashfalse \checktablefalse - \let\stashnext\stashnextwithnothingnx \fi @= @G @@ -339,17 +387,6 @@ the original parser. %token PERCENT_PARAM "%param"; @g -@ \namedspot{flex.options}Extra tokens for typesetting \flex\ state -declarations and options are declared in addition to the ones that a -standard \bison\ parser recognizes. This extension of the original -grammar has become unnecessary with the addition of the \flex\ input -parser(s) but is left as part of the extended grammar for convenience and -`historical' reasons. -@= -@G -%token FLEX_OPTION FLEX_STATE_X FLEX_STATE_S -@g - @*1 Grammar productions. We are ready to describe the top levels of the parse tree. The first `sub parser' we consider is a `full' parser, that is the parser that @@ -373,10 +410,15 @@ parser on the stack. @t}\vb{\inline}{@> input: prologue_declarations - "%%" grammar epilogue.opt {@> TeX_( "/getsecond{/yy(3)}/to/table" ); @=} + "%%" grammar epilogue.opt {@> @ @=} ; @g +@ @= + @[TeX_( "/finishlist{/expandafter/yyfirstoftwo/the/yy(3)}" );@]@; /* complete the list */ + @[TeX_( "/table/expandafter{/romannumeral0" );@]@; + @[TeX_( " /executelistat{/expandafter/yyfirstoftwo/the/yy(3)}{0}}" );@]@; + @ Another subgrammar deals with the syntax of isolated \bison\ rules. This is the most commonly used `subparser' since a rules cluster is the most natural `unit' to include in a \CWEB\ file. @@ -384,10 +426,15 @@ natural `unit' to include in a \CWEB\ file. @G @t}\vb{\inline}{@> input: - grammar epilogue.opt {@> TeX_( "/getsecond{/yy(1)}/to/table" ); @=} + grammar epilogue.opt {@> @ @=} ; @g +@ @= + @[TeX_( "/finishlist{/expandafter/yyfirstoftwo/the/yy(1)}" );@]@; /* complete the list */ + @[TeX_( "/table/expandafter{/romannumeral0" );@]@; + @[TeX_( " /executelistat{/expandafter/yyfirstoftwo/the/yy(1)}{0}}" );@]@; + @ The bootstrap parser has a very narrow set of goals: it is concerned with \prodstyle{\%token} declarations only in order to supply the token information to the lexer (since, as noted @@ -395,7 +442,7 @@ above, such information is not kept in the |yytname| array). The parser can also parse \prodstyle{\%nterm} declarations but the bootstrap lexer ignores the \prodstyle{\%nterm} token, since the \bison\ grammar does not use one. -It also extends the syntax of a \prodstyle{grammar\_declaration} by allowing a +It also extends the syntax of a \prodstyle{grammar_declaration} by allowing a declaration with or without a semicolon at the end (the latter is only allowed in the prologue). This works since the token declarations have been carefully separated from the rest of the grammar in different @@ -410,11 +457,8 @@ input: @t}\vb{\resetf}{@> grammar_declarations: symbol_declaration semi.opt {@> @ @=} -| flex_declaration semi.opt {@> @ @=} | grammar_declarations symbol_declaration semi.opt {@> TeX_( "/yy0{/the/yy(1)/the/yy(2)}" ); @=} -| grammar_declarations - flex_declaration semi.opt {@> TeX_( "/yy0{/the/yy(1)/the/yy(2)}" ); @=} ; @t}\vb{\inline\flatten}{@> semi.opt: {} | ";" {}; @@ -429,35 +473,42 @@ is undocumented so we supply an explicit action in each case. @ Next comes a subgrammar for processing prologue declarations. Finer differentiation is possible but the `subparsers' described here work pretty well and impose a mild style on the grammar writer. Note that -these roles are not part of the official \bison\ input grammar and are +these rules are not part of the official \bison\ input grammar and are added to make the typesetting of `file outlines' (e.g.~|@(bb.yy@>| above) possible. @= @G @t}\vb{\inline}{@> input: - prologue_declarations epilogue.opt {@> TeX_( "/getsecond{/yy(1)}/to/table" ); @=} + prologue_declarations epilogue.opt {@> @ @=} | prologue_declarations - "%%" "%%" EPILOGUE {@> TeX_( "/getsecond{/yy(1)}/to/table" ); @=} + "%%" "%%" EPILOGUE {@> @ @=} | prologue_declarations - "%%" "%%" {@> TeX_( "/getsecond{/yy(1)}/to/table" ); @=} + "%%" "%%" {@> @ @=} ; @g +@ @= + @[TeX_( "/finishlist{/expandafter/yyfirstoftwo/the/yy(1)}" );@]@; /* complete the list */ + @[TeX_( "/table/expandafter{/romannumeral0" );@]@; + @[TeX_( " /executelistat{/expandafter/yyfirstoftwo/the/yy(1)}{0}}" );@]@; + @ {\it Declarations: before the first \prodstyle{\%\%}}. We are now -ready to deal with the specifics of the declarations themselves. The -\.{\\grammar} macro is a `structure', whose first `field' is the -grammar itself, whereas the second carries the type of the last -declaration added to the grammar. +ready to deal with the specifics of the declarations themselves. @= @G prologue_declarations: - {@> TeX_( "/yy0{/nx/grammar{}{/nx/empty}}" ); @=} + {@> @ @=} | prologue_declarations prologue_declaration {@> @ @=} ; @g +@ @= + @[TeX_( "/initlist{/prologuedeclarationsprefix prologue_declarations}" );@]@; + @[TeX_( "/yy0{{/prologuedeclarationsprefix prologue_declarations}{/nx/empty}}" );@]@; + @[TeX_( "/edef/prologuedeclarationsprefix{./prologuedeclarationsprefix}" );@]@; + @ @= @@; @@ -466,6 +517,7 @@ prologue. The scanner returns the `stream pointers' for all the keywords so the declaration `structures' pass on those pointers to the grammar list. The original syntax has been left intact even though for the purposes of this parser some of the inline rules are unnecessary. +\eraselocalformattrue @= @G prologue_declaration: @@ -474,10 +526,13 @@ prologue_declaration: | "%" {@> TeX_( "/yy0{/nx/optionflag/the/yy(1)}" ); @=} | "%define" variable value {@> TeX_( "/yy0{/nx/vardef{/the/yy(2)}{/the/yy(3)}/the/yy(1)}" ); @=} | "%defines" {@> TeX_( "/yy0{/nx/optionflag{defines}{}/the/yy(1)}" ); @=} -| "%defines" STRING {@> @[TeX_( "/toksa{defines}" );@]@+@ @=} +| "%defines" STRING {@> @t}\vb{\stashed{\Xmark prologue.decls:\Xmark}}{@> @= + @> @[TeX_( "/toksa{defines}" );@]@+@ @=} | "%error-verbose" {@> TeX_( "/yy0{/nx/optionflag{error verbose}{}/the/yy(1)}" ); @=} -| "%expect" INT {@> @[TeX_( "/toksa{expect}" );@]@+@ @=} -| "%expect-rr" INT {@> @[TeX_( "/toksa{expect-rr}" );@]@+@ @=} +| "%expect" INT {@> @t}\vb{\stashed{\Xmark prologue.decls(g):\Xmark}}{@> @= + @> @[TeX_( "/toksa{expect}" );@]@+@ @=} +| "%expect-rr" INT {@> @t}\vb{\stashed{\Xmark prologue.decls(g):\Xmark}}{@> @= + @> @[TeX_( "/toksa{expect-rr}" );@]@+@ @=} | "%file-prefix" STRING {@> @[TeX_( "/toksa{file prefix}" );@]@+@ @=} | "%glr-parser" {@> TeX_( "/yy0{/nx/optionflag{glr parser}{}/the/yy(1)}" ); @=} | "%initial-action" "{...}" {@> TeX_( "/yy0{/nx/initaction/the/yy(2)}" ); @=} @@ -485,12 +540,14 @@ prologue_declaration: | "%name-prefix" STRING {@> @[TeX_( "/toksa{name prefix}" );@]@+@ @=} | "%no-lines" {@> TeX_( "/yy0{/nx/optionflag{no lines}{}/the/yy(1)}" ); @=} | "%nondeterministic-parser" {@> TeX_( "/yy0{/nx/optionflag{nondet. parser}{}/the/yy(1)}" ); @=} -| "%output" STRING {@> @[TeX_( "/toksa{output}" );@]@+@ @=} +| "%output" STRING {@> @t}\vb{\stashed{\Xmark prologue.decls:\Xmark}}{@> @= + @> @[TeX_( "/toksa{output}" );@]@+@ @=} @t}\vb{\flatten}{@> -| "%param" {} +| "%param" {@> @t}\vb{\stashed{\rm (we simply return pointers below)}}{@> @=} params {@> TeX_( "/yy0{/nx/paramdef{/the/yy(3)}/the/yy(1)}" ); @=} @t}\vb{\fold}{@> -| "%require" STRING {@> @[TeX_( "/toksa{require}" );@]@+@ @=} +| "%require" STRING {@> @t}\vb{\stashed{\Xmark prologue.decls:\Xmark}}{@> @= + @> @[TeX_( "/toksa{require}" );@]@+@ @=} | "%skeleton" STRING {@> @[TeX_( "/toksa{skeleton}" );@]@+@ @=} | "%token-table" {@> TeX_( "/yy0{/nx/optionflag{token table}{}/the/yy(1)}" ); @=} | "%verbose" {@> TeX_( "/yy0{/nx/optionflag{verbose}{}/the/yy(1)}" ); @=} @@ -507,69 +564,22 @@ params: @ This is a typical parser action: encapsulate the `type' of the construct just parsed and attach some auxiliary info, in this case the stream pointers. +\eraselocalformatfalse +\smallskip +\rulereferencex{\showlastactionfalse}{\nx\inline\nx\flatten}{prologue.decls} +\smallskip +\noindent The productions above are typical examples. @= @[TeX_( "/yy0{/nx/oneparametricoption{/the/toksa}{/nx/stringify/the/yy(2)}/the/yy(1)}" );@]@; -@ @= +@ A variation on the theme above where the parameter is not a \prodstyle{STRING}. +\smallskip +\rulereferencex{\showlastactionfalse}{\nx\inline\nx\flatten}{prologue.decls(g)} +\smallskip +\noindent A sample of the rules to which the code below applies are given above. +@= @[TeX_( "/yy0{/nx/oneparametricoption{/the/toksa}{/the/yy(2)}/the/yy(1)}" );@]@; -@ These rules handle extra declarations to typeset \flex\ options and -declarations. These are not part of the \bison\ syntax but their -structure is similar enough that they can be included in the -grammar. As was pointed out \locallink{flex.options}earlier \endlink -the addition of the \flex\ input parser to \splint\ made this -extension of the original \bison\ grammar obsolete but it was kept as -part of the extended grammar for convenience and `historical' -reasons. The convenience results from simplifying the bootstrap -procedure by using a single parser. -@= -@G -prologue_declaration: - flex_declaration {@> @ @=} -; -@g -@<\flex\ options parser productions@>@; - -@ The syntax of \flex\ options was extracted from \flex\ documentation -so it is not guaranteed to be correct. -@<\flex\ options parser productions@>= -@G -flex_declaration: - FLEX_OPTION flex_option_list {@> @ @=} -| flex_state symbols.1 {@> @ @=} -; - -flex_state: - FLEX_STATE_X {@> TeX_( "/yy0{/nx/flexxstatedecls/the/yy(1)}" ); @=} -| FLEX_STATE_S {@> TeX_( "/yy0{/nx/flexsstatedecls/the/yy(1)}" ); @=} -; - -flex_option_list: - flex_option {@> @ @=} -| flex_option_list flex_option {@> @ @=} -; - -flex_option: - ID {@> TeX_( "/yy0{/nx/flexoptionpair{/nx/idit/the/yy(1)}{}}" ); @=} -| ID "=" symbol {@> TeX_( "/yy0{/nx/flexoptionpair{/nx/idit/the/yy(1)}{/the/yy(3)}}" ); @=} -; -@g - -@ @= - @[TeX_( "/yy0{/nx/flexoptiondecls{/the/yy(2)}/the/yy(1)}" );@]@; - -@ @= - @[TeX_( "/getfirst{/yy(1)}/to/toksa" );@]@; - @[TeX_( "/getsecond{/yy(1)}/to/toksb" );@]@; - @[TeX_( "/getthird{/yy(1)}/to/toksc" );@]@; - @[TeX_( "/yy0{/the/toksa{/the/yy(2)}{/the/toksb}{/the/toksc}}" );@]@; - -@ @= - @[TeX_( "/getsecond{/yy(2)}/to/toksa" );@]@; /* the identifier */ - @[TeX_( "/getfourth{/toksa}/to/toksb" );@]@; /* the format pointer */ - @[TeX_( "/getfifth{/toksa}/to/toksc" );@]@; /* the stash pointer */ - @[TeX_( "/yy0{/the/yy(1)/nx/hspace{/the/toksb}{/the/toksc}/the/yy(2)}" );@]@; - @ {\it Grammar declarations}. These declarations can appear in both the prologue and the rules sections. Their treatment is very similar to the prologue-only options. @@ -578,7 +588,8 @@ the prologue-only options. grammar_declaration: precedence_declaration {@> @ @=} | symbol_declaration {@> @ @=} -| "%start" symbol {@> @[TeX_( "/toksa{start}" );@]@+@ @=} +| "%start" symbol {@> @t}\vb{\stashed{\Xmark prologue.decls(g):\Xmark}}{@> @= + @> @[TeX_( "/toksa{start}" );@]@+@ @=} | code_props_type "{...}" generic_symlist {@> @ @=} | "%default-prec" {@> TeX_( "/yy0{/nx/optionflag{default prec.}{}/the/yy(1)}" ); @=} | "%no-default-prec" {@> TeX_( "/yy0{/nx/optionflag{no default prec.}{}/the/yy(1)}" ); @=} @@ -617,7 +628,6 @@ union_name: grammar_declaration: "%union" union_name "{...}" {@> @ @=} ; - symbol_declaration: "%type" TAG symbols.1 {@> @ @=} ; @@ -637,6 +647,7 @@ tag.opt: {@> TeX_( "/yy0{}" ); @=} | TAG {@> @ @=} ; +@t}\vb{\insertraw{\beginfoldedsections}}{@> @g @ @= @@ -644,6 +655,7 @@ tag.opt: @ @= @[TeX_( "/yy0{/nx/typedecls{/nx/tagit/the/yy(2)}{/the/yy(3)}/the/yy(1)}" );@]@; +@t}\endfoldedsections{@> @ @= @[TeX_( "/getthird{/yy(1)}/to/toksa" );@]@; /* format pointer */ @@ -677,7 +689,9 @@ symbol_declaration: @ {\it Just like \prodstyle{symbols.1} but accept \prodstyle{INT} for the sake of \POSIX}. Perhaps the only point worth mentioning here is -the inserted separator (\.{\\hspace\{}$p_0$\.{\}\{}$p_1$\.{\}}, +the inserted separator (% +\texrefx{/hspace}{other}% +\.{\{}$p_0$\.{\}\{}$p_1$\.{\}}, typeset as |TeXa("/hspace"); TeXao(@t\TeXlit"\{\hbox{$p_0$}\}\{\hbox{$p_1$}\}\hbox{$\!$}"@>);|). @q A string "..." is a syntactic unit in \CWEB\ so it is impossible@> @@ -700,22 +714,16 @@ symbol.prec: ; @g -@ {\it One or more symbols to be \prodstyle{\%type}'d}. The |@| rules below are reused in the boostrap parser and are put -in a separate section for this reason. +@ {\it One or more symbols to be \prodstyle{\%type}'d}. @= - @@; - -@ @= @G +%type symbols.1 symbol; + symbols.1: symbol {@> @ @=} -| symbols.1 symbol {@> TeX_( "/yy0{/the/yy(1)/nx/hspace{0}{0}/the/yy(2)}" ); @=} +| symbols.1 symbol {@> TeX_( "/yy0{/the/yy(1)/nx/hspace{0}{0}/the$[symbol]}" ); @=} ; -@g -@ @= -@G generic_symlist: generic_symlist_item {@> @ @=} | generic_symlist generic_symlist_item {@> TeX_( "/yy0{/the/yy(1)/nx/hspace{0}{0}/the/yy(2)}" ); @=} @@ -772,42 +780,50 @@ grammar: ; @g -@ {\it As a \bison\ extension, one can use the grammar declarations in the +@*2 Rules syntax. {\it As a \bison\ extension, one can use the grammar declarations in the body of the grammar}. What follows is the syntax of the right hand -side of a grammar rule. +side of a grammar rule. The type declarations for various non-terminals are used exclusively +by the postprocessor whenever the `native' \bison\ term references are used (see elsewhere +for details). @= @G +%type rhs id_colon named_ref.opt rhses.1 "|"; + rules_or_grammar_declaration: - rules {@> @ @=} + rules {@> @

@=} | grammar_declaration ";" {@> @ @=} | error ";" {@> TeX_( "/errmessage{parsing error!}" ); @=} ; @t}\vb{\flatten\inline}{@> rules: - id_colon named_ref.opt {@> TeX_( "/relax" ); @=} + id_colon named_ref.opt {@> @t}\vb{\stashed{\rm (we simply return pointers below)}}{@> @=} rhses.1 {@> @ @=} ; @t}\vb{\resetf}{@> rhses.1[o]: rhs {@> @ @=} -| rhses.1[a] "|"[b] {@> @ @=}[c] +| rhses.1[rhses] "|"[mid] {@> @ @=}[c] rhs[d] {@> @ @=} -| rhses.1 ";" {@> @ @=} +| rhses.1 ";" {@> @ @=} ; @g @ The next few actions describe what happens when a left hand side is attached to a rule. @= - @[TeX_( "/getfirst{/yy(1)}/to/toksa" );@]@; - @[TeX_( "/yy0{/nx/grammar{/the/yy(1)}{/the/toksa}}" );@]@; + @[TeX_( "/initlist{/grammarprefix grammar}" );@]@; + @[TeX_( "/getfirst{/yy(1)}/to/toksa" );@]@; /* type of the last addition */ + @[TeX_( "/yy0{{/grammarprefix grammar}{/the/toksa}}" );@]@; + @[TeX_( "/appendtolistx{/grammarprefix grammar}{/the/yy(1)}" );@]@; + @[TeX_( "/edef/grammarprefix{./grammarprefix}" );@]@; @ @= - @[TeX_( "/getthird{/yy(1)}/to/toksa" );@]@; /* type of the last rule */ - @[TeX_( "/getsecond{/yy(1)}/to/toksc" );@]@; /* accumulated rules */ + @[TeX_( "/getsecond{/yy(1)}/to/toksa" );@]@; /* type of the last rule */ + @[TeX_( "/getfirst{/yy(1)}/to/toksc" );@]@; /* pointer to the accumulated rules */ @[TeX_( "/getfirst{/yy(2)}/to/toksb" );@]@; /* type of the new rule */ @[TeX_( "/let/default/positionswitchdefault" );@]@; @[TeX_( "/switchon{/the/toksb}/in/positionswitch" );@]@; /* determine the position of the first token in the group */ + @; /* determine the spacing between sections */ @[TeX_( "/edef/next{/the/toksa}" );@]@; @[TeX_( "/edef/default{/the/toksb}" );@]@; /* reuse \.{\\default} */ @[TeX_( "/ifx/next/default" );@]@; @@ -818,9 +834,10 @@ attached to a rule. @[TeX_( " /let/default/separatorswitchdefaultneq" );@]@; @[TeX_( " /switchon{/the/toksa}/in/separatorswitchneq" );@]@; @[TeX_( "/fi" );@]@; - @[TeX_( "/yy0{/nx/grammar{/the/toksc/the/postoks/the/toksd/the/yy(2)}{/the/toksb}}" );@]@; + @[TeX_( "/appendtolistx{/the/toksc}{/the/postoks/the/toksd/the/yy(2)}" );@]@; + @[TeX_( "/yy0{{/the/toksc}{/the/toksb}}" );@]@; -@ @= +@ @= @[TeX_( "/getsecond{/yy(1)}/to/toksa" );@]@; /* \.{\\prodheader} */ @[TeX_( "/getsecond{/toksa}/to/toksb" );@]@; /* \.{\\idit} */ @[TeX_( "/getfourth{/toksb}/to/toksc" );@]@; /* format stream pointer */ @@ -828,90 +845,152 @@ attached to a rule. @[TeX_( "/getthird{/yy(1)}/to/toksb" );@]@; /* \.{\\rules} */ @[TeX_( "/yy0{/nx/oneproduction{/the/toksa/the/toksb}{/the/toksc}{/the/toksd}}" );@]@; -@ @= - @[TeX_( "/getfourth{/yy(1)}/to/toksa" );@]@; /* format stream pointer */ - @[TeX_( "/getfifth{/yy(1)}/to/toksb" );@]@; /* stash stream pointer */ - @[TeXb( "/yy0{/nx/pcluster{/nx/prodheader{/the/yy(1)}{/the/yy(2)}" );@]@; - @[TeXao( "{/the/toksa}{/the/toksb}}{/the/yy(4)}}" );@]@; +@ Several productions for a given nonterminal are collected in a `production cluster': +\smallskip +\thisrulereference{}% +\smallskip +\noindent The inline action does nothing at the moment and is omitted in the main text. +@= + @[TeX_( "/getfourth{$[id_colon]}/to/toksa" );@]@; /* format stream pointer */ + @[TeX_( "/getfifth{$[id_colon]}/to/toksb" );@]@; /* stash stream pointer */ + @[TeX_( "/finishlist{/the$[rhses.1]}" );@]@; /* complete the list of rules */ + @[TeXb_( "/yy0{/nx/pcluster{/nx/prodheader{/the$[id_colon]}{/the$[named_ref.opt]}" );@]@; + @[TeXfo_( " {/the/toksa}{/the/toksb}}{/nx/rules{/nx/executelist{/the$[rhses.1]}}}}" );@]@; @ It is important to format the right hand side properly, since we would like to indicate that an action is inlined by an -indentation. The `format' of the \.{\\rhs} `structure' includes the -stash pointers and a `boolean' to indicate whether the right hand side ends -with an action. Since the action can be implicit, this decision has to -be postponed until, say, a semicolon is seen. -No formatting or stash pointers are added for implicit actions. +indentation. +\smallskip +\thisrulereference{\nx\inline\nx\flatten} +\smallskip +\noindent The `layout' of the \texref{/rhs} `structure' includes +a `boolean' to indicate whether the right hand side ends with an action. Since +the action can be implicit, this decision has to be postponed until, say, +a semicolon is seen. No formatting or stash pointers are added for implicit actions. @= - @[TeX_( "/rhsbool{/yy(1)}/to/toksa /the/toksa" );@]@; - @[TeX_( "/getthird{/yy(1)}/to/toksb" );@]@; /* the format pointer */ - @[TeX_( "/getfourth{/yy(1)}/to/toksc" );@]@; /* the stash pointer */ + @[TeX_( "/initlist{/rhsesoneprefix rhses1}" );@]@; + @[TeX_( "/yy0{/rhsesoneprefix rhses1}" );@]@; + @[TeX_( "/edef/rhsesoneprefix{./rhsesoneprefix}" );@]@; + @[TeX_( "/rhsbool{$[rhs]}/to/toksa /the/toksa" );@]@; @[TeX_( "/ifrhsfull" );@]@; - @[TeX_( " /yy0{/nx/rules{/the/yy(1)}{/the/toksb}{/the/toksc}}" );@]@; - @[TeX_( "/else" );@]@; /* it does not end with an action, fake one */ - @[TeX_( " /rhscont{/yy(1)}/to/toksa" );@]@; /* rules */ - @[TeX_( " /edef/next{/the/toksa}" );@]@; - @[TeX_( " /ifx/next/empty" );@]@; - @[TeX_( " /toksa{/emptyterm}" );@]@; - @[TeX_( " /fi" );@]@; - @[TeXb( " /yy0{/nx/rules{/nx/rhs{/the/toksa/nx/rarhssep{0}{0}" );@]@; - @[TeXfo( " /nx/actbraces{}{}{0}{0}/nx/bdend}{}{/nx/rhsfulltrue}}{/the/toksb}{/the/toksc}}" );@]@; + @[TeX_( " /appendtolistx{/the/yyval}{/the$[rhs]}" );@]@; + @[TeX_( "/else" );@]@; /* right hand side does not end with an action, fake one */ + @[TeX_( " /rhscont{$[rhs]}/to/toksa" );@]@; /* rules */ + @[TeX_( " /yytoksempty/toksa{/toksa{/emptyterm}}{}" );@]@; + @[TeXb( " /appendtolistx{/the/yyval}{/nx/rhs{/the/toksa/nx/rarhssep{0}{0}" );@]@; + @[TeXfo( " /nx/actbraces{}{}{0}{0}/nx/bdend}{}{/nx/rhsfulltrue}}" );@]@; @[TeX_( "/fi" );@]@; @ Using standard notation, here is what the middle action -does. +does. The part of the rule this action applies to is given below for +reference. This action may have been omitted altogether but it serves +as a good illustration of how `inline actions' work. +\smallskip +\rulereference{\nx\inline\nx\flatten}{|@|}% +\smallskip +\noindent The terms are counted from left (deeper in the value stack) to right +(on top of the value stack) although \texref{/yy(0)} +(which is the same as \texref{/yyval}) is the {\it right\/}most term, +i.e.\ the implicit action itself. + +What the parser sees at this point +are the first two terms on the stack (i.e.\ \prodstyle{rhses.1} and +{\toksa\expandafter{\expandafter'\vl'}\expandafter\prodtstyle\expandafter{\the\toksa}}) +and is ready to make a reduction which will push +the value of the term corresponding to the inline action (i.e.\ |@|) on the stack. + +The way \bison\ does this is by +introducing a new grammar term (named \prodstyle{bogus_inline} for some integer +$n$) for each inline action and adding a new rule that reduces an +empty sequence of terms to \prodstyle{bogus_inline}. The action for this rule is +the inline action. In our case this would read as +\begingroup +\medskip +\def\skipalltoks#1\par{} +\def\preparsefallbacktext#1{% + \let\postparse\relax + \message{#1}% + \skipalltoks +} + +\extendswitch\multicharswitch\at\stashed\by\PB\to\multicharswitchadjust +\let\multicharswitch\multicharswitchadjust +\def\textproductionsetup{% + \rulereftextproductionsetup + \let\acharswitch\texcharadjust + \let\onecharswitch\texcsadjust +}% +\beginprod +\inline\flatten + bogus_inline: + \{|@|\} +\endprod +\medskip +\endgroup +\noindent$\ldots$except the parser knows what the state of the stack is at this +point and thus the code inside |@| can now refer +to the terms on the stack as described above. @= - @[TeX_( "/rhscont{/yy(1)}/to{/yy(0)}" );@]@; - @[TeX_( "/yy0{/the/yy(0)/nx/midf/the/yy(2)}" );@]@; + @[TeX_( "/appendtolistx{/the/yy(1)}{/nx/midf/the/yy(2)}" );@]@; @ However, if the length of the rule preceding the inline action -is not known a different way of accessing the stack is necessary. -@= +is not known to the parser in advance (as is the case for the parsers +\splint\ generates using any version of \bison\ that is $\geq3.0$) +a different way of accessing the stack is necessary. This notation is also more +natural as it counts the terms from right to left, i.e.\ `into the depths +of the stack' (for example \texref{/bb2\{\}} is the register holding the value +of~\prodstyle{rhses1}). It is worth noting that in this case +\texref{/yy(0)} and \texref{/yyval} are still the same +register, the one that holds the value of the term corresponding to +the inline action itself. +@= @[TeX_( "/bb2{/toksa}/bb1{/toksb}" );@]@; - @[TeX_( "/rhscont{/toksa}/to{/yy(0)}" );@]@; - @[TeX_( "/yy0{/the/yy(0)/nx/midf/the/toksb}" );@]@; - -@ @= - @[TeX_( "/rhsbool{/yy(4)}/to/toksa /the/toksa" );@]@; - @[TeX_( "/ifrhsfull" );@]@; - @[TeX_( " /yy0{/nx/rules{/the/yy(3)/nx/rrhssep/the/yy(2)/the/yy(4)}/the/yy(2)}" );@]@; - @[TeX_( "/else" );@]@; - @[TeX_( " /rhscont{/yy(4)}/to/toksa" );@]@; - @[TeX_( " /edef/next{/the/toksa}" );@]@; - @[TeX_( " /ifx/next/empty" );@]@; - @[TeX_( " /toksa{/emptyterm}" );@]@; - @[TeX_( " /fi" );@]@; - @[TeXb( " /yy0{/nx/rules{/the/yy(3)/nx/rrhssep/the/yy(2)" );@]@; - @[TeXf( " /nx/rhs{/the/toksa/nx/rarhssep{0}{0}" );@]@; /* streams have already been grabbed */ - @[TeXfo( " /nx/actbraces{}{}{0}{0}/nx/bdend}{}{/nx/rhsfulltrue}}/the/yy(2)}" );@]@; - @[TeX_( "/fi" );@]@; + @[TeX_( "/appendtolistx{/the/toksa}{/nx/midf/the/toksb}" );@]@; -@ No pointers are provided for an {\it implicit\/} action. Processing a set of rules involves a large number of -reexpansions. This seems to be a good place to use an array to store {\sc AST} nodes ({\let\writetexidxentry\writetextxtidxentry -\def\texnspace{texline}\def\texispace{index}\inlineTeXx{/astarray}}). While +@ Finally, using the `native' way of referring to term values results +in the most natural code. In this case, one can mix numeric and +symbolic references for both implicit and explicit rules. +@= + @[TeX_( "/appendtolistx{/the$[rhses]}{/nx/midf/the$[mid]}" );@]@; + +@ Productions are collected in a `productions cluster' (not an official term) by the +following action: +\smallskip +\thisrulereference{\nx\inline\nx\flatten} +\smallskip\noindent +As can be seen in the code below, no pointers are provided for an {\it implicit\/} +action (since there are no tokens associated with it). + +Processing a set of rules involves a large number of +reexpansions. This seems to be a good place to use a list to store the nodes +(see \.{yycommon.sty} for details on list macros). While providing a noticeable speed up, this technique significantly complicates the debugging of the grammar. In particular, inspecting a -parsed table supplies very little information if the {\sc AST} nodes are not +parsed table supplies very little information if the list not expanded. The macros in \.{yyunion.sty} provide a special debugging namespace where the expansion of the parser produced control sequences may be modified to safely expand the generated table. + +The code below relies on the inline action |@| above +to store the relevant information from \texref{/yy(1)} (corresponding to +\prodstyle{rhses1}) in \texref{/yy(3)} (which is +the inline action `term' \inlineactionsymbol\ in the production above). +@q Note that one cannot use \prodstyle{...} above to display \inlineactionsymbol@> +@q since the \prodstyle{...} macro relies on the name parser. See yyunion.sty @> +@q for further details about the special terms like this. @> @= @[TeX_( "/rhsbool{/yy(4)}/to/toksa /the/toksa" );@]@; @[TeX_( "/ifrhsfull" );@]@; - @[TeX_( " /yypushx{/the/yy(3)/nx/rrhssep/the/yy(2)/the/yy(4)}/on/astarray" );@]@; + @[TeX_( " /appendtolistx{/the/yy(1)}{/nx/rrhssep/the/yy(2)/the/yy(4)}" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /rhscont{/yy(4)}/to/toksa" );@]@; - @[TeX_( " /edef/next{/the/toksa}" );@]@; - @[TeX_( " /ifx/next/empty" );@]@; - @[TeX_( " /toksa{/emptyterm}" );@]@; - @[TeX_( " /fi" );@]@; - @[TeXb( " /yypushx{/the/yy(3)/nx/rrhssep/the/yy(2)" );@]@; + @[TeX_( " /yytoksempty/toksa{/toksa{/emptyterm}}{}" );@]@; + @[TeXb( " /appendtolistx{/the/yy(1)}{/nx/rrhssep/the/yy(2)" );@]@; @[TeXf( " /nx/rhs{/the/toksa/nx/rarhssep{0}{0}" );@]@; /* streams have already been grabbed */ - @[TeXfo( " /nx/actbraces{}{}{0}{0}/nx/bdend}{}{/nx/rhsfulltrue}}/on/astarray" );@]@; + @[TeXfo( " /nx/actbraces{}{}{0}{0}/nx/bdend}{}{/nx/rhsfulltrue}}" );@]@; @[TeX_( "/fi" );@]@; - @[TeX_( "/yy0{/nx/rules{/astarraylastcs}/the/yy(2)}" );@]@; - -@ @= - @@; + @[TeX_( "/yy0{/the/yy(1)}" );@]@; @ @= @G @@ -942,33 +1021,46 @@ named_ref.opt: ; @g -@ \saveparseoutputfalse +@ The simplest form of the right hand side is an empty rule. In this case the parser +must make a reduction based on the lookahead only (or the current state), i.e.\ no +tokens are consumed from the input. +\saveparseoutputfalse @= @[TeX_( "/yy0{/nx/rhs{}{}{/nx/rhsfullfalse}}" );@]@; -@ @= +@ Adding a \bison\ term to the right hand side involves collecting of several pieces of information. +One of them is the (optional) symbolic named that can be used by the action code to refer to +the place on the value stack that is allocated for this term. +\smallskip +\thisrulereference{\nx\inline\nx\flatten}% +\smallskip +\noindent The space between the term and the preceeding part of the rule may depend on the +type of rule element that appears at the end of the rule parsed so far. +@= @[TeX_( "/rhscont{/yy(1)}/to/toksa" );@]@; @[TeX_( "/rhscnct{/yy(1)}/to/toksb" );@]@; - @[TeX_( "/edef/next{/the/toksb}" );@]@; - @[TeX_( "/ifx/next/empty" );@]@; - @[TeX_( "/else" );@]@; + @[TeX_( "/yytoksempty/toksb{}{" );@]@; @[TeX_( " /getfourth{/yy(2)}/to/toksc" );@]@; @[TeX_( " /getfifth{/yy(2)}/to/toksd" );@]@; @[TeX_( " /appendr/toksb{{/the/toksc}{/the/toksd}}" );@]@; - @[TeX_( "/fi" );@]@; + @[TeX_( "}" );@]@; @[TeXb( "/yy0{/nx/rhs{/the/toksa/the/toksb" );@]@; @[TeXao( "/nx/termname{/the/yy(2)}{/the/yy(3)}}{/nx/hspace}{/nx/rhsfullfalse}}" );@]@; -@ @= +@ Action processing is somewhat complicated since the action can be either inline or terminal, +affecting the typesetting. +\smallskip +\thisrulereference{\nx\inline\nx\flatten}% +\smallskip +\noindent Additionally, an action may follow an empty rule in which case a special term +must be added to aid the reader. +@= @[TeX_( "/rhscont{/yy(1)}/to/toksa" );@]@; @[TeX_( "/rhsbool{/yy(1)}/to/toksb /the/toksb" );@]@; @[TeX_( "/ifrhsfull" );@]@; /* the first half ends with an action */ @[TeX_( " /appendr/toksa{/nx/arhssep{0}{0}/nx/emptyterm}" );@]@; /* no pointers to streams */ @[TeX_( "/fi" );@]@; - @[TeX_( "/edef/next{/the/toksa}" );@]@; - @[TeX_( "/ifx/next/empty" );@]@; - @[TeX_( " /toksa{/emptyterm}" );@]@; - @[TeX_( "/fi" );@]@; + @[TeX_( "/yytoksempty/toksa{/toksa{/emptyterm}}{}" );@]@; @[TeX_( "/getfirst{/yy(2)}/to/toksb" );@]@; /* the contents of the braced code */ @[TeX_( "/getsecond{/yy(2)}/to/toksc" );@]@; /* the format stream pointer */ @[TeX_( "/getthird{/yy(2)}/to/toksd" );@]@; /* the stash stream pointer */ @@ -982,10 +1074,7 @@ named_ref.opt: @[TeX_( "/ifrhsfull" );@]@; /* the first half ends with an action */ @[TeX_( " /appendr/toksa{/nx/arhssep{0}{0}/nx/emptyterm}" );@]@; /* no pointers to streams */ @[TeX_( "/fi" );@]@; - @[TeX_( "/edef/next{/the/toksa}" );@]@; - @[TeX_( "/ifx/next/empty" );@]@; - @[TeX_( " /toksa{/emptyterm}" );@]@; - @[TeX_( "/fi" );@]@; + @[TeX_( "/yytoksempty/toksa{/toksa{/emptyterm}}{}" );@]@; @[TeX_( "/getfirst{/yy(2)}/to/toksb" );@]@; /* the contents of the braced code */ @[TeX_( "/getsecond{/yy(2)}/to/toksc" );@]@; /* the format stream pointer */ @[TeX_( "/getthird{/yy(2)}/to/toksd" );@]@; /* the stash stream pointer */ @@ -993,16 +1082,17 @@ named_ref.opt: @[TeXf( " /nx/bpredicate{/the/toksb}{}{/the/toksc}{/the/toksd}/nx/bdend}" );@]@; @[TeXao( "{/nx/arhssep}{/nx/rhsfulltrue}}" );@]@; -@ @= +@ An empty right hand side may be specified explicitly by using \prodstyle{\%empty} as +the sole token in the production. This will increase the readability of the grammar by +making the programmer's intentions more transparent. +@= @[TeX_( "/rhscont{/yy(1)}/to/toksa" );@]@; @[TeX_( "/rhscnct{/yy(1)}/to/toksb" );@]@; - @[TeX_( "/edef/next{/the/toksb}" );@]@; - @[TeX_( "/ifx/next/empty" );@]@; - @[TeX_( "/else" );@]@; + @[TeX_( "/yytoksempty/toksb{}{" );@]@; @[TeX_( " /getfourth{/yy(2)}/to/toksc" );@]@; @[TeX_( " /getfifth{/yy(2)}/to/toksd" );@]@; @[TeX_( " /appendr/toksb{{/the/toksc}{/the/toksd}}" );@]@; - @[TeX_( "/fi" );@]@; + @[TeX_( "}" );@]@; @[TeXb( "/yy0{/nx/rhs{/the/toksa/the/toksb" );@]@; @[TeXao( "/nx/emptyterm}{/nx/hspace}{/nx/rhsfullfalse}}" );@]@; @@ -1045,13 +1135,17 @@ named_ref.opt: @[TeXao( "/nx/mergeop{/nx/tagit/the/yy(3)}/the/yy(2)}{/the/toksb}{/nx/rhsfullfalse}}" );@]@; @[TeX_( "/fi" );@]@; + @t}\beginfoldedsections{@> + @ @= @[TeX_( "/yy0{}" );@]@; @ @= @@; -@ Identifiers. + @t}\endfoldedsections{@> + +@*2 Identifiers and other symbols. {\it Identifiers are returned as |uniqstr| values by the scanner. Depending on their use, we may need to make them genuine symbols}. We, on the other hand, simply copy the values returned by the scanner. @@ -1095,6 +1189,7 @@ string_as_id: placeholders for the appropriate actions in case the parser gains some sophistication in processing low level types (or starts expecting different types from the scanner). +\beginfoldedsectionshere @= @[TeX_( "/yy0{/nx/idit/the/yy(1)}" );@]@; @@ -1113,6 +1208,8 @@ different types from the scanner). @ @= @[TeX_( "/yy0{/nx/stringify/the/yy(1)}" );@]@; +@t}\endfoldedsections{@> + @ {\it Variable and value. The \prodstyle{STRING} form of variable is deprecated and is not \.{M4}-friendly. For example, \.{M4} fails for \.{\%define "[" "value"}.} @@ -1151,8 +1248,6 @@ as they have to be inserted in a place that is aware of the internal definitions definitions are used. @= -#define YYPRINT(file, type, value) @[yyprint (file, type, value)@] - static void yyprint (FILE *file, int type, YYSTYPE value){} @ @= @@; @@ -1183,8 +1278,15 @@ token information from the grammar. @q _register_token_d(SEMICOLON) /* can be omitted in prologue */ @> @q _register_token_d(TAG) /* only encountered in the definition of PERCENT_PARAM */ @> -@ Union of types. This section of the \bison\ input lists the types +@*1 Union of types. This section of the \bison\ input lists the types that may appear on the value stack. Since \TeX\ does not provide any mechanism for type checking (nor is it clear how to translate a \Cee\ -|union| into any data structure usable in \TeX), this section is left empty. +|union| into any data structure usable in \TeX), this section is left (nearly) +empty. The reason for the lonely type below is the postprocessor that facilitates +the use of \bison\ `native' term references (see elsewhere). In order to +translate such references into appropriate \TeX\ code, the postprocessor +must let \bison\ calculate offsets into the value stack, which requires +assigning types to various terminals and non-terminals. The specific type +has no significance. @= + int intval; \ No newline at end of file diff --git a/support/splint/cweb/bs.w b/support/splint/cweb/bs.w index adefd23f8b..8b32617ef3 100644 --- a/support/splint/cweb/bs.w +++ b/support/splint/cweb/bs.w @@ -1,4 +1,4 @@ -@q Copyright 2012-2020, Alexander Shibakov@> +@q Copyright 2012-2024, Alexander Shibakov@> @q This file is part of SPLinT@> @q SPLinT is free software: you can redistribute it and/or modify@> @@ -31,7 +31,6 @@ be done here. _register_table_d(yypgoto)@; _register_table_d(yytable)@; _register_table_d(yycheck)@; - _register_table_d(yytoknum)@; _register_table_d(yystos)@; _register_table_d(yytname)@; _register_table_d(yyprhs)@; @@ -46,8 +45,13 @@ with version~\.{3.0}) does not generate |yyprhs| and |yyrhs| or any other arrays that contain similar information, so we fake them here if such a crippled version of \bison\ is used. +The |yyrimplicit| array will be used by the table output code, together with +the postprocessor to output right hand side lengths for the term references that +require them in the case when the `native' \bison\ references are +used. @= unsigned int yyrthree[YYNRULES + 1] = { 0 }; + int yyrimplicit[YYNRULES + 1] = { 0 }; #ifdef BISON_IS_CRIPPLED unsigned int yyrhs[YYNRULES + 1] = { -1 }; unsigned int yyprhs[YYNRULES + 1] = { 0 }; @@ -102,6 +106,23 @@ such a crippled version of \bison\ is used. @= _register_table_d(yyrthree)@; +@ We list some macros that are used to assist the post +processor and take advantage of the |yyrimlicit| array. As at this +time the size of the array is unknown (the preamble is included before +the parser file by \.{mkeparser.w} so the number of rules is unknown +at this point), we declare the array as a pointer. +@d BZ( term, anchor ) ( ((YYSTYPE *)&(term)) - ((YYSTYPE *)&(anchor)) + 1 ) +@d BZZ( term, anchor ) ( + (yyrimplicit_p[yyn] = ((yyrimplicit_p[yyn] < 0) ? + yyrimplicit_p[yyn] : ((YYSTYPE *)&(term)) - ((YYSTYPE *)&(anchor)) + 1)), + ((YYSTYPE *)&(term)) - ((YYSTYPE *)&(anchor)) + 1 +) +@<\Cee\ setup code specific to \bison@>= + int *yyrimplicit_p; + +@ @= + yyrimplicit_p = yyrimplicit; + @*2Actions. There are several ways of making |yyparse()| execute all portions of the action code. The one chosen here makes sure that none of the tables gets written past its last element. To see how it works, it @@ -154,6 +175,7 @@ change affects the generated parser. yyr1[i] = YYNTOKENS; yydefact[0] = i; + yyrimplicit[i] = -yyr2[i]; yyr2[i] = 0; yyparse(YYPARSE_PARAMETERS); @@ -173,18 +195,32 @@ change affects the generated parser. } + for ( int i = 1; i < YYNRULES + 1; i++ ) { + + if ( yyrimplicit[i] > 0 ) { + fprintf( tables_out, "\\yyimplicitlengthset{%d}{%d}%%\n", i, yyrimplicit[i] ); + } + + } + @*2Constants. A generic list of constants to be used later in different contexts is defined below. As before, the appropriate macro will be defined generically to do what is required with these names (for example, we can turn each name into a string for reporting purposes). @= _register_const_d(YYEMPTY)@; _register_const_d(YYPACT_NINF)@; - _register_const_d(YYEOF)@; _register_const_d(YYLAST)@; _register_const_d(YYNTOKENS)@; _register_const_d(YYNRULES)@; _register_const_d(YYNSTATES)@; _register_const_d(YYFINAL)@; +#ifndef YYEOF + _register_const_d(YYSYMBOL_YYEOF)@; +#endif + +@ Constants defined to maintain compatibility with the older versions of \bison. +@= + _register_const_d(YYSYMBOL_YYEOF, YYEOF)@; @*2Tokens. Similar techniques are employed in token output. Tokens are parser @@ -582,20 +618,32 @@ rules are not output if a crippled \bison\ is used. @ \TeX\ constant output is another place where the techniques described above are applied. As before, the macro handles the repetitive work of initialization, declaration, etc in -each place where the corresponding constant is mentioned. The one exception is \.{YYPACT\_NINF}, -which has to be handled separately because the underscore in its name makes it difficult to -use it as a command sequence name. +each place where the corresponding constant is mentioned. The exceptions are \.{YYPACT\_NINF} +and \.{YYSYMBOL\_YYEOF} that have to be handled separately because the +underscore in its name makes it difficult to use it as a command sequence name. \def\YYPACTxNINFxdesc{\.{YYPACT\_NINF\_}\\{desc}} +\def\YYSYMBOLxYYEOFxdesc{\.{YYSYMBOL\_YYEOF\_}\\{desc}} @s YYPACT_NINF_desc TeX +@s YYSYMBOL_YYEOF_desc TeX @= #define _register_const_d(c_name) @[c_name##_desc.format = "\\constset{%s}{%d}%%\n"; \ c_name##_desc.name = #c_name; \ + c_name##_desc.value = c_name; \ output_desc.output_##c_name = 1;@] @@; #undef _register_const_d +#ifdef YYEOF /* other values have already been set correctly */ +#define _register_const_d(c_name,vvalue) @[c_name##_desc.format = "\\constset{%s}{%d}%%\n"; \ + c_name##_desc.name = #c_name; \ + c_name##_desc.value = vvalue; \ + output_desc.output_##c_name = 1;@] + @@; +#undef _register_const_d +#endif YYPACT_NINF_desc.name = "YYPACTNINF"; +YYSYMBOL_YYEOF_desc.name = "YYSYMBOLxYYEOF"; @ Token definitions round off the \TeX\ output mode. diff --git a/support/splint/cweb/checklists.w b/support/splint/cweb/checklists.w index 754855d747..446bc46b96 100644 --- a/support/splint/cweb/checklists.w +++ b/support/splint/cweb/checklists.w @@ -1,4 +1,4 @@ -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2022, Alexander Shibakov % Copyright 2002-2014 Free Software Foundation, Inc. % This file is part of SPLinT % diff --git a/support/splint/cweb/common.w b/support/splint/cweb/common.w index 0f50fdcabd..5112fb5414 100644 --- a/support/splint/cweb/common.w +++ b/support/splint/cweb/common.w @@ -1,4 +1,4 @@ -@q Copyright 2012-2020, Alexander Shibakov@> +@q Copyright 2012-2024, Alexander Shibakov@> @q This file is part of SPLinT@> @q SPLinT is free software: you can redistribute it and/or modify@> @@ -454,6 +454,19 @@ code easier to look at. Further explanation is given in the grammar file. If the parser is doing its job, this is the only place where one would actually see these as functions (or, rather, macros). +In case one wishes to use the `native' \bison\ way of referencing +terms (i.e.\ something along the lines of~\.{\\the\char`\$[term]}) +these macros should be used with a trailing underscore (say, \.{TeXa\_}) +to let the postprocessor know that the code inside should be +postprocessed. The postprocessor will then create three files: one, +destined for \CWEAVE, will use the same macro withough the underscore +(i.e.\ \.{TeXa} to continue our example, and have the native \bison\ +terms replaced wih the appropriate \TeX\ commands. Another file is +intended for \CTANGLE, where the whole macro will be replaced first +with a special identifier, which in turn, after \CTANGLE\ finishes, +will be replaced by an appropriately constructed call to \.{TeX\_\_}. The +third file will contain the substitutions. + In compliance with paragraph 6.10.8(2)\footnote{[$\ldots$] {\it Any other predefined macro names shall begin with a leading underscore followed by an uppercase letter or a second underscore.}} of the \ISO\ @@ -482,7 +495,7 @@ macros which produces undesirable typesetting artefacts.}. @q \CWEB\ is not aware of variadic macros, so this has to be done the old way@> @<\Cee\ preamble@>= -#define TeX__( string, ... ) @[fprintf( tables_out, " " string "%s\n", __VA_ARGS__, "%" )@] +#define TeX__( string, ... ) @[fprintf( tables_out, " " string "%%\n", __VA_ARGS__ )@] @ If a full parser is not needed, the lexing mechanism is not required. To satisfy the compiler and the linker, the lexer and other functions still have to be declared and defined, since these functions @@ -524,27 +537,32 @@ values. When the names are concatenated with other tokens, however, the \Cee\ preprocessor postpones the macro expansion until the concatenation is complete (see clauses 6.10.3.1, 6.10.3.2, and 6.10.3.3 of the \ISO\ \Cee\ Standard, \cite[ISO/C11]). Unless the result of the -concatenation is still expandable, the expansion will halt. +concatenation is still expandable, the expansion will halt\footnote{Another trick +to halt expansion is to use {\it function macros} which will expand only when +they are followed by parentheses. Since we do not have control over how +constants are defined by \bison, we cannot take advantage of this feature of the +\Cee\ preprocessor.}. @= struct const_d { char *format; char *name; + int value; }; @ @= -#define _register_const_d(c_name) @[struct const_d c_name##_desc;@] +#define _register_const_d(c_name,...) @[struct const_d c_name##_desc;@] @@; #undef _register_const_d @ @= -#define _register_const_d(c_name) @[bool output_##c_name:1;@] +#define _register_const_d(c_name,...) @[bool output_##c_name:1;@] @@; #undef _register_const_d @ @= -#define _register_const_d(c_name) @[@[@].output_##c_name = 0,@[@]@] +#define _register_const_d(c_name,...) @[@[@].output_##c_name = 0,@[@]@] @@; #undef _register_const_d @@ -556,10 +574,10 @@ concatenation is still expandable, the expansion will halt. { int any_constants = 0; -#define _register_const_d(c_name) \ +#define _register_const_d(c_name,...) \ \ if ( output_desc.output_##c_name ) { \ - const_out( tables_out, c_name##_desc, c_name)@; \ + const_out( tables_out, c_name##_desc)@; \ any_constants = 1; \ } @@ -575,7 +593,7 @@ concatenation is still expandable, the expansion will halt. @= @ A macro to help with constant output. -@d const_out(stream, c_desc, c_name) fprintf(stream, c_desc.format, c_desc.name, c_name); +@d const_out(stream, c_desc) fprintf(stream, c_desc.format, c_desc.name, c_desc.value); @ Action switch output routines modify the automata tables and therefore have to be output last. Since action output is highly @@ -728,7 +746,7 @@ specific cases are added to in the course of adding new features. FOREVER { - c = getopt_long (argc, argv, ( char [] ){':'@t, @>@}, long_options, &option_index); + c = getopt_long (argc, argv, ( char [] )@[{':'@t, @>@}@], long_options, &option_index); if (c == -1) break; diff --git a/support/splint/cweb/fk.w b/support/splint/cweb/fk.w index fc0c5d2e14..c25a7e8cc2 100644 --- a/support/splint/cweb/fk.w +++ b/support/splint/cweb/fk.w @@ -1,4 +1,4 @@ -@q Copyright 2012-2020, Alexander Shibakov@> +@q Copyright 2012-2022, Alexander Shibakov@> @q This file is part of SPLinT@> @q SPLinT is free software: you can redistribute it and/or modify@> @@ -330,6 +330,7 @@ known to the \flex\ generated scanner. } @*2Constants. +The few hard coded constants needed for the lexer to work are listed here. @= _register_const_d(YY_END_OF_BUFFER_CHAR)@; _register_const_d(YY_NUM_RULES)@; @@ -427,6 +428,7 @@ are handled separately, because they contain underscores. @= #define _register_const_d(c_name) @[c_name##_desc.format = "\\constset{%s}{%d}%%\n"; \ c_name##_desc.name = #c_name; \ + c_name##_desc.value = c_name; \ output_desc.output_##c_name = 1;@] @@; #undef _register_const_d diff --git a/support/splint/cweb/fo.w b/support/splint/cweb/fo.w index 81694024c3..d34ca57d96 100644 --- a/support/splint/cweb/fo.w +++ b/support/splint/cweb/fo.w @@ -30,14 +30,23 @@ @q PURPOSE. @> @**The \ifbootstrapmode flex \else\flex\ \fi parser stack. -\ifbootstrapmode % this is a bootstrap run to generate the tables +\ifbootstrapmode % this is a bootstrap run to generate the token references \input limbo.sty \def\optimization{5} \input yy.sty + \def\bstrapparser{dyytab.tex}% use the full prologue parser + \def\bstraptokens{bo.tok}% for which we will need token equivalences \modebootstrap \else % otherwise set up the pretty printing of tokens \let\hostparsernamespace\flexnamespace \fi +% we can get away with the setup above because the minimal lexer +% used for bootstrapping does not know about the \prodstyle{\%left} +% token so in the declarations list below, the two tokens, +% \prodstyle{CCL_OP_DIFF} and \prodstyle{CCL_OP_UNION} become +% part of the previous \prodstyle{\%token} declaration which is a +% legal declaration syntax; see ldman.w and ldlex.w and ldgram.w for +% a more elaborate setup; The scanner generator, \flex, uses \bison\ to produce a parser for its input language. Its lexer is output by \flex\ itself so both are reused to generate the parser and the scanner for pretty printing @@ -69,7 +78,7 @@ any custom adjustments to the lexer state to operate correctly. @g @ The selection of options for \bison\ parsers suitable for \splint\ -have been discussed +has been discussed \ifbootstrapmode\else\locallink{bison.options}earlier \endlink\fi so we list them here without further comments. @= @@ -157,7 +166,7 @@ point of recognition, while the typesetting parser needs to be aware of them. @G %token TOP_OP POINTER_OP ARRAY_OP DEF_OP RE_DEF OPT_OTHER OPT_DEPRECATED -@ {\em \POSIX\ and \.{AT\&T} \lex\ place the +@ \namedspot{flex braces}{\em \POSIX\ and \.{AT\&T} \lex\ place the precedence of the repeat operator, \.{\{\}}, below that of concatenation. Thus, \.{ab\{3\}} is\/ \.{ababab}. Most other \POSIX\ utilities use an {\rm Extended Regular Expression (ERE)} precedence that has the repeat operator @@ -166,8 +175,8 @@ higher than concatenation. This causes \.{ab\{3\}} to yield\/ \.{abbb}. In order to support the \POSIX\ and \.{AT\&T} precedence and the \flex\ precedence we define two token sets for the begin and end tokens of the repeat operator, \prodstyle{BEGIN_REPEAT_POSIX} and\/ \prodstyle{END_REPEAT_POSIX}. The lexical scanner chooses -which tokens to return based on whether {\let\it\itbold\prodstyle{posix\_compat} or \prodstyle{lex\_compat} -are specified. Specifying either \prodstyle{posix\_compat} or \prodstyle{lex\_compat}} will +which tokens to return based on whether {\let\it\itbold\prodstyle{posix_compat} or \prodstyle{lex_compat} +are specified. Specifying either \prodstyle{posix_compat} or \prodstyle{lex_compat}} will cause \flex\ to parse scanner files as per the \.{AT\&T} and \POSIX-mandated behavior.} @= @G @@ -186,6 +195,7 @@ explanation). We can nevertheless get away with an empty \Cee\ preamble. @ @= @G +@t}\vb{\insertraw{\beginfoldedsections}}{@> @t}\vb{\inline\flatten}{@> goal: initlex sect1 sect1end @@ -202,12 +212,15 @@ initlex: @g @ @= - @[TeX_( "/yy0{/the/yy(2)/the/yy(4)}" );@]@; + @[TeX_( "/finishlist{/the/yy(4)}" );@]@; + @[TeX_( "/yy0{/the/yy(2)/nx/executelist{/the/yy(4)}}" );@]@; @ @= @@; @@; +@t}\endfoldedsections{@> + @ @= @G @t}\vb{\inline\flatten}{@> @@ -220,6 +233,7 @@ goal: @ @= @G +@t}\vb{\insertraw{\beginfoldedsections}}{@> sect1: sect1 startconddecl namelist1 {@> @ @=} | sect1 options {@> @ @=} @@ -266,8 +280,11 @@ namelist1: @ @= @[TeX_( "/yyerror" );@]@; +@t}\endfoldedsections{@> + @ @= @G +@t}\vb{\insertraw{\beginfoldedsections}}{@> options: OPTION_OP optionlist {@> @ @=} | POINTER_OP {@> @ @=} @@ -338,15 +355,19 @@ option: @ @= @[TeX_( "/yy0{/nx/flopt{deprecated}/the/yy(1)}" );@]@; +@t}\endfoldedsections{@> + @ @= @G +@t}\vb{\inline\flatten}{@> goal: sect2 {@> @ @=} ; @g @ @= - @[TeX_( "/table/yy(1)" );@]@; + @[TeX_( "/finishlist{/the/yy(1)}" );@]@; + @[TeX_( "/table/expandafter{/expandafter/executelist/expandafter{/the/yy(1)}}" );@]@; @ This portion of the grammar was changed to make it possible to read the action code. @@ -364,25 +385,54 @@ initforrule: ; @g -@ @= +@ The production below describes the most typical way a regular expression is +assigned an action. The redundant term \prodstyle{initforrule} is a standard +\bison\ trick to make sure that the appropriate initializations happen at +the right time. +\smallskip +\thisrulereference{\nx\inline\nx\flatten} +\smallskip\noindent +The original production has been modified so that the pretty printing parser has a chance +to consume the action code. The second \prodstyle{'\\n'} is output by the action +processing code. +@= @[TeX_( "/ifflcontinued@@action" );@]@; @[TeX_( " /toksb{/flactionc}" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /toksb{/flaction}" );@]@; @[TeX_( "/fi" );@]@; @[TeX_( "/toksa/expandafter{/astformat@@flaction}" );@]@; /* capture the formatting action */ - @[TeX_( "/yypushx{/the/yy(1)/the/toksb{/the/yy(2)}{/the/yy(4)}/the/yy(5)/the/yy(6){/the/toksa}}/on/astarray" );@]@; - @[TeX_( "/yy0{/astarraylastcs}" );@]@; + @[TeX_( "/yy0{/the/yy(1)}" );@]@; + @[TeX_( "/appendtolistx{/the/yy(1)}{/the/toksb{/the/yy(2)}{/the/yy(4)}/the/yy(5)/the/yy(6){/the/toksa}}" );@]@; @[TeX_( "/let/astformat@@flaction/empty" );@]@; /* reset the format */ -@ @= - @[TeX_( "/yy0{/the/yy(1)/nx/flactiongroup{/the/yy(2)}/the/yy(3){/the/yy(4)}/the/yy(5)}" );@]@; +@ For convenience, rules that are active in the same set of states may be grouped together. +This pattern is the subject of the next production. +\smallskip +\thisrulereference{\nx\inline\nx\flatten} +\smallskip\noindent +The original parser ignores the braces while the pretty printing parser +uses the pointers associated with the braces to collect and process the accumulated +stash. This is how comments and \CWEB\ section references are typeset. +@= + @[TeX_( "/yy0{/the/yy(1)}" );@]@; + @[TeX_( "/finishlist{/the/yy(4)}" );@]@; + @[TeX_( "/appendtolistx{/the/yy(1)}{/nx/flactiongroup{/the/yy(2)}/the/yy(3){/nx/executelist{/the/yy(4)}}/the/yy(5)}" );@]@; -@ @= - @[TeX_( "/yy0{}" );@]@; +@ Simple left recursive terms like~\prodstyle{sect2} are very suitable for being implemented as a list +(see the macros in \.{yycommon.sty} for the details on the list implementation). The `type' of~\prodstyle{sect2} +is a (symbolic pointer to a) list of items built up from an empty initial list. This production initializes +the list (with the name identical to the terminal on the left hand side of the production) +and updates the list name (rather the name's prefix) for future invocations of this action. + +@= + @[TeX_( "/initlist{/secttwoprefix sect2}" );@]@; + @[TeX_( "/yy0{/secttwoprefix sect2}" );@]@; + @[TeX_( "/edef/secttwoprefix{/secttwoprefix.}" );@]@; @ @= - @[TeX_( "/yy0{/the/yy(1)/nx/flbareaction/the/yy(2)}" );@]@; + @[TeX_( "/yy0{/the/yy(1)}" );@]@; + @[TeX_( "/appendtolistx{/the/yy(1)}{/nx/flbareaction/the/yy(2)}" );@]@; @ @= @G @@ -400,14 +450,23 @@ scon: namelist2: namelist2 ',' sconname {@> @ @=} | sconname {@> @ @=} - | error {@> @ @=} + | error {@> @ @=} ; @t}\vb{\inline\flatten}{@> sconname: NAME {@> @ @=} ; -@ @= +@ Start conditions are just names. The data structure that is output has +location pointers for the streams to enable interaction with \CWEB. These +pointers are in turn the values of the angle bracket tokens that enclose the +list of start conditions. + +Start condition lists may be collected in their own sections, while the list itself +may be followed by a comment. The pointers mentioned above are used to typeset the comments +and section references. +\beginfoldedsectionshere +@= @[TeX_( "/yy0{/nx/flsconlist{/the/yy(1)}{/the/yy(3)}{/the/yy(4)}}" );@]@; @ @= @@ -422,17 +481,24 @@ sconname: @ @= @@; -@ @= +@ @= @[TeX_( "/yyerror" );@]@; @ @= @[TeX_( "/yy0{/nx/flname/the/yy(1)}" );@]@; -@ @= +@t}\endfoldedsections{@> + +@*1 The syntax of regular expressions. The productions in this section define the +syntax of \flex\ regular expressions in detail. The same productions are used for +parsing isolated regular expressions (e.g.\ to present example code). A few of these +productions have been modified to suit the needs of the pretty printing parser. +@= @@; @ @= @G +@t}\vb{\inline\flatten}{@> goal: flexrule {@> @ @=} ; @@ -446,33 +512,48 @@ ensures that all the changes are local to the parsing macro. @= @[TeX_( "/table/yy(1)" );@]@; -@ @= +@ Regular expressions are parsed using the following productions. There are +two major cases: rules active only at the beginning of the line, and the rest. From the +typesetting parser's point of view, there is not much difference between the two +(certainly not enough to justify singling out the rules at the beginning of the line into +their own production) but it was decided to keep the original grammar rules +for consistency. +@= @G +@t}\vb{\insertraw{\beginfoldedsections}}{@> flexrule: - '^' rule {@> @ @=} + '^' rule {@> @ @=} | rule {@> @ @=} | EOF_OP {@> @ @=} | error {@> @ @=} ; -@ @= +@ @= @[TeX_( "/toksa/expandafter{/astformat@@flrule}" );@]@; @[TeX_( "/let/astformat@@flrule/empty" );@]@; @[TeX_( "/yy0{/nx/flbolrule{/the/yy(2)}{/the/toksa}}" );@]@; +@ @= + @[TeX_( "/yy0{/nx/fleof/the/yy(1)}" );@]@; + @ @= @[TeX_( "/toksa/expandafter{/astformat@@flrule}" );@]@; @[TeX_( "/let/astformat@@flrule/empty" );@]@; @[TeX_( "/yy0{/nx/flrule{/the/yy(1)}{/the/toksa}}" );@]@; -@ @= - @[TeX_( "/yy0{/nx/fleof/the/yy(1)}" );@]@; - @ @= @[TeX_( "/yyerror" );@]@; - -@ @= + +@t}\endfoldedsections{@> + +@ Another broad overview of regular expression types before diving into the details +of various operations. Note that the only trailing context that \splint\ output +lexer can process is the end of line (\prodstyle{'\$'}) due to the way the +scanner routine is written. It does not affect its ability to pretty print the appropriate +rules (for a lexer that is produced by \flex\ itself, for example). +@= @G +@t}\vb{\insertraw{\beginfoldedsections}}{@> rule: re2 re {@> @ @=} | re2 re '$' {@> @ @=} @@ -511,9 +592,22 @@ re2: @ @= @[TeX_( "/yy0{/nx/fltrail{/the/yy(1)}{/the/yy(2)}}" );@]@; + + @t}\endfoldedsections{@> -@ @= +@*2 Atoms. Every regular expression is assembled of atomic subexpressions, each +of which may be modified by an repetition operator that establishes how many +times a given pattern can repeat to stay part of the original atom. New atomic expressions +(or \prodstyle{singleton}s as they are called below) can be formed the usual way, by +enclosing a regular expression in parentheses. + +As explained \locallink{flex braces}above\endlink, braced repetition operators may +have different binding strengths, depending on the options supplied to \flex. The pretty +printing in both cases is identical as only the application scopes of the operator differ, and not +its meaning. +@= @G +@t}\vb{\insertraw{\beginfoldedsections}}{@> series: series singleton {@> @ @=} | singleton {@> @ @=} @@ -540,9 +634,12 @@ series: @ @= @@; - + +@t}\endfoldedsections{@> + @ @= @G +@t}\vb{\insertraw{\beginfoldedsections}}{@> singleton: singleton '*' {@> @ @=} | singleton '+' {@> @ @=} @@ -600,8 +697,15 @@ singleton: @ @= @[TeX_( "/yy0{/nx/flchar/the/yy(1)}" );@]@; -@ @= +@t}\endfoldedsections{@> + +@*2 Characters. Several facilities are available to specify sets of characters, including +built-in characters classes such as {\em whitespace}, {\em printable characters}, +{\em alphanumerics}, etc. Some simple boolean operaions are also supported to make specifying +character classes more efficient. +@= @G +@t}\vb{\insertraw{\beginfoldedsections}}{@> fullccl: fullccl CCL_OP_DIFF braceccl {@> @ @=} | fullccl CCL_OP_UNION braceccl {@> @ @=} @@ -610,7 +714,7 @@ fullccl: braceccl: '[' ccl ']' {@> @ @=} - | '[' '^' ccl ']' {@> @ @=} + | '[' '^' ccl ']' {@> @ @=} ; ccl: @@ -633,11 +737,13 @@ ccl: @ @= @[TeX_( "/yy0{/nx/flbraceccl{/the/yy(1)}{/the/yy(2)}{/the/yy(3)}}" );@]@; -@ @= - @[TeX_( "/yy0{/nx/flbracecclneg{/the/yy(1)}{/the/yy(3)}{/the/yy(4)}}" );@]@; +@ @= + @[TeXb( "/yy0{/nx/flbracecclneg" );@]@; + @[TeXfo( " {/the/yy(1)}{/the/yy(3)}{/the/yy(4)}}" );@]@; @ @= - @[TeX_( "/yy0{/the/yy(1)/nx/flcclrnge{/nx/flchar/the/yy(2)}{/nx/flchar/the/yy(4)}}" );@]@; + @[TeXb( "/yy0{/the/yy(1)/nx/flcclrnge" );@]@; + @[TeXfo( " {/nx/flchar/the/yy(2)}{/nx/flchar/the/yy(4)}}" );@]@; @ @= @[TeX_( "/yy0{/the/yy(1)/nx/flchar/the/yy(2)}" );@]@; @@ -648,7 +754,12 @@ ccl: @ @= @[TeX_( "/yy0{}" );@]@; -@ @= +@t}\endfoldedsections{@> + +@*3 Special character classes. Various character classes are predefined in \flex. +These include alphabetic and alphanumeric characters, digits, blank characters, upper and lower +case characters, etc. +@= @G ccl_expr: @t}\vb{\flatten}{@> @@ -696,7 +807,5 @@ string: @ @= @[TeX_( "/yy0{}" );@]@; -@ This is needed to get the |yytoknum| array. A trivial declaration suffices. +@ The postamble is empty for now. @= -#define YYPRINT(file, type, value) @[yyprint (file, type, value)@] - static void yyprint (FILE *file, int type, YYSTYPE value){} diff --git a/support/splint/cweb/lo.w b/support/splint/cweb/lo.w index 68ef1b6595..c2461787a9 100644 --- a/support/splint/cweb/lo.w +++ b/support/splint/cweb/lo.w @@ -1,4 +1,4 @@ -@q Copyright 2012-2020 Alexander Shibakov@> +@q Copyright 2012-2024 Alexander Shibakov@> @q Copyright 2002-2014 Free Software Foundation, Inc.@> @q This file is part of SPLinT@> @@ -18,6 +18,7 @@ @**The scanner for \ifx\bison\UNDEFINED\.{bison}\else\bison\fi\ syntax. \ifx\bison\UNDEFINED \input limbo.sty + \input yystype.sty \input grabstates.sty \immediate\openout\stlist=lo_states.h \fi @@ -95,7 +96,7 @@ output it in the form of a header file for the `real' lexer output @ {\it A \Cee-like comment in directives/rules}. @= -@G +@G(fs1) %x SC_YACC_COMMENT @g @@ -106,22 +107,26 @@ output it in the form of a header file for the `real' lexer output %\tracerulestrue %\traceactionstrue %\tracebadcharstrue +%\traceparseresultstrue +%\traceparserstatestrue %\prodstyle{\%\%}% -\traceparserstatesfalse -\tracestacksfalse -\tracerulesfalse -\traceactionsfalse -\tracebadcharsfalse -\yyflexdebugfalse @= -@G +@G(fs1) %x SC_ESCAPED_STRING SC_ESCAPED_CHARACTER @g @ {\it A identifier was just read in directives/rules. Special state to capture the sequence `\.{identifier:}'}. +\traceparserstatesfalse +\tracestacksfalse +\tracerulesfalse +\traceactionsfalse +\tracebadcharsfalse +\yyflexdebugfalse +\traceparseresultsfalse +\traceparserstatesfalse @= -@G +@G(fs1) %x SC_AFTER_IDENTIFIER @g @@ -131,7 +136,7 @@ disallow \prodstyle{NUL}, as this simplifies our implementation. We match angle brackets in nested pairs: several languages use them for generics/template types}. @= -@G +@G(fs1) %x SC_TAG @g @@ -150,25 +155,25 @@ Four types of user code: \aterm predicate (code between \.{\%?\{} and \.{\}} in middle section); }% @= -@G +@G(fs1) %x SC_PROLOGUE SC_BRACED_CODE SC_EPILOGUE SC_PREDICATE @g @ {\it \Cee\ and \Ceepp\ comments in code}. @= -@G +@G(fs1) %x SC_COMMENT SC_LINE_COMMENT @g @ {\it Strings and characters in code}. @= -@G +@G(fs1) %x SC_STRING SC_CHARACTER @g @ Bracketed identifiers support. @= -@G +@G(fs1) %x SC_BRACKETED_ID SC_RETURN_BRACKETED_ID @g @@ -179,9 +184,9 @@ Four types of user code: @ The code for the generated scanner is highly dependent on the options supplied. Most of the options below are essential for the scheme -adopted in this package to work. +adopted in this package to work.\gtextidx{\flex\ options example}{flex options example}{\flexidxdomain}% @= -@G +@G(fs1) %option bison-bridge %option noyywrap nounput noinput reentrant %option noyy_top_state @@ -194,7 +199,6 @@ adopted in this package to work. Here is a full list of regular expressions recognized by the \bison\ scanner. @= @@; - @@; @@; @@; @@; @@ -340,23 +344,11 @@ returns a pair of pointers as the value. } @g -@ Some additional constructs needed to typeset simple \flex\ -declarations. This is not part of the original \bison\ scanner. -@= -@G(fs2) - -{ - "%option" {@> @[TeX_( "/yylexreturnptr{FLEX_OPTION}" );@]@=} - "%x" {@> @[TeX_( "/yylexreturnptr{FLEX_STATE_X}" );@]@=} - "%s" {@> @[TeX_( "/yylexreturnptr{FLEX_STATE_S}" );@]@=} -} -@g - @ We present the `bad character' code first, before going into the details of the character matching by the rest of the lexer. @= - @[TeX_( "/edef/next{/nx/csname lexspecial[/the/yytextpure]/nx/endcsname}" );@]@; - @[TeX_( "/expandafter/expandafter/expandafter/ifx/next/relax" );@]@; + @[TeX_( "/expandafter/let/expandafter/next/csname lexspecial[/the/yytextpure]/endcsname" );@]@; + @[TeX_( "/ifx/next/relax" );@]@; @[TeX_( " /iftracebadchars" );@]@; @[TeX_( " /yyfatal{invalid character(s): /the/yytext}" );@]@; @[TeX_( " /fi" );@]@; @@ -436,13 +428,12 @@ later, after the context is known. @ @= @[TeX_( "/ifx/bracketedidstr/empty" );@]@; @[TeX_( " /bracketedidcontextstate/YYSTART /yyBEGIN{SC_BRACKETED_ID}" );@]@; - @[TeX_( " /let/next=/yylexnext" );@]@; + @[TeX_( " /yybreak/yylexnext" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /ROLLBACKCURRENTTOKEN" );@]@; @[TeX_( " /yyBEGIN{SC_RETURN_BRACKETED_ID}" );@]@; - @[TeX_( " /def/next{/yylexreturn{ID}}" );@]@; - @[TeX_( "/fi" );@]@; - @[TeX_( "/next" );@]@; + @[TeX_( " /yybreak{/yylexreturn{ID}}" );@]@; + @[TeX_( "/yycontinue" );@]@; @ @= @[TeX_( "/ifx/bracketedidstr/empty" );@]@; @@ -485,27 +476,25 @@ later, after the context is known. @[TeX_( "/ifx/bracketedidstr/empty" );@]@; @[TeX_( " /edef/bracketedidstr{{/the/yytextpure}{/the/yytext}" );@]@; @[TeX_( " {/the/yyfmark}{/the/yysmark}}" );@]@; - @[TeX_( " /let/next=/yylexnext" );@]@; + @[TeX_( " /yybreak/yylexnext" );@]@; @[TeX_( "/else" );@]@; - @[TeX_( " /def/next{/yywarn{unexpected identifier " );@]@; + @[TeX_( " /yybreak{/yywarn{unexpected identifier " );@]@; @[TeX_( " in bracketed name: /the/yytext}}" );@]@; - @[TeX_( "/fi" );@]@; - @[TeX_( "/next" );@]@; + @[TeX_( "/yycontinue" );@]@; @ @= @[TeX_( "/yyBEGINr/bracketedidcontextstate" );@]@; @[TeX_( "/ifx/bracketedidstr/empty" );@]@; - @[TeX_( " /def/next{/yywarn{an identifier expected}}" );@]@; + @[TeX_( " /yybreak{/yywarn{an identifier expected}}" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /ifnum/bracketedidcontextstate=/yylexstate{INITIAL}/relax" );@]@; @[TeX_( " /expandafter/yylval/expandafter{/bracketedidstr}" );@]@; @[TeX_( " /let/bracketedidstr=/empty" );@]@; - @[TeX_( " /def/next{/yylexreturn{BRACKETED_ID}}" );@]@; + @[TeX_( " /yybreak@@{/yylexreturn{BRACKETED_ID}}" );@]@; @[TeX_( " /else" );@]@; - @[TeX_( " /let/next=/yylexnext" );@]@; + @[TeX_( " /yybreak@@/yylexnext" );@]@; @[TeX_( " /fi" );@]@; - @[TeX_( "/fi" );@]@; - @[TeX_( "/next" );@]@; + @[TeX_( "/yycontinue" );@]@; @ @= @[TeX_( "/yyfatal{invalid character(s) in bracketed name: /the/yytext}" );@]@; @@ -621,11 +610,10 @@ The initial quote is already eaten}. @[TeX_( " {/the/yyfmark}{/the/yysmark}}}/next" );@]@; @[TeX_( " /STRINGFREE" );@]@; @[TeX_( " /yyBEGIN{INITIAL}" );@]@; - @[TeX_( " /def/next{/yylexreturn{TAG}}" );@]@; + @[TeX_( " /yybreak{/yylexreturn{TAG}}" );@]@; @[TeX_( "/else" );@]@; - @[TeX_( " /STRINGGROW/let/next=/yylexnext" );@]@; - @[TeX_( "/fi" );@]@; - @[TeX_( "/next" );@]@; + @[TeX_( " /STRINGGROW/yybreak/yylexnext" );@]@; + @[TeX_( "/yycontinue" );@]@; @ This is a slightly different rule from the original scanner. We do not perform |yyleng| computations, so it makes sense to raise the nesting level one by one. @@ -722,13 +710,12 @@ braced code. @[TeX_( "/ifnum/lonesting= @[TeX_( "/advance/lonesting/m@@ne" );@]@; @@ -736,12 +723,11 @@ braced code. @[TeX_( " /STRINGFINISH" );@]@; @[TeX_( " /edef/next{/yylval{{/the/laststring}{/the/yyfmark}{/the/yysmark}}}/next" );@]@; @[TeX_( " /yyBEGIN{INITIAL}" );@]@; - @[TeX_( " /def/next{/yylexreturn{BRACED_PREDICATE}}" );@]@; + @[TeX_( " /yybreak{/yylexreturn{BRACED_PREDICATE}}" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /STRINGGROW" );@]@; - @[TeX_( " /let/next=/yylexnext" );@]@; - @[TeX_( "/fi" );@]@; - @[TeX_( "/next" );@]@; + @[TeX_( " /yybreak/yylexnext" );@]@; + @[TeX_( "/yycontinue" );@]@; @ {\it Scanning some prologue: from \.{\%\{} (already scanned) to \.{\%\}}}. @= diff --git a/support/splint/cweb/mkeparser.w b/support/splint/cweb/mkeparser.w index f60ccf5d64..79505b3be4 100644 --- a/support/splint/cweb/mkeparser.w +++ b/support/splint/cweb/mkeparser.w @@ -1,4 +1,4 @@ -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2024, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify @@ -24,7 +24,7 @@ Sourcer(er?) (\.{bs.w}) which will be included as soon as this paragraph is over. Since the main function of this code is to {\it dump\/} tables produced by \bison, and a {\it bison\/} is a large buffalo like animal, {\it and\/} the only reason it has to be done like this is due -to the less than optimal choices of a few developers, feel free to +to a less than optimal choices of a few developers, feel free to interpret the acronym as something easier to remember. @ @= @@ -32,6 +32,9 @@ interpret the acronym as something easier to remember. @ @= @@; +#ifdef YYEOF + @@; +#endif @ @= @@; @@ -83,6 +86,7 @@ interpret the acronym as something easier to remember. @ @<\Cee\ preamble@>= @@; + @<\Cee\ setup code specific to \bison@>@; @i common.w @i bs.w diff --git a/support/splint/cweb/mkscanner.w b/support/splint/cweb/mkscanner.w index e847428199..05f22bd6e3 100644 --- a/support/splint/cweb/mkscanner.w +++ b/support/splint/cweb/mkscanner.w @@ -1,4 +1,4 @@ -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2022, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify diff --git a/support/splint/cweb/np.w b/support/splint/cweb/np.w index 58379649a5..a4216ee058 100644 --- a/support/splint/cweb/np.w +++ b/support/splint/cweb/np.w @@ -1,4 +1,4 @@ -@q Copyright 2012-2020, Alexander Shibakov@> +@q Copyright 2012-2024, Alexander Shibakov@> @q This file is part of SPLinT@> @q SPLinT is free software: you can redistribute it and/or modify@> @@ -18,7 +18,11 @@ name processing. This approach (i.e. using a `full blown' parser/scanner combination) is probably not the best way to implement such machinery but its main purpose is to demonstrate a way to create a separate -parser for local purposes. +parser for local purposes. The name parser is what allows one to +automatically typeset term names such as \.{example1} +and \.{\%option\_name} as \prodstyle{example1} and \prodstyle{\%option_name}. +@q The reference to \prodstyle{example1} above serves a dual role of correcting@> +@q an owerfull \vbox in the index.@> % We include the macros here since this file is intended to be % included by the documentation `aggregator' so putting bare \TeX\ % at the beginning of the file runs the risk of producing and error @@ -61,7 +65,7 @@ parser for local purposes. @G full_name: identifier_string suffixes.opt {@> @ @=} -| META_IDENTIFIER {@> @ @=} +| META_IDENTIFIER {@> @ @=} | quoted_name suffixes.opt {@> @ @=} ; @@ -123,7 +127,7 @@ qualifier: @ @= @[TeX_( "/yy0{/the/yy(1)/the/yy(2)}/namechars/yyval" );@]@; -@ @= +@ @= @[TeX_( "/getfirst{/yy(1)}/to/toksa" );@]@; @[TeX_( "/getsecond{/yy(1)}/to/toksb" );@]@; @[TeX_( "/yy0{/nx/idstr{/the/toksa}{/the/toksb}}/namechars/yyval" );@]@; @@ -138,7 +142,9 @@ qualifier: @[TeX_( "/getsecond{/yy(1)}/to/toksb" );@]@; @[TeX_( "/yy0{/nx/idstr{/the/toksa}{/the/toksb}}" );@]@; -@ @= +@ Tags are recognized as a separate syntax element although no special +processing is performed by the name parser or the associated macros. +@= @[TeX_( "/getfirst{/yy(2)}/to/toksa" );@]@; @[TeX_( "/getsecond{/yy(2)}/to/toksb" );@]@; @[TeX_( "/yy0{/nx/idstr{}{}}" );@]@; @@ -193,14 +199,15 @@ qualifier: @ An integer at the end of an identifier (such as |id1|) is interpreted as a suffix (similar to the way \MF\ treats identifiers, -and \mft\ typesets them\footnote{This allows, for example, names like -|$[term0]| while leaving |$[char2int]| in its `natural' form.}) to +and \mft\ typesets them,\footnote{This allows, for example, names like +|$[term0]| while leaving |$[char2int]| in its `natural' form.} as \prodstyle{id1}) to mitigate a well-intentioned but surprisingly inconvenient feature of \CTANGLE, namely outputting something like \.{id.1} as \.{id\ .1} in an attempt to make sure that integers do not interfere with structure dereferences. For this to produce meaningful results, a stricter interpretation of \prodstyle{IDENTIFIER} syntax is required, -represented by the \.{id\_strict} syntax below. +represented by the \flexrenstyle{id\_strict} syntax +\locallink{id_strict definition}below\endlink. @= @[TeX_( "/yy0{/the/yy(1)/nx/dotsp/nx/sfxi/the/yy(2)}" );@]@; @@ -251,8 +258,6 @@ as they have to be inserted in a place that is aware of the internal definitions definitions are used. @= -#define YYPRINT(file, type, value) @[yyprint (file, type, value)@] - static void yyprint (FILE *file, int type, YYSTYPE value){} @ Union of types. @@ -281,7 +286,10 @@ void define_all_states( void ) { @o @g -@ @= +@ \namedspot{id_strict definition}The tokens consumed by the name parser must +represent a relatively fine classification of various identifier substrings to be able to +detect various suffixes. +@= @@; @G(fs1) letter [_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] @@ -300,7 +308,7 @@ int [0-9]+ @ Strings and characters in directives/rules. @= -@G +@G(fs1) %x SC_ESCAPED_STRING SC_ESCAPED_CHARACTER @g @@ -310,7 +318,7 @@ int [0-9]+ #include @ @= -@G +@G(fs1) %option bison-bridge %option noyywrap nounput noinput reentrant %option noyy_top_state diff --git a/support/splint/cweb/philosophy.w b/support/splint/cweb/philosophy.w index 7b173f5d2f..1f5c4a3dfc 100644 --- a/support/splint/cweb/philosophy.w +++ b/support/splint/cweb/philosophy.w @@ -1,4 +1,4 @@ -@q Copyright 2012-2020, Alexander Shibakov@> +@q Copyright 2012-2022, Alexander Shibakov@> @q This file is part of SPLinT@> @q SPLinT is free software: you can redistribute it and/or modify@> @@ -64,6 +64,12 @@ they set a special reading rhythm, which is an added bonus in many cases, although their presense openly violates the `universally gray pages are a must' dogma. +One final remark concerns the abundance of footnotes in this manual. I confess, +there is almost no reason for it $\ldots$ except {\em I like footnotes\/}! +They help introduce the air of mystery and adventure to an otherwise boring +text. They are akin to the author wispering a secret in the reader's +ear\footnote{Breaking convention by making the pages even less uniform is an added bonus.}. + @*1 Why GPL. Selecting the license for this project involves more than the availability of the source code. \TeX, by its very nature is an @@ -191,12 +197,19 @@ the language. `Make it object-oriented' is neither a good reason nor a clearly defined one, however. @*1 Why not $*$\TeX. -Simple. I never use it and have no idea of how packages, classes, +Simple. I rarely, if ever\footnote{In some cases, a publisher would only accept +a \LaTeX\ document, sadly. Better than most alternatives though.}, +use it and have no idea of how packages, classes, etc., are designed. I have heard it has impressive mechanisms for dealing with various problems commonly encountered in \TeX. Sadly, my -knowledge of $*$\TeX\ machinery is almost nonexistent. This may change -but right now I have tried to make the macros as generic as possible, -hopefully making $*$\TeX\ adaptation easy. +knowledge of $*$\TeX\ machinery is almost nonexistent\footnote{I am well familiar +with the programming that went into \LaTeX, which is of highest quality. I do not +share the design philosophy though and try to use only the most standard features}. +This may change but right now I have tried to make the macros as generic as possible, +hopefully making $*$\TeX\ adaptation easy\footnote{Unfortunately some redesign would +be certainly necessary. Thus, \splint\ relies on the way plain \TeX\ allocates token +registers so if the corresponding scheme in \LaTeX\ is drastically different, this +portion of the macros would have to be rewritten.}. The following quote from \cite[Ho] makes me feel particularly uneasy about the current state of development of various \TeX\ variants: @@ -205,7 +218,7 @@ and even more important is that the general impression is that of a finished boo sometimes it seems like\/ \.{WEB} actively discourages development. This is a subjective point, but nevertheless a quite important one.}'' -{\it Discouraging development\/} seems like a good thing to +{\it Discouraging development\/} seems like a good feature to me. Otherwise we are one step away from encouraging writing poor software with inadequate tools merely `to encourage development'. @@ -300,7 +313,7 @@ inserts \.{\\hbox\{\}}$\,$\TeX\ stuff$\,$\.{\{\}} into \CWEAVE's output. The cost of this hack (aside from looking and feeling rather ugly on the editor screen, not to mention disrupting the editor's brace accounting) is a superfluous \.{\\hbox\{\}} left behind {\em before\/} -the `\TeX\ stuff'. The programmer's provided \TeX\ code is unable to +the `\TeX\ stuff'. The programmer provided \TeX\ code is unable to remove this box (at the macro level, i.e.~in \TeX's `mouth' using D.~Knuth's terminology, one may still succeed with the \.{\\lastbox} approach unless the \.{\\hbox} was inserted in the main vertical mode) @@ -312,6 +325,16 @@ cases such side-effects are indeed desirable, and save the programmer some typing but it seems that the \.{@@t} facility was not well thought out in its entirety.}. +Continuing with the theme of inserting \TeX\ material into \CWEAVE\ output, +another one of \CWEB's inflexibilities is the lack of means of inserting +\TeX\ {\em between\/} sections. While inserting pure text may be arranged by +putting a codeless section after the one with the code (appropriate macros +can be written to suppress the generation of a reference to such a section), +inserting command sequences that affect, say, the typesetting style +of the consequent sections is not so easy. The trick with a `fake' section below +will be quite visible in the final output which is almost always undesirable. +Using the \.{@@t} mechanism is also far from ideal. + In general, the lack of structure in \CWEAVE's generated \TeX\ seems to hinder even seemingly legitimate uses of \.{cwebmac.tex} macros. Even such a natural desire as to use a different type size for diff --git a/support/splint/cweb/references.w b/support/splint/cweb/references.w index 83397c93bb..3824972d65 100644 --- a/support/splint/cweb/references.w +++ b/support/splint/cweb/references.w @@ -1,4 +1,4 @@ -@q Copyright 2012-2020, Alexander Shibakov@> +@q Copyright 2012-2022, Alexander Shibakov@> @q This file is part of SPLinT@> @q SPLinT is free software: you can redistribute it and/or modify@> diff --git a/support/splint/cweb/so.w b/support/splint/cweb/so.w index d7a7696b8c..944f2cb82f 100644 --- a/support/splint/cweb/so.w +++ b/support/splint/cweb/so.w @@ -32,6 +32,7 @@ @**The lexer for \ifx\flex\UNDEFINED\.{flex}\else\flex\ \fi syntax. \ifx\flex\UNDEFINED \input limbo.sty + \input yystype.sty \input grabstates.sty \immediate\openout\stlist=fil_states.h \fi @@ -43,16 +44,31 @@ to replace them with ordinary patterns and use |yyless()| in the actions. @G %{@> @ @=%} @> @ @= - @> @ @= + @> @ @= @> @ @= @> @ @= %% @> @ @= + @> @ @= @> @ @= %% @> @ @= @g +@ Bootstrap lexer. +@(ssfs.ll@>= +@G +%{@> @ @=%} + @> @ @= + @> @ @= + @> @ @= +%% + @> @ @= + @> @ @= +%% + @> @ @= +@g + @ @= @ There are a few options that are necessary to ensure that the lexer @@ -60,27 +76,31 @@ functions properly. Some of them (like \.{caseless}) directly affect the behavior of the scanner, others (e.g.~\.{noyy\_top\_state}) prevent generation of unnecessary code. @= -@G +@G(fs1) %option caseless nodefault stack noyy_top_state %option nostdinit -@g - -@ @= -@G %option bison-bridge %option noyywrap nounput noinput reentrant %option debug %option stack + +@ @= +@G(fs1) %option outfile="fil.c" @g +@ @= +@G(fs1) +%option outfile="ssfs.c" +@g + @*1 Regular expression and state definitions. The lexer uses a large number of states to control its operation. Both section~1 and section~2 rules rely on the scanner being in the appropriate state. Otherwise (see \.{symbols.sty} example) the lexer may parse the same fragment in a wrong context. @= -@G +@G(fs1) %x SECT2 SECT2PROLOG SECT3 CODEBLOCK PICKUPDEF SC CARETISBOL NUM QUOTE %x FIRSTCCL CCL ACTION RECOVER COMMENT ACTION_STRING PERCENT_BRACE_ACTION %x OPTION LINEDIR CODEBLOCK_MATCH_BRACE @@ -132,7 +152,7 @@ M4QEND "]]" @*1 Regular expressions for \flex\ input scanner. The code below treats \prodstyle{\%pointer} and \prodstyle{\%array} the same way it treats \prodstyle{\%option} while typesetting. -@= +@= @G(fs2) { ^{WS} {@> @[TeX_( "/flindented@@codetrue/yyBEGIN{CODEBLOCK}/yylexnext" );@]@=} @@ -211,7 +231,7 @@ The code below treats \prodstyle{\%pointer} and \prodstyle{\%array} the same way { \n {@> @[TeX_( "/yypopstate/yylexnext" );@]@=} - [[:digit:]]+ {@> @[TeX_( "/fllinenum=/number/yytext/yylexnext" );@]@=} + [[:digit:]]+ {@> @[TeX_( "/fllinenum=/number/the/yytext/yylexnext" );@]@=} \"[^"\n]*\" {@> @[TeX_( "/yylexnext" );@] /* ignore the file name in the line directives */ @=} . {@> @[TeX_( "/yylexnext" );@] /* ignore spurious characters */ @=} } @@ -257,10 +277,10 @@ The code below treats \prodstyle{\%pointer} and \prodstyle{\%array} the same way @ @= @[TeX_( "/iffldidadef" );@]@; @[TeX_( " /yylval/expandafter{/flnmdef}" );@]@; - @[TeX_( " /def/next{/flinc@@linenum/yyBEGIN{INITIAL}/yylexreturn{RE_DEF}}" );@]@; + @[TeX_( " /yybreak{/flinc@@linenum/yyBEGIN{INITIAL}/yylexreturn{RE_DEF}}" );@]@; @[TeX_( "/else" );@]@; - @[TeX_( " /def/next{/yyfatal{incomplete name definition}}" );@]@; - @[TeX_( "/fi/next" );@]@; + @[TeX_( " /yybreak{/yyfatal{incomplete name definition}}" );@]@; + @[TeX_( "/yycontinue" );@]@; @ @= @G(fs2) @@ -390,7 +410,6 @@ The code below treats \prodstyle{\%pointer} and \prodstyle{\%array} the same way .*{NL} {@> @[TeX_( "/flinc@@linenum/yyBEGIN{INITIAL}/yylexnext" );@] @=} @ Like \bison, \flex\ allows insertion of \Cee\ code in the middle of the input file. -\saveparseoutputtrue @= @G(fs2) { @@ -407,7 +426,6 @@ The code below treats \prodstyle{\%pointer} and \prodstyle{\%array} the same way } @ All the code inside is ignored. -\saveparseoutputfalse @= @[TeX_( "/flinc/flbracelevel/yyless{2}/yylexnext" );@]@; @@ -416,13 +434,16 @@ The code below treats \prodstyle{\%pointer} and \prodstyle{\%array} the same way @ @= @[TeX_( "/ifnum/flbracelevel>/z@@" );@]@; - @[TeX_( " /let/next/yylexnext" );@]@; + @[TeX_( " /yybreak/yylexnext" );@]@; @[TeX_( "/else" );@]@; - @[TeX_( " /def/next{/yysetbol{/@@ne}/yyBEGIN{SECT2}/yyless{0}/yylexnext}" );@]@; - @[TeX_( "/fi/next" );@]@; + @[TeX_( " /yybreak{/yysetbol{/@@ne}/yyBEGIN{SECT2}/yyless{0}/yylexnext}" );@]@; + @[TeX_( "/yycontinue" );@]@; @ A pattern below (for the character class processing) had to be broken into two lines. -A symbol ($\odot$@^$\odot$ separator, \flex@>) was inserted to indicate that a break had occured. The macros for \flex\ +A special symbol ($\odot$\gtextidx{$\odot$ separator, \flex}{0. separator, flex}{\flexidxdomain}) +has been inserted to indicate that a break had occured. + +The macros for \flex\ typesetting use a different mechanism from that of \bison\ macros and allow typographic corrections to be applied to sections of the \flex\ code represented by various nonterminals. These corrections can also be delayed. For the details, an interested reader may consult @@ -477,14 +498,14 @@ These corrections can also be delayed. For the details, an interested reader may @ @= @[TeX_( "/yyless{1}/yyBEGIN{NUM}" );@]@; @[TeX_( "/iffllex@@compat" );@]@; - @[TeX_( " /def/next{/yylexreturn{BEGIN_REPEAT_POSIX}}" );@]@; + @[TeX_( " /yybreak{/yylexreturn{BEGIN_REPEAT_POSIX}}" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /ifflposix@@compat" );@]@; - @[TeX_( " /def/next{/yylexreturn{BEGIN_REPEAT_POSIX}}" );@]@; + @[TeX_( " /yybreak@@{/yylexreturn{BEGIN_REPEAT_POSIX}}" );@]@; @[TeX_( " /else" );@]@; - @[TeX_( " /def/next{/yylexreturn{BEGIN_REPEAT_FLEX}}" );@]@; + @[TeX_( " /yybreak@@{/yylexreturn{BEGIN_REPEAT_FLEX}}" );@]@; @[TeX_( " /fi" );@]@; - @[TeX_( "/fi/next" );@]@; + @[TeX_( "/yycontinue" );@]@; @ @= @[TeX_( "/def/flbracelevel{1}" );@]@; @@ -492,17 +513,17 @@ These corrections can also be delayed. For the details, an interested reader may @[TeX_( "/ifflin@@rule" );@]@; @[TeX_( " /fldoing@@rule@@actiontrue" );@]@; @[TeX_( " /flin@@rulefalse" );@]@; - @[TeX_( " /def/next{/yylexreturnxchar/n}" );@]@; + @[TeX_( " /yybreak{/yylexreturnxchar/n}" );@]@; @[TeX_( "/else" );@]@; - @[TeX_( " /let/next/yylexnext" );@]@; - @[TeX_( "/fi/next" );@]@; + @[TeX_( " /yybreak/yylexnext" );@]@; + @[TeX_( "/yycontinue" );@]@; @ This action has been changed to accomodate the new grammar. The separator (\.{\yl}) is treated as an ordinary (empty) action. @= @[TeX_( "/ifflsf@@skip@@ws" );@]@;/* whitespace ignored, still inside a pattern */ @[TeX_( " /yylessafter{|}" );@]@; - @[TeX_( " /let/next/yylexnext" );@]@; + @[TeX_( " /yybreak/yylexnext" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /flinc@@linenum" );@]@; @[TeX_( " /fldoing@@rule@@actiontrue" );@]@; @@ -510,8 +531,8 @@ is treated as an ordinary (empty) action. @[TeX_( " /flcontinued@@actiontrue" );@]@; @[TeX_( " /unput{/n}" );@]@; @[TeX_( " /yyBEGIN{ACTION}" );@]@; - @[TeX_( " /edef/next{/nx/yylexreturnxchar/n}" );@]@; - @[TeX_( "/fi/next" );@]@; + @[TeX_( " /yybreak{/yylexreturnxchar/n}" );@]@; + @[TeX_( "/yycontinue" );@]@; @ @= @[TeX_( "/ifflsf@@skip@@ws" );@]@; @@ -525,7 +546,7 @@ is treated as an ordinary (empty) action. @ @= @[TeX_( "/ifflsf@@skip@@ws" );@]@; - @[TeX_( " /let/next/yylexnext" );@]@; + @[TeX_( " /yybreak/yylexnext" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /def/flbracelevel{0}" );@]@; @[TeX_( " /flcontinued@@actionfalse" );@]@; @@ -533,16 +554,16 @@ is treated as an ordinary (empty) action. @[TeX_( " /ifflin@@rule" );@]@; @[TeX_( " /fldoing@@rule@@actiontrue" );@]@; @[TeX_( " /flin@@rulefalse" );@]@; - @[TeX_( " /def/next{/yylexreturnxchar/n}" );@]@; + @[TeX_( " /yybreak@@{/yylexreturnxchar/n}" );@]@; @[TeX_( " /else" );@]@; - @[TeX_( " /let/next/yylexnext" );@]@; + @[TeX_( " /yybreak@@/yylexnext" );@]@; @[TeX_( " /fi" );@]@; - @[TeX_( "/fi/next" );@]@; + @[TeX_( "/yycontinue" );@]@; @ @= @[TeX_( "/ifflsf@@skip@@ws" );@]@; @[TeX_( " /flinc@@linenum" );@]@; - @[TeX_( " /let/next/yylexnext" );@]@; + @[TeX_( " /yybreak/yylexnext" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /def/flbracelevel{0}" );@]@; @[TeX_( " /flcontinued@@actionfalse" );@]@; @@ -551,11 +572,11 @@ is treated as an ordinary (empty) action. @[TeX_( " /ifflin@@rule" );@]@; @[TeX_( " /fldoing@@rule@@actiontrue" );@]@; @[TeX_( " /flin@@rulefalse" );@]@; - @[TeX_( " /def/next{/yylexreturnxchar/n}" );@]@; + @[TeX_( " /yybreak@@{/yylexreturnxchar/n}" );@]@; @[TeX_( " /else" );@]@; - @[TeX_( " /let/next/yylexnext" );@]@; + @[TeX_( " /yybreak@@/yylexnext" );@]@; @[TeX_( " /fi" );@]@; - @[TeX_( "/fi/next" );@]@; + @[TeX_( "/yycontinue" );@]@; @ @= @[TeX_( "/def/flsectnum{3}" );@]@; @@ -596,26 +617,26 @@ The braces and the possible trailing whitespace will be dealt with by the typese @ @= @[TeX_( "/iffllex@@compat" );@]@; - @[TeX_( " /def/next{/yyless{1}/flsf@@push/yylexreturnraw(}" );@]@; + @[TeX_( " /yybreak{/yyless{1}/flsf@@push/yylexreturnraw(}" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /ifflposix@@compat" );@]@; - @[TeX_( " /def/next{/yyless{1}/flsf@@push/yylexreturnraw(}" );@]@; + @[TeX_( " /yybreak@@{/yyless{1}/flsf@@push/yylexreturnraw(}" );@]@; @[TeX_( " /else" );@]@; - @[TeX_( " /def/next{/yypushstate{EXTENDED_COMMENT}}" );@]@; + @[TeX_( " /yybreak@@{/yypushstate{EXTENDED_COMMENT}}" );@]@; @[TeX_( " /fi" );@]@; - @[TeX_( "/fi/next" );@]@; + @[TeX_( "/yycontinue" );@]@; @ @= @[TeX_( "/flsf@@push" );@]@; @[TeX_( "/iffllex@@compat" );@]@; - @[TeX_( " /def/next{/yyless{1}}" );@]@; + @[TeX_( " /yybreak{/yyless{1}}" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /ifflposix@@compat" );@]@; - @[TeX_( " /def/next{/yyless{1}}" );@]@; + @[TeX_( " /yybreak@@{/yyless{1}}" );@]@; @[TeX_( " /else" );@]@; - @[TeX_( " /def/next{/yyBEGIN{GROUP_WITH_PARAMS}}" );@]@; + @[TeX_( " /yybreak@@{/yyBEGIN{GROUP_WITH_PARAMS}}" );@]@; @[TeX_( " /fi" );@]@; - @[TeX_( "/fi/next" );@]@; + @[TeX_( "/yycontinue" );@]@; @[TeX_( "/yylexreturnraw(" );@]@; @ @= @@ -708,14 +729,14 @@ The braces and the possible trailing whitespace will be dealt with by the typese @ @= @[TeX_( "/yyBEGIN{SECT2}" );@]@; @[TeX_( "/iffllex@@compat" );@]@; - @[TeX_( " /def/next{/yylexreturn{END_REPEAT_POSIX}}" );@]@; + @[TeX_( " /yybreak{/yylexreturn{END_REPEAT_POSIX}}" );@]@; @[TeX_( "/else" );@]@; @[TeX_( " /ifflposix@@compat" );@]@; - @[TeX_( " /def/next{/yylexreturn{END_REPEAT_POSIX}}" );@]@; + @[TeX_( " /yybreak@@{/yylexreturn{END_REPEAT_POSIX}}" );@]@; @[TeX_( " /else" );@]@; - @[TeX_( " /def/next{/yylexreturn{END_REPEAT_FLEX}}" );@]@; + @[TeX_( " /yybreak@@{/yylexreturn{END_REPEAT_FLEX}}" );@]@; @[TeX_( " /fi" );@]@; - @[TeX_( "/fi/next" );@]@; + @[TeX_( "/yycontinue" );@]@; @ @= @@ -833,3 +854,19 @@ void define_all_states( void ) { #include "fil_states.h" #undef _register_name +@ @= +@G(fs2) +<*>. {@> @[TeX_( "/yyerrterminate" );@] @=} + +@ The drive expects this function to be defined but the bootstrap +lexer has no need for it. We leave it in to appease the compiler. +@= +void define_all_states( void ) { + @@; +} + +@ @= +#define _register_name( name ) @[Define_State( #name, name )@] + /* The \flexsnstyle{INITIAL} state is generated automatically */ +#undef _register_name + diff --git a/support/splint/cweb/splint.w b/support/splint/cweb/splint.w index e50e090c32..4bf32953ff 100644 --- a/support/splint/cweb/splint.w +++ b/support/splint/cweb/splint.w @@ -1,4 +1,4 @@ -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2024, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify @@ -13,19 +13,12 @@ % % You should have received a copy of the GNU General Public License % along with SPLinT. If not, see . -% -\newwrite\gindex % index entries generated by the various parsers, \prodstyle{...} commands, etc. -% + \input limbo.sty \input frontmatter.sty \def\optimization{5} \input yy.sty \modenormal -\input noweb.sty - \xreflocaltrue - \readlxrefs % read the reference file if exists before any sections appear - \newwrite\xrefstream % references for noweb like style of sectioning. - \immediate\openout\xrefstream=\jobname.xxr % multi-column output \input dcols.sty \topskip=9pt % this is a purely aesthetic choice, also negating the \raggedbottom @@ -71,9 +64,9 @@ \defreserved{Y}{\.{Y}} \showlastactiontrue +\initauxstream @**Introduction. -\setupfootnotes \splint\footnote{I was tempted to call the package {\tt ParLALRgram} which stands for Parsing {\sc LALR} Grammars or {\tt PinT} for `Parsing in \TeX' but both sounded too generic.} (Simple Parsing and @@ -117,9 +110,9 @@ output is some very rudimentary post- and pre-processing. Our main concern is thus \CWEAVE\ that not only pretty prints the program but also creates an index, cross-references all the sections, etc. Getting \CWEAVE\ to pretty print a language other than -\Cee\ requires some additional attention. A true digital warrior would +\Cee\ requires some additional effort. A true digital warrior would probably try to decipher \CWEAVE's output `in the raw' but, alas, my -WebFu is not that strong. The loophole comes in the form of a rarely +(C)WebFu is not that strong. The loophole comes in the form of a rarely (for a good reason) used \CWEB\ command: the verbatim (\.{@@=...@@>}) output. The material to be output by this construct undergoes minimal processing and is put inside \.{\\vb\{}$\ldots$\.{\}}. All that is @@ -134,9 +127,9 @@ merely a brief overview of the approach. Every \CWEB\ document is split into {\em sections}, each divided into three parts (any one of which can be empty): the \TeX\ part, the middle part, and -the \Cee\ part (which should more appropriately be called the {\em code -part\/}). The code part of each\footnote{With the exception of the nameless \.{@@c} -sections.} section carries a name for cross referencing +the \Cee\ part (which should more appropriately be called the {\em code\/} or +the {\em program\/} part). The \Cee\ part of each\footnote{With the exception of the +nameless \.{@@c} (or \.{@@p}) sections.} section carries a name for cross referencing purposes. The sections themselves are automatically numbered by \CWEAVE\ and their code parts may be referenced from other sections, as well as included in other sections' code parts using \CWEB's cross referencing @@ -151,7 +144,7 @@ The original \CWEB\ macros (from \.{cwebmac.tex}) used the numbers generated by \CWEAVE\ to refer to specific sections. This was true for the table of contents, as well as the index entries. The macros used by \splint\ adopt a different convention, proposed by N.~Ramsey -for his literate programming software, \noweb. In the new system +for his literate programming software \noweb. In the new system (which will be referred to as the \noweb\ style of cross referencing), each section is labelled by the page number where it starts and an alphabetic character that indicates the order of appearance of the @@ -163,10 +156,13 @@ section. The top level (\.{@@**}) sections, introducing major portions of the code have also been given more prominent -appearance and carry a chapter number in addition to the the \noweb\ -style section number (the latter is used for cross references, as the -chapter number gives no indication as to where the said chapter is -located). +appearance. They display the chapter number using a large typeface +and omit the marginal section reference. References to such sections +are typeset as {\it cnnn\/} where {\it nnn\/} represents the chapter +number. While such references obscure the page number, hopefully one keeps +the number of chapters, as well as such references, small. This +modification improves the appearance of the first chapter pages. + \CWEB\ also generates an {\em index\/} of all the identifiers (with some exceptions, such as single letter names) appearing in the @@ -247,7 +243,7 @@ important application. @*1 Parsing and parsers. At an abstract level, a {\em parser@^parser@>\/} is just a routine -that transforms text. Naturally, not every possible tranformation is +that transforms text. Naturally, not every possible transformation is beneficial, so, informally, the value of a parser lies in its ability to expose some {\em meaning\/} in the text. If valid texts are reduced to a small finite set (while each text can be arbitrarily long) one @@ -342,7 +338,7 @@ longer strings. Computing $m$ and $n$ above now reduces to incrementing an appropriate variable upon exiting the corresponding function. More important, -however, is the observation that this parsing algorithm can be +however, is the observation that this parser specification can be extracted from the grammar in a very straightforward fashion. To better illustrate the r\^ole of the grammar in the choice of the parsing algorithm, consider the following syntax for the same @@ -364,10 +360,10 @@ astring: \noindent While the language is unchanged, so the algorithm above still works, the lookahead tokens are not {\em immediately\/} apparent upon looking at the productions. Some preprocessing must take -place before one can decide on the choice of parser states and the -appropriate lookahead tokens. Such algorithms indeed exist and result -in what is known as an {\sc LR} parser for the fragment above -(actually, a simpler {\sc LALR} parser may be built for this +place before one can decide on the choice of the parser states and the +appropriate lookahead tokens. Such parser generating algorithms +indeed exist and will produce what is known as an {\sc LR} parser +for the fragment above (actually, a simpler {\sc LALR} parser may be built for this grammar\footnote{Both of these algorithms will use the parser stack more efficiently, effectively resolving the `call stack depth' issue mentioned earlier.}). One can see that some grammar types may make @@ -411,11 +407,12 @@ non_terminal: @g @ $\ldots$ if the syntax is correct. -In case it is a bit off (note the missing colon after \.{whoops}), the parser will give up and +In case it is a bit off (note the missing colon after \.{whoops} below), the parser will give up and you will see a different result. The code in the fragment below is easily recognizable, and some parts of it (all of \Cee\ code, in fact) are still pretty printed by \CWEAVE. Only the verbatim portion is left -unprocessed. +unprocessed. The layout of the original code is reproduced unchanged, including the braces and production separators (i.e.\ +\.{\yl}) normally removed by the parser for presentation purposes. @= @G whoops @@ -478,7 +475,7 @@ automatically from the \CWEB\ source file by the \CWEAVE\ processing stage. All of these definitions can be overwritten to get the desired output (say, one might want to typeset \.{ID} in a roman font, as `identifier'; all that needs to be done to -make this possible is a macro that says \.{\\prettywordpair\{ID\}\{\{\\rm +make this possible is to provide a macro that says \.{\\prettywordpair\{ID\}\{\{\\rm identifier\}\}} in an appropriate namespace (usually \.{\\hostparternamespace})). The file \.{btokenset.sty} input above contains a number of such definitions. @@ -567,11 +564,11 @@ the file below. @*1 On debugging. This concludes a short introduction to the \bison\ grammar pretty printing using this macro collection. It would be -incomplete, however, without a short reference to debugging\footnote{Here -we are talking about debugging the output produced by \CWEAVE\ when +incomplete, however, without a short reference to debugging\footnote{At +the moment we are discussing debugging the output produced by \CWEAVE\ when the included \bison\ parser is used, {\it not\/} debugging parsers written with the help of this software: the latter topic is covered in more -detail later on}. There is a +detail later on.}. There is a fair amount of debugging information that the macros can output, unfortunately, very little of it is tailored to the {\em use\/} of the macros in the \bison\ parser. Most of it is designed to help build a @@ -653,7 +650,7 @@ identifier determines its association with the appropriate set.}. a collection of parsers, usually derived from a common set of productions, and sharing a common lexer. As the name suggests, the parsers in the collection are tried in order until the input is parsed -successfully or every parser has been tried. This terminology may be the +successfully or every parser has been tried. This terminology may become a source of some confusion, since each parsing algorithm used by \bison\ maintains several stacks. We will always refer to them by naming a specific task the stack is used for (such as the {\em value stack\/} or the @@ -687,7 +684,7 @@ productions. \aterm{term} in a narrow sense, an `element' of a grammar. Instead of a long winded definition, an example, such as \prodstyle{ID} should suffice. Terms are further classified into {\it terminals\/} (tokens) -and {\it nonterminals\/} (which can be intuitively thought of as +and {\it nonterminals\/} (which may be intuitively thought of as composite terms). \aterm{token} in short, an element of a set. Usually encoded as an @@ -734,7 +731,7 @@ some attention, as well. There are a number of excellent programs written to automate this step in much the same fashion as \bison\ automates the generation of parsers. One such tool, \flex, though (in the opinion of this author) slightly lacking in the simplicity and -elegance as compared to \bison, was used to implement the lexer for +elegance when compared to \bison, was used to implement the lexer for this software suite. Lexing in \TeX\ will be discussed in considerable detail later in this manual. @@ -750,7 +747,7 @@ syntax-directed translation} (which requires an appropriate abstraction to represent \bison's actions inside \TeX). We shall begin by discussing the parsing process itself. -@*1 Arrays, stacks and the parser. +@*1 Arrays, stacks, and the parser. Let us briefly examine the programming environment offered by \TeX. Designed for typesetting, \TeX's remarkable language provides a layer of macro processing atop of a set of commands that @@ -826,7 +823,9 @@ implementation). Since stacks pop up and disappear frequently (what else are stacks to do?), list macros are usually used to store them. The optimized parser uses a separate \.{\\count} register to keep track of the top of the stack in the corresponding associative -array. +array\footnote{Which means, unfortunately, that making such fully optimized +parser {\em reentrant\/} would take an extraordinary amount of effort. Hence, +if reentrancy is a requirement, stacks are better kept inside list macros.}. Let us now switch our attention to the code that implements the parser and scanner {\it functions\/}. @@ -1175,8 +1174,10 @@ token and move on but what if this was a control sequence? After all, just as easily as \.{\\string} makes a sequence into characters, \.{\\csname}$\,\ldots\,$\.{\\endcsname} pair will make any sequence of characters into a control sequence so determining the end the character -sequence produced by \.{\\string} may prove impossible. Huh~$\ldots$ - +sequence produced by \.{\\string} may prove impossible. +$$ +\hbox{Huh~$\ldots$} +$$ What we need is a backup mechanism: keeping a copy of the token sequence ahead, one can use \.{\\string} to see whether the next token is a real @@ -1233,7 +1234,7 @@ or even {\it tokener}), discussed in the next section. @*1 Lexing in \TeX. In a typical system that uses a parser to process text, the parsing pass is usually split into several stages: the raw input, the lexical analysis (or simply {\it lexing}), and the parsing -proper. The {\it lexing\/} (also called {\it scanning}, we use these +proper. The {\it lexing\/} pass (also called {\it scanning}, we use these terms interchangeably) clumps various sequences of characters into {\it tokens\/} to facilitate the parsing stage. The reasons for this particular hierarchy are largely pragmatic and are partially historic @@ -1242,7 +1243,7 @@ phases, as well, although it usually isn't). If one recalls a few basic facts from the formal language theory, it becomes obvious that a lexer, that parses {\it regular\/} languages, -can (theoretically) be replaced by an {\sc LALR} parser, that parses {\it +can be (in theory) replaced by an {\sc LALR} parser, that parses {\it context-free\/} ones (or some subset thereof, which is still a super set of all regular languages). A common justification given for creating specialized lexers is efficiency and speed. The @@ -1266,7 +1267,10 @@ matching input is accepted. The only straightforward way to do this with a traditional parser is to parse longer and longer inputs again and again. While this process can be optimized to a certain degree, the fact that a parser has a {\it stack\/} to maintain limits its -ability to back up. +ability to back up\footnote{It should be also mentioned that the fact that +the lexing pass takes place prior to the parser consuming the resulting tokens +allows one to process some grammars that are not context free. See, for example +the {\em parser hack\/} used to process |typedef|s in \Cee.}. As an aside, the mechanism by which \CWEB\ assembles its `scraps' into chunks of recognized code is essentially iterative lexing, @@ -1450,7 +1454,7 @@ altering the grammar mentioned above apply in this case, as well, only at the `lexical analysis level'. At a minimum, the set of tokens matched by the scanner would have to be altered. -A much more satisfying approach involves inserting the hints at the input stage and +A much more satisfying approach, however, involves inserting the hints at the input stage and passing this information to the scanner and the parser as part of the token `values'. The hints themselves can masquerade as characters ignored by the scanner (white space\footnote{Or even the `intercharacter space', to make the @@ -1482,7 +1486,8 @@ This is exactly what the scanner produced by the tools in this package does: along with the main stream of tokens meant for the parser, it produces two\footnote{There would be no difficulty in splitting either of these streams into multiple `substreams' by modifying the stream -extraction macros accordingly.} hidden streams (called the \.{\\yyformat} stream and +extraction macros accordingly.} hidden streams\namedspot{parser.streams} +(called the \.{\\yyformat} stream and the \.{\\yystash} stream) and provides the parser with two strings (currently only strings of digits are used although arbitrary sequences of \TeX\ tokens can be used as pointers) with the promise @@ -1490,10 +1495,13 @@ that {\it all the `hints' between the beginning of the corresponding stream and the point labeled by the current stream pointer appeared among the characters up to and, possibly, including the ones matched as the current token}. The macros to extract the relevant parts of the -streams (\.{\\yyreadfifo} and its cousins) are provided for the +streams (\.{\\consumelistupto} and its cousins) are provided for the convenience of the parser designer. -The \.{\\yystash} stream collects all the typesetting commands inserted by +What the parser does with these pointers and the information they provide, is +up to the parser designer (the parsers for \flex\ and \bison\ syntax +in this package use somewhat different strategies). +The \.{\\yystash} stream currently collects all the typesetting commands inserted by \CWEB\ to be possibly used in displaying the action code in \bison\ productions, for example. Because of this, it may appear in somewhat unexpected places, introducing spaces where the programmer did not @@ -1505,10 +1513,10 @@ The interested reader can consult the input routine macros in \.{yyinput.sty} for the details of the internal representation of the streams. -In the interest of full disclosure, let me point out that this simple +In the interest of full disclosure, it should be pointed out that this simple technique introduces a significant strain on \TeX's computational resources: the lowest level macros, the ones that handle -character input and are thus executed (sometimes multiple times), for +character input and are thus executed (in some cases multiple times), for {\it every\/} character in the input stream are rather complicated and therefore, slow. Whenever the use of such streams is not desired a simpler input routine can be written to speed up the process (see @@ -1517,9 +1525,13 @@ input routine can be written to speed up the process (see Finally, while probably not directly related to the present discussion, this approach has one more interesting feature: after the parser is finished, the parser output and the streams exist -`statically', fully available for any last minute preprocessing or for +`statically', fully available for any last minute postprocessing or for debugging purposes, if necessary\footnote{One may think of the parser output -as an {\it executable abstract syntax tree (AST)}.}. Under most circumstances, the parser +as an {\it executable abstract syntax tree\/} (\AST\ or \EAST\ if one +likes cute abbreviations, or even e\AST\ for an extra touch of modernity). +This parser feature is used to implement the facility that allows easy referencing of +productions in the section that implements the action code for one. See \.{yyunion.sty} +and the source of this file (\.{splint.w}) for details.}. Under most circumstances, the parser output is `executed' and the macros in the output are the ones reading the various streams using the pointers supplied at the parsing stage (at least, this is the case for all the parsers supplied with the @@ -1532,7 +1544,9 @@ how the tables produced by \bison\ get converted into \TeX\ {\it macros\/} that drive the parser in {\it \TeX}. The tables that drive the \bison\ input parsers -are collected in \.{\{b,d,f,g,n\}yytab.tex} and \.{small\_tab.tex}. Each +are collected in \.{\{b,d,f,g,n\}yytab.tex}, \.{small\_tab.tex} and other similarly named +files\footnote{Incidentally, one of the names above is not used anymore. See the \.{cweb} +directory after a successful build to find out which. Aren't footnotes great?!}. Each one of these files contains the tables that implement a specific parser used during different stages of processing. Their exact function is well explained @@ -1584,30 +1598,34 @@ it after \.{\\classexpand} (such sequences are usually prepared by the \bison\ from your grammar). You can give a case a readable label (say, \.{brackets}) and enclose -this label in \.{\\raw}$\ldots$\.{\\raw}. A word of caution: an `\.{a}' -inside of \.{\\raw}$\ldots$\.{\\raw} (which is most likely an -\.{a}$_{11}$ unless you played with the category codes before loading the -\.{\\switchon} macros) and the one outside it are two different +this label in \.{\\raw}$\ldots$\.{\\raw}. A word of caution: an +`\.{a}' inside of \.{\\raw}$\ldots$\.{\\raw} (which is most likely an +\.{a}$_{11}$ unless you played with the category codes before loading +the \.{\\switchon} macros) and the one outside it are two different characters, as one is no longer a letter (category 11) in the eyes of \TeX\ whereas the other one still is. For this reason one should not -use characters other than letters in h\.{\{}is\.{,}er\.{\}} state -{\em names}: the way a state picks an action does not distinguish between, +use characters other than letters in h\.{\{}is\.{,}er\.{\}} state {\em +names\/} if such characters can form tokens by themselves: +the way a state picks an action does not distinguish between, say, a `\.{(}' in `\.{(letter)}' and a stand alone `\.{(}' and may pick an action that you did not intend\footnote{One way to mitigate this is by putting such named states at the end of the switch, {\em -after\/} the actions labelled by the standalone characters.}. -This applies even if `\.{(}' -is not among the characters explicitly inserted in the state macro: if -an action for a given character is not found in the state macro, the -\.{\\switchon} macro will insert a current \.{\\default} action -instead, which most often you would want to be \.{\\yylex} or -\.{\\yyinput} (i.e.\ skip this token). If a single `\.{(}' or `\.{)}' matches -the braced group that follows `\.{(letter)}' chaos may ensue (most -likely \TeX\ will keep reading past the \.{\\end} or \.{\\yyeof} that -should have terminated the input). Make the names of character -categories as unique as possible: the \.{\\switchon} is simply a -string matching mechanism, with the added differentiation between -characters of different categories. +after\/} the actions labelled by the standalone characters. There is nothing +special about non-letter characters, of course. To continue the \.{letter} +example, placing a state named \.{let} {\em after\/} the \.{letter} one +will make it essentially invisible to the switch macros for the reasons +explained before this footnote.}. This applies even if `\.{(}' is not among +the characters explicitly +inserted in the state macro: if an action for a given character is not +found in the state macro, the \.{\\switchon} macro will insert a +current \.{\\default} action instead, which most often you would want +to be \.{\\yylex} or \.{\\yyinput} (i.e.\ skip this token). If a +single `\.{(}' or `\.{)}' matches the braced group that follows +`\.{(letter)}' chaos may ensue (most likely \TeX\ will keep reading +past the \.{\\end} or \.{\\yyeof} that should have terminated the +input). Make the names of character categories as unique as possible: +the \.{\\switchon} is simply a string matching mechanism, with the +added differentiation between characters of different categories. Finally, the construct \.{\\statecomment}{\it anything\/}\.{\\statecomment} allows you to insert comments in the @@ -1620,15 +1638,14 @@ makes the debugging information difficult to decipher). The debugging mode for the lexer implemented with these macros is activated by \.{\\tracedfatrue}. -The functionality of the \.{\\switchon} (as well as the \.{\\switchonwithtype}, which -is capable of some rudimentary type checking) macros (for `historical' -reasons, one can also use \.{\\action} as a synonym for the latter) has been -implemented in a number of other macro packages (see \cite[Fi] that -discusses the well-known and widely used \.{\\CASE} and \.{\\FIND} -macros). The macros in this collection have the additional property -that the only assignments that persist after the \.{\\switchon} -completes are the ones performed by the user code inside the selected -case. +The functionality of the \.{\\switchon} (as well as the +\.{\\switchonwithtype}, which is capable of some rudimentary type +checking) macros has been implemented in a number of other macro +packages (see \cite[Fi] that discusses the well-known and widely used +\.{\\CASE} and \.{\\FIND} macros). The macros in this collection have +the additional property that the only assignments that persist after +the \.{\\switchon} completes are the ones performed by the user code +inside the selected case. This last property of the switch macros is implemented using another mechanism that is part of this macro suite: the `subroutine-like' @@ -1662,7 +1679,10 @@ be able to write parsers of arbitrary sophistication: value of the $n$-th term of the rule's right hand side, $n>0$. The left hand side of a production is accessed through \.{\\yyval}. A convenient shortcut is \.{\\yy0\{{\rm \TeX\space material}\}} which -will expand (as in \.{\\edef}) the `\TeX\ material' inside the braces. Thus, a simple way +will expand (as in \.{\\edef}) the `\TeX\ material' inside the braces and store the result +in \.{\\yyval} (note that this only works if a sequence of \.{0}s, possibly followed or preceeded +by spaces are the only tokens between \.{\\yy} and the opening braces; see the discussion of +\.{\\bb} macros below for a description of what happens in other cases). Thus, a simple way to concatenate the values of the first two production terms is \.{\\yy0\{\\the\\yy(1)\\the\\yy(2)\}}. The included \bison\ parser can also be used to provide support for `symbolic names', @@ -1673,8 +1693,9 @@ however. There is also a \.{\\bb$\,n$} macro, that has no analogue in the `real' \bison\ parsers, and provides access to the term -values in the `natural order' (e.g.~\.{\\bb1} is the last term read). Its -intended use is with the `inline' rules (see the main parser for +values in the `natural order' (e.g.~\.{\\bb1} is the last term in the part of +the production preceeding the action). Its intended use is with the `inline' +rules (see the main parser for such examples). As of version \.{3.0} \bison\ no longer outputs |yyrhs| and |yyprhs|, which makes it impossible to produce the |yyrthree| array necessary for processing such rules in the `left to right' @@ -1682,13 +1703,41 @@ order. One might also note that the new notation is better suited for the inline rules since the value that is pushed on the stack is that of \.{\\bb0}, i.e.~the term implicitly inserted by \bison. Be aware that there are no \.{\\bb[$\cdot$]} or \.{\\bb($\cdot$)} versions of -these macros, for obvious reasons. A less obvious feature of this +these macros, for obvious reasons\footnote{The obvious reason is the mechanism +used by \.{\\yy[$\cdot$]} and \.{\\yy($\cdot$)} to make them expandable. +These macros are basically references to the appropriate token registers. Since +the \.{\\bb} macros were designed for the environment where \.{\\yylen} is unknown, +establishing such references before the action is executed is not possible. A +less obvious reason is the author's lazy approach.}. A less obvious feature of this macro is its `nonexpandable' nature. This means they cannot be used -inside \.{\\edef}. Thus, the most common use pattern is -\.{\\bb$\,n$\{\\toks$\,m$\}} with a subsequent expansion of -\.{\\toks$\,m$}. Making these macros expandable is certainly possible +inside \.{\\edef} (just like its \.{\\yy$\,n$} counterpart, it makes several +assignments which will not be executed by \.{\\edef}). +Thus, the most common use pattern is \.{\\bb$\,n$\{\\toks$\,m$\}} (where $n>0$) +with a subsequent expansion of \.{\\toks$\,m$}\footnote{Similar to how \.{\\yy$\,n$} macros +work, whenever $n>0$, this pattern simply puts the contents of the braced group +that follows in front of a (braced) single expansion of the appropriate +value on the stack. If, as in the example above, the contents of the +braced group are \.{\\toks$\,m$}, this effectively stores the value of the braced group in +the token register. In the case $n=0$ the meaning is different: +the stack value {\em corresponding to the implicit term\/} becomes the expanded (by \.{\\edef}) +contents of the braced group following \.{\\bb$\,n$}.}. +Making these macros expandable is certainly possible but does not seem crucial for the intended limited use pattern. +Finally, the scripts included with \splint\ include a postprocessor +(see the appropriate~\.{Makefile} for further details) that allows the +use of the `native' \bison\ term references (i.e.\ of the form +\.{\char`\$}$\ldots$) to access the value stack\footnote{Incidentally, +\bison\ itself uses a preprocessor (\.{M4}) to turn its term references +into valid \Cee.}. Utilizing the postprocessor allows any syntax for +term references used by \bison\ to be used inside \.{TeX}$\ldots$ \Cee\ macros. +In this case a typical +idiom is \.{\\the\char`\$[term\_name]} to get the value of +\prodstyle{term_name}. While storing a new value for the term (i.e.\ +modifying the value stack) is also possible, it is not very +straightforward and thus not recommended. This applies to all forms of +term references discussed above. + Naturally, a parser writer may need a number of other data abstractions to complete the task. Since these are highly dependent on the nature of the processing the parser is supposed to provide, we @@ -1703,7 +1752,8 @@ most importantly, to create `reentrant' parsers that can, e.g.\ call {\it themselves\/} recursively. @*1 `Optimization'. -\namedspot{optimization}By default, the generated parser and scanner keep all of their tables +\namedspot{optimization}By default, the generated parser and scanner +keep all of their tables in separate token registers. Each stack is kept in a single macro (this description is further complicated by the support for parser {\it namespaces\/} that exists even for unoptimized parsers but this @@ -1806,7 +1856,8 @@ appropriate terms in a production. If mathematics pays your bills, use \let\hostparsernamespace\mainnamespace % to typeset examples in the text % properly -@**Index. This section is, perhaps, the most valuable product of +@**Index. \global\let\secrangedisplay\empty% do not show the current section range anymore +This section is, perhaps, the most valuable product of \CWEB's labors. It lists references to definitions (set in {\it italic}) as well as uses for each \Cee\ identifier used in the source. Special facilities have been added to extend the indexing to @@ -1845,7 +1896,7 @@ appeared on the left hand side of a production. A production: }% \beginmprod left_hand_side: - term.1 term.2 term.3 \{\stashed{|TeX_("/do/something/yy(1)");|}\} + term.1 term.2 term.3 \{\stashed{|TeX_("/do/something/with/yy(1)");|}\} \endmprod inside the \TeX\ part of a \CWEB\ section will generate several index entries, as well, including the entries for any @@ -1865,20 +1916,18 @@ available, thus avoiding referencing the same token twice). \TeX\ control sequences are listed following the index of all \bison\ and \flex\ entries. The different sections of the index are separated by a {\it dinkus\/} -(\dinkus). Since it is nearly impossible to determine at what point a +(\dinkus)@^dinkus (\dinkus)@>. Since it is nearly impossible to determine at what point a \TeX\ macro is defined (and most of them are defined outside of the \CWEB\ sources), only their uses are listed (to be more precise, {\it every\/} appearance of a macro is assumed to be its use). In a few cases, a `graphic' representation for a control sequence appears in the index (for -example, {\let\writetexidxentry\writetextxtidxentry -\def\texnspace{texline}\def\texispace{index}\inlineTeXx{/getfirst}} represents +example, \texref{/getfirst} represents {\let\writetexidxentry\writetextxtidxentry \def\texnspace{other}\def\texispace{other}\inlineTeXx{/getfirst}$\!$}). The index entries are ordered alphabetically. The latter may not be entirely obvious in the cases when the `graphical representation' of the corresponding token manifests a significant -departure from its string version (such as -{\let\writetexidxentry\writetextxtidxentry|TeX_("/yy(1)");|} +departure from its string version (such as \texref{/yy(1)} instead of {\def\texnspace{other}\def\texispace{other}% \let\writetexidxentry\writetextxtidxentry |TeX_("/yy(1)");|$\!$}). Incidentally, for the examples on this page @@ -1886,11 +1935,8 @@ instead of {\def\texnspace{other}\def\texispace{other}% the `graphic' as well as `text' versions of the control sequence are indexed. It is instructive to verify that their location in the index corresponds to the `spelling' of their visual representation (thus, -{\let\writetexidxentry\writetextxtidxentry -\def\texnspace{texline}\def\texispace{index}\inlineTeXx{/getfirst}} -appears under `p'). One should also be aware that the indexing of some terms has -been suppressed, since they appear too often. -\unsetfootnotes % this way the footnote stream is not affected by the extra index pages +\texref{/getfirst} appears under `p'). One should also be aware that +the indexing of some terms has been suppressed, since they appear too often. % TODO: explain the visibility system. Note the anomalous order of \prodstyle{term.1} % vs.~\prodstyle{term0} due to the dot in \.{term.1}, which is otherwise invisible. Underscore the % importance of following a consistent naming scheme, including the `stringized' versions @@ -1899,15 +1945,5 @@ been suppressed, since they appear too often. @q the lack of control over the generation of \CWEB's index; the correct order @> @q of index entries depends on the placement of this inclusion @> @i alphas.hx - -\closeout\gindex -\termindexfalse % do not attach indexing entries to the terms in the index, or the section list -\def\next{\expandafter\eatone\string} -\edef\unindexable{{\next\the}{\next\nx}{\next\yy}{\next\yylexnext}{\next\else}{\next\fi}{\next\yyBEGIN}{\next\next}} -\input gindex.sty -%\indexverbosetrue -\let\inx\inxmod -\let\fin\finmod -\lxrefseparator % start generating section lists -%\displaytokenrawtrue % so that the `nonstringified' version of the token is displayed as well -\def\topofcontents{\null\vskip-3\baselineskip\centerline{C{\sc ONTENTS} (\sc\uppercase\expandafter{\title})}\medskip} +\makeunindexablex{{\csstring\the}{\csstring\nx}{\csstring\yy}{\csstring\yylexnext}% + {\csstring\else}{\csstring\fi}{\csstring\yyBEGIN}{\csstring\next}} diff --git a/support/splint/cweb/ssffo.w b/support/splint/cweb/ssffo.w deleted file mode 100644 index 315bffc798..0000000000 --- a/support/splint/cweb/ssffo.w +++ /dev/null @@ -1,123 +0,0 @@ -@q Copyright 2012-2020, Alexander Shibakov@> -@q This file is part of SPLinT@> - -@q SPLinT is free software: you can redistribute it and/or modify@> -@q it under the terms of the GNU General Public License as published by@> -@q the Free Software Foundation, either version 3 of the License, or@> -@q (at your option) any later version.@> - -@q SPLinT is distributed in the hope that it will be useful,@> -@q but WITHOUT ANY WARRANTY; without even the implied warranty of@> -@q MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the@> -@q GNU General Public License for more details.@> - -@q You should have received a copy of the GNU General Public License@> -@q along with SPLinT. If not, see .@> -\input limbo.sty -\def\optimization{5} -\input yy.sty -\modenormal -\let\oldN\N -\let\N\textN -\let\M\textM -% uncomment the next line to leave the typesetting of tokens in its raw state. -%\def\hostparsernamespace{[unreacheable]} -\let\hostparsernamespace\mainnamespace -\input btokenset.sty - -@** A simple scanner for \flex\ options. -This is a `bare-bones' scanner for a subset of the `extended' \bison\ -grammar that parses some of the `extensions', namely, the -\flex\ state declarations. It does not use the state mechanism -itself, and is supposed to be used with the bootstrapping parser, even -though this is not strictly necessary. It parses state declarations as -long as they are separated into their own \CWEB\ sections and extracts -the {\it names\/} of the states. The \flex\ scanner output `driver' -does the rest after including the produced header file. - -If reusing the existing scanner for \bison\ were not a priority a -proper way to design a scanner like this is to make it a subset of the -existing scanner code. This way portions of the program would be made -more reusable and the overall design made more consistent. -@s TeX_ TeX -@(ssffo.ll@>= -@G - @> @ @= -%{@> @ @=%} - @> @ @= -%% - @> @ @= -%% -@g - -@ A couple of handy abbreviations to get started. Note that the -definition of a letter is more restrictive in this case since we only -need to grab the states of an existing \bison\ lexer. For a -bootstrapping scanner like this it is beneficial to fail early while -scanning something that is not in its attention domain: it results in -faster bootstrapping and lower chance of accidentally parsing -something that should not have been. Making the syntax and the grammar -more restrictive helps to acheive this, as well as makes the overall -design simpler. -@= -@G(fs1) -letter [_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] -id {letter}({letter}|[-0-9])* -@g - -@ @= - -#include -#include - - void define_all_states( void ){} - -@ A standard combination of options to match the \TeX\ code that -drives the scanner. -@= -@G -%option bison-bridge -%option noyywrap nounput noinput reentrant -%option noyy_top_state -%option debug -%option stack -%option outfile="ssffo.c" -@g - -@ There are not that many regular expressions to list, since the range -of tokens recognized by this routine is not very wide. -@= - @@; - @@; - -@ White space skipping. -@= -@G(fs2) -[ \f\n\t\v] {@> @[TeX_( "/yylexnext" );@]@=} -@g - -@ The rest of it are either identifiers or \.{\%}-options. The typesetting of -the appropriate \bison\ tokens below was arranged by inputting \.{btokenset.sty} and -relying on the pretty-printing macros for {\it \TeX} to do their job. -@= -@G(fs2) -{id} {@> @ @=} -"%x" {@> @[TeX_( "/yylexreturnptr{FLEX_STATE_X}" );@] @=} -"%s" {@> @[TeX_( "/yylexreturnptr{FLEX_STATE_S}" );@] @=} -. {@> @ @=} -@g - -@ @= - @[TeX_( "/iftracebadchars" );@]@; - @[TeX_( " /yycomplain{invalid character(s): /the/yytext}" );@]@; - @[TeX_( "/fi" );@]@; - @[TeX_( "/yylexreturn{$undefined}" );@]@; - -@ The lexer returns standard \.{\\yyunion} types. -@= - @[TeX_( "/edef/next{/yylval{{/the/yytextpure}{/the/yytext}" );@]@; - @[TeX_( " {/the/yyfmark}{/the/yysmark}}}/next" );@]@; - @[TeX_( "/yylexreturn{ID}" );@]@; - -@** Index. -\def\TeXx{\TeX\ material} \ No newline at end of file diff --git a/support/splint/doc/ldman.pdf b/support/splint/doc/ldman.pdf index d1d798816a..9e53467d24 100644 Binary files a/support/splint/doc/ldman.pdf and b/support/splint/doc/ldman.pdf differ diff --git a/support/splint/doc/splint.pdf b/support/splint/doc/splint.pdf index 76600ea682..9f031110ac 100644 Binary files a/support/splint/doc/splint.pdf and b/support/splint/doc/splint.pdf differ diff --git a/support/splint/examples/count/count.sty b/support/splint/examples/count/count.sty index d9fed05f94..d697096141 100644 --- a/support/splint/examples/count/count.sty +++ b/support/splint/examples/count/count.sty @@ -1,4 +1,4 @@ -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2022, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify diff --git a/support/splint/examples/expression/Makefile b/support/splint/examples/expression/Makefile index 6f306939b6..741e94664c 100644 --- a/support/splint/examples/expression/Makefile +++ b/support/splint/examples/expression/Makefile @@ -1,4 +1,4 @@ -# Copyright 2012-2020, Alexander Shibakov +# Copyright 2012-2022, Alexander Shibakov # This file is part of SPLinT # # SPLinT is free software: you can redistribute it and/or modify @@ -54,7 +54,7 @@ test.tex ${PARSER}.yy ${LEXER}.ll: expression.x expression.tex: expression.x @${CWEAVE} $< -expression.pdf: expression.tex ${SPLINT_XPTABLES} ${SPLINT_XLTABLES} ${SPLINT_ROOT}cweb/bo.tok ${SPLINT_ROOT}cweb/fo.tok etoks.sty +expression.pdf: expression.tex ${SPLINT_XTABLES} etoks.sty @${PDFTEX} $< test: test.tex ptab.tex ltab.tex diff --git a/support/splint/examples/expression/etoks.sty b/support/splint/examples/expression/etoks.sty index 706ad35818..6df6c0d3be 100644 --- a/support/splint/examples/expression/etoks.sty +++ b/support/splint/examples/expression/etoks.sty @@ -1,4 +1,4 @@ -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2022, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify diff --git a/support/splint/examples/expression/expression.sty b/support/splint/examples/expression/expression.sty index ac0d8ba7e5..8fe0970159 100644 --- a/support/splint/examples/expression/expression.sty +++ b/support/splint/examples/expression/expression.sty @@ -1,4 +1,4 @@ -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2024, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify diff --git a/support/splint/examples/expression/expression.w b/support/splint/examples/expression/expression.w index 9e96ea44d0..1f6a2f6b61 100644 --- a/support/splint/examples/expression/expression.w +++ b/support/splint/examples/expression/expression.w @@ -1,4 +1,4 @@ -@q Copyright 2012-2020, Alexander Shibakov@> +@q Copyright 2012-2024, Alexander Shibakov@> @q This file is part of SPLinT@> @q SPLinT is free software: you can redistribute it and/or modify@> @@ -16,9 +16,12 @@ \input limbo.sty \def\optimization{5} \input yy.sty +\input dcols.sty \modenormal +\initauxstream -@** Parser file. This is an example parser for expressions. It takes +@** Parser file. +This is an example parser for expressions. It takes advantage of some of the features of \splint\ generated parsers, although anything that takes more than a straightforward setup is omitted. @@ -140,8 +143,6 @@ as they have to be inserted in a place that is aware of the internal definitions definitions are used. @<\.{expression} parser \Cee\ postamble@>= -#define YYPRINT(file, type, value) @[yyprint (file, type, value)@] - static void yyprint (FILE *file, int type, YYSTYPE value){} @ Union of types. Empty as well. @@ -175,7 +176,7 @@ int [0-9]+ void define_all_states( void ){} @ @= -@G +@G(fs1) %option bison-bridge %option noyywrap nounput noinput reentrant %option noyy_top_state @@ -206,13 +207,14 @@ int [0-9]+ @[TeX_( "/iftracebadchars" );@]@; @[TeX_( " /yycomplain{invalid character(s): /the/yytext}" );@]@; @[TeX_( "/fi" );@]@; - @[TeX_( "/yylexreturn{$undefined}" );@]@; + @[TeX_( "/yyerrterminate" );@]@; @*Test file. The test file includes a handy list of debugging options that can be activated to see the inner workings of the parser and scanner routines. @(test.txx@>= @G +\chardef\other=12 % needed for some macros to work \input expression.sty \iffalse @@ -240,7 +242,7 @@ scanner routines. \bye @g -@**Index. -\immediate\closeout\exampletable +@**Index.\global\let\secrangedisplay\empty% do not show the current section range anymore +\global\topskip=9pt \def\Tex{\TeX\ output} \def\TeXx{\TeX\ output} diff --git a/support/splint/examples/ld/Makefile b/support/splint/examples/ld/Makefile index 24bf4a7a9f..8d876e55c9 100644 --- a/support/splint/examples/ld/Makefile +++ b/support/splint/examples/ld/Makefile @@ -1,4 +1,4 @@ -# Copyright 2012-2020, Alexander Shibakov +# Copyright 2012-2024, Alexander Shibakov # This file is part of SPLinT # # SPLinT is free software: you can redistribute it and/or modify @@ -22,10 +22,11 @@ PARSER = ldp LEXER = ldl MANUAL = ldman -LD_CORE_PREREQS = ${SPLINT_XTEXSTYLES} ${SPLINT_XPTABLES} ${SPLINT_XLTABLES} ${SPLINT_ROOT}cweb/bo.tok ${SPLINT_ROOT}cweb/fo.tok -LD_DOC_PREREQS = %.tex %.sty ${PARSER}.tok ldunion.sty ldtexlex.sty ldint.sty ldfrontmatter.sty ${LD_CORE_PREREQS} -LD_DOC_PREREQS += ptab.tex ltab.tex ld_small_tab.tex ld_small_dfa.tex ltokenset.sty lstokenset.sty -LD_DOC_PREREQS_XREF = ${LD_DOC_PREREQS} %.scn %.idx +LD_CORE_PREREQS = ${SPLINT_XTEXSTYLES} ${SPLINT_XTABLES} +LD_DOC_PREREQS_STATIC = ldunion.sty ldtexlex.sty ldint.sty ltokenset.sty lstokenset.sty +LD_DOC_PREREQS_GEN = ldptab.tex ldltab.tex ld_small_tab.tex ld_small_dfa.tex ${PARSER}.tok ldsetup.sty +LD_DOC_PREREQS_XREF = ${LD_CORE_PREREQS} %.sty ${LD_DOC_PREREQS_STATIC} %.tex ${LD_DOC_PREREQS_GEN} %.scn %.idx +LD_DOC_PREREQS_XREF += ldfrontmatter.sty include ../../makefile.inc include ${SPLINT_ROOT}makefile.loc @@ -35,13 +36,13 @@ include ${SPLINT_ROOT}makefile.loc ptabout: ${SPLINT_ROOT}cweb/mkeparser.c ${PARSER}.c ${CC} ${BISON_STATE} -DPARSER_FILE=\"../examples/ld/$(lastword $^)\" -DYYPARSE_PARAMETERS= -o $@ $< -ptab.tex: ptabout +ldptab.tex: ptabout $< --optimize-actions --optimize-tables $@ ltabout: ${SPLINT_ROOT}cweb/mkscanner.c ldl_states.h ${LEXER}.c ${CC} -DLEXER_FILE=\"../examples/ld/$(lastword $^)\" -o $@ $< -ltab.tex: ltabout +ldltab.tex: ltabout $< --optimize-actions --optimize-tables $@ ${LEXER}.c: ${LEXER}.l @@ -53,7 +54,8 @@ ${PARSER}.yy : ldgram.x ${LEXER}.ll: ldlex.x @${CTANGLE} $< -${MANUAL}.stx: ${MANUAL}.x ldgram.x ldlex.x ldlexo.x ldgramo.x ldnp.x +${MANUAL}.stx \ +ldsetup.stx: ${MANUAL}.x ldgram.x ldlex.x ldlexo.x ldgramo.x ldnp.x ldexample_l.hx ldexample_t.hx alphas.hx @${CTANGLE} $< # term name parser for ld grammar @@ -101,11 +103,13 @@ ldexample_%.hx: ldexample.hw alphas.hx: ${MISCCW} --alpha-list --alpha-length=1 $@ -${MANUAL}.tex: ${MANUAL}.x ldgram.x ldlex.x ldlexo.x ldgramo.x ldnp.x ldexample_l.hx ldexample_b.hx alphas.hx +${MANUAL}.tex: ${MANUAL}.x ldgram.x ldlex.x ldlexo.x ldgramo.x ldnp.x ldexample_l.hx ldexample_t.hx alphas.hx + @echo "Preparing the ${MANUAL}.tex file ..." -${CWEAVE} $< -${MANUAL}.sty: ${MANUAL}.stx - ${UNLINE} $< $@ +${MANUAL}.sty \ +ldsetup.sty:%.sty: %.stx + ${UNLINE} $< $@ ${MANUAL}.gdx: %.gdx: ${LD_DOC_PREREQS_XREF} ${PARSER}.tok @echo "Making the bison and TeX indices ..." @@ -116,11 +120,8 @@ ${MANUAL}.gdx: %.gdx: ${LD_DOC_PREREQS_XREF} ${PARSER}.tok ${MANUAL}.gdy: %.gdy: %.gdx ${BINDX} --fine $^ $@ -${MANUAL}.xxr: %.xxr: %.tex - ${PDFTEX} $*.tex - -${MANUAL}.pdf: %.pdf: ${LD_DOC_PREREQS_XREF} %.gdy %.xxr - ${PDFTEX} $< && touch $*.gdy && touch $*.pdf +${MANUAL}.pdf: %.pdf: ${LD_DOC_PREREQS_XREF} %.gdy %.aux + ${PDFTEX} $*.tex && touch $*.gdy && touch $*.pdf ${PARSER}.tok: ldgram.tex ${MANUAL}.sty ${LD_CORE_PREREQS} ${TEX} ${MODEBOOTSTRAP} \\input $< @@ -130,15 +131,25 @@ ldl_states.h: ldlex.tex ${MANUAL}.sty ${LD_CORE_PREREQS} ldgram.tex ldlex.tex: \ %.tex: %.x - -${CWEAVE} -x $< + @echo "Building ldgram.tex and ldlex.tex." + -${CWEAVE} -x $*.x docs: ${MANUAL}.pdf +install: docs + @cp ${LD_DOC_PREREQS_STATIC} ${SPLINT_INSTALL_DIR}/tex/ + @cp ${LD_DOC_PREREQS_GEN} ${SPLINT_INSTALL_DIR}/cweb/ + +uninstall: + @rm -f $(patsubst %, ${SPLINT_INSTALL_DIR}/tex/%, ${LD_DOC_PREREQS_STATIC}) + @rm -f $(patsubst %, ${SPLINT_INSTALL_DIR}/cweb/%, ${LD_DOC_PREREQS_GEN}) + mostlyclean: clean_temp -rm -f ptabout ltabout ldsmalll_out ldsmallp_out ldnump_out ldnuml_out ${MANUAL}.c clean: clean_core - -rm -f ptabout ltabout ldsmalll_out ldsmallp_out ldnump_out ldnuml_out *.stx ldman.sty + -rm -f ptabout ltabout ldsmalll_out ldsmallp_out ldnump_out ldnuml_out *.stx \ + ldman.sty ldsetup.sty distclean: clean cd ${SPLINT_ROOT} && ${MAKE} clean diff --git a/support/splint/examples/ld/ldexample.hw b/support/splint/examples/ld/ldexample.hw index a5cab97d2a..d9cb732624 100644 --- a/support/splint/examples/ld/ldexample.hw +++ b/support/splint/examples/ld/ldexample.hw @@ -4,7 +4,7 @@ MEMORY { @> @ @= RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K - FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K + FLASH (rx!w) : ORIGIN = 0x8000000, LENGTH = 128K ASH (rx) : ORIGIN = 8001000, LENGTH = 128K @> @ @= CLASH (rx) : ORIGIN = 700000, LENGTH = 128K @@ -27,6 +27,7 @@ ENTRY(_entry); SECTIONS { @> @ @= + . = ORIGIN(FLASH); .isr_vector ALIGN(8) (NOLOAD): AT(.) ALIGN(.) ALIGN_WITH_INPUT SUBALIGN(8) SPECIAL { . = ALIGN(4); @@ -73,5 +74,18 @@ SECTIONS _ebss = . ; } >RAM @> @ @= + . = ALIGN(0x0001ABCD); + _ffbegin = .; + OVERLAY : NOCROSSREFS AT ( _ffabs ) { + .free_func0 + { + *(.free_func0) + . = ALIGN(4); + } + .free_func1 + { + *(.free_func1) + } + } >RAM } diff --git a/support/splint/examples/ld/ldgram.w b/support/splint/examples/ld/ldgram.w index 5e7ff73a03..3671ee52ce 100644 --- a/support/splint/examples/ld/ldgram.w +++ b/support/splint/examples/ld/ldgram.w @@ -1,4 +1,4 @@ -@q Copyright 2012-2020 Alexander Shibakov@> +@q Copyright 2012-2022 Alexander Shibakov@> @q Copyright 2002-2014 Free Software Foundation, Inc.@> @q This file is part of SPLinT@> @@ -18,10 +18,12 @@ @** The parser. \ifbootstrapmode \def\tokendeffile{ldp.tok}% - \input ldman.sty + \input ldman.sty + \def\bstrapparser{dyytab.tex}% only the full or preamble parser would know how to + % parse grammar sections that mix \prodstyle{\%token} + % declarations with other \bison\ syntax + \def\bstraptokens{bo.tok}% token equivalences for the full lexer \modebootstrap - \input dcols.sty - \setupfootnotes \def\MRI{} \def\ld{} \fi @@ -76,8 +78,6 @@ is supplied by the \TeX\ macros in \.{ldman.sty}. @ @= @ @<\ld\ parser \Cee\ postamble@>= -#define YYPRINT(file, type, value) yyprint (file, type, value) - static void yyprint (FILE *file, int type, YYSTYPE value){} @ @<\ld\ parser productions@>= @<\GNU\ \ld\ script rules@>@; @@ -129,13 +129,13 @@ by the \ld\ parser are put in a single list. %left OROR ANDAND '|' '^' '&' EQ NE '<' '>' LE GE LSHIFT RSHIFT '+' '-' '*' '/' '%' '(' @g -@*1 Grammar rules, an overview. +@*1 Grammar rules, an overview. The first natural step in transforming an existing parser into a `parser stack' for pretty printing is to understand the `anatomy' of the grammar. Not every grammar is suitable for such a transformation and in almost every case, some modifications are needed. The parser and lexer implementation for \ld\ is not terrible although it does -have some idiosynchasies that could have been eliminated by a careful +have some idiosynchrasies that could have been eliminated by a careful grammar redesign. Instead of invasive rewriting of significant portions of the grammar, the approach taken here merely omits some rules and partitions the grammar into several subsets, each of which @@ -143,7 +143,7 @@ is supposed to handle a well defined logical section of an \ld\ script file. One example of a trick used by the \ld\ parser that is not appropriate for a -pretty printing grammar implements a way of handling the choice of the +pretty printing grammar is the way the original parser handles the choice of the format of an input file. After a command line option that selects the input format has been read (or the format has been determined using some other method), the first token output by the lexer branches the @@ -219,12 +219,14 @@ defsym_expr: @ {\it Syntax within an \MRI\ script file}\footnote{As explained at the beginning of this chapter, the text in {\it italics\/} was taken from -the original comments by \ld\ parser and lexer programmers.}. The parser for typesetting +the original comments by the \ld\ parser and lexer programmers.}. The parser for typesetting is only intended to process \GNU\ \ld\ scripts and does not concern itself with any additional compatibility modes. For this reason, all support for \MRI\ style scripts has been omitted. One use for the section below is a small demonstration of the formatting tools that change the output of the \bison\ parser. +%\checktabletrue +%\tracingliststrue @<\MRI\ style script rules@>= @G @t}\vb{\inline\flatten}{@> @@ -315,6 +317,8 @@ casesymlist: @ {\it Parsed as expressions so that commas separate entries.} The core of the parser consists of productions describing \GNU\ \ld\ linker scripts. The first rule is common to both \MRI\ and \GNU\ formats. +\checktablefalse +\tracinglistsfalse @<\GNU\ \ld\ script rules@>= @G extern_name_list: @@ -435,7 +439,7 @@ sections: sec_or_group_p1: sec_or_group_p1 section {@>@@=} - | sec_or_group_p1 statement_anywhere {@>@@=} + | sec_or_group_p1 statement_anywhere {@>@@=} | {@>@[TeX_( "/yy0{}" );@]@=} ; @@ -451,10 +455,20 @@ statement_anywhere: @[TeX_( "/yy0{/nx/ldinsertcweb/the/yy(1){sect}{/nx/ldsections{/the/yy(3)/nx/ldsectionstash/the/yy(4)}}}" );@] @ @= - @[TeX_( "/getsecond{/yy(2)}/to/tokse/getthird{/yy(2)}/to/toksf" );@]@; - @[TeX_( "/getfourth{/yy(2)}/to/toksg/getfifth{/yy(2)}/to/toksh" );@]@; - @[TeXb( "/yytoksempty{/yy(1)}{/yy0{/nx/ldsectionstash{/the/tokse}{/the/toksf}/the/toksh}}" );@]@; - @[TeXfo( " {/yy0{/the/yy(1)/nx/ldsectionseparator{/the/tokse}{/the/toksf}/the/toksh}}" );@]@; + @[TeX_( "/yytoksempty{/yy(2)}{/yy0{/the/yy(1)}}{" );@]@; + @[TeX_( " /getsecond{/yy(2)}/to/tokse/getthird{/yy(2)}/to/toksf" );@]@; + @[TeX_( " /getfourth{/yy(2)}/to/toksg/getfifth{/yy(2)}/to/toksh" );@]@; + @[TeXb( " /yytoksempty{/yy(1)}{/yy0{/nx/ldsectionstash{/the/tokse}{/the/toksf}/the/toksh}}" );@]@; + @[TeXa( " {/yy0{/the/yy(1)/nx/ldsectionseparator{/the/tokse}{/the/toksf}/the/toksh}}" );@]@; + @[TeXfo( "}" );@]@; + +@ @= + @[TeX_( "/yytoksempty{/yy(2)}{/yy0{/the/yy(1)}}{" );@]@; + @[TeX_( " /getsecond{/yy(2)}/to/tokse/getthird{/yy(2)}/to/toksf" );@]@; + @[TeX_( " /getfourth{/yy(2)}/to/toksg/getfifth{/yy(2)}/to/toksh" );@]@; + @[TeXb( " /yytoksempty{/yy(1)}{/yy0{/nx/ldsectionstash{/the/tokse}{/the/toksf}/nx/ldfreestmt{/the/toksh}}}" );@]@; + @[TeXa( " {/yy0{/the/yy(1)/nx/ldsectionseparator{/the/tokse}{/the/toksf}/nx/ldfreestmt{/the/toksh}}}" );@]@; + @[TeXfo( "}" );@]@; @ @= @[TeX_( "/yy0{/nx/ldinsertcweb/the/yy(1){stmt}{/nx/ldstatement{/nx/ldentry{/nx/ldregexp{/the/yy(3)}}}}}" );@] @@ -631,14 +645,14 @@ length: | SHORT {} | BYTE {} ; - +@t}\vb{\resetf\inline}{@> fill_exp: mustbe_exp {@>@@=} ; - +@t}\vb{\flatten}{@> fill_opt: - '=' fill_exp {@>@[TeX_( "/yy0{/noexpand/ldfill{/the/yy(2)}}" );@]@=} - | {@>@[TeX_( "/yy0{}" );@]@=} + {@>@[TeX_( "/yy0{}" );@]@=} + | '=' fill_exp {@>@[TeX_( "/yy0{/noexpand/ldfill{/the/yy(2)}}" );@]@=} ; @t}\vb{\resetf}{@> @@ -710,9 +724,7 @@ memory_spec_list: memory_spec: NAME {} - attributes_opt ':' - origin_spec -@t}\vb{\breakline}{@> + attributes_opt ':' origin_spec opt_comma length_spec {@>@@=} | INCLUDE filename {@>@@=} memory_spec_list_opt END {@>@@=} @@ -759,8 +771,8 @@ attributes_list: ; attributes_string: - NAME {@>@[TeX_( "/yy0{/noexpand/ldattributes{/the/yy(1)}}" );@]@=} - | '!' NAME {@>@[TeX_( "/yy0{/noexpand/ldattributesneg{/the/yy(2)}}" );@]@=} + NAME {@>@[TeX_( "/yy0{/noexpand/ldattrstring/the/yy(1)}" );@]@=} + | '!' NAME {@>@[TeX_( "/yy0{/noexpand/ldattrstringneg/the/yy(2)}" );@]@=} ; startup: @@ -812,7 +824,7 @@ expressions out of simpler chunks and basic building blocks tied together by algebraic operations. @= @G -exp : +exp: '-' exp %prec UNARY {@>@[TeX_( "/yy0{{-/the/yy(2)}}" );@]@=} | '(' exp ')' {@>@[TeX_( "/yy0{(/the/yy(2))}" );@]@=} | NEXT '(' exp ')' %prec UNARY {@>@[TeX_( "/yy0{/hbox{/nx/ssf next}(/the/yy(3))}" );@]@=} @@ -844,28 +856,28 @@ exp : @= @G exp : - DEFINED '(' NAME ')' {} - | INT {} + DEFINED '(' NAME ')' {@>@[TeX_( "/def/ldfuncname{defined}" );@]@@=} + | INT {@>@@=} | SIZEOF_HEADERS {} - | ALIGNOF '(' NAME ')' {} - | SIZEOF '(' NAME ')' {} - | ADDR '(' NAME ')' {} - | LOADADDR '(' NAME ')' {} - | CONSTANT '(' NAME ')' {} - | ABSOLUTE '(' exp ')' {} + | ALIGNOF '(' NAME ')' {@>@[TeX_( "/def/ldfuncname{alignof}" );@]@@=} + | SIZEOF '(' NAME ')' {@>@[TeX_( "/def/ldfuncname{sizeof}" );@]@@=} + | ADDR '(' NAME ')' {@>@[TeX_( "/def/ldfuncname{addr}" );@]@@=} + | LOADADDR '(' NAME ')' {@>@[TeX_( "/def/ldfuncname{loadaddr}" );@]@@=} + | CONSTANT '(' NAME ')' {@>@[TeX_( "/def/ldfuncname{constant}" );@]@@=} + | ABSOLUTE '(' exp ')' {@>@[TeX_( "/yy0{/nx/mathop{/hbox{/nx/ssf absolute}}(/the/yy(3))}" );@]@=} | ALIGN_K '(' exp ')' {@>@[TeX_( "/yy0{/nx/mathop{/hbox{/nx/ssf align}}(/the/yy(3))}" );@]@=} | ALIGN_K '(' exp ',' exp ')' {} | DATA_SEGMENT_ALIGN '(' exp ',' exp ')' {} | DATA_SEGMENT_RELRO_END '(' exp ',' exp ')' {} | DATA_SEGMENT_END '(' exp ')' {} | SEGMENT_START '(' NAME ',' exp ')' {} - | BLOCK '(' exp ')' {} + | BLOCK '(' exp ')' {@>@[TeX_( "/yy0{/nx/mathop{/hbox{/nx/ssf block}}(/the/yy(3))}" );@]@=} | NAME {@>@[TeX_( "/yy0{/nx/ldregexp{/the/yy(1)}}" );@]@=} | MAX_K '(' exp ',' exp ')' {} | MIN_K '(' exp ',' exp ')' {} | ASSERT_K '(' exp ',' NAME ')' {} - | ORIGIN '(' NAME ')' {} - | LENGTH '(' NAME ')' {} + | ORIGIN '(' NAME ')' {@>@[TeX_( "/def/ldfuncname{origin}" );@]@@=} + | LENGTH '(' NAME ')' {@>@[TeX_( "/def/ldfuncname{length}" );@]@@=} | LOG2CEIL '(' exp ')' {} ; @g @@ -875,6 +887,9 @@ exp : @[TeXb( "/yy0{/hbox{/nx/ttl do }/xi(/the/yy(1))/hbox{ /nx/ttl where }" );@]@; @[TeXfo( " {/let/nx/{/nx/bigbracedel/nx/xi(x)=/nx/cases{/the/yy(5)& if /inmath{x=0}/cr/the/yy(3)& if /inmath{x/nx/not=0}}}}" );@]@; +@ @= +@[TeX_( "/yy0{/nx/mathop{/hbox{/nx/ssf /ldfuncname}}(/nx/ldregexp{/the/yy(3))}}" );@] + @ @= @G memspec_at_opt: @@ -966,6 +981,10 @@ section: @[TeXfo( " {{/the/yy(15)}{/the/yy(16)}{/the/yy(17)}{/the/yy(18)}}}}" );@]@; /*memory specifiers */ @ @= + @[TeXb( "/getfirst{/yy(1)}/to/toksa/getsecond{/yy(1)}/to/toksb" );@]@; + @[TeXf( "/yy0{/nx/ldinsertcweb{/the/toksa}{/the/toksb}{osect}{/nx/ldoverlay{/the/yy(3)}{/the/yy(4)}{/the/yy(5)}{/the/yy(6)}" );@]@; + @[TeXf( " {/the/yy(10)}" );@]@;/* sections */ + @[TeXfo( " {{/the/yy(13)}{/the/yy(14)}{/the/yy(15)}{/the/yy(16)}}}}" );@]@; /*memory specifiers, etc.*/ @ @= @G @@ -999,8 +1018,8 @@ opt_exp_with_type: ; opt_exp_without_type: - exp ':' {} - | ':' {} + exp ':' {@>@[TeX_( "/yy0{/the/yy(1)}" );@]@=} + | ':' {@>@[TeX_( "/yy0{}" );@]@=} ; opt_nocrossrefs: @@ -1019,12 +1038,12 @@ phdr_opt: ; overlay_section: - + {@>@[TeX_( "/yy0{}" );@]@=} | overlay_section NAME {@>@[TeX_( "/ldlex@@script" );@]@=} '{' statement_list_opt '}' {@>@[TeX_( "/ldlex@@popstate/ldlex@@expression" );@]@=} phdr_opt fill_opt {@>@[TeX_( "/ldlex@@popstate" );@]@=} - opt_comma + opt_comma {@>@@=} ; @g @@ -1032,6 +1051,15 @@ overlay_section: @[TeXb( "/yytoksempty{/yy(1)}{/yy0{{/the/yy(3)}}}" );@]@; @[TeXao( "{/yy0{/the/yy(1)/noexpand/ldor{/the/yy(3)}}}" );@]@; +@ @= + @[TeXb( "/getthird{/yy(2)}/to/toksa/getfourth{/yy(2)}/to/toksb" );@]@;/* \prodstylens{name}{\ldnamespace} pointers */ + @[TeXf( "/getfifth{/yy(5)}/to/toksc" );@]@;/* \prodstylens{statement\_list\_opt}{\ldnamespace} contents */ + @[TeXf( "/yytoksempty{/yy(1)}{" );@]@; + @[TeXf( " /yy0{/nx/ldoverlaysection{/the/yy(2)}{/the/toksc}{/the/yy(8)}{/the/yy(9)}}" );@]@; + @[TeXf( "}{" );@]@; + @[TeXf( " /yy0{/the/yy(1)/nx/ldoverlaysection{/the/yy(2)}{/the/toksc}{/the/yy(8)}{/the/yy(9)}}" );@]@; + @[TeXfo( "}" );@]@; + @ @= @G phdrs: diff --git a/support/splint/examples/ld/ldgramo.w b/support/splint/examples/ld/ldgramo.w index 46d46f9a1f..a036c858de 100644 --- a/support/splint/examples/ld/ldgramo.w +++ b/support/splint/examples/ld/ldgramo.w @@ -1,4 +1,4 @@ -@q Copyright 2020 Alexander Shibakov@> +@q Copyright 2012-2022 Alexander Shibakov@> @q Copyright 2002-2015 Free Software Foundation, Inc.@> @q This file is part of SPLinT@> @@ -492,17 +492,20 @@ statement_anywhere: ENTRY '(' NAME ')' { lang_add_entry ($3, FALSE); } | assignment end - | ASSERT_K {@>@[ldlex_expression ();@>@=} '(' exp ',' NAME ')' + | ASSERT_K {@>@[ldlex_expression ();@]@=} '(' exp ',' NAME ')' { @O ldlex_popstate (); -@o lang_add_assignment (exp_assert ($4, $6)); +@o } ; @g +@q using a @@[, @@> pair instead of @@[, @@] may lead to some strange spacing artefacts @> +@q due to the lack of \6; it is instructive to see its effects after replacing the @@] with @@> @> +@q in the line containing ASSERT_K @> @ \tracebadcharstrue The {\setrulecontext{wildcardname}\prodstyle{'*'}} and \prodstyle{'?'} cases are there because the lexer returns them as separate tokens rather than as \prodstyle{NAME}. diff --git a/support/splint/examples/ld/ldint.sty b/support/splint/examples/ld/ldint.sty index 83f3068dc5..a96003a53d 100644 --- a/support/splint/examples/ld/ldint.sty +++ b/support/splint/examples/ld/ldint.sty @@ -1,4 +1,4 @@ -% Copyright 2012-2020, Alexander Shibakov +% Copyright 2012-2022, Alexander Shibakov % This file is part of SPLinT % % SPLinT is free software: you can redistribute it and/or modify @@ -203,9 +203,12 @@ } \def\displayinteger#1#2#3#4#5#6#7#8{% - {\def\ldintsep{$\,$}\hbox{\rm#7#8\rlap{${}_{#1}$}$\yystringempty{#2}{}{\lddisplayintsuffix{#2}}$}}% + {\def\ldintsep{$\,$}\hbox{\ldintfont#7#8\ldrlap{${}_{#1}$}$\yystringempty{#2}{}{\lddisplayintsuffix{#2}}$}}% } +\let\ldrlap\rlap +\let\ldintfont\rm + \def\lddisplayintsuffix#1{% \expandafter\ifx\csname ldspecialsuffixdisplay#1\endcsname\relax \,\hbox{\tt#1}% @@ -216,7 +219,7 @@ \def\ldspecialsuffixdisplayK{{}\cdot2^{10}} -\def\ldspecialsuffixdisplayK{\,\hbox{\rm Kb}} +%\def\ldspecialsuffixdisplayK{\,\hbox{\rm Kb}} \def\displayintegerws#1#2#3#4#5#6#7{% {\def\ldintsep{$\,$}\hbox{\rm#6#7\rlap{${}_{\yystringempty{#1}{}{\csname ldradix#1\endcsname}}$}}}% diff --git a/support/splint/examples/ld/ldlex.w b/support/splint/examples/ld/ldlex.w index 2312fd1027..0add0b0294 100644 --- a/support/splint/examples/ld/ldlex.w +++ b/support/splint/examples/ld/ldlex.w @@ -1,4 +1,4 @@ -@q Copyright 2012-2020 Alexander Shibakov@> +@q Copyright 2012-2022 Alexander Shibakov@> @q Copyright 2002-2014 Free Software Foundation, Inc.@> @q This file is part of SPLinT@> @@ -17,10 +17,10 @@ @** The lexer. \ifbootstrapmode - \input ldman.sty - \modebootstrap - \input dcols.sty - \setupfootnotes + \input limbo.sty + \input yystype.sty + \input grabstates.sty + \immediate\openout\stlist=ldl_states.h \def\MRI{} \def\ld{} \fi @@ -37,7 +37,7 @@ the \bison\ parser which is part of this distribution. %{@> @<\ld\ lexer \Cee\ preamble@> @=%} @> @<\ld\ lexer options@> @= %% - @> @<\ld\ token regular expressions@> @= + @> @ @= %% @O void define_all_states( void ) { @@ -47,7 +47,7 @@ void define_all_states( void ) { @g @ @<\ld\ lexer options@>= -@G +@G(fs1) %option bison-bridge %option noyywrap nounput noinput reentrant %option noyy_top_state @@ -57,10 +57,10 @@ void define_all_states( void ) { @g @ @<\ld\ lexer \Cee\ preamble@>= -#include -#include -@ @= +@ The file \.{ldl\_states.h} below contains the names of all the start +conditions@^start conditions@> (or states) collected by the bootstrap parser. +@= #define _register_name( name ) @[Define_State( #name, name )@] #include "ldl_states.h" #undef _register_name @@ -94,7 +94,7 @@ same section simplifies the job of the \locallink{bootstrapstates}bootstrap parser\endlink, as well. \ifbootstrapmode\immediate\openout\stlist=ldl_states.h\fi @<\ld\ lexer states@>= -@G +@G(fs1) %s SCRIPT %s EXPRESSION %s BOTH @@ -117,8 +117,9 @@ function. The typesetting parser uses the \.{\\ldcomment} macro for the same purpose. For the curious, here is a \flex\ style regular expression defining \Cee\ comments\footnote{Taken from W.~McKeeman's site at -\url{http://www.cs.dartmouth.edu/~mckeeman/cs118/assignments/comment.html} -and adapted to \flex\ syntax.}: +\url{http://www.cs.dartmouth.edu/~mckeeman/cs118/assignments/comment.html} and +adapted to \flex\ syntax. Here is the same regular expression pretty printed by +\splint: \flexrestyle{"/*"("/"`[\^*/]`"*"+[\^*/])*"*"+"/"}}: $$ \hbox{\.{"/*" ("/"\yl[\^*/]\yl"*"+[\^*/])* "*"+ "/"}} $$ @@ -193,6 +194,15 @@ possible, however, if \.{\\yylextail} is not used inside actions (in the case of an `optimized' lexer the restriction is even weaker, namely, \.{\\yylextail} merely has to be absent in the portion of the action following \.{\\ldcomment}). + +Another remark might be in order. It would seem more appropriate to +employ \TeX's native grouping mechanism to avoid the side effects +casued by the assignments performed by the macros (such as +\.{\\let\\oldyyreturn\\yyreturn}). While this is possible with some +careful macro writing, a na\:\i ve grouping attempt would interfere +with the assignments performed by \.{\\yymatch} +(e.g.~\.{\\yyresetstreams}). Avoiding assignments like these is still +possible although the effort required is bordering on excessive. @= @G(t) \def\ldcomment#1\yylextail{% @@ -221,14 +231,24 @@ We would like to simulate the file inclusion by inserting the appropriate end of file marker for the lexer (a double \.{\\yyeof}). After the relevant production completes, the marker has to be cleaned up from the input stream (the lexer is designed to -leave it intact). The macros below are designed to handle this assignment. +leave it intact to be able to read the end of file multiple times +while looking for the longest match). + +The macro below is designed to handle this task. The idea is to replace +the double \.{\\yyeof} at the beginning of the input with an appropriate +lexer action. The \.{\\yyreadinput} handles the input buffer and inserts the +tail portion of the current \flex\ action in front of it. @= @G(t) \def\ldcleanyyeof#1\yylextail{% - \let\oldyyinput\yyinput - \def\yyinput\yyeof\yyeof{\let\yyinput\oldyyinput#1\yylextail}% - \yymatch + \yyreadinput{\ldcl@@anyyeof{#1\yylextail}}{\romannumeral0\yyr@@@@dinput}% +} + +\def\ldcl@@anyyeof#1#2#3{% + #3\ldcl@@anyye@@f{#1}#2% } + +\def\ldcl@@anyye@@f#1#2\yyeof\yyeof{#1} @g @*1 Regular expressions. @@ -237,204 +257,166 @@ describe the {\it tokens\/} of the appropriate language. The variey of tokens recognized by \ld\ is quite extensive and is described in the sections that follow. -Variable names and algebraic operations come first. -@<\ld\ token regular expressions@>= +Variable names, constants, and algebraic operations come first. +@= @G(fs2) -"/*" {@> @[TeX_( "/ldcomment/yylexnext" );@]@=} -"-" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"+" {@> @[TeX_( "/yylexreturnchar" );@]@=} -{FILENAMECHAR1}{SYMBOLCHARN}* {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} -"=" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"$"([0-9A-Fa-f])+ {@> @ @=} -([0-9A-Fa-f])+(H|h|X|x|B|b|O|o|D|d) {@> @@=} -((("$"|0[xX])([0-9A-Fa-f])+)|(([0-9])+))(M|K|m|k)? { - @> @@=} -"]" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"[" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"<<=" {@> @[TeX_( "/yylexreturnptr{LSHIFTEQ}" );@]@=} -">>=" {@> @[TeX_( "/yylexreturnptr{RSHIFTEQ}" );@]@=} -"||" {@> @[TeX_( "/yylexreturnptr{OROR}" );@]@=} -"==" {@> @[TeX_( "/yylexreturnptr{EQ}" );@]@=} -"!=" {@> @[TeX_( "/yylexreturnptr{NE}" );@]@=} -">=" {@> @[TeX_( "/yylexreturnptr{GE}" );@]@=} -"<=" {@> @[TeX_( "/yylexreturnptr{LE}" );@]@=} -"<<" {@> @[TeX_( "/yylexreturnptr{LSHIFT}" );@]@=} -">>" {@> @[TeX_( "/yylexreturnptr{RSHIFT}" );@]@=} -"+=" {@> @[TeX_( "/yylexreturnptr{PLUSEQ}" );@]@=} -"-=" {@> @[TeX_( "/yylexreturnptr{MINUSEQ}" );@]@=} -"*=" {@> @[TeX_( "/yylexreturnptr{MULTEQ}" );@]@=} -"/=" {@> @[TeX_( "/yylexreturnptr{DIVEQ}" );@]@=} -"&=" {@> @[TeX_( "/yylexreturnptr{ANDEQ}" );@]@=} -"|=" {@> @[TeX_( "/yylexreturnptr{OREQ}" );@]@=} -"&&" {@> @[TeX_( "/yylexreturnptr{ANDAND}" );@]@=} -">" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"," {@> @[TeX_( "/yylexreturnchar" );@]@=} -"&" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"|" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"~" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"!" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"?" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"*" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"+" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"-" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"/" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"%" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"<" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"=" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"}" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"{" {@> @[TeX_( "/yylexreturnchar" );@]@=} -")" {@> @[TeX_( "/yylexreturnchar" );@]@=} -"(" {@> @[TeX_( "/yylexreturnchar" );@]@=} -":" {@> @[TeX_( "/yylexreturnchar" );@]@=} -";" {@> @[TeX_( "/yylexreturnchar" );@]@=} +{ + "/*" {@> @[TeX_( "/ldcomment/yylexnext" );@]@=} +} + +{ + "-" {@> @[TeX_( "/yylexreturnchar" );@]@=} + "+" {@> @[TeX_( "/yylexreturnchar" );@]@=} + {FILENAMECHAR1}{SYMBOLCHARN}* {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} + "=" {@> @[TeX_( "/yylexreturnchar" );@]@=} +} + +{ + "$"([0-9A-Fa-f])+ {@> @ @=} + ([0-9A-Fa-f])+(H|h|X|x|B|b|O|o|D|d) {@> @@=} +} + +{ + ((("$"|0[xX])([0-9A-Fa-f])+)|(([0-9])+))(M|K|m|k)? {@> @@=} +} + +{ + "<<=" {@> @[TeX_( "/yylexreturnptr{LSHIFTEQ}" );@]@=} + ">>=" {@> @[TeX_( "/yylexreturnptr{RSHIFTEQ}" );@]@=} + "||" {@> @[TeX_( "/yylexreturnptr{OROR}" );@]@=} + "==" {@> @[TeX_( "/yylexreturnptr{EQ}" );@]@=} + "!=" {@> @[TeX_( "/yylexreturnptr{NE}" );@]@=} + ">=" {@> @[TeX_( "/yylexreturnptr{GE}" );@]@=} + "<=" {@> @[TeX_( "/yylexreturnptr{LE}" );@]@=} + "<<" {@> @[TeX_( "/yylexreturnptr{LSHIFT}" );@]@=} + ">>" {@> @[TeX_( "/yylexreturnptr{RSHIFT}" );@]@=} + "+=" {@> @[TeX_( "/yylexreturnptr{PLUSEQ}" );@]@=} + "-=" {@> @[TeX_( "/yylexreturnptr{MINUSEQ}" );@]@=} + "*=" {@> @[TeX_( "/yylexreturnptr{MULTEQ}" );@]@=} + "/=" {@> @[TeX_( "/yylexreturnptr{DIVEQ}" );@]@=} + "&=" {@> @[TeX_( "/yylexreturnptr{ANDEQ}" );@]@=} + "|=" {@> @[TeX_( "/yylexreturnptr{OREQ}" );@]@=} + "&&" {@> @[TeX_( "/yylexreturnptr{ANDAND}" );@]@=} + [&|~!?*+\-/%=<>{}()\[\]:;,] {@> @[TeX_( "/yylexreturnchar" );@]@=} +} @g @ The bulk of tokens produced by the lexer are the keywords used inside script files. File name syntax is listed as well, along with -miscellanea such as whitespace and version symbols. -@<\ld\ token regular expressions@>= +the miscellanea like whitespace and version symbols. +@= @G(fs2) -"MEMORY" {@> @[TeX_( "/yylexreturnptr{MEMORY}" );@]@=} -"REGION_ALIAS" {@> @[TeX_( "/yylexreturnptr{REGION_ALIAS}" );@]@=} -"LD_FEATURE" {@> @[TeX_( "/yylexreturnptr{LD_FEATURE}" );@]@=} -"ORIGIN" {@> @[TeX_( "/yylexreturnptr{ORIGIN}" );@]@=} -"VERSION" {@> @[TeX_( "/yylexreturnptr{VERSIONK}" );@]@=} -"BLOCK" {@> @[TeX_( "/yylexreturnptr{BLOCK}" );@]@=} -"BIND" {@> @[TeX_( "/yylexreturnptr{BIND}" );@]@=} -"LENGTH" {@> @[TeX_( "/yylexreturnptr{LENGTH}" );@]@=} -"ALIGN" {@> @[TeX_( "/yylexreturnptr{ALIGN_K}" );@]@=} -"DATA_SEGMENT_ALIGN" {@> @[TeX_( "/yylexreturnptr{DATA_SEGMENT_ALIGN}" );@]@=} -"DATA_SEGMENT_RELRO_END" {@> @[TeX_( "/yylexreturnptr{DATA_SEGMENT_RELRO_END}" );@]@=} -"DATA_SEGMENT_END" {@> @[TeX_( "/yylexreturnptr{DATA_SEGMENT_END}" );@]@=} -"ADDR" {@> @[TeX_( "/yylexreturnptr{ADDR}" );@]@=} -"LOADADDR" {@> @[TeX_( "/yylexreturnptr{LOADADDR}" );@]@=} -"ALIGNOF" {@> @[TeX_( "/yylexreturnptr{ALIGNOF}" );@]@=} -"MAX" {@> @[TeX_( "/yylexreturnptr{MAX_K}" );@]@=} -"MIN" {@> @[TeX_( "/yylexreturnptr{MIN_K}" );@]@=} -"LOG2CEIL" {@> @[TeX_( "/yylexreturnptr{LOG2CEIL}" );@]@=} -"ASSERT" {@> @[TeX_( "/yylexreturnptr{ASSERT_K}" );@]@=} -"ENTRY" {@> @[TeX_( "/yylexreturnptr{ENTRY}" );@]@=} -"EXTERN" {@> @[TeX_( "/yylexreturnptr{EXTERN}" );@]@=} -"NEXT" {@> @[TeX_( "/yylexreturnptr{NEXT}" );@]@=} -"sizeof_headers" {@> @[TeX_( "/yylexreturnptr{SIZEOF_HEADERS}" );@]@=} -"SIZEOF_HEADERS" {@> @[TeX_( "/yylexreturnptr{SIZEOF_HEADERS}" );@]@=} -"SEGMENT_START" {@> @[TeX_( "/yylexreturnptr{SEGMENT_START}" );@]@=} -"MAP" {@> @[TeX_( "/yylexreturnptr{MAP}" );@]@=} -"SIZEOF" {@> @[TeX_( "/yylexreturnptr{SIZEOF}" );@]@=} -"TARGET" {@> @[TeX_( "/yylexreturnptr{TARGET_K}" );@]@=} -"SEARCH_DIR" {@> @[TeX_( "/yylexreturnptr{SEARCH_DIR}" );@]@=} -"OUTPUT" {@> @[TeX_( "/yylexreturnptr{OUTPUT}" );@]@=} -"INPUT" {@> @[TeX_( "/yylexreturnptr{INPUT}" );@]@=} -"GROUP" {@> @[TeX_( "/yylexreturnptr{GROUP}" );@]@=} -"AS_NEEDED" {@> @[TeX_( "/yylexreturnptr{AS_NEEDED}" );@]@=} -"DEFINED" {@> @[TeX_( "/yylexreturnptr{DEFINED}" );@]@=} -"CREATE_OBJECT_SYMBOLS" {@> @[TeX_( "/yylexreturnptr{CREATE_OBJECT_SYMBOLS}" );@]@=} -"CONSTRUCTORS" {@> @[TeX_( "/yylexreturnptr{CONSTRUCTORS}" );@]@=} -"FORCE_COMMON_ALLOCATION" {@> @[TeX_( "/yylexreturnptr{FORCE_COMMON_ALLOCATION}" );@]@=} -"INHIBIT_COMMON_ALLOCATION" {@> @[TeX_( "/yylexreturnptr{INHIBIT_COMMON_ALLOCATION}" );@]@=} -"SECTIONS" {@> @[TeX_( "/yylexreturnptr{SECTIONS}" );@]@=} -"INSERT" {@> @[TeX_( "/yylexreturnptr{INSERT_K}" );@]@=} -"AFTER" {@> @[TeX_( "/yylexreturnptr{AFTER}" );@]@=} -"BEFORE" {@> @[TeX_( "/yylexreturnptr{BEFORE}" );@]@=} -"FILL" {@> @[TeX_( "/yylexreturnptr{FILL}" );@]@=} -"STARTUP" {@> @[TeX_( "/yylexreturnptr{STARTUP}" );@]@=} -"OUTPUT_FORMAT" {@> @[TeX_( "/yylexreturnptr{OUTPUT_FORMAT}" );@]@=} -"OUTPUT_ARCH" {@> @[TeX_( "/yylexreturnptr{OUTPUT_ARCH}" );@]@=} -"HLL" {@> @[TeX_( "/yylexreturnptr{HLL}" );@]@=} -"SYSLIB" {@> @[TeX_( "/yylexreturnptr{SYSLIB}" );@]@=} -"FLOAT" {@> @[TeX_( "/yylexreturnptr{FLOAT}" );@]@=} -"QUAD" {@> @[TeX_( "/yylexreturnptr{QUAD}" );@]@=} -"SQUAD" {@> @[TeX_( "/yylexreturnptr{SQUAD}" );@]@=} -"LONG" {@> @[TeX_( "/yylexreturnptr{LONG}" );@]@=} -"SHORT" {@> @[TeX_( "/yylexreturnptr{SHORT}" );@]@=} -"BYTE" {@> @[TeX_( "/yylexreturnptr{BYTE}" );@]@=} -"NOFLOAT" {@> @[TeX_( "/yylexreturnptr{NOFLOAT}" );@]@=} -"NOCROSSREFS" {@> @[TeX_( "/yylexreturnptr{NOCROSSREFS}" );@]@=} -"OVERLAY" {@> @[TeX_( "/yylexreturnptr{OVERLAY}" );@]@=} -"SORT_BY_NAME" {@> @[TeX_( "/yylexreturnptr{SORT_BY_NAME}" );@]@=} -"SORT_BY_ALIGNMENT" {@> @[TeX_( "/yylexreturnptr{SORT_BY_ALIGNMENT}" );@]@=} -"SORT" {@> @[TeX_( "/yylexreturnptr{SORT_BY_NAME}" );@]@=} -"SORT_BY_INIT_PRIORITY" {@> @[TeX_( "/yylexreturnptr{SORT_BY_INIT_PRIORITY}" );@]@=} -"SORT_NONE" {@> @[TeX_( "/yylexreturnptr{SORT_NONE}" );@]@=} -"NOLOAD" {@> @[TeX_( "/yylexreturnptr{NOLOAD}" );@]@=} -"DSECT" {@> @[TeX_( "/yylexreturnptr{DSECT}" );@]@=} -"COPY" {@> @[TeX_( "/yylexreturnptr{COPY}" );@]@=} -"INFO" {@> @[TeX_( "/yylexreturnptr{INFO}" );@]@=} -"OVERLAY" {@> @[TeX_( "/yylexreturnptr{OVERLAY}" );@]@=} -"ONLY_IF_RO" {@> @[TeX_( "/yylexreturnptr{ONLY_IF_RO}" );@]@=} -"ONLY_IF_RW" {@> @[TeX_( "/yylexreturnptr{ONLY_IF_RW}" );@]@=} -"SPECIAL" {@> @[TeX_( "/yylexreturnptr{SPECIAL}" );@]@=} -"o" {@> @[TeX_( "/yylexreturnptr{ORIGIN}" );@]@=} -"org" {@> @[TeX_( "/yylexreturnptr{ORIGIN}" );@]@=} -"l" {@> @[TeX_( "/yylexreturnptr{LENGTH}" );@]@=} -"len" {@> @[TeX_( "/yylexreturnptr{LENGTH}" );@]@=} -"INPUT_SECTION_FLAGS" {@> @[TeX_( "/yylexreturnptr{INPUT_SECTION_FLAGS}" );@]@=} -"INCLUDE" {@> @[TeX_( "/yylexreturnptr{INCLUDE}" );@]@=} -"PHDRS" {@> @[TeX_( "/yylexreturnptr{PHDRS}" );@]@=} -"AT" {@> @[TeX_( "/yylexreturnptr{AT}" );@]@=} -"ALIGN_WITH_INPUT" {@> @[TeX_( "/yylexreturnptr{ALIGN_WITH_INPUT}" );@]@=} -"SUBALIGN" {@> @[TeX_( "/yylexreturnptr{SUBALIGN}" );@]@=} -"HIDDEN" {@> @[TeX_( "/yylexreturnptr{HIDDEN}" );@]@=} -"PROVIDE" {@> @[TeX_( "/yylexreturnptr{PROVIDE}" );@]@=} -"PROVIDE_HIDDEN" {@> @[TeX_( "/yylexreturnptr{PROVIDE_HIDDEN}" );@]@=} -"KEEP" {@> @[TeX_( "/yylexreturnptr{KEEP}" );@]@=} -"EXCLUDE_FILE" {@> @[TeX_( "/yylexreturnptr{EXCLUDE_FILE}" );@]@=} -"CONSTANT" {@> @[TeX_( "/yylexreturnptr{CONSTANT}" );@]@=} -"#".*\n? {@> @[TeX_( "/yylexnext" );@]@=} -"\n" {@> @[TeX_( "/yylexreturnptr{NEWLINE}" );@]@=} -"*".* {@> @[TeX_( "/yylexnext" );@]@=} -";".* {@> @[TeX_( "/yylexnext" );@]@=} -"END" {@> @[TeX_( "/yylexreturnptr{ENDWORD}" );@]@=} -"ALIGNMOD" {@> @[TeX_( "/yylexreturnptr{ALIGNMOD}" );@]@=} -"ALIGN" {@> @[TeX_( "/yylexreturnptr{ALIGN_K}" );@]@=} -"CHIP" {@> @[TeX_( "/yylexreturnptr{CHIP}" );@]@=} -"BASE" {@> @[TeX_( "/yylexreturnptr{BASE}" );@]@=} -"ALIAS" {@> @[TeX_( "/yylexreturnptr{ALIAS}" );@]@=} -"TRUNCATE" {@> @[TeX_( "/yylexreturnptr{TRUNCATE}" );@]@=} -"LOAD" {@> @[TeX_( "/yylexreturnptr{LOAD}" );@]@=} -"PUBLIC" {@> @[TeX_( "/yylexreturnptr{PUBLIC}" );@]@=} -"ORDER" {@> @[TeX_( "/yylexreturnptr{ORDER}" );@]@=} -"NAME" {@> @[TeX_( "/yylexreturnptr{NAMEWORD}" );@]@=} -"FORMAT" {@> @[TeX_( "/yylexreturnptr{FORMAT}" );@]@=} -"CASE" {@> @[TeX_( "/yylexreturnptr{CASE}" );@]@=} -"START" {@> @[TeX_( "/yylexreturnptr{START}" );@]@=} -"LIST".* {@> @[TeX_( "/yylexreturnptr{LIST}" );@]@=} -"SECT" {@> @[TeX_( "/yylexreturnptr{SECT}" );@]@=} -"ABSOLUTE" {@> @[TeX_( "/yylexreturnptr{ABSOLUTE}" );@]@=} -"end" {@> @[TeX_( "/yylexreturnptr{ENDWORD}" );@]@=} -"alignmod" {@> @[TeX_( "/yylexreturnptr{ALIGNMOD}" );@]@=} -"align" {@> @[TeX_( "/yylexreturnptr{ALIGN_K}" );@]@=} -"chip" {@> @[TeX_( "/yylexreturnptr{CHIP}" );@]@=} -"base" {@> @[TeX_( "/yylexreturnptr{BASE}" );@]@=} -"alias" {@> @[TeX_( "/yylexreturnptr{ALIAS}" );@]@=} -"truncate" {@> @[TeX_( "/yylexreturnptr{TRUNCATE}" );@]@=} -"load" {@> @[TeX_( "/yylexreturnptr{LOAD}" );@]@=} -"public" {@> @[TeX_( "/yylexreturnptr{PUBLIC}" );@]@=} -"order" {@> @[TeX_( "/yylexreturnptr{ORDER}" );@]@=} -"name" {@> @[TeX_( "/yylexreturnptr{NAMEWORD}" );@]@=} -"format" {@> @[TeX_( "/yylexreturnptr{FORMAT}" );@]@=} -"case" {@> @[TeX_( "/yylexreturnptr{CASE}" );@]@=} -"extern" {@> @[TeX_( "/yylexreturnptr{EXTERN}" );@]@=} -"start" {@> @[TeX_( "/yylexreturnptr{START}" );@]@=} -"list".* {@> @[TeX_( "/yylexreturnptr{LIST}" );@]@=} -"sect" {@> @[TeX_( "/yylexreturnptr{SECT}" );@]@=} -"absolute" {@> @[TeX_( "/yylexreturnptr{ABSOLUTE}" );@]@=} -{FILENAMECHAR1}{NOCFILENAMECHAR}* {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} -{FILENAMECHAR1}{FILENAMECHAR}* {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} -"-l"{FILENAMECHAR}+ {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} -{FILENAMECHAR1}{NOCFILENAMECHAR}* {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} -"-l"{NOCFILENAMECHAR}+ {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} +{ + "MEMORY" {@> @[TeX_( "/yylexreturnptr{MEMORY}" );@]@=} + "REGION_ALIAS" {@> @[TeX_( "/yylexreturnptr{REGION_ALIAS}" );@]@=} + "LD_FEATURE" {@> @[TeX_( "/yylexreturnptr{LD_FEATURE}" );@]@=} + "VERSION" {@> @[TeX_( "/yylexreturnptr{VERSIONK}" );@]@=} + "TARGET" {@> @[TeX_( "/yylexreturnptr{TARGET_K}" );@]@=} + "SEARCH_DIR" {@> @[TeX_( "/yylexreturnptr{SEARCH_DIR}" );@]@=} + "OUTPUT" {@> @[TeX_( "/yylexreturnptr{OUTPUT}" );@]@=} + "INPUT" {@> @[TeX_( "/yylexreturnptr{INPUT}" );@]@=} + "ENTRY" {@> @[TeX_( "/yylexreturnptr{ENTRY}" );@]@=} + "MAP" {@> @[TeX_( "/yylexreturnptr{MAP}" );@]@=} + "CREATE_OBJECT_SYMBOLS" {@> @[TeX_( "/yylexreturnptr{CREATE_OBJECT_SYMBOLS}" );@]@=} + "CONSTRUCTORS" {@> @[TeX_( "/yylexreturnptr{CONSTRUCTORS}" );@]@=} + "FORCE_COMMON_ALLOCATION" {@> @[TeX_( "/yylexreturnptr{FORCE_COMMON_ALLOCATION}" );@]@=} + "INHIBIT_COMMON_ALLOCATION" {@> @[TeX_( "/yylexreturnptr{INHIBIT_COMMON_ALLOCATION}" );@]@=} + "SECTIONS" {@> @[TeX_( "/yylexreturnptr{SECTIONS}" );@]@=} + "INSERT" {@> @[TeX_( "/yylexreturnptr{INSERT_K}" );@]@=} + "AFTER" {@> @[TeX_( "/yylexreturnptr{AFTER}" );@]@=} + "BEFORE" {@> @[TeX_( "/yylexreturnptr{BEFORE}" );@]@=} + "FILL" {@> @[TeX_( "/yylexreturnptr{FILL}" );@]@=} + "STARTUP" {@> @[TeX_( "/yylexreturnptr{STARTUP}" );@]@=} + "OUTPUT_FORMAT" {@> @[TeX_( "/yylexreturnptr{OUTPUT_FORMAT}" );@]@=} + "OUTPUT_ARCH" {@> @[TeX_( "/yylexreturnptr{OUTPUT_ARCH}" );@]@=} + "HLL" {@> @[TeX_( "/yylexreturnptr{HLL}" );@]@=} + "SYSLIB" {@> @[TeX_( "/yylexreturnptr{SYSLIB}" );@]@=} + "FLOAT" {@> @[TeX_( "/yylexreturnptr{FLOAT}" );@]@=} + "QUAD" {@> @[TeX_( "/yylexreturnptr{QUAD}" );@]@=} + "SQUAD" {@> @[TeX_( "/yylexreturnptr{SQUAD}" );@]@=} + "LONG" {@> @[TeX_( "/yylexreturnptr{LONG}" );@]@=} + "SHORT" {@> @[TeX_( "/yylexreturnptr{SHORT}" );@]@=} + "BYTE" {@> @[TeX_( "/yylexreturnptr{BYTE}" );@]@=} + "NOFLOAT" {@> @[TeX_( "/yylexreturnptr{NOFLOAT}" );@]@=} + "OVERLAY" {@> @[TeX_( "/yylexreturnptr{OVERLAY}" );@]@=} + "SORT_BY_NAME" {@> @[TeX_( "/yylexreturnptr{SORT_BY_NAME}" );@]@=} + "SORT_BY_ALIGNMENT" {@> @[TeX_( "/yylexreturnptr{SORT_BY_ALIGNMENT}" );@]@=} + "SORT" {@> @[TeX_( "/yylexreturnptr{SORT_BY_NAME}" );@]@=} + "SORT_BY_INIT_PRIORITY" {@> @[TeX_( "/yylexreturnptr{SORT_BY_INIT_PRIORITY}" );@]@=} + "SORT_NONE" {@> @[TeX_( "/yylexreturnptr{SORT_NONE}" );@]@=} + "EXTERN" {@> @[TeX_( "/yylexreturnptr{EXTERN}" );@]@=} + "o"|"org" {@> @[TeX_( "/yylexreturnptr{ORIGIN}" );@]@=} + "l"|"len" {@> @[TeX_( "/yylexreturnptr{LENGTH}" );@]@=} + "PHDRS" {@> @[TeX_( "/yylexreturnptr{PHDRS}" );@]@=} +} + +{ + "BLOCK" {@> @[TeX_( "/yylexreturnptr{BLOCK}" );@]@=} + "BIND" {@> @[TeX_( "/yylexreturnptr{BIND}" );@]@=} + "LENGTH" {@> @[TeX_( "/yylexreturnptr{LENGTH}" );@]@=} + "ORIGIN" {@> @[TeX_( "/yylexreturnptr{ORIGIN}" );@]@=} + "ALIGN" {@> @[TeX_( "/yylexreturnptr{ALIGN_K}" );@]@=} + "DATA_SEGMENT_ALIGN" {@> @[TeX_( "/yylexreturnptr{DATA_SEGMENT_ALIGN}" );@]@=} + "DATA_SEGMENT_RELRO_END" {@> @[TeX_( "/yylexreturnptr{DATA_SEGMENT_RELRO_END}" );@]@=} + "DATA_SEGMENT_END" {@> @[TeX_( "/yylexreturnptr{DATA_SEGMENT_END}" );@]@=} + "ADDR" {@> @[TeX_( "/yylexreturnptr{ADDR}" );@]@=} + "LOADADDR" {@> @[TeX_( "/yylexreturnptr{LOADADDR}" );@]@=} + "ALIGNOF" {@> @[TeX_( "/yylexreturnptr{ALIGNOF}" );@]@=} + "ASSERT" {@> @[TeX_( "/yylexreturnptr{ASSERT_K}" );@]@=} + "NEXT" {@> @[TeX_( "/yylexreturnptr{NEXT}" );@]@=} + "sizeof_headers" {@> @[TeX_( "/yylexreturnptr{SIZEOF_HEADERS}" );@]@=} + "SIZEOF_HEADERS" {@> @[TeX_( "/yylexreturnptr{SIZEOF_HEADERS}" );@]@=} + "SEGMENT_START" {@> @[TeX_( "/yylexreturnptr{SEGMENT_START}" );@]@=} + "SIZEOF" {@> @[TeX_( "/yylexreturnptr{SIZEOF}" );@]@=} + "GROUP" {@> @[TeX_( "/yylexreturnptr{GROUP}" );@]@=} + "AS_NEEDED" {@> @[TeX_( "/yylexreturnptr{AS_NEEDED}" );@]@=} + "DEFINED" {@> @[TeX_( "/yylexreturnptr{DEFINED}" );@]@=} + "NOCROSSREFS" {@> @[TeX_( "/yylexreturnptr{NOCROSSREFS}" );@]@=} + "NOLOAD" {@> @[TeX_( "/yylexreturnptr{NOLOAD}" );@]@=} + "DSECT" {@> @[TeX_( "/yylexreturnptr{DSECT}" );@]@=} + "COPY" {@> @[TeX_( "/yylexreturnptr{COPY}" );@]@=} + "INFO" {@> @[TeX_( "/yylexreturnptr{INFO}" );@]@=} + "OVERLAY" {@> @[TeX_( "/yylexreturnptr{OVERLAY}" );@]@=} + "ONLY_IF_RO" {@> @[TeX_( "/yylexreturnptr{ONLY_IF_RO}" );@]@=} + "ONLY_IF_RW" {@> @[TeX_( "/yylexreturnptr{ONLY_IF_RW}" );@]@=} + "SPECIAL" {@> @[TeX_( "/yylexreturnptr{SPECIAL}" );@]@=} + "INPUT_SECTION_FLAGS" {@> @[TeX_( "/yylexreturnptr{INPUT_SECTION_FLAGS}" );@]@=} + "INCLUDE" {@> @[TeX_( "/yylexreturnptr{INCLUDE}" );@]@=} + "AT" {@> @[TeX_( "/yylexreturnptr{AT}" );@]@=} + "ALIGN_WITH_INPUT" {@> @[TeX_( "/yylexreturnptr{ALIGN_WITH_INPUT}" );@]@=} + "SUBALIGN" {@> @[TeX_( "/yylexreturnptr{SUBALIGN}" );@]@=} + "HIDDEN" {@> @[TeX_( "/yylexreturnptr{HIDDEN}" );@]@=} + "PROVIDE" {@> @[TeX_( "/yylexreturnptr{PROVIDE}" );@]@=} + "PROVIDE_HIDDEN" {@> @[TeX_( "/yylexreturnptr{PROVIDE_HIDDEN}" );@]@=} + "KEEP" {@> @[TeX_( "/yylexreturnptr{KEEP}" );@]@=} + "EXCLUDE_FILE" {@> @[TeX_( "/yylexreturnptr{EXCLUDE_FILE}" );@]@=} + "CONSTANT" {@> @[TeX_( "/yylexreturnptr{CONSTANT}" );@]@=} + "\n" {@> @[TeX_( "/yylexnext" );@]@=} +} + +{ + "MAX" {@> @[TeX_( "/yylexreturnptr{MAX_K}" );@]@=} + "MIN" {@> @[TeX_( "/yylexreturnptr{MIN_K}" );@]@=} + "LOG2CEIL" {@> @[TeX_( "/yylexreturnptr{LOG2CEIL}" );@]@=} +} + +{ + "ABSOLUTE"|"absolute" {@> @[TeX_( "/yylexreturnptr{ABSOLUTE}" );@]@=} + [ \t\r]+ {@> @[TeX_( "/yylexnext" );@]@=} +} + +{ + {FILENAMECHAR1}{FILENAMECHAR}* {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} + "-l"{FILENAMECHAR}+ {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} +} + +{ + {FILENAMECHAR1}{NOCFILENAMECHAR}* {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} + "-l"{NOCFILENAMECHAR}+ {@> @[TeX_( "/yylexreturnsym{NAME}" );@]@=} +} +