From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/text1/blocks/appendix.texblock | 16 + macros/text1/blocks/asism.texblock | 5 + macros/text1/blocks/asisp.texblock | 5 + macros/text1/blocks/bibliog.texblock | 10 + macros/text1/blocks/bquotem.texblock | 7 + macros/text1/blocks/bquotep.texblock | 7 + macros/text1/blocks/chapter.texblock | 13 + macros/text1/blocks/contents.texblock | 35 + macros/text1/blocks/enotem.texblock | 11 + macros/text1/blocks/enotep.texblock | 11 + macros/text1/blocks/figurem.texblock | 8 + macros/text1/blocks/figurep.texblock | 8 + macros/text1/blocks/fnotem.texblock | 14 + macros/text1/blocks/fnotep.texblock | 14 + macros/text1/blocks/fontm.texblock | 6 + macros/text1/blocks/fontp.texblock | 6 + macros/text1/blocks/index.texblock | 8 + macros/text1/blocks/label.texblock | 6 + macros/text1/blocks/lists.texblock | 13 + macros/text1/blocks/maillbls.texblock | 17 + macros/text1/blocks/marnote.texblock | 6 + macros/text1/blocks/multicol.texblock | 10 + macros/text1/blocks/pagem.texblock | 11 + macros/text1/blocks/pagep.texblock | 11 + macros/text1/blocks/parm.texblock | 6 + macros/text1/blocks/parp.texblock | 11 + macros/text1/blocks/part.texblock | 20 + macros/text1/blocks/preface.texblock | 12 + macros/text1/blocks/runfoot.texblock | 6 + macros/text1/blocks/runhead.texblock | 6 + macros/text1/blocks/subheada.texblock | 11 + macros/text1/blocks/subheadb.texblock | 10 + macros/text1/blocks/subheadc.texblock | 9 + macros/text1/blocks/subheadd.texblock | 7 + macros/text1/blocks/tablem.texblock | 8 + macros/text1/blocks/tablep.texblock | 9 + macros/text1/blocks/talaris.texblock | 6 + macros/text1/blocks/titlepg.texblock | 4 + macros/text1/changes.aug91 | 13 + macros/text1/changes.aug92 | 10 + macros/text1/changes.aug93 | 11 + macros/text1/changes.dec93 | 11 + macros/text1/changes.feb91 | 8 + macros/text1/changes.jan92 | 11 + macros/text1/changes.jun91 | 11 + macros/text1/changes.jun96 | 14 + macros/text1/changes.mar91 | 10 + macros/text1/changes.mar92 | 16 + macros/text1/changes.may92 | 28 + macros/text1/changes.nov90 | 17 + macros/text1/changes.nov92 | 9 + macros/text1/changes.nov94 | 16 + macros/text1/changes.sep91 | 12 + macros/text1/cms_help_files/1--footn.help4--f | 20 + macros/text1/cms_help_files/1--verti.helpvert | 21 + macros/text1/cms_help_files/10noter.helpfoot | 14 + macros/text1/cms_help_files/11noter.helpfoot | 23 + macros/text1/cms_help_files/12noter.helpfoot | 16 + macros/text1/cms_help_files/1block.helpbloc | 19 + macros/text1/cms_help_files/1every.helpfoot | 21 + macros/text1/cms_help_files/1everye.helpendn | 21 + macros/text1/cms_help_files/1everyf.helpfoot | 21 + macros/text1/cms_help_files/1numbe.helpsubh | 13 + macros/text1/cms_help_files/1number.helpsubh | 13 + macros/text1/cms_help_files/2--footn.help4--f | 15 + macros/text1/cms_help_files/2--verti.helpvert | 15 + macros/text1/cms_help_files/2block.helpbloc | 16 + macros/text1/cms_help_files/2footn.helpfoot | 21 + macros/text1/cms_help_files/2footno.helpfoot | 21 + macros/text1/cms_help_files/2skipbe.helpendn | 21 + macros/text1/cms_help_files/2title.helpsubh | 20 + macros/text1/cms_help_files/3befor.helpfoot | 21 + macros/text1/cms_help_files/3block.helpmenu | 14 + macros/text1/cms_help_files/3every.helpbloc | 21 + macros/text1/cms_help_files/3incon.helpsubh | 15 + macros/text1/cms_help_files/3incont.helpsubh | 15 + macros/text1/cms_help_files/3skipb.helpfoot | 22 + macros/text1/cms_help_files/3skipbe.helpfoot | 22 + macros/text1/cms_help_files/3textre.helpendn | 17 + macros/text1/cms_help_files/4footn.helpmenu | 18 + macros/text1/cms_help_files/4refer.helpfoot | 16 + macros/text1/cms_help_files/4skipaf.helpfoot | 22 + macros/text1/cms_help_files/4skipb.helpbloc | 17 + macros/text1/cms_help_files/4textre.helpendn | 14 + macros/text1/cms_help_files/5refer.helpfoot | 16 + macros/text1/cms_help_files/5skipa.helpbloc | 18 + macros/text1/cms_help_files/5textre.helpendn | 23 + macros/text1/cms_help_files/5textre.helpfoot | 17 + macros/text1/cms_help_files/6notere.helpendn | 17 + macros/text1/cms_help_files/6refer.helpfoot | 14 + macros/text1/cms_help_files/6textre.helpfoot | 17 + macros/text1/cms_help_files/7notere.helpendn | 14 + macros/text1/cms_help_files/7refer.helpfoot | 21 + macros/text1/cms_help_files/7textre.helpfoot | 14 + macros/text1/cms_help_files/8notere.helpendn | 23 + macros/text1/cms_help_files/8textre.helpfoot | 23 + macros/text1/cms_help_files/9notere.helpendn | 16 + macros/text1/cms_help_files/9notere.helpfoot | 17 + macros/text1/cms_help_files/aen.helpmark | 72 + macros/text1/cms_help_files/afn.helpmark | 58 + macros/text1/cms_help_files/aib.helpmark | 84 + macros/text1/cms_help_files/aie.helpmark | 37 + macros/text1/cms_help_files/aif.helpmark | 76 + macros/text1/cms_help_files/anumbe.helpsubh | 13 + macros/text1/cms_help_files/anumber.helpsubh | 13 + macros/text1/cms_help_files/apf.helpmark | 93 + macros/text1/cms_help_files/app.helpmark | 30 + macros/text1/cms_help_files/appendix.helpbloc | 7 + macros/text1/cms_help_files/appendix.helpmenu | 103 + macros/text1/cms_help_files/asism.helpbloc | 7 + macros/text1/cms_help_files/asisp.helpbloc | 7 + macros/text1/cms_help_files/bd.helpmark | 48 + macros/text1/cms_help_files/bi.helpmark | 36 + macros/text1/cms_help_files/bib.helpmark | 43 + macros/text1/cms_help_files/bibentry.helpmark | 57 + macros/text1/cms_help_files/bibliog.helpbloc | 7 + macros/text1/cms_help_files/bibliogr.helpmark | 54 + macros/text1/cms_help_files/bie.helpmark | 51 + macros/text1/cms_help_files/bif.helpmark | 248 ++ macros/text1/cms_help_files/bothpage.helpmenu | 12 + macros/text1/cms_help_files/bottomma.helppage | 21 + macros/text1/cms_help_files/bottomti.helpboth | 28 + macros/text1/cms_help_files/bottomti.helpeven | 28 + macros/text1/cms_help_files/bottomti.helpoddp | 28 + macros/text1/cms_help_files/bqb.helpmark | 61 + macros/text1/cms_help_files/bqe.helpmark | 47 + macros/text1/cms_help_files/bqf.helpmark | 76 + macros/text1/cms_help_files/bquotem.helpbloc | 7 + macros/text1/cms_help_files/bquotep.helpbloc | 7 + macros/text1/cms_help_files/break.helpmark | 36 + macros/text1/cms_help_files/btitle.helpsubh | 20 + macros/text1/cms_help_files/btitlef.helpsubh | 18 + macros/text1/cms_help_files/bul.helpmark | 44 + macros/text1/cms_help_files/cc.helpmark | 33 + macros/text1/cms_help_files/cents.helpmark | 23 + macros/text1/cms_help_files/chap.helpmark | 48 + macros/text1/cms_help_files/chapter.helpbloc | 7 + macros/text1/cms_help_files/chf.helpmark | 98 + macros/text1/cms_help_files/chrono.changes | 3 + macros/text1/cms_help_files/cincon.helpsubh | 15 + macros/text1/cms_help_files/cincont.helpsubh | 15 + macros/text1/cms_help_files/cl.helpmark | 38 + macros/text1/cms_help_files/clb.helpmark | 68 + macros/text1/cms_help_files/cle.helpmark | 38 + macros/text1/cms_help_files/contents.helpbloc | 7 + macros/text1/cms_help_files/coul.helpmark | 21 + macros/text1/cms_help_files/db.helpmark | 45 + macros/text1/cms_help_files/dbm.helpmark | 26 + macros/text1/cms_help_files/dbrs.helpmark | 27 + macros/text1/cms_help_files/die.helpmark | 32 + macros/text1/cms_help_files/dsp.helpmark | 41 + macros/text1/cms_help_files/el.helpmark | 44 + macros/text1/cms_help_files/enf.helpmark | 129 + macros/text1/cms_help_files/enotem.helpbloc | 7 + macros/text1/cms_help_files/enotep.helpbloc | 7 + macros/text1/cms_help_files/ep.helpmark | 38 + macros/text1/cms_help_files/epm.helpmark | 24 + macros/text1/cms_help_files/ex.helpmark | 26 + macros/text1/cms_help_files/fif.helpmark | 86 + macros/text1/cms_help_files/fig.helpmark | 110 + macros/text1/cms_help_files/figurem.helpbloc | 7 + macros/text1/cms_help_files/figurep.helpbloc | 7 + macros/text1/cms_help_files/fixf.helpmark | 34 + macros/text1/cms_help_files/fnf.helpmark | 139 + macros/text1/cms_help_files/fnotem.helpbloc | 8 + macros/text1/cms_help_files/fnotep.helpbloc | 8 + macros/text1/cms_help_files/font.helpmark | 51 + macros/text1/cms_help_files/fontm.helpbloc | 7 + macros/text1/cms_help_files/fontp.helpbloc | 8 + macros/text1/cms_help_files/footnote.helpmark | 63 + macros/text1/cms_help_files/frac.helpmark | 52 + macros/text1/cms_help_files/frenchsp.helpmark | 53 + macros/text1/cms_help_files/goodbrea.helpmark | 33 + macros/text1/cms_help_files/halign.helpmark | 177 ++ macros/text1/cms_help_files/hbox.helpmark | 36 + macros/text1/cms_help_files/hin.helpmark | 48 + macros/text1/cms_help_files/hof.helpmark | 54 + macros/text1/cms_help_files/hon.helpmark | 54 + macros/text1/cms_help_files/hp.helpmark | 48 + macros/text1/cms_help_files/hrule.helpmark | 44 + macros/text1/cms_help_files/hs.helpmark | 47 + macros/text1/cms_help_files/hsize.helpmark | 49 + macros/text1/cms_help_files/incl.helpmark | 89 + macros/text1/cms_help_files/indent.helpmark | 41 + macros/text1/cms_help_files/index.helpbloc | 7 + macros/text1/cms_help_files/input.helpmark | 46 + macros/text1/cms_help_files/isk.helpmark | 46 + macros/text1/cms_help_files/it.helpmark | 41 + macros/text1/cms_help_files/italicfa.helpmark | 21 + macros/text1/cms_help_files/item.helpmark | 45 + macros/text1/cms_help_files/ix.helpmark | 311 ++ macros/text1/cms_help_files/ixf.helpmark | 260 ++ macros/text1/cms_help_files/ju.helpmark | 42 + macros/text1/cms_help_files/la.helpmark | 44 + macros/text1/cms_help_files/label.helpbloc | 7 + macros/text1/cms_help_files/laf.helpmark | 120 + macros/text1/cms_help_files/lbr.helpmark | 45 + macros/text1/cms_help_files/leader.helpmark | 47 + macros/text1/cms_help_files/letter.helpmode | 7 + macros/text1/cms_help_files/lib.helpmark | 50 + macros/text1/cms_help_files/lie.helpmark | 39 + macros/text1/cms_help_files/lif.helpmark | 128 + macros/text1/cms_help_files/lil.helpmark | 43 + macros/text1/cms_help_files/lin.helpmark | 69 + macros/text1/cms_help_files/line.helpmark | 56 + macros/text1/cms_help_files/lint.helpmark | 25 + macros/text1/cms_help_files/lir.helpmark | 46 + macros/text1/cms_help_files/lists.helpbloc | 7 + macros/text1/cms_help_files/lnf.helpmark | 24 + macros/text1/cms_help_files/lr.helpmark | 44 + macros/text1/cms_help_files/markup.helpmenu | 176 ++ macros/text1/cms_help_files/marnote.helpbloc | 7 + macros/text1/cms_help_files/mathdefa.helpmark | 24 + macros/text1/cms_help_files/mcf.helpmark | 260 ++ macros/text1/cms_help_files/memo.helpmode | 7 + macros/text1/cms_help_files/mi.helpmark | 31 + macros/text1/cms_help_files/mn.helpmark | 30 + macros/text1/cms_help_files/mnf.helpmark | 53 + macros/text1/cms_help_files/msp.helpmark | 91 + macros/text1/cms_help_files/multicol.helpbloc | 7 + macros/text1/cms_help_files/nc.helpmark | 49 + macros/text1/cms_help_files/nin.helpmark | 46 + macros/text1/cms_help_files/nobreak.helpmark | 39 + macros/text1/cms_help_files/nonfrenc.helpmark | 45 + macros/text1/cms_help_files/np.helpmark | 36 + macros/text1/cms_help_files/ntp.helpmark | 47 + macros/text1/cms_help_files/numl.helpmark | 20 + macros/text1/cms_help_files/oc.helpmark | 52 + macros/text1/cms_help_files/opm.helpmark | 24 + macros/text1/cms_help_files/paf.helpmark | 67 + macros/text1/cms_help_files/pagem.helpbloc | 7 + macros/text1/cms_help_files/pagep.helpbloc | 7 + macros/text1/cms_help_files/paper.helpmode | 7 + macros/text1/cms_help_files/par.helpmark | 81 + macros/text1/cms_help_files/parm.helpbloc | 8 + macros/text1/cms_help_files/parp.helpbloc | 8 + macros/text1/cms_help_files/part.helpbloc | 7 + macros/text1/cms_help_files/part.helpmark | 32 + macros/text1/cms_help_files/pb.helpmark | 47 + macros/text1/cms_help_files/pen.helpmark | 42 + macros/text1/cms_help_files/pf.helpmark | 83 + macros/text1/cms_help_files/pic.helpmark | 97 + macros/text1/cms_help_files/pin.helpmark | 46 + macros/text1/cms_help_files/plaintex.helpmark | 28 + macros/text1/cms_help_files/pn.helpmark | 40 + macros/text1/cms_help_files/ppl.helpmark | 21 + macros/text1/cms_help_files/pre.helpmark | 31 + macros/text1/cms_help_files/preface.helpbloc | 7 + macros/text1/cms_help_files/prf.helpmark | 42 + macros/text1/cms_help_files/prin.helpmark | 20 + macros/text1/cms_help_files/printend.helpmark | 10 + macros/text1/cms_help_files/printind.helpmark | 58 + macros/text1/cms_help_files/psk.helpmark | 62 + macros/text1/cms_help_files/qquad.helpmark | 39 + macros/text1/cms_help_files/quad.helpmark | 40 + macros/text1/cms_help_files/raggedbo.helpmark | 16 + macros/text1/cms_help_files/resume.helpmode | 7 + macros/text1/cms_help_files/rff.helpmark | 129 + macros/text1/cms_help_files/rhf.helpmark | 115 + macros/text1/cms_help_files/rin.helpmark | 79 + macros/text1/cms_help_files/rl.helpmark | 29 + macros/text1/cms_help_files/rlb.helpmark | 35 + macros/text1/cms_help_files/rle.helpmark | 28 + macros/text1/cms_help_files/rm.helpmark | 41 + macros/text1/cms_help_files/rr.helpmark | 47 + macros/text1/cms_help_files/rule.helpmark | 48 + macros/text1/cms_help_files/runfoot.helpbloc | 8 + macros/text1/cms_help_files/runhead.helpbloc | 8 + macros/text1/cms_help_files/san.helpmark | 25 + macros/text1/cms_help_files/sau.helpmark | 44 + macros/text1/cms_help_files/scn.helpmark | 25 + macros/text1/cms_help_files/senn.helpmark | 37 + macros/text1/cms_help_files/settabs.helpmark | 151 + macros/text1/cms_help_files/sfn.helpmark | 37 + macros/text1/cms_help_files/sfnn.helpmark | 39 + macros/text1/cms_help_files/sfs.helpmark | 79 + macros/text1/cms_help_files/sha.helpmark | 40 + macros/text1/cms_help_files/shaf.helpmark | 85 + macros/text1/cms_help_files/shb.helpmark | 40 + macros/text1/cms_help_files/shbf.helpmark | 86 + macros/text1/cms_help_files/shc.helpmark | 39 + macros/text1/cms_help_files/shcf.helpmark | 81 + macros/text1/cms_help_files/shd.helpmark | 33 + macros/text1/cms_help_files/shdf.helpmark | 77 + macros/text1/cms_help_files/sms.helpmark | 50 + macros/text1/cms_help_files/special.helpmark | 24 + macros/text1/cms_help_files/spn.helpmark | 46 + macros/text1/cms_help_files/sptn.helpmark | 23 + macros/text1/cms_help_files/ssan.helpmark | 25 + macros/text1/cms_help_files/ssbn.helpmark | 25 + macros/text1/cms_help_files/sscn.helpmark | 25 + macros/text1/cms_help_files/ssdn.helpmark | 25 + macros/text1/cms_help_files/ssf.helpmark | 50 + macros/text1/cms_help_files/ssp.helpmark | 43 + macros/text1/cms_help_files/stn.helpmark | 37 + macros/text1/cms_help_files/strut.helpmark | 82 + macros/text1/cms_help_files/subheada.helpbloc | 7 + macros/text1/cms_help_files/subheadb.helpbloc | 7 + macros/text1/cms_help_files/subheadc.helpbloc | 7 + macros/text1/cms_help_files/subheadd.helpbloc | 7 + macros/text1/cms_help_files/sy.helpmark | 26 + macros/text1/cms_help_files/tablem.helpbloc | 7 + macros/text1/cms_help_files/tablep.helpbloc | 7 + macros/text1/cms_help_files/taf.helpmark | 56 + macros/text1/cms_help_files/talaris.helpbloc | 7 + macros/text1/cms_help_files/tat.helpmark | 59 + macros/text1/cms_help_files/tenpt.helpmark | 42 + macros/text1/cms_help_files/text1.helpmark | 44 + macros/text1/cms_help_files/thc.helpmark | 75 + macros/text1/cms_help_files/thesis.helpmode | 8 + macros/text1/cms_help_files/titlepg.helpbloc | 7 + macros/text1/cms_help_files/toc.helpmark | 39 + macros/text1/cms_help_files/tocf.helpmark | 478 +++ macros/text1/cms_help_files/toclbr.helpmark | 43 + macros/text1/cms_help_files/today.helpmark | 30 + macros/text1/cms_help_files/topline1.helpeven | 31 + macros/text1/cms_help_files/topline1.helpoddp | 31 + macros/text1/cms_help_files/topmargi.helppage | 21 + macros/text1/cms_help_files/tp.helpmark | 44 + macros/text1/cms_help_files/tpf.helpmark | 50 + macros/text1/cms_help_files/tt.helpmark | 50 + macros/text1/cms_help_files/twc.helpmark | 75 + macros/text1/cms_help_files/twelvept.helpmark | 44 + macros/text1/cms_help_files/us.helpmark | 34 + macros/text1/cms_help_files/vbox.helpmark | 32 + macros/text1/cms_help_files/vertical.helpvert | 21 + macros/text1/cms_help_files/vrule.helpmark | 19 + macros/text1/cms_help_files/vs.helpmark | 53 + macros/text1/cms_help_files/vsk.helpmark | 45 + macros/text1/cms_help_files/width.helppage | 13 + macros/text1/compugraphics_8600/et10.textext | 37 + macros/text1/compugraphics_8600/et11.textext | 37 + macros/text1/compugraphics_8600/et12.textext | 37 + macros/text1/compugraphics_8600/et14.textext | 37 + macros/text1/compugraphics_8600/et18.textext | 37 + macros/text1/compugraphics_8600/et8.textext | 37 + macros/text1/compugraphics_8600/et9.textext | 37 + macros/text1/compugraphics_8600/etb.fontinfo | 236 ++ macros/text1/compugraphics_8600/etbi.fontinfo | 233 ++ macros/text1/compugraphics_8600/eti.fontinfo | 233 ++ macros/text1/compugraphics_8600/etr.fontinfo | 236 ++ macros/text1/compugraphics_8600/etsc.fontinfo | 253 ++ macros/text1/compugraphics_8600/fonttex.cmschan | 5 + macros/text1/compugraphics_8600/fonttex.exec | 23 + macros/text1/compugraphics_8600/fonttex.outchan | 324 +++ macros/text1/compugraphics_8600/fonttex.web | 1936 +++++++++++++ macros/text1/compugraphics_8600/reblock.pascal | 34 + macros/text1/compugraphics_8600/tex8600.cmschan | 1 + macros/text1/compugraphics_8600/tex8600.outchan | 580 ++++ macros/text1/compugraphics_8600/tex8600.web | 3034 +++++++++++++++++++ macros/text1/docs/readme.tex | 209 ++ macros/text1/docs/refman.ps.gz | Bin 0 -> 744715 bytes macros/text1/fonts/cmr36.dump | 902 ++++++ macros/text1/fonts/dt.240pk | Bin 0 -> 1536 bytes macros/text1/fonts/dt.300pk | Bin 0 -> 1536 bytes macros/text1/fonts/dt.mf | 17 + macros/text1/fonts/dt.readme | 8 + macros/text1/fonts/dt.tfm | Bin 0 -> 512 bytes macros/text1/fonts/dt240.mf | 12 + macros/text1/fonts/dt300.mf | 12 + macros/text1/macintosh/texix.macinfo | 4 + macros/text1/macintosh/texix.turbomac | 591 ++++ macros/text1/macintosh/texix_macintosh.readme | 7 + macros/text1/macintosh/text1_index_sort.bin | Bin 0 -> 30976 bytes macros/text1/macros/cgfonts.lclist | 124 + macros/text1/macros/cm10.textext | 34 + macros/text1/macros/cm108m.texmath | 10 + macros/text1/macros/cm109m.texmath | 10 + macros/text1/macros/cm11.textext | 40 + macros/text1/macros/cm1110m.texmath | 10 + macros/text1/macros/cm119m.texmath | 13 + macros/text1/macros/cm12.textext | 37 + macros/text1/macros/cm1210m.texmath | 10 + macros/text1/macros/cm1211m.texmath | 13 + macros/text1/macros/cm14.textext | 37 + macros/text1/macros/cm1412m.texmath | 13 + macros/text1/macros/cm18.textext | 37 + macros/text1/macros/cm1814m.texmath | 13 + macros/text1/macros/cm24.textext | 37 + macros/text1/macros/cm2418m.texmath | 13 + macros/text1/macros/cm36.textext | 37 + macros/text1/macros/cm5.textext | 51 + macros/text1/macros/cm6.textext | 49 + macros/text1/macros/cm65m.texmath | 10 + macros/text1/macros/cm7.textext | 45 + macros/text1/macros/cm75m.texmath | 7 + macros/text1/macros/cm76m.texmath | 10 + macros/text1/macros/cm8.textext | 40 + macros/text1/macros/cm86m.texmath | 13 + macros/text1/macros/cm87m.texmath | 10 + macros/text1/macros/cm9.textext | 40 + macros/text1/macros/cm97m.texmath | 10 + macros/text1/macros/cm98m.texmath | 13 + macros/text1/macros/cmsan10.textext | 46 + macros/text1/macros/cmsan11.textext | 46 + macros/text1/macros/cmsan12.textext | 46 + macros/text1/macros/cmsan14.textext | 46 + macros/text1/macros/cmsan18.textext | 46 + macros/text1/macros/cmsan24.textext | 46 + macros/text1/macros/cmsan36.textext | 46 + macros/text1/macros/cmsan8.textext | 49 + macros/text1/macros/cmsan9.textext | 46 + macros/text1/macros/fixcol.tex | 155 + macros/text1/macros/flexcol.tex | 329 +++ macros/text1/macros/text1.tex | 3 + macros/text1/macros/txt1v409.tex | 3536 +++++++++++++++++++++++ macros/text1/models/letter.texinput | 51 + macros/text1/models/letter.texmodel | 45 + macros/text1/models/memo.texinput | 48 + macros/text1/models/memo.texmodel | 21 + macros/text1/models/mergelet.texmodel | 77 + macros/text1/models/mergelst.texmodel | 17 + macros/text1/models/mergetxt.texinput | 184 ++ macros/text1/models/mergetxt.texmodel | 96 + macros/text1/models/paper.texinput | 10 + macros/text1/models/paper.texmodel | 28 + macros/text1/models/resume.texinput | 62 + macros/text1/models/resume.texmodel | 69 + macros/text1/models/thesis.texinput | 159 + macros/text1/models/thesis.texmodel | 139 + macros/text1/pc/blocks/appendix.blk | 16 + macros/text1/pc/blocks/asism.blk | 5 + macros/text1/pc/blocks/asisp.blk | 5 + macros/text1/pc/blocks/bibliog.blk | 10 + macros/text1/pc/blocks/bquotem.blk | 7 + macros/text1/pc/blocks/bquotep.blk | 7 + macros/text1/pc/blocks/chapter.blk | 13 + macros/text1/pc/blocks/contents.blk | 35 + macros/text1/pc/blocks/enotem.blk | 11 + macros/text1/pc/blocks/enotep.blk | 11 + macros/text1/pc/blocks/figurem.blk | 8 + macros/text1/pc/blocks/figurep.blk | 8 + macros/text1/pc/blocks/fnotem.blk | 14 + macros/text1/pc/blocks/fnotep.blk | 14 + macros/text1/pc/blocks/fontm.blk | 6 + macros/text1/pc/blocks/fontp.blk | 6 + macros/text1/pc/blocks/index.blk | 8 + macros/text1/pc/blocks/label.blk | 6 + macros/text1/pc/blocks/lists.blk | 13 + macros/text1/pc/blocks/maillbls.blk | 17 + macros/text1/pc/blocks/marnote.blk | 6 + macros/text1/pc/blocks/multicol.blk | 10 + macros/text1/pc/blocks/pagem.blk | 11 + macros/text1/pc/blocks/pagep.blk | 11 + macros/text1/pc/blocks/parm.blk | 6 + macros/text1/pc/blocks/parp.blk | 11 + macros/text1/pc/blocks/part.blk | 20 + macros/text1/pc/blocks/preface.blk | 12 + macros/text1/pc/blocks/runfoot.blk | 6 + macros/text1/pc/blocks/runhead.blk | 6 + macros/text1/pc/blocks/subheada.blk | 11 + macros/text1/pc/blocks/subheadb.blk | 10 + macros/text1/pc/blocks/subheadc.blk | 9 + macros/text1/pc/blocks/subheadd.blk | 7 + macros/text1/pc/blocks/tablem.blk | 8 + macros/text1/pc/blocks/tablep.blk | 9 + macros/text1/pc/blocks/talaris.blk | 6 + macros/text1/pc/blocks/titlepg.blk | 4 + macros/text1/pc/fonts/dt.pk | Bin 0 -> 1536 bytes macros/text1/pc/misc/cm10.txt | 34 + macros/text1/pc/misc/cm108m.mth | 10 + macros/text1/pc/misc/cm109m.mth | 10 + macros/text1/pc/misc/cm11.txt | 40 + macros/text1/pc/misc/cm1110m.mth | 10 + macros/text1/pc/misc/cm119m.mth | 13 + macros/text1/pc/misc/cm12.txt | 37 + macros/text1/pc/misc/cm1210m.mth | 10 + macros/text1/pc/misc/cm1211m.mth | 13 + macros/text1/pc/misc/cm14.txt | 37 + macros/text1/pc/misc/cm1412m.mth | 13 + macros/text1/pc/misc/cm18.txt | 37 + macros/text1/pc/misc/cm1814m.mth | 13 + macros/text1/pc/misc/cm24.txt | 37 + macros/text1/pc/misc/cm2418m.mth | 13 + macros/text1/pc/misc/cm36.txt | 37 + macros/text1/pc/misc/cm5.txt | 51 + macros/text1/pc/misc/cm6.txt | 49 + macros/text1/pc/misc/cm65m.mth | 10 + macros/text1/pc/misc/cm7.txt | 45 + macros/text1/pc/misc/cm75m.mth | 7 + macros/text1/pc/misc/cm76m.mth | 10 + macros/text1/pc/misc/cm8.txt | 40 + macros/text1/pc/misc/cm86m.mth | 13 + macros/text1/pc/misc/cm87m.mth | 10 + macros/text1/pc/misc/cm9.txt | 40 + macros/text1/pc/misc/cm97m.mth | 10 + macros/text1/pc/misc/cm98m.mth | 13 + macros/text1/pc/misc/cmsan10.txt | 46 + macros/text1/pc/misc/cmsan11.txt | 46 + macros/text1/pc/misc/cmsan12.txt | 46 + macros/text1/pc/misc/cmsan14.txt | 46 + macros/text1/pc/misc/cmsan18.txt | 46 + macros/text1/pc/misc/cmsan24.txt | 46 + macros/text1/pc/misc/cmsan36.txt | 46 + macros/text1/pc/misc/cmsan8.txt | 49 + macros/text1/pc/misc/cmsan9.txt | 46 + macros/text1/pc/models/letter.inp | 51 + macros/text1/pc/models/letter.mdl | 45 + macros/text1/pc/models/memo.inp | 48 + macros/text1/pc/models/memo.mdl | 21 + macros/text1/pc/models/mergelet.mdl | 77 + macros/text1/pc/models/mergelst.mdl | 17 + macros/text1/pc/models/mergetxt.inp | 184 ++ macros/text1/pc/models/mergetxt.mdl | 96 + macros/text1/pc/models/paper.inp | 10 + macros/text1/pc/models/paper.mdl | 28 + macros/text1/pc/models/resume.inp | 62 + macros/text1/pc/models/resume.mdl | 69 + macros/text1/pc/models/thesis.inp | 159 + macros/text1/pc/models/thesis.mdl | 139 + macros/text1/pc/readme.tex | 38 + macros/text1/texix/plsort.pliopt | 9 + macros/text1/texix/texix.cmschan | 3 + macros/text1/texix/texix.cmsinfo | 5 + macros/text1/texix/texix.readme | 4 + macros/text1/texix/texix.web | 1577 ++++++++++ macros/text1/texix/txt1v293.cmschan | 2000 +++++++++++++ macros/text1/vax_vms/compile_texix.com | 10 + macros/text1/vax_vms/sortcall.pen | Bin 0 -> 1536 bytes macros/text1/vax_vms/texix.ch | 509 ++++ macros/text1/vax_vms/texix_vms.readme | 12 + macros/text1/vax_vms/vmssort.pas | 78 + 522 files changed, 34362 insertions(+) create mode 100644 macros/text1/blocks/appendix.texblock create mode 100644 macros/text1/blocks/asism.texblock create mode 100644 macros/text1/blocks/asisp.texblock create mode 100644 macros/text1/blocks/bibliog.texblock create mode 100644 macros/text1/blocks/bquotem.texblock create mode 100644 macros/text1/blocks/bquotep.texblock create mode 100644 macros/text1/blocks/chapter.texblock create mode 100644 macros/text1/blocks/contents.texblock create mode 100644 macros/text1/blocks/enotem.texblock create mode 100644 macros/text1/blocks/enotep.texblock create mode 100644 macros/text1/blocks/figurem.texblock create mode 100644 macros/text1/blocks/figurep.texblock create mode 100644 macros/text1/blocks/fnotem.texblock create mode 100644 macros/text1/blocks/fnotep.texblock create mode 100644 macros/text1/blocks/fontm.texblock create mode 100644 macros/text1/blocks/fontp.texblock create mode 100644 macros/text1/blocks/index.texblock create mode 100644 macros/text1/blocks/label.texblock create mode 100644 macros/text1/blocks/lists.texblock create mode 100644 macros/text1/blocks/maillbls.texblock create mode 100644 macros/text1/blocks/marnote.texblock create mode 100644 macros/text1/blocks/multicol.texblock create mode 100644 macros/text1/blocks/pagem.texblock create mode 100644 macros/text1/blocks/pagep.texblock create mode 100644 macros/text1/blocks/parm.texblock create mode 100644 macros/text1/blocks/parp.texblock create mode 100644 macros/text1/blocks/part.texblock create mode 100644 macros/text1/blocks/preface.texblock create mode 100644 macros/text1/blocks/runfoot.texblock create mode 100644 macros/text1/blocks/runhead.texblock create mode 100644 macros/text1/blocks/subheada.texblock create mode 100644 macros/text1/blocks/subheadb.texblock create mode 100644 macros/text1/blocks/subheadc.texblock create mode 100644 macros/text1/blocks/subheadd.texblock create mode 100644 macros/text1/blocks/tablem.texblock create mode 100644 macros/text1/blocks/tablep.texblock create mode 100644 macros/text1/blocks/talaris.texblock create mode 100644 macros/text1/blocks/titlepg.texblock create mode 100644 macros/text1/changes.aug91 create mode 100644 macros/text1/changes.aug92 create mode 100644 macros/text1/changes.aug93 create mode 100644 macros/text1/changes.dec93 create mode 100644 macros/text1/changes.feb91 create mode 100644 macros/text1/changes.jan92 create mode 100644 macros/text1/changes.jun91 create mode 100644 macros/text1/changes.jun96 create mode 100644 macros/text1/changes.mar91 create mode 100644 macros/text1/changes.mar92 create mode 100644 macros/text1/changes.may92 create mode 100644 macros/text1/changes.nov90 create mode 100644 macros/text1/changes.nov92 create mode 100644 macros/text1/changes.nov94 create mode 100644 macros/text1/changes.sep91 create mode 100644 macros/text1/cms_help_files/1--footn.help4--f create mode 100644 macros/text1/cms_help_files/1--verti.helpvert create mode 100644 macros/text1/cms_help_files/10noter.helpfoot create mode 100644 macros/text1/cms_help_files/11noter.helpfoot create mode 100644 macros/text1/cms_help_files/12noter.helpfoot create mode 100644 macros/text1/cms_help_files/1block.helpbloc create mode 100644 macros/text1/cms_help_files/1every.helpfoot create mode 100644 macros/text1/cms_help_files/1everye.helpendn create mode 100644 macros/text1/cms_help_files/1everyf.helpfoot create mode 100644 macros/text1/cms_help_files/1numbe.helpsubh create mode 100644 macros/text1/cms_help_files/1number.helpsubh create mode 100644 macros/text1/cms_help_files/2--footn.help4--f create mode 100644 macros/text1/cms_help_files/2--verti.helpvert create mode 100644 macros/text1/cms_help_files/2block.helpbloc create mode 100644 macros/text1/cms_help_files/2footn.helpfoot create mode 100644 macros/text1/cms_help_files/2footno.helpfoot create mode 100644 macros/text1/cms_help_files/2skipbe.helpendn create mode 100644 macros/text1/cms_help_files/2title.helpsubh create mode 100644 macros/text1/cms_help_files/3befor.helpfoot create mode 100644 macros/text1/cms_help_files/3block.helpmenu create mode 100644 macros/text1/cms_help_files/3every.helpbloc create mode 100644 macros/text1/cms_help_files/3incon.helpsubh create mode 100644 macros/text1/cms_help_files/3incont.helpsubh create mode 100644 macros/text1/cms_help_files/3skipb.helpfoot create mode 100644 macros/text1/cms_help_files/3skipbe.helpfoot create mode 100644 macros/text1/cms_help_files/3textre.helpendn create mode 100644 macros/text1/cms_help_files/4footn.helpmenu create mode 100644 macros/text1/cms_help_files/4refer.helpfoot create mode 100644 macros/text1/cms_help_files/4skipaf.helpfoot create mode 100644 macros/text1/cms_help_files/4skipb.helpbloc create mode 100644 macros/text1/cms_help_files/4textre.helpendn create mode 100644 macros/text1/cms_help_files/5refer.helpfoot create mode 100644 macros/text1/cms_help_files/5skipa.helpbloc create mode 100644 macros/text1/cms_help_files/5textre.helpendn create mode 100644 macros/text1/cms_help_files/5textre.helpfoot create mode 100644 macros/text1/cms_help_files/6notere.helpendn create mode 100644 macros/text1/cms_help_files/6refer.helpfoot create mode 100644 macros/text1/cms_help_files/6textre.helpfoot create mode 100644 macros/text1/cms_help_files/7notere.helpendn create mode 100644 macros/text1/cms_help_files/7refer.helpfoot create mode 100644 macros/text1/cms_help_files/7textre.helpfoot create mode 100644 macros/text1/cms_help_files/8notere.helpendn create mode 100644 macros/text1/cms_help_files/8textre.helpfoot create mode 100644 macros/text1/cms_help_files/9notere.helpendn create mode 100644 macros/text1/cms_help_files/9notere.helpfoot create mode 100644 macros/text1/cms_help_files/aen.helpmark create mode 100644 macros/text1/cms_help_files/afn.helpmark create mode 100644 macros/text1/cms_help_files/aib.helpmark create mode 100644 macros/text1/cms_help_files/aie.helpmark create mode 100644 macros/text1/cms_help_files/aif.helpmark create mode 100644 macros/text1/cms_help_files/anumbe.helpsubh create mode 100644 macros/text1/cms_help_files/anumber.helpsubh create mode 100644 macros/text1/cms_help_files/apf.helpmark create mode 100644 macros/text1/cms_help_files/app.helpmark create mode 100644 macros/text1/cms_help_files/appendix.helpbloc create mode 100644 macros/text1/cms_help_files/appendix.helpmenu create mode 100644 macros/text1/cms_help_files/asism.helpbloc create mode 100644 macros/text1/cms_help_files/asisp.helpbloc create mode 100644 macros/text1/cms_help_files/bd.helpmark create mode 100644 macros/text1/cms_help_files/bi.helpmark create mode 100644 macros/text1/cms_help_files/bib.helpmark create mode 100644 macros/text1/cms_help_files/bibentry.helpmark create mode 100644 macros/text1/cms_help_files/bibliog.helpbloc create mode 100644 macros/text1/cms_help_files/bibliogr.helpmark create mode 100644 macros/text1/cms_help_files/bie.helpmark create mode 100644 macros/text1/cms_help_files/bif.helpmark create mode 100644 macros/text1/cms_help_files/bothpage.helpmenu create mode 100644 macros/text1/cms_help_files/bottomma.helppage create mode 100644 macros/text1/cms_help_files/bottomti.helpboth create mode 100644 macros/text1/cms_help_files/bottomti.helpeven create mode 100644 macros/text1/cms_help_files/bottomti.helpoddp create mode 100644 macros/text1/cms_help_files/bqb.helpmark create mode 100644 macros/text1/cms_help_files/bqe.helpmark create mode 100644 macros/text1/cms_help_files/bqf.helpmark create mode 100644 macros/text1/cms_help_files/bquotem.helpbloc create mode 100644 macros/text1/cms_help_files/bquotep.helpbloc create mode 100644 macros/text1/cms_help_files/break.helpmark create mode 100644 macros/text1/cms_help_files/btitle.helpsubh create mode 100644 macros/text1/cms_help_files/btitlef.helpsubh create mode 100644 macros/text1/cms_help_files/bul.helpmark create mode 100644 macros/text1/cms_help_files/cc.helpmark create mode 100644 macros/text1/cms_help_files/cents.helpmark create mode 100644 macros/text1/cms_help_files/chap.helpmark create mode 100644 macros/text1/cms_help_files/chapter.helpbloc create mode 100644 macros/text1/cms_help_files/chf.helpmark create mode 100644 macros/text1/cms_help_files/chrono.changes create mode 100644 macros/text1/cms_help_files/cincon.helpsubh create mode 100644 macros/text1/cms_help_files/cincont.helpsubh create mode 100644 macros/text1/cms_help_files/cl.helpmark create mode 100644 macros/text1/cms_help_files/clb.helpmark create mode 100644 macros/text1/cms_help_files/cle.helpmark create mode 100644 macros/text1/cms_help_files/contents.helpbloc create mode 100644 macros/text1/cms_help_files/coul.helpmark create mode 100644 macros/text1/cms_help_files/db.helpmark create mode 100644 macros/text1/cms_help_files/dbm.helpmark create mode 100644 macros/text1/cms_help_files/dbrs.helpmark create mode 100644 macros/text1/cms_help_files/die.helpmark create mode 100644 macros/text1/cms_help_files/dsp.helpmark create mode 100644 macros/text1/cms_help_files/el.helpmark create mode 100644 macros/text1/cms_help_files/enf.helpmark create mode 100644 macros/text1/cms_help_files/enotem.helpbloc create mode 100644 macros/text1/cms_help_files/enotep.helpbloc create mode 100644 macros/text1/cms_help_files/ep.helpmark create mode 100644 macros/text1/cms_help_files/epm.helpmark create mode 100644 macros/text1/cms_help_files/ex.helpmark create mode 100644 macros/text1/cms_help_files/fif.helpmark create mode 100644 macros/text1/cms_help_files/fig.helpmark create mode 100644 macros/text1/cms_help_files/figurem.helpbloc create mode 100644 macros/text1/cms_help_files/figurep.helpbloc create mode 100644 macros/text1/cms_help_files/fixf.helpmark create mode 100644 macros/text1/cms_help_files/fnf.helpmark create mode 100644 macros/text1/cms_help_files/fnotem.helpbloc create mode 100644 macros/text1/cms_help_files/fnotep.helpbloc create mode 100644 macros/text1/cms_help_files/font.helpmark create mode 100644 macros/text1/cms_help_files/fontm.helpbloc create mode 100644 macros/text1/cms_help_files/fontp.helpbloc create mode 100644 macros/text1/cms_help_files/footnote.helpmark create mode 100644 macros/text1/cms_help_files/frac.helpmark create mode 100644 macros/text1/cms_help_files/frenchsp.helpmark create mode 100644 macros/text1/cms_help_files/goodbrea.helpmark create mode 100644 macros/text1/cms_help_files/halign.helpmark create mode 100644 macros/text1/cms_help_files/hbox.helpmark create mode 100644 macros/text1/cms_help_files/hin.helpmark create mode 100644 macros/text1/cms_help_files/hof.helpmark create mode 100644 macros/text1/cms_help_files/hon.helpmark create mode 100644 macros/text1/cms_help_files/hp.helpmark create mode 100644 macros/text1/cms_help_files/hrule.helpmark create mode 100644 macros/text1/cms_help_files/hs.helpmark create mode 100644 macros/text1/cms_help_files/hsize.helpmark create mode 100644 macros/text1/cms_help_files/incl.helpmark create mode 100644 macros/text1/cms_help_files/indent.helpmark create mode 100644 macros/text1/cms_help_files/index.helpbloc create mode 100644 macros/text1/cms_help_files/input.helpmark create mode 100644 macros/text1/cms_help_files/isk.helpmark create mode 100644 macros/text1/cms_help_files/it.helpmark create mode 100644 macros/text1/cms_help_files/italicfa.helpmark create mode 100644 macros/text1/cms_help_files/item.helpmark create mode 100644 macros/text1/cms_help_files/ix.helpmark create mode 100644 macros/text1/cms_help_files/ixf.helpmark create mode 100644 macros/text1/cms_help_files/ju.helpmark create mode 100644 macros/text1/cms_help_files/la.helpmark create mode 100644 macros/text1/cms_help_files/label.helpbloc create mode 100644 macros/text1/cms_help_files/laf.helpmark create mode 100644 macros/text1/cms_help_files/lbr.helpmark create mode 100644 macros/text1/cms_help_files/leader.helpmark create mode 100644 macros/text1/cms_help_files/letter.helpmode create mode 100644 macros/text1/cms_help_files/lib.helpmark create mode 100644 macros/text1/cms_help_files/lie.helpmark create mode 100644 macros/text1/cms_help_files/lif.helpmark create mode 100644 macros/text1/cms_help_files/lil.helpmark create mode 100644 macros/text1/cms_help_files/lin.helpmark create mode 100644 macros/text1/cms_help_files/line.helpmark create mode 100644 macros/text1/cms_help_files/lint.helpmark create mode 100644 macros/text1/cms_help_files/lir.helpmark create mode 100644 macros/text1/cms_help_files/lists.helpbloc create mode 100644 macros/text1/cms_help_files/lnf.helpmark create mode 100644 macros/text1/cms_help_files/lr.helpmark create mode 100644 macros/text1/cms_help_files/markup.helpmenu create mode 100644 macros/text1/cms_help_files/marnote.helpbloc create mode 100644 macros/text1/cms_help_files/mathdefa.helpmark create mode 100644 macros/text1/cms_help_files/mcf.helpmark create mode 100644 macros/text1/cms_help_files/memo.helpmode create mode 100644 macros/text1/cms_help_files/mi.helpmark create mode 100644 macros/text1/cms_help_files/mn.helpmark create mode 100644 macros/text1/cms_help_files/mnf.helpmark create mode 100644 macros/text1/cms_help_files/msp.helpmark create mode 100644 macros/text1/cms_help_files/multicol.helpbloc create mode 100644 macros/text1/cms_help_files/nc.helpmark create mode 100644 macros/text1/cms_help_files/nin.helpmark create mode 100644 macros/text1/cms_help_files/nobreak.helpmark create mode 100644 macros/text1/cms_help_files/nonfrenc.helpmark create mode 100644 macros/text1/cms_help_files/np.helpmark create mode 100644 macros/text1/cms_help_files/ntp.helpmark create mode 100644 macros/text1/cms_help_files/numl.helpmark create mode 100644 macros/text1/cms_help_files/oc.helpmark create mode 100644 macros/text1/cms_help_files/opm.helpmark create mode 100644 macros/text1/cms_help_files/paf.helpmark create mode 100644 macros/text1/cms_help_files/pagem.helpbloc create mode 100644 macros/text1/cms_help_files/pagep.helpbloc create mode 100644 macros/text1/cms_help_files/paper.helpmode create mode 100644 macros/text1/cms_help_files/par.helpmark create mode 100644 macros/text1/cms_help_files/parm.helpbloc create mode 100644 macros/text1/cms_help_files/parp.helpbloc create mode 100644 macros/text1/cms_help_files/part.helpbloc create mode 100644 macros/text1/cms_help_files/part.helpmark create mode 100644 macros/text1/cms_help_files/pb.helpmark create mode 100644 macros/text1/cms_help_files/pen.helpmark create mode 100644 macros/text1/cms_help_files/pf.helpmark create mode 100644 macros/text1/cms_help_files/pic.helpmark create mode 100644 macros/text1/cms_help_files/pin.helpmark create mode 100644 macros/text1/cms_help_files/plaintex.helpmark create mode 100644 macros/text1/cms_help_files/pn.helpmark create mode 100644 macros/text1/cms_help_files/ppl.helpmark create mode 100644 macros/text1/cms_help_files/pre.helpmark create mode 100644 macros/text1/cms_help_files/preface.helpbloc create mode 100644 macros/text1/cms_help_files/prf.helpmark create mode 100644 macros/text1/cms_help_files/prin.helpmark create mode 100644 macros/text1/cms_help_files/printend.helpmark create mode 100644 macros/text1/cms_help_files/printind.helpmark create mode 100644 macros/text1/cms_help_files/psk.helpmark create mode 100644 macros/text1/cms_help_files/qquad.helpmark create mode 100644 macros/text1/cms_help_files/quad.helpmark create mode 100644 macros/text1/cms_help_files/raggedbo.helpmark create mode 100644 macros/text1/cms_help_files/resume.helpmode create mode 100644 macros/text1/cms_help_files/rff.helpmark create mode 100644 macros/text1/cms_help_files/rhf.helpmark create mode 100644 macros/text1/cms_help_files/rin.helpmark create mode 100644 macros/text1/cms_help_files/rl.helpmark create mode 100644 macros/text1/cms_help_files/rlb.helpmark create mode 100644 macros/text1/cms_help_files/rle.helpmark create mode 100644 macros/text1/cms_help_files/rm.helpmark create mode 100644 macros/text1/cms_help_files/rr.helpmark create mode 100644 macros/text1/cms_help_files/rule.helpmark create mode 100644 macros/text1/cms_help_files/runfoot.helpbloc create mode 100644 macros/text1/cms_help_files/runhead.helpbloc create mode 100644 macros/text1/cms_help_files/san.helpmark create mode 100644 macros/text1/cms_help_files/sau.helpmark create mode 100644 macros/text1/cms_help_files/scn.helpmark create mode 100644 macros/text1/cms_help_files/senn.helpmark create mode 100644 macros/text1/cms_help_files/settabs.helpmark create mode 100644 macros/text1/cms_help_files/sfn.helpmark create mode 100644 macros/text1/cms_help_files/sfnn.helpmark create mode 100644 macros/text1/cms_help_files/sfs.helpmark create mode 100644 macros/text1/cms_help_files/sha.helpmark create mode 100644 macros/text1/cms_help_files/shaf.helpmark create mode 100644 macros/text1/cms_help_files/shb.helpmark create mode 100644 macros/text1/cms_help_files/shbf.helpmark create mode 100644 macros/text1/cms_help_files/shc.helpmark create mode 100644 macros/text1/cms_help_files/shcf.helpmark create mode 100644 macros/text1/cms_help_files/shd.helpmark create mode 100644 macros/text1/cms_help_files/shdf.helpmark create mode 100644 macros/text1/cms_help_files/sms.helpmark create mode 100644 macros/text1/cms_help_files/special.helpmark create mode 100644 macros/text1/cms_help_files/spn.helpmark create mode 100644 macros/text1/cms_help_files/sptn.helpmark create mode 100644 macros/text1/cms_help_files/ssan.helpmark create mode 100644 macros/text1/cms_help_files/ssbn.helpmark create mode 100644 macros/text1/cms_help_files/sscn.helpmark create mode 100644 macros/text1/cms_help_files/ssdn.helpmark create mode 100644 macros/text1/cms_help_files/ssf.helpmark create mode 100644 macros/text1/cms_help_files/ssp.helpmark create mode 100644 macros/text1/cms_help_files/stn.helpmark create mode 100644 macros/text1/cms_help_files/strut.helpmark create mode 100644 macros/text1/cms_help_files/subheada.helpbloc create mode 100644 macros/text1/cms_help_files/subheadb.helpbloc create mode 100644 macros/text1/cms_help_files/subheadc.helpbloc create mode 100644 macros/text1/cms_help_files/subheadd.helpbloc create mode 100644 macros/text1/cms_help_files/sy.helpmark create mode 100644 macros/text1/cms_help_files/tablem.helpbloc create mode 100644 macros/text1/cms_help_files/tablep.helpbloc create mode 100644 macros/text1/cms_help_files/taf.helpmark create mode 100644 macros/text1/cms_help_files/talaris.helpbloc create mode 100644 macros/text1/cms_help_files/tat.helpmark create mode 100644 macros/text1/cms_help_files/tenpt.helpmark create mode 100644 macros/text1/cms_help_files/text1.helpmark create mode 100644 macros/text1/cms_help_files/thc.helpmark create mode 100644 macros/text1/cms_help_files/thesis.helpmode create mode 100644 macros/text1/cms_help_files/titlepg.helpbloc create mode 100644 macros/text1/cms_help_files/toc.helpmark create mode 100644 macros/text1/cms_help_files/tocf.helpmark create mode 100644 macros/text1/cms_help_files/toclbr.helpmark create mode 100644 macros/text1/cms_help_files/today.helpmark create mode 100644 macros/text1/cms_help_files/topline1.helpeven create mode 100644 macros/text1/cms_help_files/topline1.helpoddp create mode 100644 macros/text1/cms_help_files/topmargi.helppage create mode 100644 macros/text1/cms_help_files/tp.helpmark create mode 100644 macros/text1/cms_help_files/tpf.helpmark create mode 100644 macros/text1/cms_help_files/tt.helpmark create mode 100644 macros/text1/cms_help_files/twc.helpmark create mode 100644 macros/text1/cms_help_files/twelvept.helpmark create mode 100644 macros/text1/cms_help_files/us.helpmark create mode 100644 macros/text1/cms_help_files/vbox.helpmark create mode 100644 macros/text1/cms_help_files/vertical.helpvert create mode 100644 macros/text1/cms_help_files/vrule.helpmark create mode 100644 macros/text1/cms_help_files/vs.helpmark create mode 100644 macros/text1/cms_help_files/vsk.helpmark create mode 100644 macros/text1/cms_help_files/width.helppage create mode 100644 macros/text1/compugraphics_8600/et10.textext create mode 100644 macros/text1/compugraphics_8600/et11.textext create mode 100644 macros/text1/compugraphics_8600/et12.textext create mode 100644 macros/text1/compugraphics_8600/et14.textext create mode 100644 macros/text1/compugraphics_8600/et18.textext create mode 100644 macros/text1/compugraphics_8600/et8.textext create mode 100644 macros/text1/compugraphics_8600/et9.textext create mode 100644 macros/text1/compugraphics_8600/etb.fontinfo create mode 100644 macros/text1/compugraphics_8600/etbi.fontinfo create mode 100644 macros/text1/compugraphics_8600/eti.fontinfo create mode 100644 macros/text1/compugraphics_8600/etr.fontinfo create mode 100644 macros/text1/compugraphics_8600/etsc.fontinfo create mode 100644 macros/text1/compugraphics_8600/fonttex.cmschan create mode 100644 macros/text1/compugraphics_8600/fonttex.exec create mode 100644 macros/text1/compugraphics_8600/fonttex.outchan create mode 100644 macros/text1/compugraphics_8600/fonttex.web create mode 100644 macros/text1/compugraphics_8600/reblock.pascal create mode 100644 macros/text1/compugraphics_8600/tex8600.cmschan create mode 100644 macros/text1/compugraphics_8600/tex8600.outchan create mode 100644 macros/text1/compugraphics_8600/tex8600.web create mode 100644 macros/text1/docs/readme.tex create mode 100644 macros/text1/docs/refman.ps.gz create mode 100644 macros/text1/fonts/cmr36.dump create mode 100644 macros/text1/fonts/dt.240pk create mode 100644 macros/text1/fonts/dt.300pk create mode 100644 macros/text1/fonts/dt.mf create mode 100644 macros/text1/fonts/dt.readme create mode 100644 macros/text1/fonts/dt.tfm create mode 100644 macros/text1/fonts/dt240.mf create mode 100644 macros/text1/fonts/dt300.mf create mode 100644 macros/text1/macintosh/texix.macinfo create mode 100644 macros/text1/macintosh/texix.turbomac create mode 100644 macros/text1/macintosh/texix_macintosh.readme create mode 100644 macros/text1/macintosh/text1_index_sort.bin create mode 100644 macros/text1/macros/cgfonts.lclist create mode 100644 macros/text1/macros/cm10.textext create mode 100644 macros/text1/macros/cm108m.texmath create mode 100644 macros/text1/macros/cm109m.texmath create mode 100644 macros/text1/macros/cm11.textext create mode 100644 macros/text1/macros/cm1110m.texmath create mode 100644 macros/text1/macros/cm119m.texmath create mode 100644 macros/text1/macros/cm12.textext create mode 100644 macros/text1/macros/cm1210m.texmath create mode 100644 macros/text1/macros/cm1211m.texmath create mode 100644 macros/text1/macros/cm14.textext create mode 100644 macros/text1/macros/cm1412m.texmath create mode 100644 macros/text1/macros/cm18.textext create mode 100644 macros/text1/macros/cm1814m.texmath create mode 100644 macros/text1/macros/cm24.textext create mode 100644 macros/text1/macros/cm2418m.texmath create mode 100644 macros/text1/macros/cm36.textext create mode 100644 macros/text1/macros/cm5.textext create mode 100644 macros/text1/macros/cm6.textext create mode 100644 macros/text1/macros/cm65m.texmath create mode 100644 macros/text1/macros/cm7.textext create mode 100644 macros/text1/macros/cm75m.texmath create mode 100644 macros/text1/macros/cm76m.texmath create mode 100644 macros/text1/macros/cm8.textext create mode 100644 macros/text1/macros/cm86m.texmath create mode 100644 macros/text1/macros/cm87m.texmath create mode 100644 macros/text1/macros/cm9.textext create mode 100644 macros/text1/macros/cm97m.texmath create mode 100644 macros/text1/macros/cm98m.texmath create mode 100644 macros/text1/macros/cmsan10.textext create mode 100644 macros/text1/macros/cmsan11.textext create mode 100644 macros/text1/macros/cmsan12.textext create mode 100644 macros/text1/macros/cmsan14.textext create mode 100644 macros/text1/macros/cmsan18.textext create mode 100644 macros/text1/macros/cmsan24.textext create mode 100644 macros/text1/macros/cmsan36.textext create mode 100644 macros/text1/macros/cmsan8.textext create mode 100644 macros/text1/macros/cmsan9.textext create mode 100644 macros/text1/macros/fixcol.tex create mode 100644 macros/text1/macros/flexcol.tex create mode 100644 macros/text1/macros/text1.tex create mode 100644 macros/text1/macros/txt1v409.tex create mode 100644 macros/text1/models/letter.texinput create mode 100644 macros/text1/models/letter.texmodel create mode 100644 macros/text1/models/memo.texinput create mode 100644 macros/text1/models/memo.texmodel create mode 100644 macros/text1/models/mergelet.texmodel create mode 100644 macros/text1/models/mergelst.texmodel create mode 100644 macros/text1/models/mergetxt.texinput create mode 100644 macros/text1/models/mergetxt.texmodel create mode 100644 macros/text1/models/paper.texinput create mode 100644 macros/text1/models/paper.texmodel create mode 100644 macros/text1/models/resume.texinput create mode 100644 macros/text1/models/resume.texmodel create mode 100644 macros/text1/models/thesis.texinput create mode 100644 macros/text1/models/thesis.texmodel create mode 100644 macros/text1/pc/blocks/appendix.blk create mode 100644 macros/text1/pc/blocks/asism.blk create mode 100644 macros/text1/pc/blocks/asisp.blk create mode 100644 macros/text1/pc/blocks/bibliog.blk create mode 100644 macros/text1/pc/blocks/bquotem.blk create mode 100644 macros/text1/pc/blocks/bquotep.blk create mode 100644 macros/text1/pc/blocks/chapter.blk create mode 100644 macros/text1/pc/blocks/contents.blk create mode 100644 macros/text1/pc/blocks/enotem.blk create mode 100644 macros/text1/pc/blocks/enotep.blk create mode 100644 macros/text1/pc/blocks/figurem.blk create mode 100644 macros/text1/pc/blocks/figurep.blk create mode 100644 macros/text1/pc/blocks/fnotem.blk create mode 100644 macros/text1/pc/blocks/fnotep.blk create mode 100644 macros/text1/pc/blocks/fontm.blk create mode 100644 macros/text1/pc/blocks/fontp.blk create mode 100644 macros/text1/pc/blocks/index.blk create mode 100644 macros/text1/pc/blocks/label.blk create mode 100644 macros/text1/pc/blocks/lists.blk create mode 100644 macros/text1/pc/blocks/maillbls.blk create mode 100644 macros/text1/pc/blocks/marnote.blk create mode 100644 macros/text1/pc/blocks/multicol.blk create mode 100644 macros/text1/pc/blocks/pagem.blk create mode 100644 macros/text1/pc/blocks/pagep.blk create mode 100644 macros/text1/pc/blocks/parm.blk create mode 100644 macros/text1/pc/blocks/parp.blk create mode 100644 macros/text1/pc/blocks/part.blk create mode 100644 macros/text1/pc/blocks/preface.blk create mode 100644 macros/text1/pc/blocks/runfoot.blk create mode 100644 macros/text1/pc/blocks/runhead.blk create mode 100644 macros/text1/pc/blocks/subheada.blk create mode 100644 macros/text1/pc/blocks/subheadb.blk create mode 100644 macros/text1/pc/blocks/subheadc.blk create mode 100644 macros/text1/pc/blocks/subheadd.blk create mode 100644 macros/text1/pc/blocks/tablem.blk create mode 100644 macros/text1/pc/blocks/tablep.blk create mode 100644 macros/text1/pc/blocks/talaris.blk create mode 100644 macros/text1/pc/blocks/titlepg.blk create mode 100644 macros/text1/pc/fonts/dt.pk create mode 100644 macros/text1/pc/misc/cm10.txt create mode 100644 macros/text1/pc/misc/cm108m.mth create mode 100644 macros/text1/pc/misc/cm109m.mth create mode 100644 macros/text1/pc/misc/cm11.txt create mode 100644 macros/text1/pc/misc/cm1110m.mth create mode 100644 macros/text1/pc/misc/cm119m.mth create mode 100644 macros/text1/pc/misc/cm12.txt create mode 100644 macros/text1/pc/misc/cm1210m.mth create mode 100644 macros/text1/pc/misc/cm1211m.mth create mode 100644 macros/text1/pc/misc/cm14.txt create mode 100644 macros/text1/pc/misc/cm1412m.mth create mode 100644 macros/text1/pc/misc/cm18.txt create mode 100644 macros/text1/pc/misc/cm1814m.mth create mode 100644 macros/text1/pc/misc/cm24.txt create mode 100644 macros/text1/pc/misc/cm2418m.mth create mode 100644 macros/text1/pc/misc/cm36.txt create mode 100644 macros/text1/pc/misc/cm5.txt create mode 100644 macros/text1/pc/misc/cm6.txt create mode 100644 macros/text1/pc/misc/cm65m.mth create mode 100644 macros/text1/pc/misc/cm7.txt create mode 100644 macros/text1/pc/misc/cm75m.mth create mode 100644 macros/text1/pc/misc/cm76m.mth create mode 100644 macros/text1/pc/misc/cm8.txt create mode 100644 macros/text1/pc/misc/cm86m.mth create mode 100644 macros/text1/pc/misc/cm87m.mth create mode 100644 macros/text1/pc/misc/cm9.txt create mode 100644 macros/text1/pc/misc/cm97m.mth create mode 100644 macros/text1/pc/misc/cm98m.mth create mode 100644 macros/text1/pc/misc/cmsan10.txt create mode 100644 macros/text1/pc/misc/cmsan11.txt create mode 100644 macros/text1/pc/misc/cmsan12.txt create mode 100644 macros/text1/pc/misc/cmsan14.txt create mode 100644 macros/text1/pc/misc/cmsan18.txt create mode 100644 macros/text1/pc/misc/cmsan24.txt create mode 100644 macros/text1/pc/misc/cmsan36.txt create mode 100644 macros/text1/pc/misc/cmsan8.txt create mode 100644 macros/text1/pc/misc/cmsan9.txt create mode 100644 macros/text1/pc/models/letter.inp create mode 100644 macros/text1/pc/models/letter.mdl create mode 100644 macros/text1/pc/models/memo.inp create mode 100644 macros/text1/pc/models/memo.mdl create mode 100644 macros/text1/pc/models/mergelet.mdl create mode 100644 macros/text1/pc/models/mergelst.mdl create mode 100644 macros/text1/pc/models/mergetxt.inp create mode 100644 macros/text1/pc/models/mergetxt.mdl create mode 100644 macros/text1/pc/models/paper.inp create mode 100644 macros/text1/pc/models/paper.mdl create mode 100644 macros/text1/pc/models/resume.inp create mode 100644 macros/text1/pc/models/resume.mdl create mode 100644 macros/text1/pc/models/thesis.inp create mode 100644 macros/text1/pc/models/thesis.mdl create mode 100644 macros/text1/pc/readme.tex create mode 100644 macros/text1/texix/plsort.pliopt create mode 100644 macros/text1/texix/texix.cmschan create mode 100644 macros/text1/texix/texix.cmsinfo create mode 100644 macros/text1/texix/texix.readme create mode 100644 macros/text1/texix/texix.web create mode 100644 macros/text1/texix/txt1v293.cmschan create mode 100644 macros/text1/vax_vms/compile_texix.com create mode 100644 macros/text1/vax_vms/sortcall.pen create mode 100644 macros/text1/vax_vms/texix.ch create mode 100644 macros/text1/vax_vms/texix_vms.readme create mode 100644 macros/text1/vax_vms/vmssort.pas (limited to 'macros/text1') diff --git a/macros/text1/blocks/appendix.texblock b/macros/text1/blocks/appendix.texblock new file mode 100644 index 0000000000..0000bd5a39 --- /dev/null +++ b/macros/text1/blocks/appendix.texblock @@ -0,0 +1,16 @@ +% Default values for the \appendix markup +\appendixformat{\numberingstyle{A} + \titleformat{\dumpinsertseject + \centerline{\twelvept\bold Appendix \appendixnumber} + \centerline{\twelvept\bold\appendixtitle} + \vs{1\bl} + \setchapternumber{0} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + \setfigurenumber{0} + \settablenumber{0} + }% end titleformat + \incontents{yes} +}% end appendix format diff --git a/macros/text1/blocks/asism.texblock b/macros/text1/blocks/asism.texblock new file mode 100644 index 0000000000..c5ea6006c4 --- /dev/null +++ b/macros/text1/blocks/asism.texblock @@ -0,0 +1,5 @@ +% Default values for \asisbegin in \monospace +\asisformat{\skipbefore{1\bl} + \everyasis{\leftindent{0pt}} + \skipafter{1\bl} +}% end as is format diff --git a/macros/text1/blocks/asisp.texblock b/macros/text1/blocks/asisp.texblock new file mode 100644 index 0000000000..c9a65c3860 --- /dev/null +++ b/macros/text1/blocks/asisp.texblock @@ -0,0 +1,5 @@ +% Default values for the \asisbegin markup +\asisformat{\skipbefore{6pt} + \everyasis{\leftindent{0pt}} + \skipafter{6pt} +}% end as is format diff --git a/macros/text1/blocks/bibliog.texblock b/macros/text1/blocks/bibliog.texblock new file mode 100644 index 0000000000..691cee2263 --- /dev/null +++ b/macros/text1/blocks/bibliog.texblock @@ -0,0 +1,10 @@ +% Default values for the \bibliography markup +\bibliographyformat{% + \titleformat{\dumpinsertseject + \centerline{\twelvept\bd\bibtitle} + \vs{\bl} + }% end titleformat + \everybibentry{\vs{1\bl}\goodbreak\hp\nin} + \sameauthorrulesize{width 3em height .6ex depth -.5ex} + \incontents{yes} +}% end bibliographyformat markup diff --git a/macros/text1/blocks/bquotem.texblock b/macros/text1/blocks/bquotem.texblock new file mode 100644 index 0000000000..87d2605a8a --- /dev/null +++ b/macros/text1/blocks/bquotem.texblock @@ -0,0 +1,7 @@ +% Defaults for \blockquotebegin in \monospace +\blockquoteformat{\skipbefore{1\bl} + \everyblockquote{\rm\leftindent{36pt} % 36pt = .5in + \rightindent{36pt} + } + \skipafter{1\bl} +}% end monospace block quote begin format diff --git a/macros/text1/blocks/bquotep.texblock b/macros/text1/blocks/bquotep.texblock new file mode 100644 index 0000000000..4fdf50b4c9 --- /dev/null +++ b/macros/text1/blocks/bquotep.texblock @@ -0,0 +1,7 @@ +% Defaults for the \blockquotebegin markup +\blockquoteformat{\skipbefore{6pt} + \everyblockquote{\tenpt\leftindent{24pt} % 24pt = .3in + \rightindent{24pt} + } + \skipafter{6pt} +}% end block quote begin format diff --git a/macros/text1/blocks/chapter.texblock b/macros/text1/blocks/chapter.texblock new file mode 100644 index 0000000000..9796e18beb --- /dev/null +++ b/macros/text1/blocks/chapter.texblock @@ -0,0 +1,13 @@ +% Default values for the \chapter markup +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \centerline{\twelvept\bd Chapter \chapternumber} + \centerline{\twelvept\bd\chaptertitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end chapter format diff --git a/macros/text1/blocks/contents.texblock b/macros/text1/blocks/contents.texblock new file mode 100644 index 0000000000..45fa4e571d --- /dev/null +++ b/macros/text1/blocks/contents.texblock @@ -0,0 +1,35 @@ +% Defaults when using the \tableofcontents markup +\tableofcontentsformat{% + \toctitle{\centerline{\bd Table of Contents} + \vs{1\bl}} + \prefacetocformat{\nin\prefacetitle\leader\pagenumber} + \parttocformat{\vs{1\bl} + \centerline{Part \partnumber} + \centerline{\parttitle} + \vs{1\bl} + \nin Part \partnumber \leader \pagenumber} + \continuechapter{no} + \chaptertocformat{\hangingchapternumber \chaptertitle \leader \pagenumber} + \hangingchapterindent{.25in} + \appendixtocformat{\hangingappendixnumber \appendixtitle \leader \pn} + \hangingappendixindent{.25in} + \subheadatocformat{\leftindent{.5in}\nin + \subheadatitle \leader \pagenumber} + \subheadbtocformat{\leftindent{1in}\nin + \subheadbtitle \leader \pagenumber} + \subheadctocformat{\leftindent{1.5in}\nin + \subheadctitle \leader \pagenumber} + \subheaddtocformat{\leftindent{2in}\nin + \subheaddtitle \leader \pagenumber} + \bibliographytocformat{\nin\bibtitle \leader \pagenumber} + \figuretoctitle{\newpage + \centerline{\bd List of Figures} + \line{Figure \rt{Page}}} + \figuretocformat{\hangingnumber{\figurenumber.}\figuretitle\leader\pagenumber} + \hangingfigureindent{.25in} + \tabletoctitle{\newpage + \centerline{\bd List of Tables} + \line{Table \rt{Page}}} + \tabletocformat{\hangingnumber{\tablenumber.}\tabletitle\leader\pagenumber} + \hangingtableindent{.25in} +} diff --git a/macros/text1/blocks/enotem.texblock b/macros/text1/blocks/enotem.texblock new file mode 100644 index 0000000000..2716defe7a --- /dev/null +++ b/macros/text1/blocks/enotem.texblock @@ -0,0 +1,11 @@ +% Defaults for \autoendnote with \monospace +\endnoteformat{\skipbefore{0\bl} + \textreferenceposition{down} + \textreferencefont{\rm} + \textreferencestyle{[1]} + \notereferenceposition{down} + \notereferencefont{\rm} + \notereferencestyle{1.} + \notereferencegutter{1em} % 1em = 12pt in a 12pt font + \everyendnote{\rm\pin{0pt}\lin{1.2em}} +} diff --git a/macros/text1/blocks/enotep.texblock b/macros/text1/blocks/enotep.texblock new file mode 100644 index 0000000000..4f2b55d4e1 --- /dev/null +++ b/macros/text1/blocks/enotep.texblock @@ -0,0 +1,11 @@ +% Default values for the \autoendnote markup +\endnoteformat{\skipbefore{4pt} + \textreferenceposition{down} + \textreferencefont{\tenpt} + \textreferencestyle{[1]} + \notereferenceposition{down} + \notereferencefont{\tenpt} + \notereferencestyle{1.} + \notereferencegutter{1em} % 1em = 12pt in a 12pt font + \everyendnote{\tenpt\pin{0pt}\lin{1.2em}} +}% end endnoteformat markup diff --git a/macros/text1/blocks/figurem.texblock b/macros/text1/blocks/figurem.texblock new file mode 100644 index 0000000000..9d7263c218 --- /dev/null +++ b/macros/text1/blocks/figurem.texblock @@ -0,0 +1,8 @@ +% Defaults for \figure with \monospace +\figureformat{\skipbefore{1\bl} + \position{\float} + \titleformat{\bqb\hp + \bd Figure \figurenumber. \rm\figuretitle\bqe} + \incontents{yes} + \skipafter{1\bl} +}% End figure format markup diff --git a/macros/text1/blocks/figurep.texblock b/macros/text1/blocks/figurep.texblock new file mode 100644 index 0000000000..e2131696ef --- /dev/null +++ b/macros/text1/blocks/figurep.texblock @@ -0,0 +1,8 @@ +% Defaults for the \figure markup +\figureformat{\skipbefore{1\bl} + \position{\float} + \titleformat{\bqb\hp\tenpt + \bd Figure \figurenumber. \rm\figuretitle\bqe} + \incontents{yes} + \skipafter{1\bl} +}% End figure format markup diff --git a/macros/text1/blocks/fnotem.texblock b/macros/text1/blocks/fnotem.texblock new file mode 100644 index 0000000000..a3d5840598 --- /dev/null +++ b/macros/text1/blocks/fnotem.texblock @@ -0,0 +1,14 @@ +% Defaults for \autofootnote with \monospace +\footnoteformat{\skipbeforedivider{12pt} + \skipafterdivider{2.6pt} + \footnotedivider{144pt} % 144pt = 2in + \textreferenceposition{down} + \textreferenceplacement{after} + \textreferencefont{\rm} + \textreferencestyle{(1)} + \notereferenceposition{down} + \notereferencefont{\rm} + \notereferencestyle{1.} + \notereferencegutter{1em} + \everyfootnote{\rm\pin{.5in}\psk{.5in}\lin{0pt}\rin{0pt}} +} diff --git a/macros/text1/blocks/fnotep.texblock b/macros/text1/blocks/fnotep.texblock new file mode 100644 index 0000000000..97fb1ddf0c --- /dev/null +++ b/macros/text1/blocks/fnotep.texblock @@ -0,0 +1,14 @@ +% Defaults for the \autofootnote markup +\footnoteformat{\skipbeforedivider{12pt} + \skipafterdivider{2.6pt} + \footnotedivider{144pt} % 144pt = 2in + \textreferenceposition{up} + \textreferenceplacement{after} + \textreferencefont{\tenpt} + \textreferencestyle{1} + \notereferenceposition{down} + \notereferencefont{\tenpt} + \notereferencestyle{1.} + \notereferencegutter{1em} + \everyfootnote{\tenpt\pin{20pt}\lin{0pt}} +} diff --git a/macros/text1/blocks/fontm.texblock b/macros/text1/blocks/fontm.texblock new file mode 100644 index 0000000000..5f8455a998 --- /dev/null +++ b/macros/text1/blocks/fontm.texblock @@ -0,0 +1,6 @@ +% Default values for the \monospace markup +\monospace + % You may change the default monspace fonts by removing the % symbol + % from the \selectfontset and \defaultmono\rm markups below. +% \selectfontset{monofont}{defaultmono}{default} % +% \defaultmono\rm diff --git a/macros/text1/blocks/fontp.texblock b/macros/text1/blocks/fontp.texblock new file mode 100644 index 0000000000..5393d563eb --- /dev/null +++ b/macros/text1/blocks/fontp.texblock @@ -0,0 +1,6 @@ +% Default values for the proportional space fonts +\selectfontset{cm12}{twelvept}{default} % default twelve point set +\selectfontset{cm10}{tenpt}{default} % alternate ten point set +\twelvept % default font specification +\selectmathset{cm97m}{mathdefault} % default math font set +\mathdefault % default math specification diff --git a/macros/text1/blocks/index.texblock b/macros/text1/blocks/index.texblock new file mode 100644 index 0000000000..684c4407d1 --- /dev/null +++ b/macros/text1/blocks/index.texblock @@ -0,0 +1,8 @@ +\indexformat1{\respectcase{no} + \style{indent} + \leadering{no} + \everyletterbreak{\vs{1\bl}} + \indentsubentry1{1em} + \indentsubentry2{2em} + \everyhang{1.5em} + \everyindex{\tenpt}} diff --git a/macros/text1/blocks/label.texblock b/macros/text1/blocks/label.texblock new file mode 100644 index 0000000000..d4da9e3063 --- /dev/null +++ b/macros/text1/blocks/label.texblock @@ -0,0 +1,6 @@ +% Defaults for the \label markup +\labelformat{\skipbefore{1\bl} + \labelwidth{72pt} + \gutter{1em} + \everylabel{\rm} + } diff --git a/macros/text1/blocks/lists.texblock b/macros/text1/blocks/lists.texblock new file mode 100644 index 0000000000..874be36899 --- /dev/null +++ b/macros/text1/blocks/lists.texblock @@ -0,0 +1,13 @@ +% Defaults for \listbegin, \listlevel, and \bullet +\listformat{\skipbefore{0\bl} + \liststyle{1.,a.,i.,1),a),i),(1)} + \everylistlevel1{\rm\lin{36pt}\gutter{1em}} % 36pt = .5in + \everylistlevel2{\rm\lin{58pt}\gutter{1em}} % 58pt = .8in + \everylistlevel3{\rm\lin{79pt}\gutter{1em}} % 79pt = 1.1in + \everylistlevel4{\rm\lin{101pt}\gutter{1em}} % 101pt = 1.4in + \everylistlevel5{\rm\lin{122pt}\gutter{1em}} % 122pt = 1.7in + \everylistlevel6{\rm\lin{144pt}\gutter{1em}} % 144pt = 2.0in + \everylistlevel7{\rm\lin{166pt}\gutter{1em}} % 166pt = 2.3in + \everybullet{\rm\lin{+36pt}\gutter{1em}} % 36pt = .5in + \skipafter{0\bl} +} diff --git a/macros/text1/blocks/maillbls.texblock b/macros/text1/blocks/maillbls.texblock new file mode 100644 index 0000000000..145fd0667f --- /dev/null +++ b/macros/text1/blocks/maillbls.texblock @@ -0,0 +1,17 @@ +% Set format for mail labels with the MERGE LETTER MODEL + +% Maillabelformat sets the page and label information for mailing labels +\maillabelformat{\labelsetup{% Sets page and margin settings + \newpage % start labels on a new page + \notitlepage % labels not started on a title page + \runningheadformat{\bothpages{\line{}}} % no page #s + \pageformat{\topmargin{1in} % new page dimensions + \bottommargin{0pt} + \leftmargin{0pt} + \rightmargin{0pt}}% end page format + }% end labelsetup + \numberoflabelsperline{3} % three labels per line max + \labelheight{1in} % each label 1 inch high + \labelwidth{2.75in} % each label 2.75 inches wide + \labelmat{.25in} % margin to text is .25 inches +}% end mail label format diff --git a/macros/text1/blocks/marnote.texblock b/macros/text1/blocks/marnote.texblock new file mode 100644 index 0000000000..ded8cac18a --- /dev/null +++ b/macros/text1/blocks/marnote.texblock @@ -0,0 +1,6 @@ +% Default values for the \marginnote markup +\marginnoteformat{\position{left} + \notewidth{54pt} + \notegutter{6pt} + \everymarginnote{\tenpt\rr} +}% end margin note format diff --git a/macros/text1/blocks/multicol.texblock b/macros/text1/blocks/multicol.texblock new file mode 100644 index 0000000000..81b2522cdb --- /dev/null +++ b/macros/text1/blocks/multicol.texblock @@ -0,0 +1,10 @@ +% Default multiple column formats +\multicolumnformat{ + \twocolumnwidth{.48\galleywidth} % approximately 3 inches + \threecolumnwidth{.31\galleywidth} % approximately 2 inches + \twocolumngutter{.04\galleywidth} % approximately .2 inches + \threecolumngutter{.035\galleywidth} + \columnrulewidth{0.0pt} + \skipbefore{6pt plus3pt minus2pt} % flexible format only + \skipafter{6pt plus3pt minus2pt} % flexible format only + } diff --git a/macros/text1/blocks/pagem.texblock b/macros/text1/blocks/pagem.texblock new file mode 100644 index 0000000000..99694f4721 --- /dev/null +++ b/macros/text1/blocks/pagem.texblock @@ -0,0 +1,11 @@ +% Default page dimensions and margins +\pageformat{\pagelength{11in} % 792pt = 11in + \pagewidth{8.5in} % 612pt = 8.5in + \topmargin{1in} % 72pt = 1in + \bottommargin{1in} + \leftmargin{1.2in} % 86pt = 1.2in + \rightmargin{1in} + \bindingadjust{0in} % none +}% end page format +\raggedbottom % allows the bottom line to fluctuate up + % and down a couple lines diff --git a/macros/text1/blocks/pagep.texblock b/macros/text1/blocks/pagep.texblock new file mode 100644 index 0000000000..1c521e133d --- /dev/null +++ b/macros/text1/blocks/pagep.texblock @@ -0,0 +1,11 @@ +% Default page dimensions and margins +\pageformat{\pagelength{11in} % 792pt = 11in + \pagewidth{8.5in} % 612pt = 8.5in + \topmargin{1in} % 72pt = 1in + \bottommargin{1in} + \leftmargin{1.2in} % 86pt = 1.2in + \rightmargin{1in} + \bindingadjust{0in} +}% end pageformat +\normalbottom % text height will be the same for each + % page. Bottom lines will be even. diff --git a/macros/text1/blocks/parm.texblock b/macros/text1/blocks/parm.texblock new file mode 100644 index 0000000000..2d9c676951 --- /dev/null +++ b/macros/text1/blocks/parm.texblock @@ -0,0 +1,6 @@ +% Default paragraph specifications for monospace fonts +\paragraphindent{36pt} % indent for the first line of a paragraph +\paragraphskip{0pt} % distance between paragraphs +\justify +\hyphenon % hyphenation either on (\hyphenon) + % or off (\hyphenoff) diff --git a/macros/text1/blocks/parp.texblock b/macros/text1/blocks/parp.texblock new file mode 100644 index 0000000000..b31df93253 --- /dev/null +++ b/macros/text1/blocks/parp.texblock @@ -0,0 +1,11 @@ +% Default paragraph specifications for proportional fonts +\paragraphindent{24pt} % indent for first line of text +\paragraphskip{0pt plus 3pt minus 0pt} % Distance skipped between + % paragraphs. Plus and minus refer to space + % that may be added or subtracted from the + % initial setting (0pt) to make the lines + % even at the bottom of the page. + +\justify % all text will be justified +\hyphenon % hyphenation either on (\hyphenon) + % or off (\hyphenoff) diff --git a/macros/text1/blocks/part.texblock b/macros/text1/blocks/part.texblock new file mode 100644 index 0000000000..68545f85ba --- /dev/null +++ b/macros/text1/blocks/part.texblock @@ -0,0 +1,20 @@ +% Default values for the \part markup +\partformat{\numberingstyle{1} + \titleformat{\dumpinsertseject\titlepage + \hrule height 0pt depth 0pt + \vfil % Produces a half title page + \centerline{\twelvept\bold Part \partnumber} + \centerline{\twelvept\bold \parttitle} + \newpage + \setchapternumber{0} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + \setfootnotenumber{0} + \setendnotenumber{0} + \setfigurenumber{0} + \settablenumber{0} + }% end titleformat + \incontents{yes} +}% end part format diff --git a/macros/text1/blocks/preface.texblock b/macros/text1/blocks/preface.texblock new file mode 100644 index 0000000000..3c44e37a02 --- /dev/null +++ b/macros/text1/blocks/preface.texblock @@ -0,0 +1,12 @@ +% Default values for the \preface markup +\prefaceformat{% + \titleformat{\dumpinsertseject + \centerline{\twelvept\bd\prefacetitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end preface format diff --git a/macros/text1/blocks/runfoot.texblock b/macros/text1/blocks/runfoot.texblock new file mode 100644 index 0000000000..8aecd0311a --- /dev/null +++ b/macros/text1/blocks/runfoot.texblock @@ -0,0 +1,6 @@ +% Default values for the running foot title +\runningfootformat{% + \bothpages{\vs{1\bl} + \line{\twelvept\lft{}\ctr{}\rt{}} + }% end bothpages +}% end runningfootformat markup diff --git a/macros/text1/blocks/runhead.texblock b/macros/text1/blocks/runhead.texblock new file mode 100644 index 0000000000..c88e8758cb --- /dev/null +++ b/macros/text1/blocks/runhead.texblock @@ -0,0 +1,6 @@ +% Default values for the running head title +\runningheadformat{% + \bothpages{\line{\twelvept\lft{}\ctr{}\rt{\pagenumber}} + \vs{1\bl} + }% end bothpages +}% end runningheadformat markup diff --git a/macros/text1/blocks/subheada.texblock b/macros/text1/blocks/subheada.texblock new file mode 100644 index 0000000000..ce0c4ab5fd --- /dev/null +++ b/macros/text1/blocks/subheada.texblock @@ -0,0 +1,11 @@ +% Default values for the \subheada markup +\subheadaformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\bd\nin\subheadatitle\par\nobreak + \vs{1\bl}\nobreak + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadaformat markup diff --git a/macros/text1/blocks/subheadb.texblock b/macros/text1/blocks/subheadb.texblock new file mode 100644 index 0000000000..e3089ad1c4 --- /dev/null +++ b/macros/text1/blocks/subheadb.texblock @@ -0,0 +1,10 @@ +% Default values for the \subheadb markup +\subheadbformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\it\nin\subheadbtitle\par\nobreak + \vs{1\bl}\nobreak + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadbformat markup diff --git a/macros/text1/blocks/subheadc.texblock b/macros/text1/blocks/subheadc.texblock new file mode 100644 index 0000000000..be70a69692 --- /dev/null +++ b/macros/text1/blocks/subheadc.texblock @@ -0,0 +1,9 @@ +% Default values for the \subheadc markup +\subheadcformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\nin\subheadctitle\par\nobreak + \vs{1\bl}\nobreak + \setsubheaddnumber{0} + }% end titleformat + \incontents{no} +}% end subheadcformat markup diff --git a/macros/text1/blocks/subheadd.texblock b/macros/text1/blocks/subheadd.texblock new file mode 100644 index 0000000000..8b1cd8b6f3 --- /dev/null +++ b/macros/text1/blocks/subheadd.texblock @@ -0,0 +1,7 @@ +% Default values for the \subheadd markup +\subheaddformat{\numberingstyle{1} + \titleformat{\goodbreak + {\twelvept\it \subheaddtitle.} + }% end titleformat + \incontents{no} +}% end subheadd markup diff --git a/macros/text1/blocks/tablem.texblock b/macros/text1/blocks/tablem.texblock new file mode 100644 index 0000000000..3ab57a8d73 --- /dev/null +++ b/macros/text1/blocks/tablem.texblock @@ -0,0 +1,8 @@ +% Default \tabletitle when using \monospace +\tableformat{\titleformat{\vs{\bl} + \cl{\bd Table \tablenumber} + \cl{\rm\tabletitle} + \vs{\bl} + } + \incontents{yes} +} diff --git a/macros/text1/blocks/tablep.texblock b/macros/text1/blocks/tablep.texblock new file mode 100644 index 0000000000..1b1f0c4162 --- /dev/null +++ b/macros/text1/blocks/tablep.texblock @@ -0,0 +1,9 @@ +% Default values for the \tabletitle markup +\tableformat{% + \titleformat{\vs{\bl} + \cl{\twelvept\bd Table \tablenumber} + \cl{\twelvept\tabletitle} + \vs{\bl} + }% end titleformat + \incontents{yes} +}% end tableformat markup diff --git a/macros/text1/blocks/talaris.texblock b/macros/text1/blocks/talaris.texblock new file mode 100644 index 0000000000..0d908cc87f --- /dev/null +++ b/macros/text1/blocks/talaris.texblock @@ -0,0 +1,6 @@ +% Default values for the Talaris fonts +\selectfontset{amrom12}{twelvept}{default} % default twelve point set +\selectfontset{amrom10}{tenpt}{default} % alternate ten point set +\twelvept % default font specification +\selectmathset{am97m}{mathdefault} % default math font set +\mathdefault % default math specification diff --git a/macros/text1/blocks/titlepg.texblock b/macros/text1/blocks/titlepg.texblock new file mode 100644 index 0000000000..e53cfb4bdb --- /dev/null +++ b/macros/text1/blocks/titlepg.texblock @@ -0,0 +1,4 @@ +% Default for the title (first) page +\titlepageformat{\titleleadskip{1in} + \titlefootline{} +}% end titlepage markup diff --git a/macros/text1/changes.aug91 b/macros/text1/changes.aug91 new file mode 100644 index 0000000000..fbdd14b91a --- /dev/null +++ b/macros/text1/changes.aug91 @@ -0,0 +1,13 @@ +This is a list of changes to the basic TeXT1 sources made in August 1991. + +There are 5 new files: + [.vax_vms]compile_texix.com + [.vax_vms]sortcall.pen + [.vax_vms]texix.ch + [.vax_vms]texix.exe + [.vax_vms]vmssort.pas + +0 files were removed: + +The following files have been changed: + [.vax_vms]texix.vmsinfo diff --git a/macros/text1/changes.aug92 b/macros/text1/changes.aug92 new file mode 100644 index 0000000000..465a805866 --- /dev/null +++ b/macros/text1/changes.aug92 @@ -0,0 +1,10 @@ +This is a list of changes to the basic TeXT1 sources made in August 1992. + +There is 1 new file: + [.macros]txt1v407.tex + +1 file was removed: + [.macros]txt1v406.tex + +0 files were changed: + diff --git a/macros/text1/changes.aug93 b/macros/text1/changes.aug93 new file mode 100644 index 0000000000..44dfbab4e4 --- /dev/null +++ b/macros/text1/changes.aug93 @@ -0,0 +1,11 @@ +This is a list of changes to the basic TeXT1 sources made in August 1993. + +There were no new files: + +no files removed: + +4 files were changed: + [.vax_vms]compile_texix.com + [.vax_vms]sortcall.pen + [.vax_vms]texix.ch + [.vax_vms]texix.exe diff --git a/macros/text1/changes.dec93 b/macros/text1/changes.dec93 new file mode 100644 index 0000000000..e871c7cb91 --- /dev/null +++ b/macros/text1/changes.dec93 @@ -0,0 +1,11 @@ +This is a list of changes to the basic TeXT1 sources made in December 1993. + +There is 1 new files in the WSUIPA directory: + [.wsuipa]compilefonts. + +0 files removed: + +2 files were changed: + [.wsuipa]lipaman.dvi + [.wsuipa]lipaman.tex + diff --git a/macros/text1/changes.feb91 b/macros/text1/changes.feb91 new file mode 100644 index 0000000000..0c3ec088ee --- /dev/null +++ b/macros/text1/changes.feb91 @@ -0,0 +1,8 @@ +This is a list of changes to the basic TeXT1 sources made in February 1991. + +There are 0 new files: + +0 files were removed: + +The following files have been changed: + [.fonts]cm*.tfm % most were corrupted, so I copied them all again diff --git a/macros/text1/changes.jan92 b/macros/text1/changes.jan92 new file mode 100644 index 0000000000..64652b91a1 --- /dev/null +++ b/macros/text1/changes.jan92 @@ -0,0 +1,11 @@ +This is a list of changes to the basic TeXT1 sources made in January 1992. + +There is 1 new files: + [.macros]txt1v404.tex + +2 files were removed: + [.macros]txt1v403.tex + [.macros]txt1m403.tex ! this was merged into txt1v404 + +1 file was changed: + [.macros]text1.tex diff --git a/macros/text1/changes.jun91 b/macros/text1/changes.jun91 new file mode 100644 index 0000000000..d3cd18e4ec --- /dev/null +++ b/macros/text1/changes.jun91 @@ -0,0 +1,11 @@ +This is a list of changes to the basic TeXT1 sources made in June 1991. + +There are 0 new files: + +0 files were removed: + +The following files have been changed: + [.wsuipa]ipaman.tex % minor correction + [.wsuipa]lipaman.tex % minor correction + [.models]thesis.texinput % conforms to new WSU standards + [.models]thesis.texmodel % conforms to new WSU standards diff --git a/macros/text1/changes.jun96 b/macros/text1/changes.jun96 new file mode 100644 index 0000000000..79cecb817c --- /dev/null +++ b/macros/text1/changes.jun96 @@ -0,0 +1,14 @@ +This is a list of changes to the basic TeXT1 sources made in June 1996. + +There are 2 new files in the TEXT1 directory: + [.macros]txt1v409.tex + [.docs]refman.ps.gz + +1 file removed: + [.macros]txt1v408.tex + +1 file was changed: + [.macros]text1.tex + +file []readme.tex was moved to [.docs]readme.tex + diff --git a/macros/text1/changes.mar91 b/macros/text1/changes.mar91 new file mode 100644 index 0000000000..fa9e21936d --- /dev/null +++ b/macros/text1/changes.mar91 @@ -0,0 +1,10 @@ +This is a list of changes to the basic TeXT1 sources made in March 1991. + +There is 1 new file: + [.wsuipa]lipaman.tex % LaTeX version of the manual + +0 files were removed: + +The following files have been changed: + [.fonts]cm*.300pk % most were corrupted, so I FTPd them all again + [.wsuipa]*.300pk % ditto diff --git a/macros/text1/changes.mar92 b/macros/text1/changes.mar92 new file mode 100644 index 0000000000..e00b9afcec --- /dev/null +++ b/macros/text1/changes.mar92 @@ -0,0 +1,16 @@ +This is a list of changes to the basic TeXT1 sources made in March 1992. + +There are 7 new files: + [.macros]txt1v405.tex + [.fonts]dt.300pk + [.fonts]dt300.mf + [.fonts]dt.mf + [.fonts]dt.tfm + [.fonts]dt.readme + [.texix]texix.readme + +1 file was removed: + [.macros]txt1v404.tex + +1 file was changed: + [.macros]text1.tex diff --git a/macros/text1/changes.may92 b/macros/text1/changes.may92 new file mode 100644 index 0000000000..02ef23463c --- /dev/null +++ b/macros/text1/changes.may92 @@ -0,0 +1,28 @@ +This is a list of changes to the basic TeXT1 sources made in May 1992. + +There are 5 new files: + [.macros]txt1v406.tex + [.wsuipa]lipaman.dvi + [.wsuipa]readme.wsuipa + [.wsuipa]ipalman.tex + [.wsuipa]ipalmacs.sty + +1 file was removed: + [.macros]txt1v405.tex + +14 files were changed: + [.macros]text1.tex + [.wsuipa]iromanu.mf + [.wsuipa]wslipa8.tfm + [.wsuipa]wslipa9.tfm + [.wsuipa]wslipa10.tfm + [.wsuipa]wslipa11.tfm + [.wsuipa]wslipa12.tfm + [.wsuipa]wslipa17.tfm + [.wsuipa]wslipa8.300pk + [.wsuipa]wslipa9.300pk + [.wsuipa]wslipa10.300pk + [.wsuipa]wslipa11.300pk + [.wsuipa]wslipa12.300pk + [.wsuipa]wslipa17.300pk + diff --git a/macros/text1/changes.nov90 b/macros/text1/changes.nov90 new file mode 100644 index 0000000000..cc5a9bff2a --- /dev/null +++ b/macros/text1/changes.nov90 @@ -0,0 +1,17 @@ +This is a list of changes to the basic TeXT1 sources made in November 1990. + +There are 2 new files: + [.macros]txt1v402.tex + [.macros]txt1m402.tex + +2 files were removed: + [.macros]txt1v401.tex + [.macros]txt1m401.tex + +The following files have been changed: + [.fonts]cmbxti14.300pk + [.fonts]cmbxti14.mf + [.fonts]cmbxti14.tfm + [.wsuipa]ipaman.tex + [.macros]flexcol.tex + [.models]thesis.texinput diff --git a/macros/text1/changes.nov92 b/macros/text1/changes.nov92 new file mode 100644 index 0000000000..6f5d905e0f --- /dev/null +++ b/macros/text1/changes.nov92 @@ -0,0 +1,9 @@ +This is a list of changes to the basic TeXT1 sources made in November 1992. + +There are over 160 new files in a new PC directory: + [.pc] + +0 files removed: + +0 files were changed: + diff --git a/macros/text1/changes.nov94 b/macros/text1/changes.nov94 new file mode 100644 index 0000000000..c5bed494cb --- /dev/null +++ b/macros/text1/changes.nov94 @@ -0,0 +1,16 @@ +This is a list of changes to the basic TeXT1 sources made in November 1994. + +There are 4 new files in the TEXT1 directory: + [.macintosh]TEXT1_INDEX_SORT.BIN + [.macintosh]texix_macintosh.readme + [.vax_vms]texix_vms.readme + [.macros]txt1v408.tex + +3 files removed: + [.macros]txt1v407.tex + [.macintosh]texix.macinfo + [.vax_vms]texix.vmsinfo + +1 file was changed: + [.macros]text1.tex + diff --git a/macros/text1/changes.sep91 b/macros/text1/changes.sep91 new file mode 100644 index 0000000000..9376fb3fb6 --- /dev/null +++ b/macros/text1/changes.sep91 @@ -0,0 +1,12 @@ +This is a list of changes to the basic TeXT1 sources made in September 1991. + +There are 2 new files: + [.macros]txt1v403.tex + [.macros]txt1m403.tex + +2 files were removed: + [.macros]txt1v402.tex + [.macros]txt1m402.tex + +1 file was changed: + [.macros]text1.tex diff --git a/macros/text1/cms_help_files/1--footn.help4--f b/macros/text1/cms_help_files/1--footn.help4--f new file mode 100644 index 0000000000..fc45137071 --- /dev/null +++ b/macros/text1/cms_help_files/1--footn.help4--f @@ -0,0 +1,20 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \footnotestyle COMMAND | ++-----------------------------------------------------------------------------+ + +The \footnotestyle command is always used in conjunction with the +\footnoteformat (\fnf) command, and will set the numbering style for the +footnotes. The format for the \footnotestyle command is: + + \footnoteformat{ + \footnotestyle{xx} + } + +Where "xx" is one of four possible values: + + 1 which gives numbered footnotes 1, 2, 3, etc. + (1) which gives numbered footnotes included in parentheses (1), (2) + a which gives lettered footnotes a, b, c, etc. + (a) which gives lettered footnotes enclosed in parentheses (a), (b) + +The \footnotestyle default is \footnotestyle{(1)} diff --git a/macros/text1/cms_help_files/1--verti.helpvert b/macros/text1/cms_help_files/1--verti.helpvert new file mode 100644 index 0000000000..872fadaa4f --- /dev/null +++ b/macros/text1/cms_help_files/1--verti.helpvert @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \verticalspace (\vs) COMMAND | ++-----------------------------------------------------------------------------+ + +The \verticalspace (\vs) command will leave the specified amount of space or +the specified number of blank lines in the text. This command will also force +the following text into a new paragraph. The format for the \verticalspace +(\vs) command is: + + \verticalspace{x} + +Where "x" is the number of blank lines or space you wish to leave. For +example, + + \verticalspace{4\bl} + +will leave four blank lines, and + + \verticalspace{2in} + +will leave two inches of blank space. diff --git a/macros/text1/cms_help_files/10noter.helpfoot b/macros/text1/cms_help_files/10noter.helpfoot new file mode 100644 index 0000000000..a67f3982ae --- /dev/null +++ b/macros/text1/cms_help_files/10noter.helpfoot @@ -0,0 +1,14 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \notereferencefont COMMAND | ++-----------------------------------------------------------------------------+ + +The \notereferencefont command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine the font in which the +footnote reference numbers in the text of the notes are printed. The format +for the \notereferencefont command is: + + \footnoteformat{ + \notereferencefont{xx} + } + +Where "xx" is some font designations such as \bf, \it, \littlefont, etc. diff --git a/macros/text1/cms_help_files/11noter.helpfoot b/macros/text1/cms_help_files/11noter.helpfoot new file mode 100644 index 0000000000..8b39bf09ae --- /dev/null +++ b/macros/text1/cms_help_files/11noter.helpfoot @@ -0,0 +1,23 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \notereferencestyle COMMAND | ++-----------------------------------------------------------------------------+ + +The \notereferencestyle command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine the style in which the +footnote reference numbers within the notes are printed. There are six +possible note numbering styles: + \notereferencestyle{1} for numbered footnotes "1, 2, 3, ..." + \notereferencestyle{1.} for numbered footnotes "1., 2., 3., ..." + \notereferencestyle{(1)} for numbered footnotes "(1), (2), (3), ..." + \notereferencestyle{a} for lettered footnotes "a, b, c, ..." + \notereferencestyle{a.} for lettered footnotes "a., b., c., ..." + \notereferencestyle{(a)} for lettered footnotes "(a), (b), (c), ..." + +The format for the \notereferencestyle command is: + + \footnoteformat{ + \notereferencestyle{xx} + } + +Where "xx" is one of the six valid style designations given above. The default +is \notereferencestyle{1}. diff --git a/macros/text1/cms_help_files/12noter.helpfoot b/macros/text1/cms_help_files/12noter.helpfoot new file mode 100644 index 0000000000..c74fb65186 --- /dev/null +++ b/macros/text1/cms_help_files/12noter.helpfoot @@ -0,0 +1,16 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \notereferencegutter COMMAND | ++-----------------------------------------------------------------------------+ + +The \notereferencegutter command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine the amount of space between +the footnote reference number and the text of the footnotes. The format for +the \notereferencegutter command is: + + \footnoteformat{ + \notereferencegutter{xx} + } + +Where "xx" is any number and valid TeX measurement (in, pc, pts, etc.). +\notereferencegutter{1em} is the default and will give one emspace between the +footnote reference numbers and the text of the notes. diff --git a/macros/text1/cms_help_files/1block.helpbloc b/macros/text1/cms_help_files/1block.helpbloc new file mode 100644 index 0000000000..e0c19a24b8 --- /dev/null +++ b/macros/text1/cms_help_files/1block.helpbloc @@ -0,0 +1,19 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \blockquotebegin (\bqb) COMMAND | ++-----------------------------------------------------------------------------+ + +The \blockquotebegin (\bqb) command will begin a new paragraph and indent the +following text the amount of the current paragraph indentation on both the left +and right margins. If the current paragraph indentation value is zero, the +indentation for the block quote will be one-half inch. The format for the +\blockquotebegin (\bqb) command is: + + \blockquotebegin + tttttt + tttttt + tttttt + \blockquoteend + +Where the "tttttt" designates the text included as the block quote. The +\blockquotebegin (\bqb) command is always used in conjunction with the +\blockquoteend (\bqe) command. diff --git a/macros/text1/cms_help_files/1every.helpfoot b/macros/text1/cms_help_files/1every.helpfoot new file mode 100644 index 0000000000..af55b6bbd7 --- /dev/null +++ b/macros/text1/cms_help_files/1every.helpfoot @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \everyfootnote COMMAND | ++-----------------------------------------------------------------------------+ + +The \everyfootnote command is always used in conjunction with the +\footnoteformat (\fnf) command, and will set options for the paragraph format +within the footnote. The format for the \fortmatfootnote command is: + + \footnoteformat{ + \everyfootnote{options + }} + +Where "options" is one or more of the following. + + \paragraphindent \paragraphskip \leftindent + \rightindent \rightragged \interlineskip + \singlespace \doublespace font changes + \justify + +For more information on any of these options see the help screen under the +markup menu for that particular command. diff --git a/macros/text1/cms_help_files/1everye.helpendn b/macros/text1/cms_help_files/1everye.helpendn new file mode 100644 index 0000000000..de87d7cf5d --- /dev/null +++ b/macros/text1/cms_help_files/1everye.helpendn @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \everyendnote COMMAND | ++-----------------------------------------------------------------------------+ + +The \everyendnote command is always used in conjunction with the \endnoteformat +(\enf) command, and will set options for the paragraph format within the +endnote. The format for the \everyendnote command is: + + \endnoteformat{ + \everyendnote{options + }} + +Where "options" is one or more of the following. + + \paragraphindent \paragraphskip \leftindent + \rightindent \rightragged \interlineskip + \singlespace \doublespace font changes + \justify + +For more information on any of these options see the help screen under the +markup menu for that particular command. diff --git a/macros/text1/cms_help_files/1everyf.helpfoot b/macros/text1/cms_help_files/1everyf.helpfoot new file mode 100644 index 0000000000..ecd02acc90 --- /dev/null +++ b/macros/text1/cms_help_files/1everyf.helpfoot @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \everyfootnote COMMAND | ++-----------------------------------------------------------------------------+ + +The \everyfootnote command is always used in conjunction with the +\footnoteformat (\fnf) command, and will set options for the paragraph format +within the footnote. The format for the \everyfootnote command is: + + \footnoteformat{ + \everyfootnote{options + }} + +Where "options" is one or more of the following. + + \paragraphindent \paragraphskip \leftindent + \rightindent \rightragged \interlineskip + \singlespace \doublespace font changes + \justify + +For more information on any of these options see the help screen under the +markup menu for that particular command. diff --git a/macros/text1/cms_help_files/1numbe.helpsubh b/macros/text1/cms_help_files/1numbe.helpsubh new file mode 100644 index 0000000000..9ba197b3e8 --- /dev/null +++ b/macros/text1/cms_help_files/1numbe.helpsubh @@ -0,0 +1,13 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \numberingstyle COMMAND | ++-----------------------------------------------------------------------------+ + +The \numberingstyle command is always used in conjunction with the +\subheadbformat command and will set the style of numbering for the subheadb +titles. The format for the \numberingstyle command is: + + \subheadbformat{\numberingstyle{xxx} + } + +where "xxx" is A, 1, or I. The default \numberingstyle for subheadb is +\numberingstyle{1}. diff --git a/macros/text1/cms_help_files/1number.helpsubh b/macros/text1/cms_help_files/1number.helpsubh new file mode 100644 index 0000000000..9f2fe89806 --- /dev/null +++ b/macros/text1/cms_help_files/1number.helpsubh @@ -0,0 +1,13 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \numberingstyle COMMAND | ++-----------------------------------------------------------------------------+ + +The \numberingstyle command is always used in conjunction with the +\subheadaformat command and will set the style of numbering for the subheada +titles. The format for the \numberingstyle command is: + + \subheadaformat{\numberingstyle{xxx} + } + +where "xxx" is A, 1, or I. The default \numberingstyle for subheada is +\numberingstyle{1}. diff --git a/macros/text1/cms_help_files/2--footn.help4--f b/macros/text1/cms_help_files/2--footn.help4--f new file mode 100644 index 0000000000..24d6dbb6ca --- /dev/null +++ b/macros/text1/cms_help_files/2--footn.help4--f @@ -0,0 +1,15 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \footnotereferencefont COMMAND | ++-----------------------------------------------------------------------------+ + +The \footnotereferencefont command is always used in conjunction with the +\footnotereferenceformat command, and establishes what font will be used to set +the footnote reference numbers. The format for the \footnotereferencefont +command is: + + \footnotereferenceformat{ + \footnotereferencefont{xx} + } + +Where "xx" is a valid font style (\sf, \bf, \it, etc.). The default footnote +reference font is the standardface font. diff --git a/macros/text1/cms_help_files/2--verti.helpvert b/macros/text1/cms_help_files/2--verti.helpvert new file mode 100644 index 0000000000..7b10e91285 --- /dev/null +++ b/macros/text1/cms_help_files/2--verti.helpvert @@ -0,0 +1,15 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \verticalspacekeep (\vsk) COMMAND | ++-----------------------------------------------------------------------------+ + +The \verticalspacekeep (\vsk) command will leave vertical space at the +beginning of a page or for a figure, plate, table, or any other reason when you +need to have the entire space specified kept intact. If the specified space +will not fit on the current page, it will be printed at the top of the +following page and the remaining current page will remain blank, causing you to +receive an underfull vbox warning. The \verticalspacekeep (\vsk) format is: + + \verticalspacekeep{xx} + +Where "xx" is the amount of vertical space expressed in any valid TeX +measurement (pt, pc, in, etc.) or in number of lines to be left for the figure. diff --git a/macros/text1/cms_help_files/2block.helpbloc b/macros/text1/cms_help_files/2block.helpbloc new file mode 100644 index 0000000000..2e72dd23cf --- /dev/null +++ b/macros/text1/cms_help_files/2block.helpbloc @@ -0,0 +1,16 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \blockquoteend (\bqe) COMMAND | ++-----------------------------------------------------------------------------+ + +The \blockquoteend (\bqe) command ends a block quote and starts a new +paragraph. The format for the \blockquoteend (\bqe) command is: + + \blockquotebegin + tttttt + tttttt + tttttt + \blockquoteend + +Where the "tttttt" designates the text included as the block quote. The +\blockquoteend (\bqe) command is always used in conjunction with the +\blockquotebegin (\bqb) command. diff --git a/macros/text1/cms_help_files/2footn.helpfoot b/macros/text1/cms_help_files/2footn.helpfoot new file mode 100644 index 0000000000..f20d126e79 --- /dev/null +++ b/macros/text1/cms_help_files/2footn.helpfoot @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \footnotedivider COMMAND | ++-----------------------------------------------------------------------------+ + +The \footnotedivider command is always used in conjunction with the +\footnoteformat (\fnf) command, and will set the length for the line that +divides the page text from the beginning of the footnote text. The format for +the \footnotedivider command is: + + \footnoteformat{ + \footnotedivider{xx} + } + +Where "xx" is any valid TeX measurement (pt, pc, in, etc.). For example, + + \footnoteformat{ + \footnotedivider{1.5in} + } + +would make the horizontal rule before the footnote text to be one and one-half +inches long. diff --git a/macros/text1/cms_help_files/2footno.helpfoot b/macros/text1/cms_help_files/2footno.helpfoot new file mode 100644 index 0000000000..f20d126e79 --- /dev/null +++ b/macros/text1/cms_help_files/2footno.helpfoot @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \footnotedivider COMMAND | ++-----------------------------------------------------------------------------+ + +The \footnotedivider command is always used in conjunction with the +\footnoteformat (\fnf) command, and will set the length for the line that +divides the page text from the beginning of the footnote text. The format for +the \footnotedivider command is: + + \footnoteformat{ + \footnotedivider{xx} + } + +Where "xx" is any valid TeX measurement (pt, pc, in, etc.). For example, + + \footnoteformat{ + \footnotedivider{1.5in} + } + +would make the horizontal rule before the footnote text to be one and one-half +inches long. diff --git a/macros/text1/cms_help_files/2skipbe.helpendn b/macros/text1/cms_help_files/2skipbe.helpendn new file mode 100644 index 0000000000..2f7d5f5372 --- /dev/null +++ b/macros/text1/cms_help_files/2skipbe.helpendn @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \skipbefore COMMAND | ++-----------------------------------------------------------------------------+ + +The \skipbefore command is always used in conjunction with the \endnoteformat +(\enf) command, and will set the amount of vertical space before the endnotes +are printed. The format for the \skipbefore command is: + + \endnoteformat{ + \skipbefore{xx} + } + +Where "xx" is expressed in \baselines or any valid TeX measurement (pt, pc, in, +etc.). For example, + + \endnoteformat{ + \skipbefore{1.5in} + } + +would put one and one-half inches of vertical space before the beginning of the +endnote text. diff --git a/macros/text1/cms_help_files/2title.helpsubh b/macros/text1/cms_help_files/2title.helpsubh new file mode 100644 index 0000000000..98cab4d1b5 --- /dev/null +++ b/macros/text1/cms_help_files/2title.helpsubh @@ -0,0 +1,20 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \titleformat COMMAND | ++-----------------------------------------------------------------------------+ + +The \titleformat command is always used in conjunction with the \subheadbformat +command and will set options for the subheadb titles. The format for the +\titleformat command is: + + \subheadbformat{\titleformat{ + \vsk{24pt} + {\it \subheadbtitle} + \vs{12pt}} + } + +This is the default for \titleformat. Each \subheadb command will space down 24 +points, print the \subheadbtitle in italics and space down 12 points to resume +with the text. + +For more information on the \subheadbtitle command, see the help screen under +the markup menu for that particular command. diff --git a/macros/text1/cms_help_files/3befor.helpfoot b/macros/text1/cms_help_files/3befor.helpfoot new file mode 100644 index 0000000000..98eb00954f --- /dev/null +++ b/macros/text1/cms_help_files/3befor.helpfoot @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \beforefootnoteskip COMMAND | ++-----------------------------------------------------------------------------+ + +The \beforefootnoteskip command is always used in conjunction with the +\footnoteformat (\fnf) command, and will set the amount of vertical space +between the page text and the footnote divider. The format for the +\beforefootnoteskip command is: + + \footnoteformat{ + \beforefootnoteskip{xx} + } + +Where "xx" is any valid TeX measurement (pt, pc, in, etc.). For example, + + \footnoteformat{ + \beforefootnoteskip{1.5in} + } + +would put one and one-half inches of vertical space between the page text and +the footnote dividing rule. diff --git a/macros/text1/cms_help_files/3block.helpmenu b/macros/text1/cms_help_files/3block.helpmenu new file mode 100644 index 0000000000..b8517f05b6 --- /dev/null +++ b/macros/text1/cms_help_files/3block.helpmenu @@ -0,0 +1,14 @@ + Menu for BLOCKQUOTEFORMAT -- TEXT1 + +A file may be selected for viewing by placing the cursor under any character +of the file wanted and pressing the PF 1 key. A MENU file is indicated when +a name is preceded by an asterisk (*). If you are using a terminal that +doesn't have a CURSOR or PF KEYS then you MUST TYPE in the COMPLETE HELP +COMMAND with operands and options. For a description of the operands and +options type HELP HELP. + + +skipafter (space after block quotes) +skipbefore (space before block quotes) +blockquoteparagraphformat (establishing paragraph options + within block quotes) diff --git a/macros/text1/cms_help_files/3every.helpbloc b/macros/text1/cms_help_files/3every.helpbloc new file mode 100644 index 0000000000..7a2445ec78 --- /dev/null +++ b/macros/text1/cms_help_files/3every.helpbloc @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \everyblockquote COMMAND | ++-----------------------------------------------------------------------------+ + +The \everyblockquote command is always used in conjunction with the +\blockquoteformat (\bqf) command, and will set options for the paragraph format +within the blockquote. The format for the \everyblockquote command is: + + \blockquoteformat{ + \everyblockquote{options + }} + +Where "options" is one or more of the following. + + \paragraphindent \paragraphskip \interlineskip + \justify \rightragged font changes + \singlespace \doublespace \leftindent + \rightindent + +For more information on any of these options see the help screen under the +markup menu for that particular command. diff --git a/macros/text1/cms_help_files/3incon.helpsubh b/macros/text1/cms_help_files/3incon.helpsubh new file mode 100644 index 0000000000..e58c80f034 --- /dev/null +++ b/macros/text1/cms_help_files/3incon.helpsubh @@ -0,0 +1,15 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \incontents COMMAND | ++-----------------------------------------------------------------------------+ + +The \incontents command is always used in conjunction with the \subheadbformat +command and will determine whether subheadb titles are included in the Table of +Contents. The format for the \incontents command is: + + \subheadbformat{ + \incontents{yes} + } + +By default, the subheadb titles will not be included in the Table of Contents. +If you want the subheadb titles included in the Table of Contents, enter +\incontents{yes} within the \subheadbformat command. diff --git a/macros/text1/cms_help_files/3incont.helpsubh b/macros/text1/cms_help_files/3incont.helpsubh new file mode 100644 index 0000000000..b5f4b3d717 --- /dev/null +++ b/macros/text1/cms_help_files/3incont.helpsubh @@ -0,0 +1,15 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \incontents COMMAND | ++-----------------------------------------------------------------------------+ + +The \incontents command is always used in conjunction with the \subheadaformat +command and will determine whether subheada titles are included in the Table of +Contents. The format for the \incontents command is: + + \subheadaformat{ + \incontents{yes} + } + +By default, the subheada titles will be included in the Table of Contents. If +you do not want the subheada titles included in the Table of Contents, enter +\incontents{no} within the \subheadaformat command. diff --git a/macros/text1/cms_help_files/3skipb.helpfoot b/macros/text1/cms_help_files/3skipb.helpfoot new file mode 100644 index 0000000000..bc6ebaf65d --- /dev/null +++ b/macros/text1/cms_help_files/3skipb.helpfoot @@ -0,0 +1,22 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \skipbeforedivider COMMAND | ++-----------------------------------------------------------------------------+ + +The \skipbeforedivider command is always used in conjunction with the +\footnoteformat (\fnf) command, and will set the amount of vertical space +between the page text and the footnote divider. The format for the +\skipbeforedivider command is: + + \footnoteformat{ + \skipbeforedivider{xx} + } + +Where "xx" is expressed in \baselines or any valid TeX measurement (pt, pc, in, +etc.). For example, + + \footnoteformat{ + \skipbeforedivider{1.5in} + } + +would put one and one-half inches of vertical space between the page text and +the footnote dividing rule. diff --git a/macros/text1/cms_help_files/3skipbe.helpfoot b/macros/text1/cms_help_files/3skipbe.helpfoot new file mode 100644 index 0000000000..bc6ebaf65d --- /dev/null +++ b/macros/text1/cms_help_files/3skipbe.helpfoot @@ -0,0 +1,22 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \skipbeforedivider COMMAND | ++-----------------------------------------------------------------------------+ + +The \skipbeforedivider command is always used in conjunction with the +\footnoteformat (\fnf) command, and will set the amount of vertical space +between the page text and the footnote divider. The format for the +\skipbeforedivider command is: + + \footnoteformat{ + \skipbeforedivider{xx} + } + +Where "xx" is expressed in \baselines or any valid TeX measurement (pt, pc, in, +etc.). For example, + + \footnoteformat{ + \skipbeforedivider{1.5in} + } + +would put one and one-half inches of vertical space between the page text and +the footnote dividing rule. diff --git a/macros/text1/cms_help_files/3textre.helpendn b/macros/text1/cms_help_files/3textre.helpendn new file mode 100644 index 0000000000..2649fb0153 --- /dev/null +++ b/macros/text1/cms_help_files/3textre.helpendn @@ -0,0 +1,17 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \textreferenceposition COMMAND | ++-----------------------------------------------------------------------------+ + +The \textreferenceposition command is always used in conjunction with the +\endnoteformat (\enf) command, and will determine whether the endnote reference +number within the text is a superscript number or not. The format for the +\textreferenceposition command is: + + \endnoteformat{ + \textreferenceposition{xx} + } + +Where "xx" is either "up" or "down". \textreferenceposition{up} will give +superscript numbers for the endnote reference numbers within the text. +\textreferenceposition{down} will give print the endnote reference numbers +within the text on the baseline. diff --git a/macros/text1/cms_help_files/4footn.helpmenu b/macros/text1/cms_help_files/4footn.helpmenu new file mode 100644 index 0000000000..e0ab64ea02 --- /dev/null +++ b/macros/text1/cms_help_files/4footn.helpmenu @@ -0,0 +1,18 @@ + Menu for FOOTNOTEREFERENCEFORMAT Commands -- TEXT1 + +A file may be selected for viewing by placing the cursor under any character +of the file wanted and pressing the PF 1 key. A MENU file is indicated when +a name is preceded by an asterisk (*). If you are using a terminal that +doesn't have a CURSOR or PF KEYS then you MUST TYPE in the COMPLETE HELP +COMMAND with operands and options. For a description of the operands and +options type HELP HELP. + + +1--footnotestyle (the numbering style of the footnotes) +2--footnotereferencefont (the font used to set footnote + reference numbers) +3--precede (positioning of the footnote reference number before word) +4--follow (positioning the footnote reference number after the word) +5--superscript (superscript footnote reference numbers) +6--notsuperscript (footnote reference numbers not superscript) + diff --git a/macros/text1/cms_help_files/4refer.helpfoot b/macros/text1/cms_help_files/4refer.helpfoot new file mode 100644 index 0000000000..08e7cd3e11 --- /dev/null +++ b/macros/text1/cms_help_files/4refer.helpfoot @@ -0,0 +1,16 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \referenceposition COMMAND | ++-----------------------------------------------------------------------------+ + +The \referenceposition command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine whether the footnote +reference number is a superscript number or not. The format for the +\referenceposition command is: + + \footnoteformat{ + \referenceposition{xx} + } + +Where "xx" is either "up" or "down". \referenceposition{up} will give +superscript numbers for the footnote reference numbers. +\referenceposition{down} will give regular-sized footnote reference numbers. diff --git a/macros/text1/cms_help_files/4skipaf.helpfoot b/macros/text1/cms_help_files/4skipaf.helpfoot new file mode 100644 index 0000000000..ba168c90f2 --- /dev/null +++ b/macros/text1/cms_help_files/4skipaf.helpfoot @@ -0,0 +1,22 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \skipafterdivider COMMAND | ++-----------------------------------------------------------------------------+ + +The \skipafterdivider command is always used in conjunction with the +\footnoteformat (\fnf) command, and will set the amount of vertical space +between the footnote divider and the beginning of the text of the first +footnote. The format for the \skipafterdivider command is: + + \footnoteformat{ + \skipafterdivider{xx} + } + +Where "xx" is expressed in \baselines or any valid TeX measurement (pt, pc, in, +etc.). For example, + + \footnoteformat{ + \skipafterdivider{5pt} + } + +would put five points of vertical space between the the footnote dividing rule +and the text of the first footnote. diff --git a/macros/text1/cms_help_files/4skipb.helpbloc b/macros/text1/cms_help_files/4skipb.helpbloc new file mode 100644 index 0000000000..c1430e9b33 --- /dev/null +++ b/macros/text1/cms_help_files/4skipb.helpbloc @@ -0,0 +1,17 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \skipbefore COMMAND | ++-----------------------------------------------------------------------------+ + +The \skipbefore command is always used in conjunction with the +\blockquoteformat (\bqf) command, and will set the amount of vertical space +that is to be skipped before the blockquote begins. The format for the +\skipbefore command is: + + \blockquoteformat{ + \skipbefore{xx} + } + +Where "xx" is the amount of space desired, expressed in number of lines or any +legal TeX measurement (pt, pc, in, etc.). The amount of space indicated in the +\skipbefore command will be added to the current paragraph skip before +beginning the first paragraph of the blockquote. diff --git a/macros/text1/cms_help_files/4textre.helpendn b/macros/text1/cms_help_files/4textre.helpendn new file mode 100644 index 0000000000..f80277833c --- /dev/null +++ b/macros/text1/cms_help_files/4textre.helpendn @@ -0,0 +1,14 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \textreferencefont COMMAND | ++-----------------------------------------------------------------------------+ + +The \textreferencefont command is always used in conjunction with the +\endnoteformat (\enf) command, and will determine the font in which the endnote +reference numbers in the text are printed. The format for the +\textreferencefont command is: + + \endnoteformat{ + \textreferencefont{xx} + } + +Where "xx" is some font designations such as \bf, \it, \littlefont, etc. diff --git a/macros/text1/cms_help_files/5refer.helpfoot b/macros/text1/cms_help_files/5refer.helpfoot new file mode 100644 index 0000000000..5f70c16e4e --- /dev/null +++ b/macros/text1/cms_help_files/5refer.helpfoot @@ -0,0 +1,16 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \referenceplacement COMMAND | ++-----------------------------------------------------------------------------+ + +The \referenceplacement command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine whether the footnote +reference number is placed before or after the footnote reference word. The +format for the \referenceplacement command is: + + \footnoteformat{ + \referenceplacement{xx} + } + +Where "xx" is either "before" or "after". \referenceplacement{after} will +place the footnote reference number after the word. \referenceplacement{before} +will place the footnote reference number before the word referenced. diff --git a/macros/text1/cms_help_files/5skipa.helpbloc b/macros/text1/cms_help_files/5skipa.helpbloc new file mode 100644 index 0000000000..3a4794e3a1 --- /dev/null +++ b/macros/text1/cms_help_files/5skipa.helpbloc @@ -0,0 +1,18 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \skipafter COMMAND | ++-----------------------------------------------------------------------------+ + +The \skipafter command is always used in conjunction with the \blockquoteformat +(\bqf) command, and will set the amount of vertical space that is to be skipped +after the last paragraph of the blockquote ends. The format for the \skipafter +command is: + + \blockquoteformat{ + \skipafter{xx} + } + +Where "xx" is the amount of space desired, expressed in number of lines or any +legal TeX measurement (pt, pc, in, etc.). The amount of space indicated in the +\skipafter command will be added to the current paragraph skip after ending the +last paragraph of the blockquote and before beginning the next paragraph of the +regular text. diff --git a/macros/text1/cms_help_files/5textre.helpendn b/macros/text1/cms_help_files/5textre.helpendn new file mode 100644 index 0000000000..96e3aab143 --- /dev/null +++ b/macros/text1/cms_help_files/5textre.helpendn @@ -0,0 +1,23 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \textreferencestyle COMMAND | ++-----------------------------------------------------------------------------+ + +The \textreferencestyle command is always used in conjunction with the +\endnoteformat (\enf) command, and will determine the style in which the +endnote reference numbers within the text are printed. There are six possible +text numbering styles: + \textreferencestyle{1} for numbered endnotes "1, 2, 3, ..." + \textreferencestyle{[1]} for numbered endnotes "[1], [2], ..." + \textreferencestyle{(1)} for numbered endnotes "(1), (2), (3), ..." + \textreferencestyle{a} for lettered endnotes "a, b, c, ..." + \textreferencestyle{[a]} for lettered endnotes "[a], [b] ..." + \textreferencestyle{(a)} for lettered endnotes "(a), (b), (c), ..." + +The format for the \textreferencestyle command is: + + \endnoteformat{ + \textreferencestyle{xx} + } + +Where "xx" is one of the six valid style designations given above. The default +is \textreferencestyle{[1]}. diff --git a/macros/text1/cms_help_files/5textre.helpfoot b/macros/text1/cms_help_files/5textre.helpfoot new file mode 100644 index 0000000000..518c8f518d --- /dev/null +++ b/macros/text1/cms_help_files/5textre.helpfoot @@ -0,0 +1,17 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \textreferenceposition COMMAND | ++-----------------------------------------------------------------------------+ + +The \textreferenceposition command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine whether the footnote +reference number within the text is a superscript number or not. The format +for the \textreferenceposition command is: + + \footnoteformat{ + \textreferenceposition{xx} + } + +Where "xx" is either "up" or "down". \textreferenceposition{up} will give +superscript numbers for the footnote reference numbers within the text. +\textreferenceposition{down} will give print the footnote reference numbers +within the text on the baseline. diff --git a/macros/text1/cms_help_files/6notere.helpendn b/macros/text1/cms_help_files/6notere.helpendn new file mode 100644 index 0000000000..1c6002625d --- /dev/null +++ b/macros/text1/cms_help_files/6notere.helpendn @@ -0,0 +1,17 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \notereferenceposition COMMAND | ++-----------------------------------------------------------------------------+ + +The \notereferenceposition command is always used in conjunction with the +\endnoteformat (\enf) command, and will determine whether the endnote reference +number within the text of the endnotes is a superscript number or not. The +format for the \notereferenceposition command is: + + \endnoteformat{ + \notereferenceposition{xx} + } + +Where "xx" is either "up" or "down". \notereferenceposition{up} will give +superscript numbers for the endnote reference numbers in the notes. +\notereferenceposition{down} will give print the endnote reference numbers in +the notes on the baseline. diff --git a/macros/text1/cms_help_files/6refer.helpfoot b/macros/text1/cms_help_files/6refer.helpfoot new file mode 100644 index 0000000000..55dda0ef13 --- /dev/null +++ b/macros/text1/cms_help_files/6refer.helpfoot @@ -0,0 +1,14 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \referencefont COMMAND | ++-----------------------------------------------------------------------------+ + +The \referencefont command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine the font in which the +footnote reference numbers are printed. The format for the \referencefont +command is: + + \footnoteformat{ + \referencefont{xx} + } + +Where "xx" is some font designations such as \bf, \it, \littlefont, etc. diff --git a/macros/text1/cms_help_files/6textre.helpfoot b/macros/text1/cms_help_files/6textre.helpfoot new file mode 100644 index 0000000000..79eb463bae --- /dev/null +++ b/macros/text1/cms_help_files/6textre.helpfoot @@ -0,0 +1,17 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \textreferenceplacement COMMAND | ++-----------------------------------------------------------------------------+ + +The \textreferenceplacement command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine whether the footnote +reference number within the text is placed before or after the footnote +reference word. The format for the \textreferenceplacement command is: + + \footnoteformat{ + \textreferenceplacement{xx} + } + +Where "xx" is either "before" or "after". \textreferenceplacement{after} will +place the footnote reference number after the word in the text. +\textreferenceplacement{before} will place the footnote reference number before +the referenced word in the text. diff --git a/macros/text1/cms_help_files/7notere.helpendn b/macros/text1/cms_help_files/7notere.helpendn new file mode 100644 index 0000000000..8b29d46327 --- /dev/null +++ b/macros/text1/cms_help_files/7notere.helpendn @@ -0,0 +1,14 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \notereferencefont COMMAND | ++-----------------------------------------------------------------------------+ + +The \notereferencefont command is always used in conjunction with the +\endnoteformat (\enf) command, and will determine the font in which the endnote +reference numbers in the text of the notes are printed. The format for the +\notereferencefont command is: + + \endnoteformat{ + \notereferencefont{xx} + } + +Where "xx" is some font designations such as \bf, \it, \littlefont, etc. diff --git a/macros/text1/cms_help_files/7refer.helpfoot b/macros/text1/cms_help_files/7refer.helpfoot new file mode 100644 index 0000000000..a3d8622991 --- /dev/null +++ b/macros/text1/cms_help_files/7refer.helpfoot @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \referencestyle COMMAND | ++-----------------------------------------------------------------------------+ + +The \referencestyle command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine the style in which the +footnote reference numbers are printed. There are four possible numbering +styles: + \referencestyle{1} for numbered footnotes "1, 2, 3, ..." + \referencestyle{(1)} for numbered footnotes "(1), (2), (3), ..." + \referencestyle{a} for lettered footnotes "a, b, c, ..." + \referencestyle{(a)} for lettered footnotes "(a), (b), (c), ..." + +The format for the \referencestyle command is: + + \footnoteformat{ + \referencestyle{xx} + } + +Where "xx" is one of the four valid style designations given above. The +default is \referencestyle{(1)}. diff --git a/macros/text1/cms_help_files/7textre.helpfoot b/macros/text1/cms_help_files/7textre.helpfoot new file mode 100644 index 0000000000..b827caaa77 --- /dev/null +++ b/macros/text1/cms_help_files/7textre.helpfoot @@ -0,0 +1,14 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \textreferencefont COMMAND | ++-----------------------------------------------------------------------------+ + +The \textreferencefont command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine the font in which the +footnote reference numbers in the text are printed. The format for the +\textreferencefont command is: + + \footnoteformat{ + \textreferencefont{xx} + } + +Where "xx" is some font designations such as \bf, \it, \littlefont, etc. diff --git a/macros/text1/cms_help_files/8notere.helpendn b/macros/text1/cms_help_files/8notere.helpendn new file mode 100644 index 0000000000..0728adcc36 --- /dev/null +++ b/macros/text1/cms_help_files/8notere.helpendn @@ -0,0 +1,23 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \notereferencestyle COMMAND | ++-----------------------------------------------------------------------------+ + +The \notereferencestyle command is always used in conjunction with the +\endnoteformat (\enf) command, and will determine the style in which the +endnote reference numbers within the notes are printed. There are six possible +note numbering styles: + \notereferencestyle{1} for numbered endnotes "1, 2, 3, ..." + \notereferencestyle{[1]} for numbered endnotes "[1], [2] ..." + \notereferencestyle{(1)} for numbered endnotes "(1), (2), (3), ..." + \notereferencestyle{a} for lettered endnotes "a, b, c, ..." + \notereferencestyle{[a]} for lettered endnotes "[a], [b] ..." + \notereferencestyle{(a)} for lettered endnotes "(a), (b), (c), ..." + +The format for the \notereferencestyle command is: + + \endnoteformat{ + \notereferencestyle{xx} + } + +Where "xx" is one of the six valid style designations given above. The default +is \notereferencestyle{1}. diff --git a/macros/text1/cms_help_files/8textre.helpfoot b/macros/text1/cms_help_files/8textre.helpfoot new file mode 100644 index 0000000000..5cef5c7d45 --- /dev/null +++ b/macros/text1/cms_help_files/8textre.helpfoot @@ -0,0 +1,23 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \textreferencestyle COMMAND | ++-----------------------------------------------------------------------------+ + +The \textreferencestyle command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine the style in which the +footnote reference numbers within the text are printed. There are six possible +text numbering styles: + \textreferencestyle{1} for numbered footnotes "1, 2, 3, ..." + \textreferencestyle{1.} for numbered footnotes "1., 2., 3., ..." + \textreferencestyle{(1)} for numbered footnotes "(1), (2), (3), ..." + \textreferencestyle{a} for lettered footnotes "a, b, c, ..." + \textreferencestyle{a.} for lettered footnotes "a., b., c., ..." + \textreferencestyle{(a)} for lettered footnotes "(a), (b), (c), ..." + +The format for the \textreferencestyle command is: + + \footnoteformat{ + \textreferencestyle{xx} + } + +Where "xx" is one of the six valid style designations given above. The default +is \textreferencestyle{1}. diff --git a/macros/text1/cms_help_files/9notere.helpendn b/macros/text1/cms_help_files/9notere.helpendn new file mode 100644 index 0000000000..1c9007ef54 --- /dev/null +++ b/macros/text1/cms_help_files/9notere.helpendn @@ -0,0 +1,16 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \notereferencegutter COMMAND | ++-----------------------------------------------------------------------------+ + +The \notereferencegutter command is always used in conjunction with the +\endnoteformat (\enf) command, and will determine the amount of space between +the endnote reference number and the text of the endnotes. The format for the +\notereferencegutter command is: + + \endnoteformat{ + \notereferencegutter{xx} + } + +Where "xx" is any number and valid TeX measurement (in, pc, pts, etc.). +\notereferencegutter{1em} is the default and will give one emspace between the +endnote reference numbers and the text of the notes. diff --git a/macros/text1/cms_help_files/9notere.helpfoot b/macros/text1/cms_help_files/9notere.helpfoot new file mode 100644 index 0000000000..beddf74b27 --- /dev/null +++ b/macros/text1/cms_help_files/9notere.helpfoot @@ -0,0 +1,17 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \notereferenceposition COMMAND | ++-----------------------------------------------------------------------------+ + +The \notereferenceposition command is always used in conjunction with the +\footnoteformat (\fnf) command, and will determine whether the footnote +reference number within the text of the footnotes is a superscript number or +not. The format for the \notereferenceposition command is: + + \footnoteformat{ + \notereferenceposition{xx} + } + +Where "xx" is either "up" or "down". \notereferenceposition{up} will give +superscript numbers for the footnote reference numbers in the notes. +\notereferenceposition{down} will give print the footnote reference numbers in +the notes on the baseline. diff --git a/macros/text1/cms_help_files/aen.helpmark b/macros/text1/cms_help_files/aen.helpmark new file mode 100644 index 0000000000..00b597ddac --- /dev/null +++ b/macros/text1/cms_help_files/aen.helpmark @@ -0,0 +1,72 @@ + HELPMARK D1 ++-----------------------------------------------------------------------------+ +| autoendnote | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\aenã% + +Parameters: ã|textã% + + ã|Description:ã% +The \autoendnote markup adds notes to the end of a document or the end +of a chapter. It has one parameter, the text of the endnote, which it +places in working storage to be printed when called by \printendnotes. An +endnote reference number is placed in the text where the markup occurred. +By default this reference number is surrounded by square brackets. The +endnote number will be automatically incremented by one for each use of +\autoendnote. + + ã|Example:ã% +There is a well-marked division of +labor.\autoendnote{Such as it is. Things could be +different in the geological world, but they are not.} +Details of organization have evolved by an +optimization . . . + ++-----------------------------------------------------------------------------+ +| | +| There is a well-marked division of labor.[1] Details of organization | +| have evolved by an optimization . . . | +| | ++-----------------------------------------------------------------------------+ + +The endnote printed following the next \printendnotes markup would look +like: + ++-----------------------------------------------------------------------------+ +| | +| 1. Such as it is. Things could be different in the geological world, but | +| they are not. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +You cannot use \autoendnote within \settabs, \vbox, \hbox, \asisbegin, +\drawbox, \paragraphbox, \label, \part, \chapter, \centerline, \halign, +\rightlinesbegin, or \centerlinesbegin. + The endnote number is reset to 1 at the beginning of each part. To +reset the endnote number outside of a \part, use the \setendnotenumber +markup. + Use the \endnoteformat markup to change the \autoendnote style. + There are occasions when you need to include a very long endnote. If +the endnote exceeds 2,048 characters in length, you will need to split the +note into two parts as follows. First, at the beginning of your document +you will need to include a special definition for a new markup. You may +give it any name you choose. For this example, we'll define a markup called +\continue. Enter these three lines at the top of the document: + +\catcode'*=11 +\let\continue=\en*w +\catcode'*=12 + +Next, break the endnote into paragraphs of not more than 2,048 characters +each. In the source below, the sentence beginning "First paragraph" is +the first paragraph with not more than 2,048 characters, and the second +paragraph beginning "Second paragraph" is the last paragraph of the endnote. + +line containt the note.\autoendnote{First paragraph +of a very long endnote . . . } +\continue{Second paragraph of the long endnote, +which will print in the \printendnotes after +the first paragraph} +Sentence following the word "note." diff --git a/macros/text1/cms_help_files/afn.helpmark b/macros/text1/cms_help_files/afn.helpmark new file mode 100644 index 0000000000..0e764aa0b7 --- /dev/null +++ b/macros/text1/cms_help_files/afn.helpmark @@ -0,0 +1,58 @@ ++-----------------------------------------------------------------------------+ +| autofootnote | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\afnã% + +Parameters: ã|textã% + + ã|Description:ã% +The \autofootnote markup adds footnotes to a page. The footnote can be +placed anywhere within text, without interrupting formatting. When the +document is formatted, the place of the footnote is marked with a number. +The text of the note is put at the bottom of the page. The footnote number +will be automatically incremented by one for each use of \autofootnote. + + ã|Example:ã% +communicate most important things --- hunger, alarm, +rank, and sexual desire --- among themselves by +means of nonsyntactical signals.\autofootnote{such +as crashing together} Individuals are aware of +members and nonmembers of their group. + ++-----------------------------------------------------------------------------+ +| | +| communicate most important things --- hunger, alarm, rank, and sexual | +| desire --- among themselves by means of nonsyntactical signals.(1) | +| Individuals are aware of members and nonmembers of their group. | +| | ++-----------------------------------------------------------------------------+ + +The footnote would print as follows at the bottom of the page: + ++-----------------------------------------------------------------------------+ +| 1. such as crashing together | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The text of the note must be enclosed with curly braces, otherwise following +text will be taken as footnote text, until all available space for footnotes +is exhausted. + You cannot use \autofootnote within \settabs, \vbox, \hbox, +\drawbox, \paragraphbox, \label, \part, \chapter, \centerline, \halign, +\rightlinesbegin, or \centerlinesbegin. + The footnote number is reset to 1 at the beginning of each part. To +reset the footnote number outside of a \part, use the \setfootnotenumber +markup. + To change the footnote style, use the \footnoteformat markup. + When using \monospace, the footnote in the text of the document is +surrounded by parenthesis, instead of superscripted. The previous \auto- +footnote sample output would print as: + ++-----------------------------------------------------------------------------+ +| | +| communicate most important things --- hunger, alarm, rank, and sexual | +| desire --- among themselves by means of nonsyntactical signals.(1) | +| Individuals are aware of members and nonmembers of their group. | +| | ++-----------------------------------------------------------------------------+ diff --git a/macros/text1/cms_help_files/aib.helpmark b/macros/text1/cms_help_files/aib.helpmark new file mode 100644 index 0000000000..dc70ed9c37 --- /dev/null +++ b/macros/text1/cms_help_files/aib.helpmark @@ -0,0 +1,84 @@ ++-----------------------------------------------------------------------------+ +| asisbegin | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\aibã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \asisbegin markup forces the following text into an unformatted block. +Each line is printed as it was entered. Line breaks and interword spacing +are honored. TEXT1 markup within an "as is" sequence is limited to +\verticalspace, \verticalspacekeep, \autofootnote, and font changes. + + ã|Example:ã% + +\monospace + +\centerline{Elements of the Spheres} + +\vs{12pt} +\asisbegin +Element Anthrosphere Lithosphere +Oxygen 62.10 60.60 +Hydrogen 01.10 00.10 +Sodium 00.001 00.400 +\asisend ++-----------------------------------------------------------------------------+ +| | +| Elements of the Spheres | +| | +| | +| | +| Element Anthrosphere Lithosphere | +| Oxygen 62.10 60.60 | +| Hydrogen 01.10 00.10 | +| Sodium 00.001 00.400 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The columns will only line up if you are using \monospace or \typewriter. + + ã|Example:ã% +If you use accents while in \asisbegin, you must surround the accented +letter with curly braces. + +lowest common denominator. +\vs{12pt} +\centerline{\bd Outline} +\aib +\vs{6pt} +The Morality of Rock in the Fossil Record + Elementary Concepts: Toasting the \c{C}rust + Principles of Population Geology +\aie ++-----------------------------------------------------------------------------+ + +| lowest common denominator. | +| | +| | +| Outline | +| | +| The Morality of Rock in the Fossil Record | +| Elementary Concepts: Toasting the Crust | +| Principles of Population Geology | +| | ++-----------------------------------------------------------------------------+ + + + ã|Notes:ã% +With the monospaced font you can use the "as is" sequence to have TEXT1 +obey precisely your text placement, including space between words. With +proportionally spaced fonts only the lead blanks would line up; blanks +"inside" the text would be different widths (depending on the width of +previous characters). + + Font changes within an \asisbegin may change the horizontal spacing. + Every \asisbegin must have a matching \asisend. + You cannot use \asisbegin within any of the following markup: \appen- +dix, \autofootnote, \bibliography, \centerline, \chapter, \drawbox, \figure, +\footnote, \item, \label, \marginnote, \paragraphbox, \part, \preface, +\rightline, \runningheadformat, \runningfootformat, \subheada, \subheadb, +\subheadc, \subheadd, or \tabletitle. diff --git a/macros/text1/cms_help_files/aie.helpmark b/macros/text1/cms_help_files/aie.helpmark new file mode 100644 index 0000000000..3fd9d98509 --- /dev/null +++ b/macros/text1/cms_help_files/aie.helpmark @@ -0,0 +1,37 @@ ++-----------------------------------------------------------------------------+ +| asisend | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\aieã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \asisend markup ends an "as is" series. + + ã|Example:ã% + +\aib + This fortress built by Nature for herself + Against infection and the hand of war, + (Richard II) +\aie ++-----------------------------------------------------------------------------+ +| | +| This fortress built by Nature for herself | +| Against infection and the hand of war, | +| (Richard II) | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Each \asisend must have a matching \asisbegin. Omitting the ending \asisend +will produce the following error message: + +(\end occurred inside a group at level 2) +Output written on TEXT1$$.dvi (1 page, 436 bytes). +Transcript written on TEXT1$$.texlog. + +See \asisformat to modify the defaults for \asisbegin and +\asisbegin. + diff --git a/macros/text1/cms_help_files/aif.helpmark b/macros/text1/cms_help_files/aif.helpmark new file mode 100644 index 0000000000..17657f596f --- /dev/null +++ b/macros/text1/cms_help_files/aif.helpmark @@ -0,0 +1,76 @@ ++-----------------------------------------------------------------------------+ +| asisformat | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\aifã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\skipbefore, \everyasis, \skipafterã% + + ã|Description:ã% +The \asisformat markup allows you to modify the "as is" block. The "as is" +markup skips 1 blank line (a baseline) before and after the series. There +is no indentation from the left. + +\skipbefore indicates how much space is to be skipped before printing a +block. This amount is in addition to any paragraph skips. The default skip +is 6pt. If you are using \monospace, the default skip is 1\bl. + +\everyasis{Nested Markup} determines how the 'as is' text is printed. This +submarkup is only valid within the asisformat markup. Spacing and font +changes are allowed, but not justification, right indentation, or other +paragraph information. + +\skipafter indicates how much space is to be skipped after printing a +block. This amount is in addition to any paragraph skips. The default skip +is 6pt. If you are using \monospace, the default skip is 1\bl. + + ã|Example:ã% +In this example, the "as is" text is to be indented 7 picas from the left +margin, the text is to be printed in ten point typewriter, and 4 points +skipped before and after. + +\asisformat{\skipbefore{4pt} + \everyasis{\leftindent{7pc}\tenpt\tt} + \skipafter{4pt}} + +Consider my favorite breakfast recipe: +\cl{\bd Muckles} +\asisbegin +3 eggs beaten +1 cp cream +1 cp flour +1/4t baking powder +1 T sugar +pinch of salt + +bacon (optional) +\aie +Heat butter or bacon in frying pan. +Pour all of +the batter into the pan. Cook approximately +10 minutes at 375 degrees. Cut into pieces +and serve hot with plenty of syrup. ++-----------------------------------------------------------------------------+ +| | +| Consider my favorite breakfast recipe: | +| Muckles | +| | +| 3 eggs beaten | +| 1 cp cream | +| 1 cp flour | +| 1/4t baking powder | +| 1 T sugar | +| pinch of salt | +| bacon (optional) | +| | +| Heat butter or bacon in frying pan. Pour all of the batter into the | +| pan. Cook approximately 10 minutes at 375 degrees. Cut into pieces and | +| serve hot with plenty of syrup. | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% + +The \asisformat markup must come after the \monospace markup, if both are +used. diff --git a/macros/text1/cms_help_files/anumbe.helpsubh b/macros/text1/cms_help_files/anumbe.helpsubh new file mode 100644 index 0000000000..7acf33349e --- /dev/null +++ b/macros/text1/cms_help_files/anumbe.helpsubh @@ -0,0 +1,13 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \numberingstyle COMMAND | ++-----------------------------------------------------------------------------+ + +The \numberingstyle command is always used in conjunction with the +\subheadcformat command and will set the style of numbering for the subheadc +titles. The format for the \numberingstyle command is: + + \subheadcformat{\numberingstyle{xxx} + } + +where "xxx" is A, 1, or I. The default \numberingstyle for subheadc is +\numberingstyle{1}. diff --git a/macros/text1/cms_help_files/anumber.helpsubh b/macros/text1/cms_help_files/anumber.helpsubh new file mode 100644 index 0000000000..d1e541a8c8 --- /dev/null +++ b/macros/text1/cms_help_files/anumber.helpsubh @@ -0,0 +1,13 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \numberingstyle COMMAND | ++-----------------------------------------------------------------------------+ + +The \numberingstyle command is always used in conjunction with the +\subheaddformat command and will set the style of numbering for the subheadd +titles. The format for the \numberingstyle command is: + + \subheaddformat{\numberingstyle{xxx} + } + +where "xxx" is A, 1, or I. The default \numberingstyle for subheadd is +\numberingstyle{1}. diff --git a/macros/text1/cms_help_files/apf.helpmark b/macros/text1/cms_help_files/apf.helpmark new file mode 100644 index 0000000000..cad86ce1cc --- /dev/null +++ b/macros/text1/cms_help_files/apf.helpmark @@ -0,0 +1,93 @@ ++-----------------------------------------------------------------------------+ +| appendixformat | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\apfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\numberingstyle, \titleformat, \incontentsã% + + ã|Description:ã% +The \appendixformat markup allows you to modify the default markup that +controls the appearance of the appendix title. The submarkup is described. + +\numberingstyle allows you to change the style from capital letters, the +default, to Arabic numerals (1) or roman numerals (I). + + ã|Example:ã% + +\appendixformat{\numberingstyle{I}} + +\appendix{Glossary} + +If this were the fourth appendix, it would print as: + ++-----------------------------------------------------------------------------+ +| | +| Appendix IV | +| Glossary | +| | ++-----------------------------------------------------------------------------+ + +\titleformat{Nested Markup} controls the appearance of the appendix title +banner. You may use markup such as \newpage, \verticalspace, and \center- +line within \titleformat as Nested Markup. Other markup you may use within +or outside of \appendixformat: + + * \appendixnumberprints the most recent appendix number. + + * \appendixtitleprints the most recent appendix title. + +\incontents determines whether the appendix title is to be included in the +contents. The default can be changed to no to inhibit the appendix title +from being included in the contents. See the second example below. + + ã|Example:ã% +In this example, the appendix starts a new page, the number and title are +centered in bold, and one line is skipped afterwards. + +\appendixformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + + \cl{\bd \appendixnumber. \appendixtitle} + \vs{1\bl} + } + \incontents{yes} + } + +\app{Glossary} + +This would print the fourth appendix as: + ++-----------------------------------------------------------------------------+ +| | +| 4. Glossary | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +In this example, the appendix starts a new page (instead of using +\dumpinsertseject, skips down the page 2 inches, centers the title in +italics, and skips one line. The title is not put in contents. + +\appendixformat{ + \titleformat{\newpage + \vsk{2in} + \cl{\it \appendixtitle} + \vs{1\bl}} + \incontents{no} } + +\app{Glossary} + +This would print the fourth appendix as: + ++-----------------------------------------------------------------------------+ +| | +| Glossary | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \appendixformat markup must come after the \monospace markup, if both +are used. diff --git a/macros/text1/cms_help_files/app.helpmark b/macros/text1/cms_help_files/app.helpmark new file mode 100644 index 0000000000..a190f27416 --- /dev/null +++ b/macros/text1/cms_help_files/app.helpmark @@ -0,0 +1,30 @@ ++-----------------------------------------------------------------------------+ +| appendix | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\appã% + +Parameters: ã|titleã% + + ã|Description:ã% +The \appendix markup starts a new page, centers the title in bold and +adds the title text to the table of contents. Appendices are lettered +consecutively. This markup can be used as often as necessary. + + ã|Example:ã% + +Instead, let humanity strive to make good places, +"eutopias," on earth, peacefully and in good spirit. +\par +\appendix{Calculations from "Nuclear Winter"} + ++-----------------------------------------------------------------------------+ +| | +| Appendix A | +| Calculations from "Nuclear Winter" | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Refer to the \appendixformat markup if you need to change the appendix +style. diff --git a/macros/text1/cms_help_files/appendix.helpbloc b/macros/text1/cms_help_files/appendix.helpbloc new file mode 100644 index 0000000000..a72ac7f09e --- /dev/null +++ b/macros/text1/cms_help_files/appendix.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|APPENDIXã%block is to be selected if you want to modify the +\appendixformat. diff --git a/macros/text1/cms_help_files/appendix.helpmenu b/macros/text1/cms_help_files/appendix.helpmenu new file mode 100644 index 0000000000..4e5ea240db --- /dev/null +++ b/macros/text1/cms_help_files/appendix.helpmenu @@ -0,0 +1,103 @@ ++-----------------------------------------------------------------------------+ +| appendixformat | ++-----------------------------------------------------------------------------+ + +\appendixformatÅ\numberingstyleÅAÌ + \titleformatÅ\dumpinsertseject + \centerlineÅ\twelvept\bold + Appendix \appendixnumberÌ + \centerlineÅ\twelvept\bold\appendixtitleÌ + \vsÅ 1\blÌ + \setchapternumberÅ 0Ì + \setsubheadanumberÅ 0Ì + \setsubheadbnumberÅ 0Ì + \setsubheadcnumberÅ 0Ì + \setsubheaddnumberÅ 0Ì + \setfigurenumberÅ 0Ì + \settablenumberÅ 0Ì + Ì + \incontentsÅ yesÌ +Ì + +Abbreviation: ã|\apfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\numberingstyle, \titleformat, \incontentsã% + + ã|Description:ã% +The \appendixformat markup allows you to modify the default markup that +controls the appearance of the appendix title. The submarkup is described. + +\numberingstyle allows you to change the style from capital letters, the +default, to Arabic numerals (1) or roman numerals (I). + + ã|Example:ã% + +\appendixformatÅ \numberingstyleÅ IÌÌ +\appendixÅ GlossaryÌ + +If this were the fourth appendix, it would print as: ++-----------------------------------------------------------------------------+ +| | +| Appendix IV | +| Glossary | +| | ++-----------------------------------------------------------------------------+ + +\titleformatÅNested MarkupÌ controls the appearance of the appendix title +banner. You may use markup such as \newpage, \verticalspace, and \center- +line within \titleformat as Nested Markup. Other markup you may use within +or outside of \appendixformat: + + * \appendixnumberprints the most recent appendix number. + + * \appendixtitleprints the most recent appendix title. + +\incontents determines whether the appendix title is to be included in the +contents. The default can be changed to no to inhibit the appendix title +from being included in the contents. See the second example below. + + ã|Example:ã% +In this example, the appendix starts a new page, the number and title are +centered in bold, and one line is skipped afterwards. + +\appendixformatÅ \numberingstyleÅ 1Ì + \titleformatÅ \dumpinsertseject + \clÅ \bd \appendixnumber. \appendixtitleÌ + \vsÅ 1\blÌ + Ì + \incontentsÅ yesÌ + Ì +\appÅ GlossaryÌ + +This would print the fourth appendix as: ++-----------------------------------------------------------------------------+ +| | +| 4. Glossary | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +In this example, the appendix starts a new page (instead of using +\dumpinsertseject, skips down the page 2 inches, centers the title in +italics, and skips one line. The title is not put in contents. + +\appendixformatÅ + \titleformatÅ \newpage + \vskÅ 2inÌ + \clÅ \it \appendixtitleÌ + \vsÅ 1\blÌÌ + \incontentsÅ noÌ Ì +\appÅ GlossaryÌ + +This would print the fourth appendix as: + ++-----------------------------------------------------------------------------+ +| | +| Glossary | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \appendixformat markup must come after the \monospace markup, if both +are used. diff --git a/macros/text1/cms_help_files/asism.helpbloc b/macros/text1/cms_help_files/asism.helpbloc new file mode 100644 index 0000000000..cf6437cf5f --- /dev/null +++ b/macros/text1/cms_help_files/asism.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|ASIS-Mã%block is to be selected if you want to modify the \asisformat +and if you are using \monospace. diff --git a/macros/text1/cms_help_files/asisp.helpbloc b/macros/text1/cms_help_files/asisp.helpbloc new file mode 100644 index 0000000000..6c3aeeea9b --- /dev/null +++ b/macros/text1/cms_help_files/asisp.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|ASIS-Pã%block is to be selected if you want to modify the \asisformat +and if you areã|notã%using \monospace. diff --git a/macros/text1/cms_help_files/bd.helpmark b/macros/text1/cms_help_files/bd.helpmark new file mode 100644 index 0000000000..2522f00c01 --- /dev/null +++ b/macros/text1/cms_help_files/bd.helpmark @@ -0,0 +1,48 @@ ++-----------------------------------------------------------------------------+ +| bold | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\bdã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \bold markup sets the typeface to wide strokes, giving a heavy +impression. + + ã|Example:ã% +This example changes "Parallels" bold. It is changed back with the \roman +markup. + +lowest common denominator. +\par +\bold\nin Parallels. \roman Consider for a +moment rocks and deer . . . + ++-----------------------------------------------------------------------------+ +| | +| lowest common denominator. | +| Parallels. Consider for a moment rocks and deer . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +The effects of the \bold markup can also be limited by curly braces. + +lowest common denominator. +\par +\nin{\bd Parallels}. Consider for a +moment rocks and deer . . . + ++-----------------------------------------------------------------------------+ +| | +| lowest common denominator. | +| Parallels. Consider for a moment rocks and deer . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Note in the last example the period follows the right curly brace (}.). +This is necessary to enable the extra spacing which normally follows +punctuation. + Bold is often used for display titles or special emphasis. diff --git a/macros/text1/cms_help_files/bi.helpmark b/macros/text1/cms_help_files/bi.helpmark new file mode 100644 index 0000000000..277feefcba --- /dev/null +++ b/macros/text1/cms_help_files/bi.helpmark @@ -0,0 +1,36 @@ ++-----------------------------------------------------------------------------+ +| bolditalic | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\biã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \bolditalic markup sets the typeface to wide strokes and an italic +slant, giving a heavy impression. + + ã|Example:ã% +This example changes "Parallels" to bold italic. It is changed back with +the \roman markup. + +lowest common denominator. +\par +\bolditalic\nin Parallels. \roman Consider for a +moment rocks and deer . . . + ++-----------------------------------------------------------------------------+ +| | +| lowest common denominator. | +| Parallels. Consider for a moment rocks and deer . . . | +| --------- | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +All font sets have \bolditalic defined as a valid type face. Not all font +sets, however, have bolditalic available. Those font sets that do not +have bolditalic will give the following warning message when you try to use +\bolditalic or \bi: + + Warning. No bold italic font in CM12. Will print italic font .) diff --git a/macros/text1/cms_help_files/bib.helpmark b/macros/text1/cms_help_files/bib.helpmark new file mode 100644 index 0000000000..c827c2717e --- /dev/null +++ b/macros/text1/cms_help_files/bib.helpmark @@ -0,0 +1,43 @@ ++-----------------------------------------------------------------------------+ +| bibliography | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\bibã% + +Parameters: ã|titleã% + + ã|Description:ã% +The \bibliography markup starts the bibliography on a new page, centers and +prints the title in bold face, and enters the title in contents. + + ã|Example:ã% + +\bibliography{References} +\frenchspacing +\bibentry +Grabens, Gruss M. 1970. {\it Mechanical Processes +in the Human Geomechanism}. Winston: Geomedical +Publications, International. + +\bibentry +Illite, Ivan. 1911. "Picking the Philosopher's +Stone." {\it Mining Truth}. 11:455--601. +\par + ++-----------------------------------------------------------------------------+ +| | +| References | +| | +| Grabens, Gruss M. 1970. Mechanical Processes in the Human Geomechanism. | +| Winston: Geomedical Publications, International. | +| | +| Illite, Ivan. 1911. "Picking the Philosopher's Stone." Mining Truth. | +| 11:455--601. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% + +If you need to print your bibliography with a format different than the +one illustrated above, refer to the discussion of the \bibliographyformat +markup. diff --git a/macros/text1/cms_help_files/bibentry.helpmark b/macros/text1/cms_help_files/bibentry.helpmark new file mode 100644 index 0000000000..a7106a2db9 --- /dev/null +++ b/macros/text1/cms_help_files/bibentry.helpmark @@ -0,0 +1,57 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \bibentry Markup | ++-----------------------------------------------------------------------------+ + +Abbreviation:ã|\bieã% + +Parameters:ã|noneã% + +Description: The \bibentry markup is used to separate each entry in a +bibliography with a vertical skip; an entry is in the form of a hanging +paragraph. + +Example: + + \bibliography{Bibliography} + ã|\bibentryã% + Illite, Ivan. 1911. ''Pickingthe Philosopher's + Stone.'' {\it Mining Truth}.11:455--601. + ã|\bibentryã% + \sameauthor + 1978. ''Pet rocks astherapy tools.'' + {\it Geopsychology Today}. 10:71--78. + ã|\bibentryã% + Salt, Jean-Paul. 1958. {\itGravel and Nothingness: + An Existential Theory}. Dayton:Gabbro Press. + \par + + ++-----------------------------------------------------------------------------+ +| | +| Bibliography | +| | +| Illite, Ivan. 1911. "Picking the Philosopher's Stone." Mining | +| Truth. 11:455--601. | +| 1978. "Pet rocks as therapy tools." Geopsychology Today. | +| 10:71--78. | +| | +| Salt, Jean-Paul. 1958. Gravel and Nothingness: An Existential | +| Theory. Dayton: Gabbro Press. | +| | ++-----------------------------------------------------------------------------+ + + +ã|Notes:ã%The series is ended with a \par markup. Without the \par an + error results. + + You may use the \sameauthor markup to indicate that the author of one + quotation is the same as the previous author. + + To disable the double spacing which normally follows punctuation, use + the \frenchspacing markup. The example illustrated for the + \bibliography markup was done using \frenchspacing. + + If you need to print yourbibliography with a format different than + the one illustrated above, refer to the discussion of the + \bibliographyformat markup. + diff --git a/macros/text1/cms_help_files/bibliog.helpbloc b/macros/text1/cms_help_files/bibliog.helpbloc new file mode 100644 index 0000000000..d8d0303319 --- /dev/null +++ b/macros/text1/cms_help_files/bibliog.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|BIBLIOGã%block is to be selected if you want to modify the +\bibliographyformat. diff --git a/macros/text1/cms_help_files/bibliogr.helpmark b/macros/text1/cms_help_files/bibliogr.helpmark new file mode 100644 index 0000000000..40eff62e82 --- /dev/null +++ b/macros/text1/cms_help_files/bibliogr.helpmark @@ -0,0 +1,54 @@ ++-----------------------------------------------------------------------------+ +| \bibliography{title} | ++-----------------------------------------------------------------------------+ + +Abbreviation:ã|\bibã% + +Parameters:ã|titleã% + +Description: The \bibliography markup starts the bibliography on a new +page, centers and prints the title in bold face, and enters the title +in the table of contents. + + Example: + ã|\bibliography{ã%Referencesã|}ã% + \frenchspacing + \bibentry + Grabens, Gruss M. 1970.{\it Mechanical Processes + in the Human Geomechanism}.Winston: Geomedical + Publications, International. + \bibentry + Illite, Ivan. 1911. ''Pickingthe Philosopher's + Stone.'' {\it Mining Truth}.11:455--601. + \par + ++-----------------------------------------------------------------------------+ +| References | +| | +| Grabens, Gruss M. 1970. Mechanical Processes in the Human | +| Geomechanism. Winston: Geomedical Publications, International. | +| | +| Illite, Ivan. 1911. "Picking the Philosopher's Stone." Mining | ++-----------------------------------------------------------------------------+ + +ã|Notes:ã%If you need to print your bibliography with a format different than + the one illustrated above, refer to the discussion of the + \bibliographyformat markup. + ++-----------------------------------------------------------------------------+ +| | +| \bibliographyformat{\incontents{yes} | +| \titleformat{\dumpinsertseject | +| \cl{\twelvept\bd \bibtitle} | +| \vs{\bl}} | +| \everybibentry{\vs \bl}\goodbreak\hp\nin} | +| \sameauthorrulesize{width3em height.6ex | +| depth-.5ex}} | ++-----------------------------------------------------------------------------| + +Abbreviation:ã|\bifã% + +Parameters: submarkup + +Submarkup: \incontents, \titleformat, \everybibentry, \sameauthorrulesize + diff --git a/macros/text1/cms_help_files/bie.helpmark b/macros/text1/cms_help_files/bie.helpmark new file mode 100644 index 0000000000..cda2435221 --- /dev/null +++ b/macros/text1/cms_help_files/bie.helpmark @@ -0,0 +1,51 @@ ++-----------------------------------------------------------------------------+ +| bibentry | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\bieã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \bibentry markup is used to separate each entry in a bibliography with a +vertical skip; an entry is in the form of a hanging paragraph. + + ã|Example:ã% + +\bibliography{Bibliography} +\bibentry +Illite, Ivan. 1911. "Picking the Philosopher's +Stone." {\it Mining Truth}. 11:455--601. +\bibentry +\sameauthor + +1978. "Pet rocks as therapy tools." +{\it Geopsychology Today}. 10:71--78. +\bibentry +Salt, Jean-Paul. 1958. {\it Gravel and Nothingness: +An Existential Theory}. Dayton: Gabbro Press. +\par ++-----------------------------------------------------------------------------+ +| | +| Bibliography | +| | +| Illite, Ivan. 1911. "Picking the Philosopher's Stone." Mining Truth. | +| 11:455--601. | +| | +| ....1978. "Pet rocks as therapy tools." Geopsychology Today. 10:71--78. | +| | +| Salt, Jean-Paul. 1958. Gravel and Nothingness: An Existential Theory. | +| Dayton: Gabbro Press. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The series is ended with a \par markup. Without the \par an error results. + You may use the \sameauthor markup to indicate that the author of one +citation is the same as the previous author. + To disable the double spacing which normally follows punctuation, use +the \frenchspacing markup. The example illustrated for the \bibliography +markup was done using \frenchspacing. + If you need to print your bibliography with a format different than the +one illustrated above, refer to the discussion of the \bibliographyformat +markup. diff --git a/macros/text1/cms_help_files/bif.helpmark b/macros/text1/cms_help_files/bif.helpmark new file mode 100644 index 0000000000..2cbb983d68 --- /dev/null +++ b/macros/text1/cms_help_files/bif.helpmark @@ -0,0 +1,248 @@ ++-----------------------------------------------------------------------------+ +| bibliographyformat | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\bifã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\incontents, \titleformat, \everybibentry, +\sameauthorrulesizeã% + + ã|Description:ã% +The \bibliographyformat markup controls the style of the entire +bibliography. The following submarkup is only valid within \bif. + +\incontents by default adds the title text to the contents. The default is +yes; to keep the title from appearing enter "no": + +\bibliographyformat{\incontents{no}} + +\titleformat{Nested Markup} controls the format of the bibliography title. +The default skips to a new page, centers the title in bold, and skips one +line. You may use markup such as \newpage, \verticalspace, and \centerline +within \titleformat as Nested Markup. Other markup you may use within or +outside of \bibliographyformat: + + * \bibtitleprints the title entered with the \bibliography markup. + +\everybibentry{Nested Markup} controls the format of each bibliographic +entry. The default permits breaking between entries and creates a hanging +paragraph for the entry. You may use markup such as \verticalspace, +\hangingparagraph, \item, \goodbreak, \noindent, \label, \leftindent within +\everybibentry as Nested Markup. Other markup you may use within or outside +of \bibliographyformat: + + * \bibnumberprints the current \bibentry number. + +\sameauthorrulesize sets the height, width, and depth of a horizontal line +used to indicate a repeat of an author's name. + + ã|Example:ã% +The following markup produces entries similar to the default but numbered. +A period and a tie (tilde, for a connecting space) join the number to the +text. + +\bibliographyformat{\incontents{yes} + \titleformat{\np + \cl{\bd \bibtitle} + + \vs{\bl} + } + \everybibentry{\goodbreak\hp\nin\bibnumber.~} + \sameauthorrulesize{width3em height.6ex depth-.5ex} +} + +Then when you use \bibentry, you would get: ++-----------------------------------------------------------------------------+ +| | +| 1. Grabens, Gruss M. 1970. Mechanical Processes in the Human | +| Geomechanism. Winston: Geomedical Publications, International. | +| 2. Illite, Ivan. 1911. "Picking the Philosopher's Stone." Mining Truth. | +| 11:455--601. | +| 3. Moraine, Esker. 1978. "Pet rocks as therapy tools." Geopsychology | +| Today. 10:71--78. | +| 4. Salt, Jean-Paul. 1958. Gravel and Nothingness: An Existential | +| Theory. Dayton: Gabbro Press. | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +This example also numbers entries, but it uses labels instead of hanging +paragraphs. The \labelformat is changed under \titleformat to accommodate +numbers. This layout is useful for bibliographies that use identifiers in +place of numbers. + +\bibliographyformat{\incontents{yes} + \titleformat{\np\vsk{1in} + \cl{\bd \bibtitle} + \vs{\bl} + \labelformat{\labelwidth{22pt}}} + \everybibentry{\goodbreak\label{\bibnumber}} + \sameauthorrulesize{width3em height.6ex depth-.5ex}} + +Then when you use \bibliography, you would get: ++-----------------------------------------------------------------------------+ +| | +| References | +| | +| 1. Grabens, Gruss M. 1970. Mechanical Processes in the Human | +| Geomechanism. Winston: Geomedical Publications, International. | +| | +| 2. Salt, Jean-Paul. 1958. Gravel and Nothingness: An Existential | +| Theory. Dayton: Gabbro Press. | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +You can specify in the \everybibentry markup that the bibentry number is to +be surrounded by parenthesis or square brackets. + \everybibentry{\goodbreak\label{(\bibnumber)}} ++-----------------------------------------------------------------------------+ +| | +| References | +| | +| (1) Grabens, Gruss M. 1970. Mechanical Processes in the Human | +| Geomechanism. Winston: Geomedical Publications, International. | +| | +| (2) Salt, Jean-Paul. 1958. Gravel and Nothingness: An Existential | +| Theory. Dayton: Gabbro Press. | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +You could also use \label to indicate citations that carry an alphanumeric +label by omitting the parameter to \label in the \everybibentry markup. + +\bibliographyformat{\titleformat{\np\cl{\bd \bibtitle} + \vs{\bl} + \labelformat{\labelwidth{50pt}}} + \everybibentry{\goodbreak\label} + \sameauthorrulesize{width3em height.6ex depth-.5ex}} + +Then use the \bibentry markup as though it had a parameter: + +\bibliography{Citations}\frenchspacing +\bibentry {Grabe70} +Grabens, Gruss M. 1970. {\it Mechanical Processes +in the Human Geomechanism}. Winston: Geomedical +Publications, International. +\bibentry{Illit11} +Illite, Ivan. 1911. "Picking the Philosopher's + +Stone." {\it Mining Truth}. 11:455--601. +\bibentry{Morai78} +Moraine, Esker. 1978. "Pet rocks as therapy tools." +{\it Geopsychology Today}. 10:71--78. + +and the citations will look like: ++-----------------------------------------------------------------------------+ +| | +| Citations | +| | +| Grabe70 Grabens, Gruss M. 1970. Mechanical Processes in the Human | +| Geomechanism. Winston: Geomedical Publications, International. | +| | +| Illit11 Illite, Ivan. 1911. "Picking the Philosopher's Stone." Mining | +| Truth. 11:455--601. | +| | +| Morai78 Moraine, Esker. 1978. "Pet rocks as therapy tools." | +| Geopsychology Today. 10:71--78. | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +Another popular style groups all of an author's citations together. This +can be accomplished in a similar manner as previously defined. The +difference being that the \rt markup is used. + +\bibliographyformat{\titleformat{\np\vsk{1in} + \cl{\bd \bibtitle} + \vs{\bl} + \labelformat{\labelwidth{50pt}}} + \everybibentry{\goodbreak\label} + \sameauthorrulesize{width3em height.6ex depth-.5ex}} +\bibliography{Citations}\frenchspacing +\vs{.5\bl} +\nin OSBORNE, J.S. +\bie{\rt{1971.}} +{\it Introduction to Aesthetic Anthropology}. Boston, Ma: +Addison-Wesley Pub. Co. +\bie{\rt{1978.}} +A survey of tribal masks used by Brazilian tribes. + +Pages 160--169 in {\it Cultural Anthropology}. +M. Zateh and F. Grange, eds. New York: Harper and Row. +\vs{.5\bl} +\nin OTTEN, C.M. +\bibentry{\rt{1971.}} +{\it Anthropology and Art: Readings in Cross Cultural +Aesthetics}. Garden City, N.Y.: +The Natural History Press. + +and the citations will look like: ++-----------------------------------------------------------------------------+ +| | +| Citations | +| | +| OSBORNE, J.S. | +| | +| 1971. Introduction to Aesthetic Anthropology. Boston, Ma: Addison-Wesley | +| Pub. Co. | +| | +| 1978. A survey of tribal masks used by Brazilian tribes. Pages 160--169 | +| in Cultural Anthropology. M. Zateh and F. Grange, eds. New York: | +| Harper and Row. | +| OTTEN, C.M. | +| | +| 1971. Anthropology and Art: Readings in Cross Cultural Aesthetics. | +| Garden City, N.Y.: The Natural History Press. | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +This final style makes use of an \everybibentry similar to the default. In +this example, the paragraph and hanging indents are set to different values +(by default they are equal). The other difference is that \noindent is +omitted. + +\bibliographyformat{\titleformat{\np\cl{\bd \bibtitle} + \vs{\bl} + \psk{\bl}\pin{10pt}\hin{20pt}} + \everybibentry{\par\goodbreak\hp\indent} + \sameauthorrulesize{width3em height.6ex depth-.5ex}} +\bibliography{Bibliography}\frenchspacing +\vs{\bl} \nin Asher67 +\bie +Asherson, G. L., and S. H. Stone. 1967.\linebreak +Dessensitization {\it in vitro}. {\it Immunology}. +13:469. {\it Cultural Anthropology}. M. Zateh and +F. Grange, eds. New York: Harper and Row. +\vs{\bl} +\nin Cinad68 + +\bie +Cinader, B., editor. 1968.\lbr +Regulation of the Antibody Response. Charles C. Thomas, +Publisher, Springfield, Ill. + +and the citations will look like: ++-----------------------------------------------------------------------------+ +| | +| Bibliography | +| | +| Asher67 | +| Asherson, G. L., and S. H. Stone. 1967. | +| Dessensitization in vitro. Immunology. 13:469. Cultural Anthropology. | +| M. Zateh and F. Grange, eds. New York: Harper and Row. | +| | +| Cinad68 | +| Cinader, B., editor. 1968. | +| Regulation of the Antibody Response. Charles C. Thomas, Publisher, | +| Springfield, Ill. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \bibliographyformat markup must come after the \monospace markup, if +both are used. diff --git a/macros/text1/cms_help_files/bothpage.helpmenu b/macros/text1/cms_help_files/bothpage.helpmenu new file mode 100644 index 0000000000..d635af3511 --- /dev/null +++ b/macros/text1/cms_help_files/bothpage.helpmenu @@ -0,0 +1,12 @@ + Menu for BOTHPAGES Commands -- TEXT1 + +A file may be selected for viewing by placing the cursor under any character +of the file wanted and pressing the PF 1 key. A MENU file is indicated when +a name is preceded by an asterisk (*). If you are using a terminal that +doesn't have a CURSOR or PF KEYS then you MUST TYPE in the COMPLETE HELP +COMMAND with operands and options. For a description of the operands and +options type HELP HELP. + + +runningheadformat (running top title options) +runningfootformat (running bottom title options) diff --git a/macros/text1/cms_help_files/bottomma.helppage b/macros/text1/cms_help_files/bottomma.helppage new file mode 100644 index 0000000000..d9ee022c0d --- /dev/null +++ b/macros/text1/cms_help_files/bottomma.helppage @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \bottommargin (\bma) COMMAND | ++-----------------------------------------------------------------------------+ + +The \bottommargin (\bma) command will set the distance from the bottom of the +page to the last line of the text. This command has the format: + + \bottommargin{uu} + +where "uu" is any unit of TeX measurement (pt, pc, in, etc.) or number of +lines. The default bottom margin is one inch, or \bottommargin{1IN}. This +command may only appear at the beginning of the TeX input file before any +actual text is entered. + +In order to change the bottom margin from the default of one inch to one-half +inch, you would enter: + + \bma{.5in} + +Which would give you one-half inch between the last line of text on the page +and the bottom of the page. diff --git a/macros/text1/cms_help_files/bottomti.helpboth b/macros/text1/cms_help_files/bottomti.helpboth new file mode 100644 index 0000000000..ae217363f6 --- /dev/null +++ b/macros/text1/cms_help_files/bottomti.helpboth @@ -0,0 +1,28 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \bottomtitle COMMAND | ++-----------------------------------------------------------------------------+ + +The \bottomtitle command sets what will appear at the bottom of each page after +the title page. The \bottomtitle command is always used in conjunction with the +\runningtitleformat and \bothpages (\bp), \evenpages (\ep), or \oddpages (\op) +commands. This command has the format: + + \bothpages{ + \bottomtitle{\line{\lft{llll}\ctr{cccc}\rt{rrrr}} + }} + +where "llll" is the information to be printed to the far left of the +bottomtitle line; "cccc" is the information to be printed in the center; and +"rrrr" is the information to be printed to the far right of the bottomtitle +line. For example: + + \runningtitleformat{\bothpages{ + \bottomtitle\line{\lft{Joe Smith}\ctr{June 3, 1984}\rt{\pagenumber}} + }} + +will space down to leave the amount specified on the \bottommargin command and +put "Joe Smith" at the bottom far left, with "June 3, 1984" centered and the +current page number on the bottom far right of the first line of the +bottomtitle. The running bottomtitle of page 5 would look like this: + +Joe Smith June 3, 1984 5 diff --git a/macros/text1/cms_help_files/bottomti.helpeven b/macros/text1/cms_help_files/bottomti.helpeven new file mode 100644 index 0000000000..a8c4432f10 --- /dev/null +++ b/macros/text1/cms_help_files/bottomti.helpeven @@ -0,0 +1,28 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \bottomtitle COMMAND | ++-----------------------------------------------------------------------------+ + +The \bottomtitle command sets what will appear at the bottom of each page after +the title page. The \bottomtitle command is always used in conjunction with the +\runningtitleformat and \bothpages (\bp), \evenpages (\ep), or \oddpages (\op) +commands. This command has the format: + + \evenpages{ + \bottomtitle{\line{\lft{llll}\ctr{cccc}\rt{rrrr}} + }} + +where "llll" is the information to be printed to the far left of the +bottomtitle line; "cccc" is the information to be printed in the center; and +"rrrr" is the information to be printed to the far right of the bottomtitle +line on all even pages. For example: + + \runningtitleformat{\evenpages{ + \bottomtitle\line{\lft{Joe Smith}\ctr{June 3, 1984}\rt{\pagenumber}} + }} + +will space down to leave the amount specified on the \bottommargin command and +put "Joe Smith" at the bottom far left, with "June 3, 1984" centered and the +current page number on the bottom far right of the first line of the +bottomtitle. The running bottomtitle of page 4 would look like this: + +Joe Smith June 3, 1984 4 diff --git a/macros/text1/cms_help_files/bottomti.helpoddp b/macros/text1/cms_help_files/bottomti.helpoddp new file mode 100644 index 0000000000..949dd41432 --- /dev/null +++ b/macros/text1/cms_help_files/bottomti.helpoddp @@ -0,0 +1,28 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \bottomtitle COMMAND | ++-----------------------------------------------------------------------------+ + +The \bottomtitle command sets what will appear at the bottom of each page after +the title page. The \bottomtitle command is always used in conjunction with the +\runningtitleformat and \bothpages (\bp), \evenpages (\ep), or \oddpages (\op) +commands. This command has the format: + + \oddpages{ + \bottomtitle{\line{\lft{llll}\ctr{cccc}\rt{rrrr}} + }} + +where "llll" is the information to be printed to the far left of the +bottomtitle line; "cccc" is the information to be printed in the center; and +"rrrr" is the information to be printed to the far right of the bottomtitle +line on all odd pages. For example: + + \runningtitleformat{\oddpages{ + \bottomtitle\line{\lft{Joe Smith}\ctr{June 3, 1984}\rt{\pagenumber}} + }} + +will space down to leave the amount specified on the \bottommargin command and +put "Joe Smith" at the bottom far left, with "June 3, 1984" centered and the +current page number on the bottom far right of the first line of the +bottomtitle. The running bottomtitle of page 5 would look like this: + +Joe Smith June 3, 1984 5 diff --git a/macros/text1/cms_help_files/bqb.helpmark b/macros/text1/cms_help_files/bqb.helpmark new file mode 100644 index 0000000000..afd01a8162 --- /dev/null +++ b/macros/text1/cms_help_files/bqb.helpmark @@ -0,0 +1,61 @@ ++-----------------------------------------------------------------------------+ +| blockquotebegin | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\bqbã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \blockquotebegin markup ends a paragraph and forces the following text +into a quote format, indicated by a change in the size of type to 10pt, 6 +points of spacing before and after the quote, and margin indentations of 24 +points. + + ã|Example:ã% + +Salt (1958) names the process: +\blockquotebegin +This loss of fluids and cooling is known as aging. +Most metamorphosis occurs in ocean trenches, but it + +can also occur in forms in trenchcoats. +\paragraph +The lithosphere---dermosphere in humans---wrinkles +over time. +The process is one-way, as rehydration will not +unwrinkle the surface. +\blockquoteend +As far as general surface alteration, only the +time scale differs between the human . . . ++-----------------------------------------------------------------------------+ +| | +| Salt (1958) names the process: | +| | +| This loss of fluids and cooling is known as aging. Most | +| metamorphosis occurs in ocean trenches, but it can also occur in | +| forms in trenchcoats. | +| The lithosphere---dermosphere in humans---wrinkles over | +| time. The process is one-way, as rehydration will not unwrinkle | +| the surface. | +| | +| As far as general surface alteration, only the time scale differs | +| between the human . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Every \blockquotebegin must have a matching \blockquoteend. If the quote is +not ended with \blockquoteend, all following text is formatted as a block +quote, and a warning message appears at the end of formatting which says: + +(\end occurred inside a group at level 1) +Output written on TEXT1$$.dvi (1 page, 436 bytes). +Transcript written on TEXT1$$.texlog. + + The defaults for \blockquotebegin differ when you are using \monospace. +With \monospace, there is no font change, one line is skipped before and +after the block quote, and the left and right indentations are both 1 2 +inch. + Refer to the \blockquoteformat for instructions on how to change the +block quote style. diff --git a/macros/text1/cms_help_files/bqe.helpmark b/macros/text1/cms_help_files/bqe.helpmark new file mode 100644 index 0000000000..c10fddc23b --- /dev/null +++ b/macros/text1/cms_help_files/bqe.helpmark @@ -0,0 +1,47 @@ ++-----------------------------------------------------------------------------+ +| blockquoteend | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\bqeã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \blockquoteend markup ends the quote and returns text to the normal +margins and sizes. Text following is formatted as a new paragraph. + + ã|Example:ã% + +Salt (1958) names the process: +\blockquotebegin +\rightragged +This loss of fluids and cooling is known as aging. +Most metamorphosis occurs in ocean trenches, but it +can also occur in forms in trenchcoats. + +\paragraph +The lithosphere --- dermosphere in humans --- +wrinkles over time. +The process is one-way, as rehydration will not +unwrinkle the surface. +\blockquoteend +As far as general surface alteration, only the +time scale differs between the human . . . ++-----------------------------------------------------------------------------+ +| | +| Salt (1958) names the process: | +| | +| This loss of fluids and cooling is known as aging. Most | +| metamorphosis occurs in ocean trenches, but it can also occur in | +| forms in trenchcoats. | +| The lithosphere --- dermosphere in humans --- wrinkles over | +| time. The process is one-way, as rehydration will not unwrinkle | +| the surface. | +| | +| As far as general surface alteration, only the time scale differs | +| between the human . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/bqf.helpmark b/macros/text1/cms_help_files/bqf.helpmark new file mode 100644 index 0000000000..fdae8155cc --- /dev/null +++ b/macros/text1/cms_help_files/bqf.helpmark @@ -0,0 +1,76 @@ ++-----------------------------------------------------------------------------+ +| blockquoteformat | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\bqfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\skipbefore, \everyblockquote, \skipafterã% + + ã|Description:ã% +The \blockquoteformat markup controls the formatting of block quotes. The +following submarkup are effective only within block quotes. + +\skipbefore indicates how much space is to be skipped before printing a +block. This amount is in addition to any paragraph skips. + +\everyblockquote{Nested Markup} determines how the text of the quote is +formatted. You can specify justification or raggedness, single or double +spacing, left or right indentation, paragraph spacing and indentation, and +any font change needed within block quotes. You may use any markup such as +\tenpt, \interlineskip, \leftindent or \rightindent within \everyblockquote. + +\skipafter indicates how much space is to be skipped after printing a +block. This amount is in addition to any paragraph skips. + + ã|Example:ã% +The indentation has been changed in this sample. The text for the block +quote is to be printed right ragged in 9 point Computer Modern. Paragraphs +within the block quote, and only within, have a 1 pica paragraph indent and +zero paragraph skip. The skips before and after the quotation have been set +to zero. + +\blockquoteformat{\skipbefore{0pt} + \everyblockquote{\pin{1pc}\psk{0pt}\ninepoint + \leftindent{1pc}\rightindent{1pc}\rr} + \skipafter{0pt}} + +The example illustrated for \blockquotebegin would then begin: ++-----------------------------------------------------------------------------+ +| | +| Salt (1958) names the process: | +| | +| This loss of fluids and cooling is known as aging. Most metamorphosis | +| occurs in ocean trenches, but it can also occur in forms in | +| trenchcoats. | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +This sample is printed with a small interlineskip, normal paragraph values +and zero indentation. The text is in 9 point italics with an interlineskip +of 9.5 points. + +\blockquoteformat{\skipbefore{0pt} + \everyblockquote{\ssp\ninept\it\isk{9.5pt} + \leftindent{0pt}\rightindent{0pt}} + \skipafter{0pt}} + ++-----------------------------------------------------------------------------+ +| | +| Salt (1958) names the process: | +| | +| This loss of fluids and cooling is known as aging. Most metamorphosis | +| occurs in ocean trenches, but it can also occur in forms in trenchcoats. | +| | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \blockquoteformat markup must come after the \monospace markup, if both +are used. + The defaults for \blockquoteformat when using \monospace are different. +The space before and after is one blank line (1\bl), the left and right +indents are 36 points ( 1 2 inch), and the text is in the roman font since +you cannot print \tenpt with \monospace. diff --git a/macros/text1/cms_help_files/bquotem.helpbloc b/macros/text1/cms_help_files/bquotem.helpbloc new file mode 100644 index 0000000000..605bacc116 --- /dev/null +++ b/macros/text1/cms_help_files/bquotem.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|BQUOTE-Mã%block is to be selected if you want to modify the +\blockquoteformat and if you are using \monospace. diff --git a/macros/text1/cms_help_files/bquotep.helpbloc b/macros/text1/cms_help_files/bquotep.helpbloc new file mode 100644 index 0000000000..879bbe76b8 --- /dev/null +++ b/macros/text1/cms_help_files/bquotep.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|BQUOTE-Pã%block is to be selected if you want to modify the +\blockquoteformat and if you areã|notã%using \monospace. diff --git a/macros/text1/cms_help_files/break.helpmark b/macros/text1/cms_help_files/break.helpmark new file mode 100644 index 0000000000..96925e779d --- /dev/null +++ b/macros/text1/cms_help_files/break.helpmark @@ -0,0 +1,36 @@ ++-----------------------------------------------------------------------------+ +| break | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +If you want to force TEXT1 to break between lines at a certain point in the +middle of a paragraph use the markup \break. + + ã|Example:ã% + +To everything there is a season, and a time +to every purpose under the +heaven: A time to be born, and a time to +pluck up {\it that which is}\break +planted; A time to kill, and a time to heal; +a time to break down, and +a time to build up; A time to weep, +and a time to laugh; + ++-----------------------------------------------------------------------------+ +| | +| To everything there is a season, and a time to every purpose under | +| the heaven: A time to be born, and a time to pluck up that which is | +| planted; A time to kill, and a time to heal; a time to break down, and a | +| time to build up; A time to weep, and a time to laugh; | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +To avoid having the white space between the words as is illustrated in the +third line in the above example, use the \linebreak markup. + For more on the \break markup, refer to The TEXbook. diff --git a/macros/text1/cms_help_files/btitle.helpsubh b/macros/text1/cms_help_files/btitle.helpsubh new file mode 100644 index 0000000000..b4b0c741fd --- /dev/null +++ b/macros/text1/cms_help_files/btitle.helpsubh @@ -0,0 +1,20 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \titleformat COMMAND | ++-----------------------------------------------------------------------------+ + +The \titleformat command is always used in conjunction with the \subheadcformat +command and will set options for the subheadc titles. The format for the +\titleformat command is: + + \subheadcformat{\titleformat{ + \vsk{24pt} + {\subheadctitle} + \vs{12pt}} + } + +This is the default for \titleformat. Each \subheadc command will space down 24 +points, print the \subheadctitle and space down 12 points to resume with the +text. + +For more information on the \subheadctitle command, see the help screen under +the markup menu for that particular command. diff --git a/macros/text1/cms_help_files/btitlef.helpsubh b/macros/text1/cms_help_files/btitlef.helpsubh new file mode 100644 index 0000000000..f51b183132 --- /dev/null +++ b/macros/text1/cms_help_files/btitlef.helpsubh @@ -0,0 +1,18 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \titleformat COMMAND | ++-----------------------------------------------------------------------------+ + +The \titleformat command is always used in conjunction with the \subheaddformat +command and will set options for the subheadd titles. The format for the +\titleformat command is: + + \subheaddformat{\titleformat{ + {\it \subheaddtitle:} + } + +This is the default for \titleformat. Each \subheadd command will start a new +paragraph, print the \subheaddtitle in italics followed by a colon and then +resume with the text. + +For more information on the \subheaddtitle command, see the help screen under +the markup menu for that particular command. diff --git a/macros/text1/cms_help_files/bul.helpmark b/macros/text1/cms_help_files/bul.helpmark new file mode 100644 index 0000000000..03d57913d3 --- /dev/null +++ b/macros/text1/cms_help_files/bul.helpmark @@ -0,0 +1,44 @@ ++-----------------------------------------------------------------------------+ +| bullet | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\bulã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \bullet markup produces a raised centered dot as an identifier for an +item in a list. + + ã|Example:ã% + +the following necessary trace elements: +\listbegin +\bul Copper +\bul Manganese +\bul Selenium +\bul Zinc +\listend + +\nin The mineral content of the body . . . + ++-----------------------------------------------------------------------------+ +| | +| the following necessary trace elements: | +| * Copper | +| * Manganese | +| * Selenium | +| * Zinc | +| The mineral content of the body . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +A list of bullets must be placed within the \listbegin and \listend markup. +The bullets are indented 5 characters, like the first level of an ordered +list. Bullets may also be used in outline lists where they are indented +5 characters from the previous level by default. Refer to the \listformat +markup to change the amount of indentation. + + When in math mode, the \bullet markup is used in the same fashion as +described in The TEXbook. diff --git a/macros/text1/cms_help_files/cc.helpmark b/macros/text1/cms_help_files/cc.helpmark new file mode 100644 index 0000000000..29255b1074 --- /dev/null +++ b/macros/text1/cms_help_files/cc.helpmark @@ -0,0 +1,33 @@ ++-----------------------------------------------------------------------------+ +| caps | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ccã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \caps markup sets the typeface to "caps/small caps". + + ã|Example:ã% +This example changes "Parallels" to caps/small caps. It is changed back +with the \roman markup. + +lowest common denominator. +\par +\nin\caps Parallels. \roman Consider for a +moment rocks and deer . . . ++-----------------------------------------------------------------------------+ +| | +| lowest common denominator. | +| Parallels. Consider for a moment rocks and deer . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Caps/small caps are often used for display titles or special emphasis. It +should not be used for the body of text. Not all font sets have small +caps available. Those font sets that do not have small caps will give the +following warning message when you try to use \caps or \cc: + + Warning. No small caps font in CMSAN8. Will print roman font .) diff --git a/macros/text1/cms_help_files/cents.helpmark b/macros/text1/cms_help_files/cents.helpmark new file mode 100644 index 0000000000..ac5118d383 --- /dev/null +++ b/macros/text1/cms_help_files/cents.helpmark @@ -0,0 +1,23 @@ ++-----------------------------------------------------------------------------+ +| cents | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +This markup is used to print a cent sign. + + ã|Example:ã% +This machine takes 35\cents\ instead of 25\cents. + ++-----------------------------------------------------------------------------+ +| | +| This machine takes 35c instead of 25c. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \cents markup must be followed either by a backslash-space, or by a +tilde (~). diff --git a/macros/text1/cms_help_files/chap.helpmark b/macros/text1/cms_help_files/chap.helpmark new file mode 100644 index 0000000000..51aba6b4c6 --- /dev/null +++ b/macros/text1/cms_help_files/chap.helpmark @@ -0,0 +1,48 @@ ++-----------------------------------------------------------------------------+ +| chapter | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\chapã% + +Parameters: ã|titleã% + + ã|Description:ã% +The \chapter markup starts a new page, centers the title in bold face, +and enters it in the table of contents. The text of a title is the only +parameter. + + ã|Example:ã% + +Anything less is more realistic. +\par +\chapter{Nationalism} +Nationalism is directly related to war. +Lord Acton observed that nationalism aims solely . . . ++-----------------------------------------------------------------------------+ +| | +| Chapter 1 | +| Nationalism | +| Nationalism is directly related to war. Lord Acton observed that | +| nationalism aims solely . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you want to force TEXT1 to split a long chapter title at a place of your +choosing, use \linebreak. + +\chapter{Subject Index\linebreak +and\lbr +Concordance} ++-----------------------------------------------------------------------------+ +| | +| Chapter 1 | +| Subject Index | +| and | +| Concordance | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Refer to \chapterformat on the next page to change the chapter style. + Each time you use \chapter it resets the subhead numbers to zero. diff --git a/macros/text1/cms_help_files/chapter.helpbloc b/macros/text1/cms_help_files/chapter.helpbloc new file mode 100644 index 0000000000..e801d05132 --- /dev/null +++ b/macros/text1/cms_help_files/chapter.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|CHAPTERã%block is to be selected if you want to modify the +\chapterformat. diff --git a/macros/text1/cms_help_files/chf.helpmark b/macros/text1/cms_help_files/chf.helpmark new file mode 100644 index 0000000000..c20cd7f815 --- /dev/null +++ b/macros/text1/cms_help_files/chf.helpmark @@ -0,0 +1,98 @@ ++-----------------------------------------------------------------------------+ +| chapterformat | ++-----------------------------------------------------------------------------+ + +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \cl{\twelvept\bd Chapter \chapternumber} + \cl{\twelvept\bd \chaptertitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0}} + \incontents{yes}} + +Abbreviation: ã|\chfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\numberingstyle, \titleformat, \incontentsã% + + ã|Description:ã% +The \chapterformat markup allows you to modify the defaults that controls +the appearance of the chapter title. The submarkup is described. + +\numberingstyle allows you to change the style from Arabic numerals, the +default, to letters {A} or roman numerals {I}. + +\chapterformat{\numberingstyle{A}} + +\titleformat{Nested Markup} controls the appearance of the chapter title +banner. You may use markup such as \newpage, \verticalspace, and \center- +line within \titleformat as Nested Markup. Other markup you may use within +or outside of \chapterformat: + + * \chapternumberprints the most recent chapter number. + + * \chaptertitleprints the most recent chapter title. + +\incontents places the chapter title in contents (if one is printed). +Printing can be suppressed by changing to "no." + +\chapterformat{\incontents{no}} + + ã|Example:ã% +When you enter, + +\chapter{Introduction} + +you get the default chapter style which looks like: + ++-----------------------------------------------------------------------------+ +| | +| Chapter 1 | +| Introduction | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +In the following example this default style has been modified such that each +chapter starts on a new page, the title is centered in bold (no chapter +number printed), and one line is skipped after the chapter title. + +\chapterformat{\numberingstyle{1} + + \titleformat{\newpage + \cl{\bd \chaptertitle} + \vs{1\bl}} + \incontents{yes}} + +Then each time you specify \chapter you will get: + ++-----------------------------------------------------------------------------+ +| | +| Introduction | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +In this sample, each chapter title is prefaced by the chapter number. As +before, the title is centered in bold, and one line is skipped before text. + +\chapterformat{\numberingstyle{1} + \titleformat{\newpage + \cl{\bd\chapternumber.~\chaptertitle} + + \vs{1\bl}} + \incontents{yes}} + ++-----------------------------------------------------------------------------+ +| | +| 1. Introduction | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \chapterformat markup must come after the \monospace markup, if both are +used. diff --git a/macros/text1/cms_help_files/chrono.changes b/macros/text1/cms_help_files/chrono.changes new file mode 100644 index 0000000000..55451d7c10 --- /dev/null +++ b/macros/text1/cms_help_files/chrono.changes @@ -0,0 +1,3 @@ +6/22/90: + +1) removed filemana.helpmark diff --git a/macros/text1/cms_help_files/cincon.helpsubh b/macros/text1/cms_help_files/cincon.helpsubh new file mode 100644 index 0000000000..1f487912fe --- /dev/null +++ b/macros/text1/cms_help_files/cincon.helpsubh @@ -0,0 +1,15 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \incontents COMMAND | ++-----------------------------------------------------------------------------+ + +The \incontents command is always used in conjunction with the \subheadcformat +command and will determine whether subheadc titles are included in the Table of +Contents. The format for the \incontents command is: + + \subheadcformat{ + \incontents{yes} + } + +By default, the subheadc titles will not be included in the Table of Contents. +If you want the subheadc titles included in the Table of Contents, enter +\incontents{yes} within the \subheadcformat command. diff --git a/macros/text1/cms_help_files/cincont.helpsubh b/macros/text1/cms_help_files/cincont.helpsubh new file mode 100644 index 0000000000..b6061267cc --- /dev/null +++ b/macros/text1/cms_help_files/cincont.helpsubh @@ -0,0 +1,15 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \incontents COMMAND | ++-----------------------------------------------------------------------------+ + +The \incontents command is always used in conjunction with the \subheaddformat +command and will determine whether subheadd titles are included in the Table of +Contents. The format for the \incontents command is: + + \subheaddformat{ + \incontents{no} + } + +By default, the subheadd titles will not be included in the Table of Contents. +If you want the subheadd titles included in the Table of Contents, enter +\incontents{yes} within the \subheaddformat command. diff --git a/macros/text1/cms_help_files/cl.helpmark b/macros/text1/cms_help_files/cl.helpmark new file mode 100644 index 0000000000..67836f2dfe --- /dev/null +++ b/macros/text1/cms_help_files/cl.helpmark @@ -0,0 +1,38 @@ ++-----------------------------------------------------------------------------+ +| centerline | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\clã% + +Parameters: ã|textã% + + ã|Description:ã% +The \centerline markup ends the previous paragraph and places equal blank +spaces on both sides of a word or phrase on a single line. This markup is +useful for titles and emphasis. The only parameter for this markup is the +text to be centered. + + ã|Example:ã% + +\centerline{SOCIOGEOLOGY\lbr +Minerals and Human Behavior} +\vs{12pt} +\centerline{by Achilles Chert} +\vs{24pt} + +"Does the Absurd dictate death?" asks Albert . . . + ++-----------------------------------------------------------------------------+ +| | +| SOCIOGEOLOGY | +| Minerals and Human Behavior | +| | +| by Achilles Chert | +| | +| | +| "Does the Absurd dictate death?" asks Albert . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +You may use \linebreak within \centerline. diff --git a/macros/text1/cms_help_files/clb.helpmark b/macros/text1/cms_help_files/clb.helpmark new file mode 100644 index 0000000000..e4216ca42c --- /dev/null +++ b/macros/text1/cms_help_files/clb.helpmark @@ -0,0 +1,68 @@ ++-----------------------------------------------------------------------------+ +| centerlinesbegin | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\clbã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \centerlinesbegin markup ends the previous paragraph and starts a series +of centered lines. This markup is useful for titles and emphasis. There +are no parameters. + + ã|Example:ã% + +\centerlinesbegin +SOCIOGEOLOGY +Minerals and Human Behavior +\vs{18pt} +Achilles Chert + +\centerlinesend +\vs{24pt} +"Does the Absurd dictate death?" asks Albert . . . + ++-----------------------------------------------------------------------------+ +| | +| SOCIOGEOLOGY | +| Minerals and Human Behavior | +| | +| | +| Achilles Chert | +| | +| | +| "Does the Absurd dictate death?" asks Albert . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Each \centerlinesbegin must be followed by a matching \centerlinesend. + + You can also use \centerlinesbegin before a \drawbox or \paragraphbox, +but not within either markup. + You cannot use \centerlinesbegin within any of the following markup: +\appendix, \autofootnote, \bibliography, \centerline, \chapter, \drawbox, +\figure, \footnote, \item, \label, \marginnote, \paragraphbox, \part, +\preface, \rightline, \runningheadformat, \runningfootformat, \subheada, +\subheadb, \subheadc, \subheadd, or \tabletitle. + + ã|Example:ã% + +\centerlinesbegin +\paragraphbox{John H. Whalley +{\it publishing vice president} +\vs{\bl} +John B. Dykeman +{\it associate publisher}} +\centerlinesend + ++-----------------------------------------------------------------------------+ +| | +| John H. Whalley | +| publishing vice president | +| | +| John B. Dykeman | +| associate publisher | +| | ++-----------------------------------------------------------------------------+ diff --git a/macros/text1/cms_help_files/cle.helpmark b/macros/text1/cms_help_files/cle.helpmark new file mode 100644 index 0000000000..bd7f8b0633 --- /dev/null +++ b/macros/text1/cms_help_files/cle.helpmark @@ -0,0 +1,38 @@ ++-----------------------------------------------------------------------------+ +| centerlinesend | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\cleã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \centerlinesend markup ends a series of centered lines and returns to a +paragraph mode. There are no parameters. + + ã|Example:ã% + +The prerequisites to operate this hardware are: +\vs{2\bl} +\clb +6085 Professional Computer System +ViewPoint Software +VP Document Editor Software +Signed Software License Agreement + +\cle + ++-----------------------------------------------------------------------------+ +| | +| The prerequisites to operate this hardware are: | +| | +| | +| 6085 Professional Computer System | +| ViewPoint Software | +| VP Document Editor Software | +| Signed Software License Agreement | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/contents.helpbloc b/macros/text1/cms_help_files/contents.helpbloc new file mode 100644 index 0000000000..0c9c11c617 --- /dev/null +++ b/macros/text1/cms_help_files/contents.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|CONTENTSã%block is to be selected if you want to modify the +\tableofcontentsformat. diff --git a/macros/text1/cms_help_files/coul.helpmark b/macros/text1/cms_help_files/coul.helpmark new file mode 100644 index 0000000000..0dc940202f --- /dev/null +++ b/macros/text1/cms_help_files/coul.helpmark @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| countinglines | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\coulã% + +Parameters: ã|statusã% + + ã|Description:ã% +This markup is used to start counting lines for line numbering in the margin +of a document. Status is true or false. + + ã|Example:ã% +To start line numbering you enter + +\countinglines{true} + + ã|Notes:ã% + +Line numbering is only available on the phototypesetter. This markup is +ignored for all other printers. diff --git a/macros/text1/cms_help_files/db.helpmark b/macros/text1/cms_help_files/db.helpmark new file mode 100644 index 0000000000..3cd7e700ae --- /dev/null +++ b/macros/text1/cms_help_files/db.helpmark @@ -0,0 +1,45 @@ ++-----------------------------------------------------------------------------+ +| drawbox | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\dbã% + +Parameters: ã|textã% + + ã|Description:ã% +A box is a grouping of rules into a square or rectangle. You can draw a box +with the \drawbox markup. The parameter for this markup is the material to +be put inside the box. Any grouping less than a paragraph can be boxed, +including letters, sentences, figures, or tables. + + ã|Example:ã% +To draw a box around an "a", you would enter: + +Draw a box around \drawbox{a} ++-----------------------------------------------------------------------------+ +| | +| ..... | +| Draw a box around . . | +| ..... | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you want to draw an empty 1 inch square (plus the box "rule size" and +"mat size") you could enter, + +\db{\vrule width 0pt height 1in +\vrule width 1in height 0pt depth 0pt} + .............. + . . + . . + . . + . . + . . + . . +which prints: .............. + + ã|Notes:ã% +Do not use this markup with \monospace or around \settabs or \halign. + Paragraphs cannot be boxed with \drawbox unless each one is put in a +vertical box (see \vbox). Use the \paragraphbox markup instead. diff --git a/macros/text1/cms_help_files/dbm.helpmark b/macros/text1/cms_help_files/dbm.helpmark new file mode 100644 index 0000000000..46df8d2cf9 --- /dev/null +++ b/macros/text1/cms_help_files/dbm.helpmark @@ -0,0 +1,26 @@ ++-----------------------------------------------------------------------------+ +| drawboxmat | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\dbmã% + +Parameters: ã|unit of measureã% + + ã|Description:ã% +The \drawboxmat markup determines the amount of space between the rule and +the text. This is the area that has been shaded in the illustration at the +bottom of the page. This space is used with the \drawbox and \paragraphbox +markup. The default is 3 points. + + ã|Example:ã% +\drawboxmat{20pt} +Draw a box around \drawbox{a} + ++-----------------------------------------------------------------------------+ +| | +| ......... | +| . . | +| . a . | +| . . | +| Draw a box around ......... | ++-----------------------------------------------------------------------------+ diff --git a/macros/text1/cms_help_files/dbrs.helpmark b/macros/text1/cms_help_files/dbrs.helpmark new file mode 100644 index 0000000000..88a1713cba --- /dev/null +++ b/macros/text1/cms_help_files/dbrs.helpmark @@ -0,0 +1,27 @@ ++-----------------------------------------------------------------------------+ +| drawboxrulesize | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\dbrsã% + +Parameters: ã|unit of measureã% + + ã|Description:ã% +The \drawboxrulesize markup determines the thickness of the rule that makes +up the box itself. The default is .4 point. This rule thickness is used by +both \drawbox and \paragraphbox. + + ã|Example:ã% +\drawboxrulesize{2pt} +Draw a box around \drawbox{a} + ++-----------------------------------------------------------------------------+ +| | +| ..... | +| . a . | +| Draw a box around ..... | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/die.helpmark b/macros/text1/cms_help_files/die.helpmark new file mode 100644 index 0000000000..9278cca2bd --- /dev/null +++ b/macros/text1/cms_help_files/die.helpmark @@ -0,0 +1,32 @@ ++-----------------------------------------------------------------------------+ +| dumpinsertseject | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\dieã% + +Parameters: ã|noneã% + + ã|Description:ã% +This markup is used to dump (print) all accumulated figures and tables +(inserts) entered with \figure, \topinsert or \midinsert. After printing +the figures and other inserts, a new page is started. If no inserts had +been accumulated, a new page is still started. This markup appears in many +of the format markup, such as \chapterformat. + + ã|Example:ã% + +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \cl{\twelvept\bd Chapter \chapternumber} + \cl{\twelvept\bd \chaptertitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + } + \incontents{yes} + } + + ã|Notes:ã% +The \topinsert and \midinsert markup are discussed in The TEXbook. diff --git a/macros/text1/cms_help_files/dsp.helpmark b/macros/text1/cms_help_files/dsp.helpmark new file mode 100644 index 0000000000..f9f2cbc586 --- /dev/null +++ b/macros/text1/cms_help_files/dsp.helpmark @@ -0,0 +1,41 @@ ++-----------------------------------------------------------------------------+ +| doublespace | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\dspã% + +Parameters: ã|noneã% + + ã|Description:ã% +The doublespace markup leaves alternate line spaces blank. This markup +causes a break in text. There are no parameters. Double spacing will be in +effect until changed with a \singlespace markup. + + ã|Example:ã% +\singlespace +All things considered, Camus has derived +a solid conglomerate of grail theories +for us. +\doublespace + +Let me close with another penetrating insight from +Camus: The rock should be left at the bottom, +because of the inevitability of entropic direction. + ++-----------------------------------------------------------------------------+ +| | +| | +| All things considered, Camus has derived a solid conglomerate of grail | +| theories for us. | +| | +| Let me close with another penetrating insight from Camus: The rock | +| | +| should be left at the bottom, because of the inevitability of entropic | +| | +| direction. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. + diff --git a/macros/text1/cms_help_files/el.helpmark b/macros/text1/cms_help_files/el.helpmark new file mode 100644 index 0000000000..349690ca9b --- /dev/null +++ b/macros/text1/cms_help_files/el.helpmark @@ -0,0 +1,44 @@ ++-----------------------------------------------------------------------------+ +| ellipsis | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\elã% + +Parameters: ã|nã% + + ã|Description:ã% +Ellipsis points indicate any omission of a word, line, or paragraph from +a quoted passage. Three points are used when the omission occurs with a +sentence or fragment. Four points are used when the omission is a whole +sentence or more, including whole paragraphs. + In using the \ellipsis markup, n may be "3" or "4". The \ellipsis3 +markup inserts three points, surrounded by appropriate spacing. ( . . . +) The \ellipsis4 markup inserts four points, immediately after a sentence, +with space after the last point. ( . . . . ) + + ã|Example:ã% +The following quote has been shortened with ellipses. + +names the process: +\blockquotebegin +This loss of fluids is known as aging\ellipsis4 +The lithosphere\ellipsis3 wrinkles over time. +The process is one-way, as rehydration will not +unwrinkle the surface. +\blockquoteend +As far as general surface alteration, only the . . . ++-----------------------------------------------------------------------------+ +| | +| names the process: | +| | +| This loss of fluids is known as aging . . . . The | +| lithosphere . . . wrinkles over time. The process is | +| one-way, as rehydration will not unwrinkle the surface. | +| | +| As far as general surface alteration, only the . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +No additional space is required around the ellipsis markup, since space is +included. diff --git a/macros/text1/cms_help_files/enf.helpmark b/macros/text1/cms_help_files/enf.helpmark new file mode 100644 index 0000000000..4faefbc558 --- /dev/null +++ b/macros/text1/cms_help_files/enf.helpmark @@ -0,0 +1,129 @@ ++-----------------------------------------------------------------------------+ +| endnoteformat | ++-----------------------------------------------------------------------------+ + +\endnoteformat{\skipbefore{4pt} + \textreferenceposition{down} + \textreferencefont{\rm} + \textreferencestyle{[1]} + \notereferenceposition{down} + \notereferencefont{\tenpt} + \notereferencestyle{1.} + \notereferencegutter{1em} + \everyendnote{\tenpt\pin{0pt}\lin{1.2em}}} + +Abbreviation: ã|\enfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\skipbefore, \textreferenceposition, +\textreferencefont, \textreferencestyle, \notereferenceposition, \noterefer- +encefont, \notereferencestyle, \notereferencegutter, \everyendnoteã% + + ã|Description:ã% +The \endnoteformat markup allows you to modify the shape and presentation of +endnotes generated with \autoendnote. + +\skipbefore indicates how much space is to be skipped before printing a +block. This amount is in addition to any paragraph skips. + +\textreferenceposition determines if the endnote reference number is +superscripted or not. By default, the reference is not superscripted. If +you want the endnote reference number to be superscripted, then change the +parameter to "up". + +\textreferencefont lets you change the face or size. By default the +endnote reference number is always printed in the standard font. + +\textreferencestyle determines the numbering style at the end of a chapter +or the end of the document (wherever the \printendnotes appears). There are +five possible values: + 1. "1" for numbered endnotes + 2. "(1)" for numbered endnotes with parentheses + 3. "[1]" for numbered endnotes with square brackets + 4. "a" for lettered endnotes + 5. "(a)" for lettered endnotes with parentheses +The default is Arabic numerals in square brackets. + +\notereferenceposition determines if the endnote reference number is +superscripted or not when it is printed at the end of a chapter or the end +of a document. By default, the reference is not superscripted. If you want +the endnote reference number to be superscripted, then change the parameter +to "up". + +\notereferencefont lets you change the face or size. By default the +endnote reference number printed at the end of a chapter (or end of a +document, wherever \printendnotes occurs) is always printed in the standard +font. + +\notereferencestyle determines the numbering style. There are five +possible values: + 1. "1." for numbered endnotes + 2. "(1)" for numbered endnotes with parentheses + 3. "[1]" for numbered endnotes with square brackets + 4. "a" for lettered endnotes + 5. "(a)" for lettered endnotes with parentheses +The default is numbered endnotes. + +\notereferencegutter specifies the amount of space between the endnote +number and the endnote text. The gutter is illustrated here as the shaded +portion between "1." and "The first step": ++-----------------------------------------------------------------------------+ +| | +| ... | +| 1....The first step . . . | +| | ++-----------------------------------------------------------------------------+ + +\everyendnote lets you modify the shape of the notes. You can change the +type face, the paragraph parameters, and the right and left indentation. + + ã|Example:ã% +This example shows an endnote style with a superscripted endnote number; the +body of the endnote in a 9 point Computer Modern set; the endnote at the end +of the document (or chapter) indented half an inch from the left and half an +inch from the right of the rest of the body of the text; the endnote body +right ragged; and the text of the document right justified and in 10 point + +Computer Modern. The endnote "text" reference at the end of the chapter +will retain the default style ("1." not superscripted). + Note that 9 point was specified within both the "notereferencefont" and +"everyendnote" markups. The "notereferencefont" determines the font that +the endnote reference number is to be printed in. The "everyendnote" markup +determines the font that the endnote text is to print in at the end of the +document or end of chapter, wherever the next \printendnotes markup appears. + +\endnoteformat{\skipbefore{12pt} + \textreferenceposition{up} + \textreferencefont{\ninepoint\rm} + \textreferencestyle{1} + \notereferenceposition{down} + \notereferencefont{\ninepoint\rm} + \notereferencestyle{1.} + \everyendnote{\rightragged + \pin{0pt}\psk{12pt}\ninepoint + \leftindent{.5in}\rightindent{.5in}} + } + + +| . . automatically sets an interline skip 2 points greater | +than the font size.\autoendnote{This extra space is +referred to as leading.} The default font size is . . . + +The endnote in the document would look like: ++-----------------------------------------------------------------------------+ +| | +| . . . automatically sets an interline skip 2 points greater than the | +| font size. The default font size is . . . | +| | ++-----------------------------------------------------------------------------+ +The endnote printed after the \printendnotes markup would look like: ++-----------------------------------------------------------------------------+ +| | +| 1. This extra space is referred to as leading. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \endnoteformat markup must come after the \monospace markup, if both are +used. diff --git a/macros/text1/cms_help_files/enotem.helpbloc b/macros/text1/cms_help_files/enotem.helpbloc new file mode 100644 index 0000000000..8afb34d2bf --- /dev/null +++ b/macros/text1/cms_help_files/enotem.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|ENOTE-Mã%block is to be selected if you want to modify the +\endnoteformat and if you are using \monospace. diff --git a/macros/text1/cms_help_files/enotep.helpbloc b/macros/text1/cms_help_files/enotep.helpbloc new file mode 100644 index 0000000000..2c37af8a98 --- /dev/null +++ b/macros/text1/cms_help_files/enotep.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|ENOTE-Pã%block is to be selected if you want to modify the +\endnoteformat and if you areã|noteã%using \monospace. diff --git a/macros/text1/cms_help_files/ep.helpmark b/macros/text1/cms_help_files/ep.helpmark new file mode 100644 index 0000000000..4dae99a110 --- /dev/null +++ b/macros/text1/cms_help_files/ep.helpmark @@ -0,0 +1,38 @@ ++-----------------------------------------------------------------------------+ +| emptypage | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\epã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \emptypage markup advances the page count, leaving an "empty" page, +which can be placed with custom figures or diagrams. There is no break in +text. There are no parameters for this markup. + + ã|Example:ã% +To float an empty page, enter the sequence: +same proportions (Figure 2, on the following page). +\par +\emptypage +This suggests parallels in evolution. + +Generally speaking, there are three +possible solutions . . . + + ã|Example:ã% +To have an empty page print immediately between the sentence ending "page)." +and the one beginning "This suggests . . . " you would enter follow the +\emptypage with a \newpage: +same proportions (Figure 2, on the following page). +\par +\emptypage +\newpage +This suggests parallels in evolution. +Generally speaking, there are three +possible solutions . . . + + ã|Notes:ã% +Unlike \newpage, if you enter two \emptypage markup in a row, you will get +two empty pages when the page is ejected. diff --git a/macros/text1/cms_help_files/epm.helpmark b/macros/text1/cms_help_files/epm.helpmark new file mode 100644 index 0000000000..3e9165e6a9 --- /dev/null +++ b/macros/text1/cms_help_files/epm.helpmark @@ -0,0 +1,24 @@ ++-----------------------------------------------------------------------------+ +| evenpagemargin | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\epmã% + +Parameters: ã|measurementã% + + ã|Description:ã% +This markup is used to indicate where a document's line numbering is to be +printed on even pages. The default is 50.8 points from the left edge on +even pages. + + ã|Example:ã% +To indicate that you want line numbering to start at 1 inch from the left +edge you would enter at the beginning of your document: + +\evenpagemargin{1in} + + ã|Notes:ã% +Line numbering is only available on the phototypesetter. This markup is +ignored for all other printers. + Valid values for \evenpagemargin are 0 to 2 to the 32d power points, +practical values are 5-860 points. diff --git a/macros/text1/cms_help_files/ex.helpmark b/macros/text1/cms_help_files/ex.helpmark new file mode 100644 index 0000000000..e56dd2f3e7 --- /dev/null +++ b/macros/text1/cms_help_files/ex.helpmark @@ -0,0 +1,26 @@ ++-----------------------------------------------------------------------------+ +| extension | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\exã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \extension markup sets the face to the Computer Modern Math Extension +face. Refer to The TEXbook, Appendix F, for a complete list of the +characters available in the Extension face. + + ã|Example:ã% +This example uses \extension to print an "O dot": + +Put a {\extension\char'113} next to . . . ++-----------------------------------------------------------------------------+ +| | +| Put a K next to . . . | +| | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +For more on the use of the \char markup, refer to The TEXbook. diff --git a/macros/text1/cms_help_files/fif.helpmark b/macros/text1/cms_help_files/fif.helpmark new file mode 100644 index 0000000000..049452e975 --- /dev/null +++ b/macros/text1/cms_help_files/fif.helpmark @@ -0,0 +1,86 @@ ++-----------------------------------------------------------------------------+ +| figureformat | ++-----------------------------------------------------------------------------+ + +\figureformat{\skipbefore{1\bl} + \position{\float} + \titleformat{\bqb\hp\tenpt + \bd Figure \figurenumber. + \rm\figuretitle \bqe} + \incontents{yes} + \skipafter{1\bl} + } + +Abbreviation: ã|\fifã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\skipbefore, \position, \titleformat, +\incontents, \skipafterã% + + ã|Description:ã% +The \figureformat markup allows you to modify the defaults that control the +appearance of the figure. The submarkup is described. + +ã|\skipbeforeã% indicates how much space is to be skipped before printing a +figure block. This amount is in addition to any paragraph skips. + +ã|\positionã% By default, text is floated around a figure and the figure +printed at the top of the next page if not enough room remains on the +current page to print the figure. If you do not want text to float around +the figure, and you want the figure to print exactly where you place it, use +\position{\nofloat}. + +\figureformat{\position{\nofloat}} + +ã|\titleformat{Nested Markup}ã% controls the appearance of the figure title. +You may use markup such as \blockquotebegin, \hangingparagraph, \vertical- +space, and \centerline within \titleformat as Nested Markup. Other markup +you may use within or outside of \figureformat: + + * \figurenumberprints the most recent figure number. + + * \figuretitleprints the most recent figure title. + +ã|\skipafterã% indicates how much space is to be skipped after printing the +figure title. This amount is in addition to any paragraph skips. + +ã|\incontentsã% places the figure title in contents (if one is printed). +Printing can be suppressed by changing to "no." + + ã|Example:ã% +The amount of space skipped before and after has been reduced to 6 points +(half a line with 12 point interline space), the figure number is placed in +\label and the figure title is printed in italics. + +\figureformat{\skipbefore{6pt} + \titleformat{\label{\bd Figure \figurenumber.} + \it\figuretitle} + \skipafter{6pt} + \incontents{yes} + } + +\figure{\halign{\ctr{#}&&\hs{1em}\ctr{#}\cr +July 23&July 27&July 31&August 5&August 9\cr +32&67&44&47&18\cr}{Size data of a Yellow + +Transparent fruit during the period of July 23 to August 9, +1977. (fruit No. IV@_b@)} + ++-----------------------------------------------------------------------------+ +| | +| | +| July 23 July 27 July 31 August 5 August 9 | +| 32 67 44 47 18 | +| | +| Figure 1. Size data of a Yellow Transparent fruit during the period of | +| July 23 to August 9, 1977. (fruit No. IV[b]) | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \figureformat markup must come after the \monospace markup, if both are +used. If you are using \monospace, the only difference in defaults is + +that the figure title is printed in the roman \monospace font instead of +\tenpt. diff --git a/macros/text1/cms_help_files/fig.helpmark b/macros/text1/cms_help_files/fig.helpmark new file mode 100644 index 0000000000..be6fe909ea --- /dev/null +++ b/macros/text1/cms_help_files/fig.helpmark @@ -0,0 +1,110 @@ ++-----------------------------------------------------------------------------+ +| figure | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\figã% + +Parameters: ã|first parameter = markup + second parameter = the figure titleã% + + ã|Description:ã% +A figure is a representation or illustration. The \figure markup can leave +space for a figure, number it, print the figure title, and ensure that the +title gets placed in the contents. The figure markup has two parameters: +markup and the title of the figure. + The "markup" can be a \verticalspace markup, \fullpage, \halfpage, or +text such as a table, etc. The "title" is the title of the figure which +will print at the bottom of the figure and in the table of contents. + If you want a figure on an entire page, enter \fullpage as the first +parameter. If you want a figure to fill half of the page, enter \halfpage +as the first parameter. + + ã|Example:ã% +If you want to use \asisbegin, it must go outside of the figure and the +title cannot be more than one line long. + +\aib +\figure{\tt + clay + Human + pressure + parent rock + temperature +}{Origin of the Stone Species} +\aie + ++-----------------------------------------------------------------------------+ +| | +| | +| | +| | +| | +| clay | +| Human | +| pressure | +| parent rock | +| temperature | +| | +| | +| | +| | +| Figure 1. Origin of the Stone Species | +| | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +This figure leaves half an inch of space above the title, "Size data of a +| . . ". | + +the same proportions. +\db{\figure{\vs{.5in}}{Size data of a Yellow +Transparent fruit during the period of July 23 to August 9, +1977. (fruit No. IV@_b@)} +This suggests parallels . . . } + ++-----------------------------------------------------------------------------+ +| | +| | +| | +| | +| | +| | +| | +| Figure 2. Size data of a Yellow Transparent fruit during the | +| period of July 23 to August 9, 1977. (fruit No. IV[b]) | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +This figure leaves an entire empty page for the figure. The title would +print at the bottom of the figure. + +the same proportions. +\figure{\fullpage}{Origins of the Human Species} +This suggests parallels . . . + + ã|Example:ã% +This figure leaves a half page empth for the figure. The title would print +at the bottom of the figure. + +the same proportions. +\figure{\halfpage}{Origins of the Human Species} +This suggests parallels . . . + + ã|Notes:ã% + +By default, text "floated" is text that is moved in front of a figure. The +figure is moved to the top of the current page if there is room left. If +not enough room remains, then the figure is printed at the top of the next +page. To disable this floating process, refer to the \figureformat markup. + For both \halfpage and \fullpage, the figure title is included in +determining how much space to leave. + By default, each new \part will start numbering figures over again at 1. +Use \setfigurenumber to reset the figurenumber outside of parts. + When figures are using the default "float" method of placing figures, +you cannot use \twocolumns or \threecolumns in parameter 1. If you +are using the \nofloat option specified in \figureformat you may use the +multiple column specifications. + Use the \figureformat markup to modify the figure style. + You can not use \settabs within \figure. diff --git a/macros/text1/cms_help_files/figurem.helpbloc b/macros/text1/cms_help_files/figurem.helpbloc new file mode 100644 index 0000000000..c9c8c14c17 --- /dev/null +++ b/macros/text1/cms_help_files/figurem.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|FIGURE-Mã%block is to be selected if you want to modify the +\figureformat and if you are using \monospace. diff --git a/macros/text1/cms_help_files/figurep.helpbloc b/macros/text1/cms_help_files/figurep.helpbloc new file mode 100644 index 0000000000..b8785b18b1 --- /dev/null +++ b/macros/text1/cms_help_files/figurep.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|FIGURE-Pã%block is to be selected if you want to modify the +\figureformat and if you areã|notã%using \monospace. diff --git a/macros/text1/cms_help_files/fixf.helpmark b/macros/text1/cms_help_files/fixf.helpmark new file mode 100644 index 0000000000..15063d06b6 --- /dev/null +++ b/macros/text1/cms_help_files/fixf.helpmark @@ -0,0 +1,34 @@ ++-----------------------------------------------------------------------------+ +| fixedformat | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\fixfã% + +Parameters: ã|noneã% + + ã|Description:ã% +TEXT1 offers two multiple column formats that have different text handling +capabilities. The normal (default) style is called "flexibleformat". This +is described with \twocolumns and \threecolumns markup. There is an +optional style you can use called "fixedformat." The flexible format can be +changed to the fixed format by inserting the markup \fixedformat before the +first two or three column markup appears. + The Fixed format makes each column act as if it were a single page. +Inserts and footnotes will appear in each column just as they would in the +single column format. Only the running head and running foot will print +across the full width of the page. + + ã|Notes:ã% + +Since each column is handled like a normal single column page, the columns +may not be balanced. A short right hand column will remain short when +formatting is completed. + The Fixed format cannot be used to format combinations of single, +double, and triple columns on the same page. The two column and three +column markup can be used in conjunction with one another, but not on the +same page. If both format markup appear on the same page, TEXT1 will fill +the bottom of the current column on the current page with white space and +change to the new format on the following page. + Once the fixed format has been specified, it will remain in force for +the remainder of the document. The Fixed format cannot be changed to the +Flexible format again within the same document. diff --git a/macros/text1/cms_help_files/fnf.helpmark b/macros/text1/cms_help_files/fnf.helpmark new file mode 100644 index 0000000000..a1d3bd0491 --- /dev/null +++ b/macros/text1/cms_help_files/fnf.helpmark @@ -0,0 +1,139 @@ ++-----------------------------------------------------------------------------+ +| footnoteformat | ++-----------------------------------------------------------------------------+ + +\footnoteformat{\skipbeforedivider{12pt} + \skipafterdivider{2.6pt} + \footnotedivider{144pt} + \textreferenceposition{up} + \textreferenceplacement{after} + \textreferencefont{\tenpt} + \textreferencestyle{1} + \notereferenceposition{down} + \notereferencefont{\tenpt} + \notereferencestyle{1.} + \notereferencegutter{1em} + \everyfootnote{\tenpt\pin{20pt} + \lin{0pt}} + } + +Abbreviation: ã|\fnfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\skipbeforedivider, \skipafterdivider, +\footnotedivider, \textreferenceposition, +\textreferenceplacement, \textreferencefont, +\textreferencestyle, \textreferencegutter, +\everyfootnote, \notereferenceposition, +\notereferencefont, \notereferencestyle, +\notereferencegutterã% + + ã|Description:ã% +To change the footnote style and any of the other footnote formatting +options of the \autofootnote markup, use the \footnoteformat markup. The +default footnote format is: + +ã|\skipbeforedividerã% determines the distance between the last line of text +on a page and the footnote divider rule which is printed just before the +footnotes. The default for this markup is 12 points. + +ã|\skipafterdividerã% determines the distance between the footnote divider rule +and the first footnote. The default for this markup is 2.5 points. + +ã|\footnotedividerã% determines the length of a short rule that separates the +footnotes from text. The default value is 144 points (2 inches). + +ã|\textreferencepositionã% determines if the footnote reference number is a +superscript or not. By default, the reference is superscripted (up). If +you want the footnote reference number to be on the baseline, change the +parameter to "down". The default for \monospace is "down". Do not change +it to "up" for \monospace. + +\textreferenceplacement determines if the footnote reference number +precedes or follows the word being noted. By default, the reference +will follow the noted word. If you want the footnote reference number to be +placed before the word being noted, then change the parameter to "before". + +ã|\textreferencefontã% lets you determine how to print the footnote number. +The default is the roman face at 10 point. For \monospace, the default is +the roman typewriter printer face. + +ã|\textreferencestyleã% determines the numbering style. There are four +possible values: + 1. "1" for numbered superscripted footnotes + 2. "(1)" for numbered footnotes surrounded with parentheses + 3. "a" for lettered footnotes + 4. "(a)" for lettered footnotes surrounded with parentheses +The default is \textreferencestyle{1} for composing printers. Typewriter +printers using \monospace have a default of \textreferencestyle{(1)}. + +ã|\notereferencepositionã% determines whether the footnote reference number in +the note is a superscript or not. By default, the reference is on the +baseline. If you want the footnote reference number to be superscripted, +change the parameter to "up". Do note specify "up" for typewriter printers +using \monospace. + +ã|\notereferencefontã% lets you determine what font to print the footnote +number in. The default is standard face at 10 point. For \monospace, the +default is the roman typewriter printer face. + +ã|\notereferencestyleã% determines the numbering style for the notes. There +are four possible values: + 1. "1" for numbered superscripted footnotes + 2. "(1)" for numbered footnotes surrounded with parentheses + 3. "a" for lettered footnotes + 4. "(a)" for lettered footnotes surrounded with parentheses +The default is \textreferencestyle{1.}. + +\notereferencegutter sets the distance between the footnote number and the +first word of text of the note. The gutter is illustrated here as the +shaded portion between "1." and "The first step": + ++-----------------------------------------------------------------------------+ +| | +| .... | +| 1....The first step . . . | +| .... | +| | ++-----------------------------------------------------------------------------+ + +The default is one em space, \notereferencegutter{1em}. + +\everyfootnote{Nested Markup} sets the style for everyfootnote. You can +change the type face, the paragraph parameters, and the right and left +indentation. The default text size is 10 point; each note is in paragraph +format, with an indent of 20 points. Typewriter printers which must use +\monospace may not change to another font set. + + ã|Example:ã% +The following example uses a footnote style that prints a superscripted +footnote number in the text and the note, the body of the footnote in +nine-point Computer Modern set, the footnote at the bottom of the page +indented 36 points from the left and 36 points from the right of the rest of +the body of the text of the document, the footnote body right ragged, and +the text of the document right justified and in 10 point Computer Modern. +The \footnoteformat block is modified thus: + +\footnoteformat{\skipbeforedivider{18pt} + \footnotedivider{144pt} + \textreferencefont{\ninepoint\rm} + \notereferenceposition{up} + \notereferencefont{\ninepoint\rm} + \everyfootnote{\rightragged\pin{0pt} + \psk{12pt}\ninepoint + \leftindent{36pt}\rightindent{36pt}}} + +Note that \ninepoint was specified within both the \textreferencefont and +\everyfootnote markups. The \textreferencefont determines the font that the + +footnote reference number is to be printed in. The \everyfootnote markup +determines the font that the footnote text is to print in at the bottom +of the page. Most often the fonts specified in \textreferencefont and +\everyfootnote are the same font. + + ã|Notes:ã% +This markup modifies the style of the \autofootnote markup, not the +\footnote markup. + The \footnoteformat markup must come after the \monospace markup, if +both are used. diff --git a/macros/text1/cms_help_files/fnotem.helpbloc b/macros/text1/cms_help_files/fnotem.helpbloc new file mode 100644 index 0000000000..caeff296f7 --- /dev/null +++ b/macros/text1/cms_help_files/fnotem.helpbloc @@ -0,0 +1,8 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|FNOTE-Mã%block is to be selected if you want to modify the +\footnoteformat and if you are using \monospace. This affects +how \autofootnote prints, not how \footnote prints. diff --git a/macros/text1/cms_help_files/fnotep.helpbloc b/macros/text1/cms_help_files/fnotep.helpbloc new file mode 100644 index 0000000000..c0997c3c8f --- /dev/null +++ b/macros/text1/cms_help_files/fnotep.helpbloc @@ -0,0 +1,8 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|FNOTE-Pã%block is to be selected if you want to modify the +\footnoteformat and if you areã|notã%using \monospace. This affects +how \autofootnote prints, not how \footnote prints. diff --git a/macros/text1/cms_help_files/font.helpmark b/macros/text1/cms_help_files/font.helpmark new file mode 100644 index 0000000000..3d6b584379 --- /dev/null +++ b/macros/text1/cms_help_files/font.helpmark @@ -0,0 +1,51 @@ ++-----------------------------------------------------------------------------+ +| font | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|user markup name and font nameã% + + ã|Description:ã% +The \font markup can be used to allow you to make use of a specific font +available on your printer. You should always consult the font catalog for +the fonts available on your printer. The name given in the font catalog +goes where font name is with the \font markup. The user markup name you +must provide. It should be a unique name. + + ã|Example:ã% +To use the fourteen point Sonoran Roman, you can assign it to the markup +name \bigfont by entering, + +\font \bigfont = sonr14 + +\bigfont Palouse Region: + +and you will get: + ++-----------------------------------------------------------------------------+ +| | +| Palouse Region: | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +To use the ten point Computer Modern Sanserif Demibold Condensed you can +assign it to a markup name \demifont by entering, + +\font \demifont = cmssdc10 + +\demifont Palouse Region: + +you will get: + ++-----------------------------------------------------------------------------+ +| | +| Palouse Region: | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \font markup does not change the interline skip. A font established +with \selectspecificfont does. + This markup is described further in The TEXbook. diff --git a/macros/text1/cms_help_files/fontm.helpbloc b/macros/text1/cms_help_files/fontm.helpbloc new file mode 100644 index 0000000000..16ef399cb3 --- /dev/null +++ b/macros/text1/cms_help_files/fontm.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|FONT-Mã%block is to be selected if you want to change the default +\monospace font. You usually shoudn't have to do this. diff --git a/macros/text1/cms_help_files/fontp.helpbloc b/macros/text1/cms_help_files/fontp.helpbloc new file mode 100644 index 0000000000..c39de10783 --- /dev/null +++ b/macros/text1/cms_help_files/fontp.helpbloc @@ -0,0 +1,8 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|FONT-Pã%block is to be selected if you want to change the default +proportional space font. You might want to do this if you want to have +a FONT-P TEXBLOCK on your own disk to be included for each job. diff --git a/macros/text1/cms_help_files/footnote.helpmark b/macros/text1/cms_help_files/footnote.helpmark new file mode 100644 index 0000000000..b9135f7c0b --- /dev/null +++ b/macros/text1/cms_help_files/footnote.helpmark @@ -0,0 +1,63 @@ ++-----------------------------------------------------------------------------+ +| footnote | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|first parameter = reference mark + second parameter = footnote textã% + + ã|Description:ã% +The \footnote markup can be used to create marked footnotes. There are two +parameters; the first is the reference mark, and the second is the text of +the note itself. Each parameter is surrounded with curly braces ({}). If +more than one reference mark is used on the same page, they should appear in +the prescribed order: + * asterisk (*) + * dagger (\dagger) + * double dagger (\ddagger) + * section sign (\S) +Refer to the example in the TEXT1 Users' Guide or Reference Manual for +real sample output. These characters are not available at your terminal. + + ã|Example:ã% +Using the above prescribed order, the second footnote on a page would be +entered with \footnote as: + +by Achilles Chert\footnote{\dagger}{pH.d., Litmus Sci. +The author is with the School of Pyroclastic +Philosophy at the University of Piedmont.}. +\par +\nin "Does the Absurd dictate death?" asks Albert +Camus, a novelist who lionized the labors of +Sisyphus in moving the igneous concretion up the +declivitous landmass. + +In the document, the text would print as: + ++-----------------------------------------------------------------------------+ +| | +| by Achilles Chert . | +| "Does the Absurd dictate death?" asks Albert Camus, a novelist who | +| lionized the labors of Sisyphus in moving the igneous concretion up the | +| declivitous landmass. | +| | ++-----------------------------------------------------------------------------+ + +At the bottom of the page the footnote would print as: + ++-----------------------------------------------------------------------------+ +| | +| pH.d., Litmus Sci. The author is with the School of Pyroclastic | +| Philosophy at the University of Piedmont. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \footnoteformat has no effect on \footnote. \footnoteformat is used to +change the style of the \autofootnote markup. + + You cannot use \footnote within \settabs, \vbox, \hbox, +\drawbox, \paragraphbox, \label, \part, \chapter, \centerline, \halign, +\rightlinesbegin, or \centerlinesbegin. + Refer to the The TEXbook for more on the \footnote markup. diff --git a/macros/text1/cms_help_files/frac.helpmark b/macros/text1/cms_help_files/frac.helpmark new file mode 100644 index 0000000000..e46eaba641 --- /dev/null +++ b/macros/text1/cms_help_files/frac.helpmark @@ -0,0 +1,52 @@ ++-----------------------------------------------------------------------------+ +| fraction | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\fracã% + +Parameters: ã|numerator/denominatorã% + + ã|Description:ã% +The \fraction markup is another method of specifying a fraction. If you +enter "@1\over2@" you get " 1 2 ". Entering "1/2" will give you "1/2". To +get "1/" you specify "\fraction1/2 ~". + + ã|Example:ã% +Consider my favorite breakfast recipe: + +\tabskip 3em plus 2em minus 2em +\halign{\lft{#}&\lft{#}\cr +\multispan2\ctr{\bd Muckles}\cr +3 eggs&beaten\cr +1 cp&cream\cr +1 cp&flour\cr + +\fraction1/4 t&baking powder\cr +1 T&sugar\cr +\multispan2\lft{pinch of salt}\cr +\multispan2\lft{bacon (optional)}\cr} +Heat butter or bacon in frying pan. +Pour all of +the batter into the pan. Cook @ approximately @ +10 minutes at 375@^\circ@. Cut into pieces +and serve hot with plenty of syrup. + ++-----------------------------------------------------------------------------+ +| | +| Muckles | +| 3 eggs beaten | +| 1 cp cream | +| 1 cp flour | +| 14 t baking powder | +| 1 T sugar | +| pinch of salt | +| bacon (optional) | +| Heat butter or bacon in frying pan. Pour all of the batter into the | +| pan. Cook approximately 10 minutes at 375 degrees. Cut into pieces and | +| serve hot with plenty of syrup. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +There must be a space following the fraction as you enter it. In the above +example there had to be a space before the "t&baking powder\cr". diff --git a/macros/text1/cms_help_files/frenchsp.helpmark b/macros/text1/cms_help_files/frenchsp.helpmark new file mode 100644 index 0000000000..fe55209b7e --- /dev/null +++ b/macros/text1/cms_help_files/frenchsp.helpmark @@ -0,0 +1,53 @@ ++-----------------------------------------------------------------------------+ +| frenchspacing | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +By default, TEXT1 will double space after hard punctuation, unless the +letter prior to the punctuation is a capital letter. To make all +interword spacing the same, regardless of punctuation, you can enter +the \frenchspacing markup. This will turn off the extra spacing +following punctuation for the rest of a document or until TEXT1 sees a +\nonfrenchspacing markup. + + ã|Example:ã% +Consider this bibliographic entry: + +\bibentry + +Grabens, Gruss M. 1970. {\it Mechanical Processes +in the Human Geomechanism}. Winston: Geomedical +Publications, International. + +Without \frenchspacing it might print as: + ++-----------------------------------------------------------------------------+ +| | +| Grabens, Gruss M. 1970. Mechanical Processes in the Human Geomechanism. | +| Winston: Geomedical Publications, International. | +| | ++-----------------------------------------------------------------------------+ + +If you had specified \frenchspacing, + +\frenchspacing +\bibentry +Grabens, Gruss M. 1970. {\it Mechanical Processes +in the Human Geomechanism}. Winston: Geomedical +Publications, International. + +it would print as: + ++-----------------------------------------------------------------------------+ +| | +| Grabens, Gruss M. 1970. Mechanical Processes in the Human Geomechanism. | +| Winston: Geomedical Publications, International. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/goodbrea.helpmark b/macros/text1/cms_help_files/goodbrea.helpmark new file mode 100644 index 0000000000..d5c020dfa7 --- /dev/null +++ b/macros/text1/cms_help_files/goodbrea.helpmark @@ -0,0 +1,33 @@ ++-----------------------------------------------------------------------------+ +| goodbreak | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \goodbreak markup indicates a good place for page or line breaks. TEXT1 +will then break there only if necessary. This markup must be preceded by a +\par or vertical skip for a page break. + + ã|Example:ã% +This example will break the page before the last paragraph beginning "The +comparison may seem", if it comes close to the bottom of the page. + +\par +\nin{\bd Parallels.} +\par + +Consider for a moment rocks and deer. +Both form cooperative groups that furnish the +landscape . . . +The fruits of cooperation depend on conditions of +the environment. +\par +\goodbreak +The comparison may seem facile, but from deliberate +oversimplification . . . + + ã|Notes:ã% +Refer to The TEXbook for more on this markup. diff --git a/macros/text1/cms_help_files/halign.helpmark b/macros/text1/cms_help_files/halign.helpmark new file mode 100644 index 0000000000..f3f45f42ea --- /dev/null +++ b/macros/text1/cms_help_files/halign.helpmark @@ -0,0 +1,177 @@ ++-----------------------------------------------------------------------------+ +| halign | ++-----------------------------------------------------------------------------+ + +\halign{ preamble\cr + tabular text\cr} + +Abbreviation: ã|noneã% + +Parameters: ã|preamble, tabular text, submarkupã% + +Submarkup: ã|\lft, \ctr, \rt, \cr, \noalign, \tabskip, +\omit, \multispan, \phantom, && (column repeat)ã% + + ã|Description:ã% +The \halign markup is a way of making tables without tabbing. A preamble, +or sample line, is included immediately after \halign to act as a template +for the text in each column. Each successive column in a row begins with an +ampersand (&). Column descriptions may contain horizontal spaces, indents, +quads, and horizontal fills. Each column description must have a pound + +sign (hash mark, #) which acts as a reference variable, so that text can be +substituted. + The halign is read in its entirety. Every column is treated as a box +whose width is equal to the largest entry. + Besides horizontal mode markup such as \indent, you can use the +following submarkup in the \halign. + +\lft in the preamble will left justify each entry in a column. + +\ctr in the preamble will center each entry in a column. + +\rt in the preamble will right justify each entry in a column. + +\cr marks the end of the preamble, and the end of each row. + +\noalign is used outside of the preamble. It allows you to enter vertical +mode text into a table. You must not end a \noalign with a \cr. For +example, if you wanted to skip a blank line between two row entries, you +would use \noalign{\vs{\bl}}: + + +1000&32\cr +\noalign{\vs{\bl}} +2000&43\cr + +\tabskip puts an equal amount of space (glue) between columns. A +specification of + +\tabskip 20pt plus 15pt minus 10pt + +indicates that the each column is set 20 points apart. If after the initial +try it is determined that the table is still narrower than the width of the +page, up to an additional 15 points of space is put between columns to try +and get the table to spread across the entire page. If after the initial +try of 20 points between each column it is determined that the table is +too wide to fit on the page, up to 10 points is subtracted from the space +between each column to try and get the table to fit on the page. + +\omit can be used to disable to preamble specification for that column +and row. \omit only works for one column of one row. For example, if a +preamble + +\halign{\lft{#}&\rt{#}\cr + +was specified, then to center a header over a column, you could enter + +\omit\ctr{Header 1}&\omit\ctr{Header 2}\cr +1000&2000\cr + +\multispan is used to permit spanning of several columns. For example, if +you had a preamble of + +\halign{\rt{#}&\rt{#}&\rt{#}\cr + +and you wanted to center a title over the second and third columns, you +would enter: + +first column&\multispan2\ctr{Spanned title}\cr + +\phantom is used in decimal alignment. For example, + +00.1234&12.231\cr +72.8\phantom{000}&1.2\phantom{00}\cr + +would print the partial table: ++-----------------------------------------------------------------------------+ +| | +| 00.1234 12.231 | +| 72.8 1.2 | +| | ++-----------------------------------------------------------------------------+ +&& is used to indicate that the following column preamble is to be repeated +for each of the remaining of columns. For example, if you wanted the first +column centered, the second column left justified, and the next five columns +right justified, you could enter + +\halign{\ctr{#}&\lft{#}&\rt{#}&\rt{#}& + \rt{#}&\rt{#}&\rt{#}\cr + +Using the column repeat indicator (&&) you can simplify this to + +\halign{\ctr{#}&\lft{#}&&\rt{#}\cr + +This specification then says that columns 3, 4, etc. all use the same +preamble, "\rt{#}". + + ã|Example:ã% +This example illustrates \omit, \qquad and \tabskip. + +\tabskip .5in plus .4in minus .3in +\halign{\rt{#}&\qquad\lft{#}\cr +\omit\ctr{Case}&\omit\qquad\ctr{Blast}\cr +\noalign{\vs{2pt}\hrule\vs{2pt}} +5000 MT&500\cr +10000 MT&845--1050\cr } + ++-----------------------------------------------------------------------------+ +| | +| | +| ..........5000.MT.......500............ | +| 10000 MT 845--1050 | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% + +This example makes use of \multispan, \indent, +\horizontalspace, \noalign and column repeat (&&). + +\tabletitle{Surface Land Temperature (degrees C)\lbr +Changes after Exchanges} +\vs{10pt} +\halign{\indent\lft{#}&\hs{2em}\rt{#} + &&\hs{1em}\rt{#}\cr +Case&\multispan4\ctr{Post Detonations (Days)}\cr +Megatonnage&20&100&200&300\cr +\noalign{\vs{10pt}} +1000&-22&8&7&13\cr +3000&9&6&8&10\cr +5000&-7&-26&-20&-11\cr +10000&-24&-45&-26&-9\cr} + ++-----------------------------------------------------------------------------+ +| | +| Table 1 | +| Surface Land Temperature (degrees C) | +| Changes after Exchanges | +| | +| | +| Case Post Detonations (Days) | +| Megatonnage 20 100 200 300 | +| | +| 1000 -22 8 7 13 | +| 3000 9 6 8 10 | +| 5000 -7 -26 -20 -11 | +| 10000 -24 -45 -26 -9 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +\halign takes less computer time than \settabs because it is a basic +TEX command. The advantages to \halign over \settabs are: + + * maximum column widths are calculated automatically; you must measure + the longest entry with \settabs. + * templates are more versatile than \settabs; repeatable information can + be included in the preamble. + * greater flexibility. + Refer to The TEXbook for more about \halign, \cr, \noalign, \tabskip, +\phantom, \omit, \multispan, or && (column repeat). + You can use \autofootnote, \autoendnote, and \footnote inside of an +\halign, so long as they are not also inside an \hbox or \vbox. + Refer to the description of \leader for an example of using \halign with +dot leadering. + See \strut for row alignment. + Do not put a \cr on the same line as \noalign. diff --git a/macros/text1/cms_help_files/hbox.helpmark b/macros/text1/cms_help_files/hbox.helpmark new file mode 100644 index 0000000000..552ad9c2b4 --- /dev/null +++ b/macros/text1/cms_help_files/hbox.helpmark @@ -0,0 +1,36 @@ ++-----------------------------------------------------------------------------+ +| hbox | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|horizontal mode textã% + + ã|Description:ã% +The \hbox is a TEX markup which, among several uses, can be used to keep a +word together, preventing hyphenations. For example, + +\hbox{low-cut} + +would prohibit hyphenation of "low-cut". It can also be used in math mode +to switch to the roman font. For example, + +@x^{34}+\hbox{lower order terms}@ + +prints as: + ++-----------------------------------------------------------------------------+ +| | +| x[34]+lower order terms | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +You cannot use \autoendnote, \autofootnote, or \footnote within an \hbox. + You can also specify an \hbox to take up a certain size. For example, + +\hbox to 1in{} + +would create a box one inch wide. Refer to the discussion of \leader for +more on this option of \hbox. + For more on this markup refer to The TEXbook. diff --git a/macros/text1/cms_help_files/hin.helpmark b/macros/text1/cms_help_files/hin.helpmark new file mode 100644 index 0000000000..227b7b8040 --- /dev/null +++ b/macros/text1/cms_help_files/hin.helpmark @@ -0,0 +1,48 @@ ++-----------------------------------------------------------------------------+ +| hangingindent | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\hinã% + +Parameters: ã|units of measureã% + + ã|Description:ã% +The \hangingindent markup sets the amount of space each line in a hanging +paragraph is indented after the first. The parameter must be a numerical +value with valid units of measure. + + ã|Example:ã% +The first and second hanging paragraph use a hanging indent of 18 points. +The third paragraph uses a hanging indent of 38 points. + +\psk{12pt} +\hangingindent{18pt} +\hangingparagraph + +BASE. Can mean 'bedrock' in geological terms; +or 'gross' as a description of human behavior. +\hangingparagraph +CLEAVAGE. Refers to the tendency to split along faults; +or to the position of the female bosom in a low-cut +dress. +\hangingindent{38pt} +\hangingparagraph +DOMEHEAD. Is material pushing through a formation; +or an informal epithet for hairless academics. +\par ++-----------------------------------------------------------------------------+ +| | +| BASE. Can mean 'bedrock' in geological terms; or 'gross' as a description | +| of human behavior. | +| | +| CLEAVAGE. Refers to the tendency to split along faults; or to the position | +| of the female bosom in a low-cut dress. | +| | +| DOMEHEAD. Is material pushing through a formation; or an informal epithet | +| for hairless academics. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The hanging indent will remain in effect until changed with another +\hangingindent markup. diff --git a/macros/text1/cms_help_files/hof.helpmark b/macros/text1/cms_help_files/hof.helpmark new file mode 100644 index 0000000000..54d1467d37 --- /dev/null +++ b/macros/text1/cms_help_files/hof.helpmark @@ -0,0 +1,54 @@ ++-----------------------------------------------------------------------------+ +| hyphenoff | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\hofã% + +Parameters: ã|noneã% + + ã|Description:ã% +By default, TEXT1 will do hyphenation if necessary to achieve nice line +breaks. The \hyphenoff markup can be used to disable hyphenation. It will +remain this way until a \hyphenon is encountered. + + ã|Example:ã% +By default, hyphenation begins this example, + +Direct Access Storage Device (DASD) is a term for long +term file and program storage devices. A more common +term for the same thing is {\it disk}, since the +actual storage components look like platters or disks. + +\par +\hyphenoff +The CP Directory entry for each user indicates what +virtual disks his machine will include. Each disk +is known by its {\it virtual address}. In general, +users will have one 191 virtual disk. +\par +\hyphenon + +will print as: + ++-----------------------------------------------------------------------------+ +| | +| Direct Access Storage De- | +| vice (DASD) is a term for long | +| term file and program storage | +| devices. A more common term | +| for the same thing is disk, | +| since the actual storage com- | +| ponents look like platters or | +| disks. | +| The CP Directory entry | +| for each user indicates what | +| virtual disks his machine will | +| include. Each disk is known | +| by its virtual address. In | +| general, users will have one | +| 191 virtual disk. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Compare this output to that of the \hyphenon markup on the next page. diff --git a/macros/text1/cms_help_files/hon.helpmark b/macros/text1/cms_help_files/hon.helpmark new file mode 100644 index 0000000000..b2513733f8 --- /dev/null +++ b/macros/text1/cms_help_files/hon.helpmark @@ -0,0 +1,54 @@ ++-----------------------------------------------------------------------------+ +| hyphenon | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\honã% + +Parameters: ã|noneã% + + ã|Description:ã% +By default, TEXT1 will do hyphenation if necessary to achieve nice line +breaks. The \hyphenoff markup can be used to disable hyphenation. It will +remain this way until a \hyphenon is encountered. + + ã|Example:ã% +First print a paragraph without hyphenation and then turn hyphenation on. + +\hyphenoff +Direct Access Storage Device (DASD) is a term for long +term file and program storage devices. A more common +term for the same thing is {\it disk}, since the + +actual storage components look like platters or disks. +\par +\hyphenon +The CP Directory entry for each user indicates what +virtual disks his machine will include. Each disk +is known by its {\it virtual address}. In general, +users will have one 191 virtual disk. + +will print as: + ++-----------------------------------------------------------------------------+ +| | +| Direct Access Storage | +| Device (DASD) is a term for | +| long term file and program | +| storage devices. A more | +| common term for the same thing | +| is disk, since the actual | +| storage components look like | +| platters or disks. | +| The CP Directory entry for | +| each user indicates what vir- | +| tual disks his machine will | +| include. Each disk is known | +| by its virtual address. In | +| general, users will have one | +| 191 virtual disk. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% + +Compare this output with the example for \hyphenoff on the previous page. diff --git a/macros/text1/cms_help_files/hp.helpmark b/macros/text1/cms_help_files/hp.helpmark new file mode 100644 index 0000000000..b4137ea344 --- /dev/null +++ b/macros/text1/cms_help_files/hp.helpmark @@ -0,0 +1,48 @@ ++-----------------------------------------------------------------------------+ +| hangingparagraph | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\hpã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \hangingparagraph markup creates hanging paragraphs, which are the +reverse of normal paragraphs. In a normal paragraph, the first line is +indented but following lines are full measure wide; in a hanging paragraph +the first line is a full measure and the runover lines are indented. +Hanging paragraphs are used for lists, glossaries, and bibliographies. The +\hangingparagraph markup is placed before each item in the text; a \par +finishes the series. + + ã|Example:ã% + +\psk{5pt} + +\hangingparagraph +BASE. Can mean 'bedrock' in geological terms; +or 'gross' as a description of human behavior. +\hangingparagraph +CLEAVAGE. Refers to the tendency to split along faults; +or to the position of the female bosom in a low-cut +dress. +\hangingparagraph +DOMEHEAD. Is material pushing through a formation; +or an informal epithet for hairless academics. +\par + ++-----------------------------------------------------------------------------+ +| | +| BASE. Can mean 'bedrock' in geological terms; or 'gross' as a description | +| of human behavior. | +| CLEAVAGE. Refers to the tendency to split along faults; or to the position | +| of the female bosom in a low-cut dress. | +| | +| DOMEHEAD. Is material pushing through a formation; or an informal epithet | +| for hairless academics. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The default indentation for \hangingparagraph is 24 points. Use the +\hangingindent markup to change this indentation. diff --git a/macros/text1/cms_help_files/hrule.helpmark b/macros/text1/cms_help_files/hrule.helpmark new file mode 100644 index 0000000000..3ba7e489ed --- /dev/null +++ b/macros/text1/cms_help_files/hrule.helpmark @@ -0,0 +1,44 @@ ++-----------------------------------------------------------------------------+ +| hrule | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|dimensionã% + + ã|Description:ã% +The \hrule markup draws a horizontal rule across the width of the page. It +is a native TEX markup, and the usage is different in that the parameter is +not surrounded with curly braces. If you do not supply a dimension, TEXT1 +will print the rule across the entire width of the text. By default, the +rule drawn has a thickness (height) of .4pt. + + ã|Example:ã% +If you wanted to draw a three inch rule across the page, followed later with +a rule across the entire width of the page and ending with a thicker rule +across the width of the page you could specify: + +\nin Basic Techniques + +\hrule width 3in +Editing a File +\hrule +The Column Pointer +\vs{2pt} +\hrule height 2pt + +You would get: + ++-----------------------------------------------------------------------------+ +| | +| | +| ........................................................................... | +| ........................................................................... | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Refer to The TEXbook for more on \hrule and how to use the "depth" parameter +with the "height" and "width" parameters. + Use \rule instead of \hrule if you are using \monospace. + diff --git a/macros/text1/cms_help_files/hs.helpmark b/macros/text1/cms_help_files/hs.helpmark new file mode 100644 index 0000000000..4e75ab6b32 --- /dev/null +++ b/macros/text1/cms_help_files/hs.helpmark @@ -0,0 +1,47 @@ ++-----------------------------------------------------------------------------+ +| horizontalspace | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\hsã% + +Parameters: ã|units of measureã% + + ã|Description:ã% +The amount of blank space in a line can be varied by the \horizontalspace +markup. This markup works only within the current line; no space will be +carried over if too little remains at the end of the line. + + ã|Example:ã% + +Our barbecues are brick. Our poetry is concrete: +\bqb\nin +\horizontalspace{84pt}pillow tectonics +\hs{48pt}during sleep +\hs{18pt}pillows come together + +\hs{24pt}and move apart +\hs{18pt}like continental plates +\hs{36pt}mountain ranges +\hs{18pt}rise and fall +\hs{24pt}oceans +\hs{18pt}rise and fall +\bqe +\nin Like Gypsum Lee Ooze, art mimics geology. +\par + ++-----------------------------------------------------------------------------+ +| | +| Our barbecues are brick. Our poetry is concrete: | +| | +| pillow tectonics during sleep pillows come | +| together and move apart like continental plates | +| mountain ranges rise and fall oceans rise and fall | +| | +| Like Gypsum Lee Ooze, art mimics geology. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +\horizontalspace can be used in \settabs and \halign. + If you are using \monospace, then the units of measure should be +specified in tenths of an inch or in em's. diff --git a/macros/text1/cms_help_files/hsize.helpmark b/macros/text1/cms_help_files/hsize.helpmark new file mode 100644 index 0000000000..9eaca127ef --- /dev/null +++ b/macros/text1/cms_help_files/hsize.helpmark @@ -0,0 +1,49 @@ ++-----------------------------------------------------------------------------+ +| hsize | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|dimensionã% + + ã|Description:ã% +The \hsize markup is a native TEX markup that can be used to change the +width of the text on the printed page. This markup does not use delimeters. + + ã|Example:ã% +If you were entering text in a \vbox and you wanted it printed in a 3 inch +column instead of the default column width you could specify "\hsize=3in". +For example, + +Forms for reader's comments are provided at the back +of this publication. You can help us continue to improve +the quality of our documentation, and we welcome all +comments and suggestions. + +\vs{\bl} +\vbox{\hsize=3in +Forms for reader's comments are provided at the back +of this publication. You can help us continue to improve +the quality of our documentation, and we welcome all +comments and suggestions.} + +will print as: + ++-----------------------------------------------------------------------------+ +| | +| Forms for reader's comments are provided at the back of this | +| publication. You can help us continue to improve the quality of | +| our documentation, and we welcome all comments and suggestions. | +| | +| Forms for reader's | +| comments are provided at the | +| back of this publication. | +| You can help us continue to | +| improve the quality of our | +| documentation, and we welcome | +| all comments and suggestions. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Refer to The TEXbook for more on this markup. diff --git a/macros/text1/cms_help_files/incl.helpmark b/macros/text1/cms_help_files/incl.helpmark new file mode 100644 index 0000000000..3b2f58acbf --- /dev/null +++ b/macros/text1/cms_help_files/incl.helpmark @@ -0,0 +1,89 @@ ++-----------------------------------------------------------------------------+ +| include | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\inclã% + +Parameters: ã|page segment nameã% + + ã|Description:ã% +The \include markup will include external page segment files, into a TEXT1 +document. Page segments come from graphics generating programs such as +those produced by GDDM, SAS and MEGACALC. Refer to the GDDM Page Segment +Generation for the IBM 3820 User Note, U-419, for details on how to create a +page segment. + + The format for the \include markup is: + +\include{fn} + + Where fn is the filename of the file to be included into the text +document. It must have a filetype of "PSEG3820". You must leave space +after the page segment to prevent the image from overprinting the following +text of the document. + + ã|Example:ã% +A file called "GRAPH1 PSEG3820 A" contains a SAS/GRAPH image. It is 2 1 2 +inches high, so you would enter: + +. . . in the graph illustrated below: +\par +\include{graph1} +\vs{3.5in} +\noindent +Notice the values on the Y axis, they . . . + +In the document you would get: + ++-----------------------------------------------------------------------------+ +| | +| . . . in the graph illustrated below: | +| | +| | +| WWW W WWW SSSSSS UUU UUU | +| WWW WWW WWW SSSSS UUU UUU | +| WWWWWWW SSSSSS UUU UUU | +| WWWWW SSSSSSSS UUUUUUUUUU | +| | +| | +| Notice the values on the Y axis, they . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +Sometimes you may want to center the graph on the page. To do this you +would subtract the width of the graph from the galleywidth(1) and divide the +difference by 2; then you would do a horizontal skip of that amount (after +entering \null. For the above graph, the galleywidth is 25 picas, the width +of the "graph1" is 19 picas, so the indent is to be 3 picas ( 25pc-19pc +2=3pc ): + +| . . in the graph illustrated below: | +\par +\noindent\hs{3pc} +\include{graph1} +\vs{3.5in} +\noindent +Notice the values on the Y axis, they . . . ++-----------------------------------------------------------------------------+ + 1. galleywidth=page width - left margin - right margin + +In the document you would get the same graph as above, centered on the page. +Refer to the example below: + ++-----------------------------------------------------------------------------+ +| | +| . . . in the graph illustrated below: | +| | +| WWW W WWW SSSSSS UUU UUU | +| WWW WWW WWW SSSSS UUU UUU | +| WWWWWWW SSSSSS UUU UUU | +| WWWWW SSSSSSSS UUUUUUUUUU | +| | +| | +| Notice the values on the Y axis, they . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/indent.helpmark b/macros/text1/cms_help_files/indent.helpmark new file mode 100644 index 0000000000..42c0fbb071 --- /dev/null +++ b/macros/text1/cms_help_files/indent.helpmark @@ -0,0 +1,41 @@ ++-----------------------------------------------------------------------------+ +| indent | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \indent markup creates an empty box of horizontal space whose width is +the current value of \paragraphindent. This markup is useful in tabular +work. + + ã|Example:ã% +\tabletitle{Flea Deaths (in millions)} +\halign{\indent\rt{#}&\qquad\lft{#}\cr +Case&Blast\cr +5000 MT&500\cr +10000 MT&845--1050\cr } +\rule + +\vs{\bl} +These statistics are fairly conclusive. Note, +however, that inconsistencies occurred at . . . + ++-----------------------------------------------------------------------------+ +| | +| Table 1 | +| Flea Deaths (in millions) | +| | +| Case Blast | +| 5000 MT 500 | +| 10000 MT 845--1050 | +| ........................................................................... | +| These statistics are fairly conclusive. Note, however, that | +| inconsistencies occurred at . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Refer to The TEXbook for more on this markup. diff --git a/macros/text1/cms_help_files/index.helpbloc b/macros/text1/cms_help_files/index.helpbloc new file mode 100644 index 0000000000..6d262cedb2 --- /dev/null +++ b/macros/text1/cms_help_files/index.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|INDEXã%block is to be selected if you want to modify the +\indexformat. diff --git a/macros/text1/cms_help_files/input.helpmark b/macros/text1/cms_help_files/input.helpmark new file mode 100644 index 0000000000..4ab3365aa4 --- /dev/null +++ b/macros/text1/cms_help_files/input.helpmark @@ -0,0 +1,46 @@ ++-----------------------------------------------------------------------------+ +| input | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|filenameã% + + ã|Description:ã% +The \input markup indicates a file to be included in the source. The +parameter, a CMS file name with a filetype of TEX, follows \input and a +separator space; no curly braces are used. + Usually the \input markup is used in a "driver" file, which calls parts, +chapters, etc. to create (or drive) the entire document, such as a thesis. +At the top of such a driver file is where you would put modifications to +default format blocks, additional font specifications, and your own markup +definitions. + + ã|Example:ã% +In this example, the file is to have a filename of "DRIVER". It calls all of +the various parts of a 2 chapter document. When formatting, specify DRIVER +as the filename. + +\chapterformat{\numberingstyle{1} + \titleformat{\newpage + \cl{\bd \chaptertitle} + \vs{1\bl}} + \incontents{yes}} +\selectfontset{cm9}{ninepoint}{default} +\input preface +\input abstract +\input chapter1 +\input chapter2 +\input bibliog +\input append-a +\input append-b +\input index + + ã|Notes:ã% +If you want to input a file with a filetype other than TEX, you can do so by +adding the filetype after the filename and placing a period between the two. +For example, to input a filename of DATA and a filetype of LISTING, enter + +\input data.listing + + Refer to The TEXbook for more on this markup. diff --git a/macros/text1/cms_help_files/isk.helpmark b/macros/text1/cms_help_files/isk.helpmark new file mode 100644 index 0000000000..56ed4190d9 --- /dev/null +++ b/macros/text1/cms_help_files/isk.helpmark @@ -0,0 +1,46 @@ ++-----------------------------------------------------------------------------+ +| interlineskip | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\iskã% + +Parameters: ã|unit of measureã% + + ã|Description:ã% +The spacing between lines (from one baseline to the next, not "single" or +"double spacing") can be changed using the \interlineskip markup. TEXT1 +automatically sets an interline skip usually 2 points greater than the font +size when you use \selectfontset.(1) The default font size is 12 points and +the default interline skip is 14 points. This may be particularly helpful +when using some of the smaller fonts. In general, the shorter the line or +smaller the type, less interline skip is needed. + + ã|Example:ã% + 1. Extra space is referred to as leading, pronounced leding (from the +days when lead was used). + +\interlineskip{11pt} +The definition of Sociogeology is the study of the +geological basis of all social behavior. +It explains human behavior by empirical description +of the attributes of mineral composition. +\par +\interlineskip{13pt} +It is most successful when it provides detailed +description of particulate phenomena and first-order +correlations with features . . . + ++-----------------------------------------------------------------------------+ +| | +| The definition of Sociogeology is the study of the geological basis of | +| all social behavior. It explains human behavior by empirical description | +| of the attributes of mineral composition. | +| It is most successful when it provides detailed description of | +| particulate phenomena and first-order correlations with features . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +\singlespace and \doublespace are dependent on the current setting of +\interlineskip. For example, the \doublespace leading when \interline- +skip{12pt} is 24pt. diff --git a/macros/text1/cms_help_files/it.helpmark b/macros/text1/cms_help_files/it.helpmark new file mode 100644 index 0000000000..4055cb1bbc --- /dev/null +++ b/macros/text1/cms_help_files/it.helpmark @@ -0,0 +1,41 @@ ++-----------------------------------------------------------------------------+ +| italic | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\itã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \italic markup sets an Italianate typeface, used for showing emphasis, +conveying a message, attracting attention, or even creating a mood. Italic +type is also good for contrast, and it is also hard to read over large +areas. For printers that do not have italics, underscoring will be used +instead. + + ã|Example:ã% +earlier; +\italic Japan \roman in Southeast Asia (previously in +China, now in the Philippines, + ++-----------------------------------------------------------------------------+ +| | +| earlier; Japan in Southeast Asia (previously in China, now in the | +| ----- | +| Philippines, | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +members communicate important things---{\it +hunger, alarm, rank, and sexual desire}---among +themselves by means of nonsyntactical signals. + ++-----------------------------------------------------------------------------+ +| | +| members communicate important things---hunger, alarm, rank, and sexual | +| ------ ----- ---- --- ------ | +| desire---among themselves by means of nonsyntactical signals. | +| ------ | +| | ++-----------------------------------------------------------------------------+ diff --git a/macros/text1/cms_help_files/italicfa.helpmark b/macros/text1/cms_help_files/italicfa.helpmark new file mode 100644 index 0000000000..4c0ecd3117 --- /dev/null +++ b/macros/text1/cms_help_files/italicfa.helpmark @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \italicface (\it) MARKUP | ++-----------------------------------------------------------------------------+ + +The \italicface (\it) markup will switch to the italic face text font and print +the text following the markup in italics. If the printer does not have an +italic font, a warning will issued and an underscore font will be substituted. + +The format for the \italicface markup is: + + \italicface ttttt + +Everything from the \italicface markup to the next font change will be printed +in italics. If only a word or two are to be printed in italics enclose the +italic face markup and the text that is to be printed in italics within a set +of braces. + + {\italicface ttttt} + +After printing the specified text in italics, TEXT1 will automatically switch +back to the standard face, or Roman font. diff --git a/macros/text1/cms_help_files/item.helpmark b/macros/text1/cms_help_files/item.helpmark new file mode 100644 index 0000000000..abd96b000b --- /dev/null +++ b/macros/text1/cms_help_files/item.helpmark @@ -0,0 +1,45 @@ ++-----------------------------------------------------------------------------+ +| item | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|identifierã% + + ã|Description:ã% +The \item markup creates unique indented items. The parameters for this +markup is an identifier, such as an Arabic number or letter, supplied by +you. This offers more flexibility. + + ã|Example:ã% +militarily for thousands of years. +Reasons for this continued behavior include: +\item{*} the rapaciousness of society +(as shown by the accumulation of wealth and the +indifference to the poor and nonaggressive) +\item{**} the acceptance of war +\item{***} the economic advantages of large-scale +operations (as shown in industrial applications) +\par +\noindent +The cultures of industrial nations are based on +unethical . . . + ++-----------------------------------------------------------------------------+ +| | +| militarily for thousands of years. Reasons for this continued behavior | +| include: | +| * the rapaciousness of society (as shown by the accumulation of wealth | +| and the indifference to the poor and nonaggressive) | +| ** the acceptance of war | +| *** the economic advantages of large-scale operations (as shown in | +| industrial applications) | +| The cultures of industrial nations are based on unethical . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The indentation for \item is determined by the current setting of paragraph +indent. Each \item forms a hanging paragraph after the identifier. There +is no extra space between items. + Refer to The TEXbook for more on this markup. diff --git a/macros/text1/cms_help_files/ix.helpmark b/macros/text1/cms_help_files/ix.helpmark new file mode 100644 index 0000000000..cb92f5efea --- /dev/null +++ b/macros/text1/cms_help_files/ix.helpmark @@ -0,0 +1,311 @@ ++-----------------------------------------------------------------------------+ +| index | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ixã% + +Parameters: ã|title textã% + +Submarkup: ã|\subentry, \blindentry, \uspn, \bdpn, \itpnã% + + ã|Description:ã% +The \index markup builds index entries which can be sorted and printed at +the end of a document. The \index markup has the format + +\indexn{entry} + +where "n" is the index number (1, 2, or 3), and "entry" is the index +entry. The page number you are on when the \index markup is inserted will +be printed with the "entry". You must use the \printindex markup to sort +and print the index. It comes at the end of the document. Refer to the +documentation of \printindex for details on this markup. + + ã|Example:ã% +Consider this index example: + +The files you create and change have a filemode of A. +This means that they are all kept in a collection of +files called your A-disk. The FILELIST command +displays a list of all +\index1{A-disk} +the files on your A-disk. + +In the document, the following would print where the index markup occurred, + ++-----------------------------------------------------------------------------+ +| | +| The files you create and change have a filemode of A. This means | +| that they are all kept in a collection of files called your A-disk. The | +| FILELIST command displays a list of all the files on your A-disk. | ++-----------------------------------------------------------------------------+ + +If this occurred on page 32, the entry in the index printed with +\printindex1 would print as illustrated on the next page. + ++-----------------------------------------------------------------------------+ +| A-disk, 32 | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +You cannot use \index within a \settabs or \halign. + +ã|Lower Level or Sub entriesã% + + If you want to record a subentry to a main index entry you use the +\subentry markup within the \index markup. + + ã|Notes:ã% +The \subentry markup is only valid when used within \index. + + ã|Example:ã% +If you had a main entry called "reader list" and you wanted sub entries for +"receiving a file" and "replacing a file" you could enter the \index markup +as illustrated here: + +\sha{Receiving a File} +To receive a file, move the cursor to the line that +describes the file you want to receive. +\index1{reader list \subentry1{receiving a file}} +Then press PF9. A notice will appear on that line +telling you that the file has been received, . . . +\sha{Replacing or Renaming a File} +What happens if the file in your reader has the same file +label as one you already have on your disk? +There are two ways to handle this. +\lib\lil1 +If you want the file in your reader to replace the file +\index1{reader list \subentry1{replacing a file}} +on your disk, type the command "receive / (replace". +\lil1 + +If you want to keep the file on your disk, then rename +the file in your reader with the command "receive / newname +\index1{reader list\subentry1{renaming a file}} +newtype" where "newname" is the new file name and +"newtype" is the new filetype. +\lie + +This would produce the following paragraph in a document: + ++-----------------------------------------------------------------------------+ +| | +| Receiving a File | +| To receive a file, move the cursor to the line that describes the file | +| you want to receive. Then press PF9. A notice will appear on that line | +| telling you that the file has been received, ... | +| | +| Replacing or Renaming a File | +| What happens if the file in your reader has the same file label as one | +| you already have on your disk? There are two ways to handle this. | +| 1. If you want the file in your reader to replace the file on your disk, | +| type the command "receive / (replace". | +| 2. If you want to keep the file on your disk, then rename the file | +| in your reader with the command "receive / newname newtype" where | +| "newname" is the new file name and "newtype" is the new filetype. | +| | ++-----------------------------------------------------------------------------+ + +If list level #2 printed at the top of page 33, the index entries would look +like: + ++-----------------------------------------------------------------------------+ +| | +| reader list | +| receiving a file, 32 | +| renaming a file, 33 | +| replacing a file, 32 | +| | ++-----------------------------------------------------------------------------+ + +ã|Excluding Text from the Sortã% + There are occasions when you will want text to print in an indexed item, +but you do not want that text to be a part of the sorting process. For +example, you may want to index the title "Consumer Guides" including the +quotes, but you want it sorted with the C's and not sorted with the double +quote marks. Also, you probably would want to sort \par with the p's, and +not with the backslashes. Both can be accomplished using the \sortasmarkup +which can only be used within the \index markup. + + ã|Example:ã% +Using the input, + +Please get a copy of the article "Consumer Guides" and +\index1{"Consumer Guides"\sortas{Consumer Guides}} +refer to the illustration on page 5. +\par +Be sure to index the paragraph command "\\par" +\index1{\\par\sortas{par}} +somewhere in the document. + +you would get the following two paragraphs in your document. + ++-----------------------------------------------------------------------------+ +| | +| Please get a copy of the article "Consumer Guide References" and refer | +| to the illustration on page 5. | +| | +| Be sure to index the paragraph command "\par" somewhere in the | +| document. | +| | ++-----------------------------------------------------------------------------+ + +The index entries would print like: + ++-----------------------------------------------------------------------------+ +| | +| "Consumer Guides", 45 | +| contour Maps, 23 | +| | +| \par, 45 | +| Paragraphs, long, 16 | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +Prepositions in a subentry may not be part of the sort, but are to be +printed in the index. For example, to get the index to look like, + ++-----------------------------------------------------------------------------+ +| | +| vacations | +| on boats, 32 | +| at the Olympian, 21 | +| | ++-----------------------------------------------------------------------------+ + +you would use the \index, \subentry, and \sortas commands illustrated on the +next page. + +Some people spend their vacations at older +hotels like the Olympian. +\index1{vacations \subentry1{at the +Olympian\sortas{Olympian}}} + +Another popular vacation is travelling the +Pacific in a boat. +\ix1{vacations\subentry1{on + boats\sortas{boats}}} + + ã|Example:ã% +As another example, "10 Downing Street" is typically sorted with the T's +and not prior to the 2's. This can also be accomplished using the \sortas +markup. For example, the Prime Minister's address mentioned earlier would +be entered as: + +Taxi, please take me to 10 Downing Street. + +\index1{10 Downing Street\sortas{ten Downing Street}} + +ã|Highlighted Page Numbersã% + For those applications which require some of the page numbers to be +printed in bold, some in italics, and others underscored, there are three +markup available to do this. They are \boldpagenumber, \italicpagenumber, +and \underscorepagenumber. They are all used within the \index markup, and +indicate to TEXT1 that a page number other than the standard page number is +to be used. + We recommend that important references be noted in bold (\boldpage- +number). Fleeting references be printed with italics (\italicpagenumber). +And primary references be indicated by being underscored (\underscorepage- +number). Of course, you are free to use these three markup as you see +fit. + The bold page number will always come prior to a standard face reference +to the same page. + + ã|Example:ã% +If you had an \boldpagenumber on page 43 and \index's on pages 42--44 for +"peace." + +\index1{peace} % Located on page 42 + +\index1{peace} % Located on page 43 +\index1{peace\bdpn} % Located on page 43 + +\index1{peace} % Located on page 44 + +the index printed with \printindex would look like: + ++-----------------------------------------------------------------------------+ +| peace 43, 42--44 | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you have an underscored page number and it falls in the same range as a +standard face entry, the underscored entry would follow the standard face +entry. For example, if you had a \underscorepagenumber on page 66 and +\index's on pages 66--72 for "nationalism", + +\index1{nationalism\uspn} % On page 66 +\index1{nationalism} % On page 66 +\index1{nationalism} % On page 67 +\index1{nationalism} % On page 72 + +the index sequence would print like: + ++-----------------------------------------------------------------------------+ +| Quick Programming Language 66--72, 66 | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you have an index reference in italics and it falls in the same range as +a standard face entry, the italics entry will not be printed. For example, +if you had an italics entry using \italicpagenumber on pages 45 and 56, and +you had standard face entries on pages 54--60 for "In Search of Excellence", +the printed index would look like: + ++-----------------------------------------------------------------------------+ +| | +| In Search of Excellence 45, 54--60 | +| | ++-----------------------------------------------------------------------------+ + +ã|Cross Referencesã% + Often it is desirable to have a cross reference to another index entry. +You can do this using the \blindentry markup within the \index markup. You +cannot use both \blindentry and \subentry within the same \index markup. +The \blindentry markup has the format, + +\blindentry{blind entry} + +where "blind entry" is the text you want associated with that index entry. + + ã|Example:ã% +For example, to get an index entry to print like + ++-----------------------------------------------------------------------------+ +| | +| | +| Flow of control, see Control Structures | ++-----------------------------------------------------------------------------+ + +you would enter + +\index1{Flow of control\blindentry{see Control +Structures}} + + ã|Example:ã% +It is also possible to have a blind entry printed with an index entry, and +still have it indexed with page numbers. For example, if you were to enter + +\index1{Label\uspn} +\index1{Label\blindentry{({\it see also} Case Label)}} + +on page 78 you would get an index entry printed as: + ++-----------------------------------------------------------------------------+ +| Label, 78, (see also Case Label) | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +If you have page numbers and a blind entry, then the blind entry will follow +the last page number as illustrated here. + +ã|Multiple Indexesã% + You can have multiple indexes by changing the "1" in \index1 to "2" or +"3". For example, + +\index1{entry in first index} +\index2{entry in second index} +\index3{entry in third index} + +will generate one entry in each of three indexes. See \printindex for +instructions on how to print out each of the three indexes. diff --git a/macros/text1/cms_help_files/ixf.helpmark b/macros/text1/cms_help_files/ixf.helpmark new file mode 100644 index 0000000000..a57b8f352b --- /dev/null +++ b/macros/text1/cms_help_files/ixf.helpmark @@ -0,0 +1,260 @@ ++-----------------------------------------------------------------------------+ +| indexformat | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ixfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\respectcase, \style, \leadering, \everyhang, +\everyletterbreak, \indentsubentry, \everyindexã% + + ã|Description:ã% +The defaults listed above for each markup applies initially to each of +the three indexes. One or more indexes' defaults can all be changed +by modifying the \indexformat markup. The complete description of the +\indexformat markup and its related submarkup is: + +\indexformatn{format} + +where n is the index (1, 2, or 3) and format is the submarkup. + +ã|respectcaseã% ignores the case of an index entry. This markup can only be +used within the \indexformat markup. If you wanted case respected and have +the lower case letters sorted before the upper case entries (i.e., "boat" +sorted before "Bed") then enter + +\respectcase{yes} + + ã|Notes:ã% +Respecting case applies to all letters. If \respectcase{yes} has been +specified, then "boat" and "cat" will both be sorted before "Bed". The +default value is \respectcase{no} for each of the 3 indexes. + +ã|styleã% regulates the general index format. \style{indent}, the default, +indents each index entry. This style looks like: + ++-----------------------------------------------------------------------------+ +| | +| Constantinople, 12, See also Istanbul | +| alien rule of, 20 | +| Arab invasion of, 19, 31 | +| Crusades and, 22, 57 | +| Ottoman conquest of, 29--31 | +| | ++-----------------------------------------------------------------------------+ + + There are two other styles to choose from: "paragraph" and "dash". The +style "paragraph" is a run-on hanging paragraph. You get it by specifying: + +\indexformat1{\style{paragraph}} + +With this style, the above index would look like: + ++-----------------------------------------------------------------------------+ +| | +| Constantinople, 12, alien rule | +| of, 20, Arab invasion of, 19, | +| 31, Crusades and, 22, 57, | +| Ottoman conquest of, 29--31, See | +| also Istanbul | +| | ++-----------------------------------------------------------------------------+ + +Note that with this style, the blind entry from the \blindentry submarkup +comes after the subentry, instead of after the main entry as was done for +the "indent" style. + The third style is "dash", an em-dash style. You get it by specifying + +\indexformat1{\style{dash}} + +It is very similar to the default "indent" style, except subentries are +prefaced with an em dash following the initial indent of space. + ++-----------------------------------------------------------------------------+ +| | +| Constantinople, 12, See also Istanbul | +| ---alien rule of, 20 | +| ---Arab invasion of, 19, 31 | +| ---Crusades and, 22, 57 | +| ---Ottoman conquest of, 29--31 | +| | ++-----------------------------------------------------------------------------+ + +ã|leaderingã% turns on/off dot leadering. The default is "off". You +can change this default only within the \indexformat markup. To have dot +leadering, enter: + +\ixf1{\leadering{yes}} + +If you are using \style{indent} and \leadering{yes} you get: + ++-----------------------------------------------------------------------------+ +| | +| Constantinople, See also | +| Istanbul ... . ... ... . ....12 | +| alien rule of ... . ... 20 | +| Arab invasion of . . .19, 31 | +| Crusades and .... . .22, 57 | +| Ottoman conquest of .29--31 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Do not use dot leadering with \style{paragraph}. + +ã|everyletterbreakã% is what will be printed between each letter break, +(i.e. between "A" and "B"). By default, one blank line is skipped when +starting a new letter (at each letter break). The \everyletterbreak markup +can only appear within the \indexformat markup. + + ã|Example:ã% +You could modify the default to place a rule and skip between breaks: + +\ixf1{\everyletterbreak{\vs{\bl} + \hrule width 2in + \vs{\bl}}} + + This would look something like: + ++-----------------------------------------------------------------------------+ +| | +| ..................... | +| alpha, 62 | +| America, 38 | +| Austria, 55 | +| ..................... | +| | +| Bach, 98 | +| Bethlehem, 87 | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +Something else you can do with indexes is to make use of the "\nextletter" +submarkup, which gives you the next uppercase character about to be listed +in the sorted index list. For example, between "apple" and "boat" the +value of "\nextletter" would be "B". One application would be to print the +"\nextletter" in a large type. This could be accomplished by changing the +default for "\everyletterbreak" to: + +\indexformat{\everyletterbreak{\vs{\bl} + \noindent{\twelvepoint\bd\nextletter}\par}} + +The resulting index would look like: + ++-----------------------------------------------------------------------------+ +| | +| | +| A | +| alpha, 62 | +| America, 38 | +| Austria, 55 | +| | +| B | +| Bach, 98 | +| Bethlehem, 87 | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +Another variation of the above would be to draw a box around the next +letter. You could do this by adding \drawbox to \everyletterbreak: + +\ixf1{\everyletterbreak{\vs{\bl} + \drawbox{\bd\nextletter}\par}} + +and you will get an index that prints as illustrated on the next page. + ++-----------------------------------------------------------------------------+ +| | +| ..... | +| ..... | +| alpha, 62 | +| America, 38 | +| Austria, 55 | +| | +| ..... | +| ..... | +| Bach, 98 | +| Bethlehem, 87 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The "\nextletter" is always an uppercase letter. + Only letters, not numbers or special characters such as the backslash +(\) are used as \nextletter. + +ã|indentsubentryã% There are two levels of subentries available. The amount +of distance they are indented when you are using the "indent" or "dash" +styles is controlled by the \indentsubentry submarkup. If you are using +the "paragraph" style for the index, the \indentsubentry is ignored. The +definition of this markup is, + +\ixf1{\indentsubentryn{amt}} + +where n is the subentry level, 1 or 2, and amt is the amount to be indented. +The default indent for these two subentry levels is: + +\ixf1{\indentsubentry1{1em} + \indentsubentry2{2em}} + + If, for example, you were using the "indented" style and wanted each +subentry level indented two em's from the previous level, you would enter, + +\ixf1{\indentsubentry1{2em} + \indentsubentry2{4em}} + +which would print the index illustrated earlier as: ++-----------------------------------------------------------------------------+ +| | +| Constantinople, 12, See also Istanbul | +| alien rule of, 20 | +| Arab invasion of, 19, 31 | +| Crusades and, 22, 57 | +| Ottoman conquest of, 29--31 | +| | ++-----------------------------------------------------------------------------+ + +ã|everyhangã% controls the hanging indent for the primary index level and +each of the two subentry levels. If you had an index entry with many page +numbers, + ++-----------------------------------------------------------------------------+ +| | +| Write state- | +| ment, 26, | +| 34--38, 70, | +| 86, | +| 103, 191, | +| 202, 203-- | +| 204, 281 | +| | ++-----------------------------------------------------------------------------+ + +The hangingindent would be 1.5em by default. + + ã|Example:ã% +If you wanted to increase that value to 3em, you would enter, + +\ixf1{\everyhang{3em}} + +and you would get: + ++-----------------------------------------------------------------------------+ +| | +| Write state- | +| ment, 26, | +| 34--38, | +| 70, 86, | +| 103, 191, | +| 202, 203-- | +| 204, 281 | +| | ++-----------------------------------------------------------------------------+ + +ã|everyindexã% is a list of one or more commands to be executed before +printing the sorted index. By default, \tenpt is the value of \everyindex. + + ã|Notes:ã% +The default type style used with \monospace is \roman instead of \tenpt. diff --git a/macros/text1/cms_help_files/ju.helpmark b/macros/text1/cms_help_files/ju.helpmark new file mode 100644 index 0000000000..48b4541b3d --- /dev/null +++ b/macros/text1/cms_help_files/ju.helpmark @@ -0,0 +1,42 @@ ++-----------------------------------------------------------------------------+ +| justify | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\juã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \justify markup makes each line exactly the same length and aligns +both left and right margins vertically. TEXT1 automatically sets pages +with full justification by default. The \justify markup is used to reset +justification after using \rightragged or \leftragged. + + ã|Example:ã% +\rightragged +Setting: Continuation of the narrative of Nehemiah +(c. 420 {\caps b.c.}). +Supplies information on an important epoch in ancient + +Jewish history---the return to Judea after seventy +years of captivity in Babylon. +\justify +Consists of two parts separated by several years: +Chapters 1 to 6, the return of the first caravan under +leadership of Zerubbabel; chapters 7 to 10, an +expedition, sixty years later, conducted by Ezra. + ++-----------------------------------------------------------------------------+ +| | +| Setting: Continuation of the narrative of Nehemiah (c. 420 b.c.). | +| Supplies information on an important epoch in ancient Jewish history---the | +| return to Judea after seventy years of captivity in Babylon. | +| Consists of two parts separated by several years: Chapters 1 to 6, | +| the return of the first caravan under leadership of Zerubbabel; chapters 7 | +| to 10, an expedition, sixty years later, conducted by Ezra. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +When you specify \justify, text will be justified until TEXT1 sees a +\rightragged or \leftragged. diff --git a/macros/text1/cms_help_files/la.helpmark b/macros/text1/cms_help_files/la.helpmark new file mode 100644 index 0000000000..fce94d1349 --- /dev/null +++ b/macros/text1/cms_help_files/la.helpmark @@ -0,0 +1,44 @@ ++-----------------------------------------------------------------------------+ +| label | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\laã% + +Parameters: ã|textã% + + ã|Description:ã% +The \label markup creates labelled paragraphs. Labels will appear to the +left of the paragraph described, in a 72 point (one inch) zone. A label is +similar to a hanging paragraph, except that the first line is aligned with +the indented portion and the label is separated by a gutter of 1 em space. +The skip between labels is one blank line. To begin a new paragraph at the +same indentation as the previous label, enter "\label{}" with no entry in +the parameter field of the \label. + + ã|Example:ã% +origin of rock provides clues. +\label{Sedimentary} rock is recemented from + +particles of older rock that has been broken down +by physical and chemical weathering. +\label{Metamorphic} +rock is igneous or sedimentary that has been +altered by temperature and pressure. +\la{} +Human cells act in a manner like sedimentary rock. + ++-----------------------------------------------------------------------------+ +| | +| origin of rock provides clues. | +| Sedimentaryrock is recemented from particles of older rock that has been | +| broken down by physical and chemical weathering. | +| | +| Metamorphicrock is igneous or sedimentary that has been altered by | +| temperature and pressure. | +| Human cells act in a manner like sedimentary rock. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The label indent and the gutter width can be modified with the \labelformat +markup diff --git a/macros/text1/cms_help_files/label.helpbloc b/macros/text1/cms_help_files/label.helpbloc new file mode 100644 index 0000000000..362b463298 --- /dev/null +++ b/macros/text1/cms_help_files/label.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|LABELã%block is to be selected if you want to modify the +\labelformat. diff --git a/macros/text1/cms_help_files/laf.helpmark b/macros/text1/cms_help_files/laf.helpmark new file mode 100644 index 0000000000..748b10c7c7 --- /dev/null +++ b/macros/text1/cms_help_files/laf.helpmark @@ -0,0 +1,120 @@ ++-----------------------------------------------------------------------------+ +| labelformat | ++-----------------------------------------------------------------------------+ + +\labelformat{\skipbefore{1\bl} + \labelwidth{72pt} + \gutter{1em} + \everylabel{\rm} + } + +Abbreviation: ã|\lafã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\skipbefore, \labelwidth, \gutter, +\everylabelã% + + ã|Description:ã% +The \labelformat markup controls the appearance of labelled paragraphs. + +\skipbefore indicates how much space is to be skipped before printing a +block. This amount is in addition to any paragraph skips. + +\labelwidth sets the amount of space to contain the label to the left of +the paragraph. The shaded portion illustrated here is the "label width" +area: + ++-----------------------------------------------------------------------------+ +| | +| SCALE, | +| nmin, nmax fornhalfwordxdata.)nteSince pixeledifferences5can(rangeabetween | +| -255 and +255 (-511 and . . . | +| | ++-----------------------------------------------------------------------------+ + +The default label width is 72 points (one inch). To change to a label width +of 1 2 inch you would enter, + +\labelformat{\labelwidth{.5in}} + +\gutter keeps a small amount of space between the label and the paragraph. +The shaded portion illustrated on the next page is the "label gutter" area. + ++-----------------------------------------------------------------------------+ +| | +| SCALE, | +| nmin, nmax fornhalfwordxdata.)nteSince pixeledifferences5can(rangeabetween | +| -255 and +255 (-511 and . . . | +| | ++-----------------------------------------------------------------------------+ + +The default amount is 1 em space. To change to a label gutter of 5 points +you would enter, + +\labelformat{\gutter{5pt}} + +\everylabel determines the type face and size of the label itself. The +default is roman face and right ragged. + + ã|Example:ã% +The sample markup reduces the skipbefore amount, increases the labelwidth +(to suit a larger format), and changes the font for labels to 9 point bold. +Note the use of displayed math mode. + +\selectfontset{cm9}{ninepoint}{default} +\labelformat{\skipbefore{6pt} + \labelwidth{108pt} + \gutter{1em} + \everylabel{\ninepoint\bd}} +\label{HALF} +specifies that both input datasets are halfword +(maximum 511 DN) (default is byte data). +\la{ADD} specifies that the sum of the two input +datasets is to be computed (default is the +computation of the difference image). + +\la{SCALE, nmin, nmax} +nmin and nmax are integers between -255 and 510 +(-511 and 1022 for halfword data.) Since . . . +\la{} +If N(I,J) is less than nmin, the OUTPUT=0.\lbr +If N(I,J) is greater than nmax, the OUTPUT=K.\lbr +If N(I,J) is between or equal to nmin and nmax then +@@OUTPUT = K*{N(I,J)-nmin\over nmax-nmin}@@ +where N(I,J) = IN1(I,J) - IN2(I,J) or if "ADD" has +been specified, N(I,J) = IN1(I,J) + IN2(I,J) +and K = 255 (511 for halfword data). +\la{TRANS\lbr sl1, ss1, sl2, ss2}sl1 and ss1 are +line and sample +coordinates for a point in IN1, and sl2 and ss2 are the +corresponding coordinates for the point in IN2. If HALF +has been specified, ss1 and ss2 refer to {\it bytes} +(not sample) in IN1 and In2, respectively. + ++-----------------------------------------------------------------------------+ +| | +| HALF specifies that both input datasets are halfword (maximum | +| 511 DN) (default is byte data). | +| ADD specifies that the sum of the two input datasets is to | +| be computed (default is the computation of the difference | +| image). | +| | +| SCALE, nmin, | +| nmax 1022 for halfword data.)rsSincewe.n.-.55 and 510 (-511 and | +| If N(I,J) is less than nmin, the OUTPUT=0. | +| If N(I,J) is greater than nmax, the OUTPUT=K. | +| If N(I,J) is between or equal to nmin and nmax then | +| OUTPUT = K*N(I,J)-nmin nmax-nmin where N(I,J) = IN1(I,J) - | +| IN2(I,J) or if "ADD" has been specified, N(I,J) = IN1(I,J) | +| + IN2(I,J) and K = 255 (511 for halfword data). | +| | +| TRANS | +| sl1, ss1, sl2,IN1, and sl2 and ss2 are the corresponding coordinates for | +| ss2 the pointsinaIN2.inIfaHALFahasebeenrspecified,rss1pandtss2 | +| refer to bytes (not sample) in IN1 and In2, respectively. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/lbr.helpmark b/macros/text1/cms_help_files/lbr.helpmark new file mode 100644 index 0000000000..4982e67f9c --- /dev/null +++ b/macros/text1/cms_help_files/lbr.helpmark @@ -0,0 +1,45 @@ ++-----------------------------------------------------------------------------+ +| linebreak | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\lbrã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \linebreak markup causes a line to finish without interrupting a +paragraph. Occasionally it is necessary to break a line in a precise place +within a paragraph, as opposed to letting TEXT1 decide where to break the +line. This markup does not end a paragraph, it simply starts the following +text of the paragraph on a new line instead of concatenating it to the end +of the previous line. + + ã|Example:ã% +This article is an outline of the codification of +Sociogeology into a branch of evolutionary geology. +The subject has an aggregate of self-sufficient + +concepts that with such disciplines as cosmetology +and astrology. Figure 1 shows a +schema borrowed from my previous book,\linebreak +{\it The Intact Societies: Vestals and Volcanoes},\lbr +which suggests how the amalgam can be achieved. +Geologists have always been intrigued by comparisons +between societies of rocks and those of vertebrates, +between two kingdoms. + ++-----------------------------------------------------------------------------+ +| | +| This article is an outline of the codification of Sociogeology into | +| a branch of evolutionary geology. The subject has an aggregate of | +| self-sufficient concepts that with such disciplines as cosmetology and | +| astrology. Figure 1 shows a schema borrowed from my previous book, | +| The Intact Societies: Vestals and Volcanoes, | +| which suggests how the amalgam can be achieved. Geologists have always | +| been intrigued by comparisons between societies of rocks and those of | +| vertebrates, between two kingdoms. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +See \break for the difference between these two markup. diff --git a/macros/text1/cms_help_files/leader.helpmark b/macros/text1/cms_help_files/leader.helpmark new file mode 100644 index 0000000000..e34179520b --- /dev/null +++ b/macros/text1/cms_help_files/leader.helpmark @@ -0,0 +1,47 @@ ++-----------------------------------------------------------------------------+ +| leader | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \leader markup is most often used in the \tableofcontentsformat in +conjunction with a page number. It produces dot leadering. You can also +use \leader in an \halign. + + ã|Example:ã% +This example using leaders also illustrates the use of \indent in \halign. + +The average annual costs of owning buildings in terms of +{\it taxes, insurance, maintenance,} and +{\it depreciation} are: +\halign{\indent\indent\hbox to 13pc {#\leader}& + \rt{#}\ \%\cr + +Taxes&1.00\cr +Insurance&.75\cr +Maintenance repairs&2.00\cr +Depreciation&4.00\cr +Miscellaneous&.25\cr +\indent\bd Total&8.00\cr} + +Will print: + ++-----------------------------------------------------------------------------+ +| | +| The average annual costs of owning buildings in terms of taxes, | +| insurance, maintenance, and depreciation are: | +| Taxes . .... .. .....1.00 % | +| Insurance ... . ... ..75 % | +| Maintenance repairs . 2.00 % | +| Depreciation. . . ... 4.00 % | +| Miscellaneous. . .... .25 % | +| Total ... . ... 8.00 % | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Notice in the last line the the ampersand (&) acted as a font delimiter for +the \bd which printed "Total". diff --git a/macros/text1/cms_help_files/letter.helpmode b/macros/text1/cms_help_files/letter.helpmode new file mode 100644 index 0000000000..754e174b0c --- /dev/null +++ b/macros/text1/cms_help_files/letter.helpmode @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Models | ++-----------------------------------------------------------------------------+ + +Theã|LETTERã%model is a general letter model. It is a template. You may modify +it, but it is recommended you check with the Information Center first. diff --git a/macros/text1/cms_help_files/lib.helpmark b/macros/text1/cms_help_files/lib.helpmark new file mode 100644 index 0000000000..251f2203c3 --- /dev/null +++ b/macros/text1/cms_help_files/lib.helpmark @@ -0,0 +1,50 @@ ++-----------------------------------------------------------------------------+ +| listbegin | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\libã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \listbegin markup starts a series of items set off with numbers, +letters, or bullets (raised dots). The \listbegin markup ends the previous +paragraph. + + ã|Example:ã% + +Some nations have historically dominated others. +\par +\listbegin +\bul United States in Latin America (and the Pacific) +\bul Europe in Africa (especially England, France, + +Germany, the Netherlands---perhaps Portugal and Spain) +\bul Japan in Southeast Asia (earlier in China, now +in the Philippines, Borneo, and others) +\bul Russia in Eastern Europe (and attempts in South +America and the Caribbean) +\bul China in Tibet (and most lately in Southeast +Asia---Campuchea, and Vietnam) +\listend +\noindent +Countries have tried to dominate each other . . . + ++-----------------------------------------------------------------------------+ +| | +| Some nations have historically dominated others. | +| * United States in Latin America (and the Pacific) | +| * Europe in Africa (especially England, France, Germany, the | +| Netherlands---perhaps Portugal and Spain) | +| * Japan in Southeast Asia (earlier in China, now in the Philippines, | +| Borneo, and others) | +| * Russia in Eastern Europe (and attempts in South America and the | +| Caribbean) | +| * China in Tibet (and most lately in Southeast Asia---Campuchea, and | +| Vietnam) | +| Countries have tried to dominate each other . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/lie.helpmark b/macros/text1/cms_help_files/lie.helpmark new file mode 100644 index 0000000000..3bc295573f --- /dev/null +++ b/macros/text1/cms_help_files/lie.helpmark @@ -0,0 +1,39 @@ ++-----------------------------------------------------------------------------+ +| listend | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\lieã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \listend markup finishes a series of items set off with numbers, +letters, or bullets (raised dots). The \listend returns text to paragraph +mode. + + ã|Example:ã% +Reasons for this continued behavior include: +\par +\listbegin +\lil1 armaments (in the form of tanks, bombers, weapons +and troop carriers, and personnel vehicles) +\lil1 military forces (the troops and support personnel + +necessary to impose policy by force) +\listend +\noindent +The cultures of industrial nations are based on . . . + ++-----------------------------------------------------------------------------+ +| | +| Reasons for this continued behavior include: | +| 1. armaments (in the form of tanks, bombers, weapons and troop carriers, | +| and personnel vehicles) | +| 2. military forces (the troops and support personnel necessary to impose | +| policy by force) | +| The cultures of industrial nations are based on . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/lif.helpmark b/macros/text1/cms_help_files/lif.helpmark new file mode 100644 index 0000000000..ed5b99e21a --- /dev/null +++ b/macros/text1/cms_help_files/lif.helpmark @@ -0,0 +1,128 @@ ++-----------------------------------------------------------------------------+ +| listformat | ++-----------------------------------------------------------------------------+ + +\listformat{\skipbefore{0\bl} + \liststyle{1.,a.,i.,1),a),i),(1)} + \everylistlevel1{\rm\lin{36pt}\gutter{1em}} + \everylistlevel2{\rm\lin{58pt}\gutter{1em}} + \everylistlevel3{\rm\lin{79pt}\gutter{1em}} + \everylistlevel4{\rm\lin{101pt}\gutter{1em}} + \everylistlevel5{\rm\lin{122pt}\gutter{1em}} + \everylistlevel6{\rm\lin{144pt}\gutter{1em}} + \everylistlevel7{\rm\lin{166pt}\gutter{1em}} + \everybullet{\rm\lin{+36pt}\gutter{1em}} + \skipafter{0\bl}} + +Abbreviation: ã|\lifã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\skipbefore, \everylistleveln, \everybullet, +\skipafter, \liststyleã% + + ã|Description:ã% +The \listformat markup permits changes to the TEXT1 ordered list style, list +indentation, or other formatting of an outline list. + +ã|\skipbeforeã% indicates how much space is to be skipped before printing a +list. This amount is in addition to any paragraph skips. + +ã|\liststyleã% sets the order of identifiers for the seven levels of a list. +Up to seven list styles may be entered in the \liststyle markup, each +separated by commas. The complete collection of possible list level styles +is: + + "1.", "a.", "A.", "i.", "I.", "1)", "a)", "A)", "i)", "I)", + "(1)", "(a)", "(A)", "(i)", "(I)", "1]", "a]", "A]", "i]", "I]", + "[1]", "[a]", "[A]", "[i]", "[I]" + + ã|Example:ã% +Note that every listlevel does not have to be changed or entered. + +\listformat{\skipbefore{0pt} + \liststyle{1.,a),(1)}} + +If your terminal does not have square brackets, you can use the \leftsquare- +bracket and \rightsquarebracket markup within the \liststyle markup. For +example: + + \liststyle{\lsb1.\rsb, a.} + +ã|\everylistleveln{Nested Markup}ã% The "n" indicates the list level number, +from 1 to 7. Each of the seven list levels has its own \everylistlevel +markup. The default indentation increases for each level down. You may use +Nested Markup such as font changes, \leftindent, \rightindent, and \gutter. + + * \leftindent is the distance from the left margin to the start of the +text of the item. The left indent is the shaded portion illustrated below: ++-----------------------------------------------------------------------------+ +| | +| a. The "computer on a chip" has made it possible to extend automation | +| to the office place. | +| | ++-----------------------------------------------------------------------------+ + + * \gutter is the distance between the list level indicator and the text of +the item. The gutter is the shaded portion illustrated below: + ++-----------------------------------------------------------------------------+ +| | +| a. The "computer on a chip" has made it possible to extend automation | +| to the office place. | +| | ++-----------------------------------------------------------------------------+ + +ã|\everybullet{Nested Markup}ã% Bullets can be used by themselves in a list +or after any level. If you wanted to change this default to have a right +ragged bullet with 36-point left and right indents, you would specify: + +\listformat{\skipbefore{0pt} + \everybullet{\rightragged\lin{36pt}\rin{36pt}} + \skipafter{0pt}} + +ã|\skipafterã% indicates how much space is to be skipped after printing a list. +This amount is in addition to any paragraph skips. + + ã|Example:ã% +Assuming you wanted the text to be right justified and double spaced in a 10 +point Computer Modern font and the list levels to be right ragged and single +spaced in a 9 point Computer Modern font, the \listformat could be entered +as illustrated on the next page. + +\sfs{cm9}{ninept}{default} + +\listformat{\skipbefore{0pt} + \liststyle{1.,a.,i.,1),a),i),(1)} + \everylistlevel1{\rr\ninept\pin{.5in}\lin{24pt}} + \everylistlevel2{\rr\ninept\pin{.5in}\lin{.8in}} + \everylistlevel3{\rr\ninept\pin{.5in}\lin{1.1in}} + \everylistlevel4{\rr\ninept\pin{.5in}\lin{1.4in}} + \everylistlevel5{\rr\ninept\pin{.5in}\lin{1.7in}} + \everylistlevel6{\rr\ninept\pin{.5in}\lin{2.0in}} + \everylistlevel7{\rr\ninept\pin{.5in}\lin{2.3in}} + \skipafter{0pt}} + +. . . bridge specifications: | +\lib\lil1 Falsework under all spans shall be completely +released before forms are constructed and concrete is +placed in rail bases and traffic and pedestrian barriers. +\lil1 In order to determine the condition of column concrete, +forms shall always be removed from columns before releasing +supports from beneath beams and girders. +\lie + ++-----------------------------------------------------------------------------+ +| | +| . . . bridge specifications: | +| 1. Falsework under all spans shall be completely released before forms | +| are constructed and concrete is placed in rail bases and traffic and | +| pedestrian barriers. | +| 2. In order to determine the condition of column concrete, forms shall | +| always be removed from columns before releasing supports from beneath | +| beams and girders. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/lil.helpmark b/macros/text1/cms_help_files/lil.helpmark new file mode 100644 index 0000000000..101297f484 --- /dev/null +++ b/macros/text1/cms_help_files/lil.helpmark @@ -0,0 +1,43 @@ ++-----------------------------------------------------------------------------+ +| listlevel | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\lilnã% + +Parameters: ã|n, 1 to 7ã% + + ã|Description:ã% +TEXT1 provides seven levels of list enumeration. The levels in a list are +each designated with a \listlevel markup; each level is differentiated with +a list level number n, 1 to 7. To specify an outline list, start with the +\listbegin markup followed by \listlevel, and ending with a \listend. Each +\listlevel will indent an absolute amount from the left margin. The default +indentation for level 1 is 36 points ( 1/2 inch); level 2 is 58 points; and +each level increases. + + ã|Example:ã% +\lib +\lil1 Humans vs. rocks. + +\lil2 Rocks are food source for humans. +\lil3 Igneous +\lil3 Metamorphic +\lil2 Humans are food source for rocks. +\lil1 Rocks vs. humans. +\lie +\nin Only more research can dig up facts for solving . . . + ++-----------------------------------------------------------------------------+ +| | +| 1. Humans vs. rocks. | +| a. Rocks are food source for humans. | +| i. Igneous | +| ii. Metamorphic | +| b. Humans are food source for rocks. | +| 2. Rocks vs. humans. | +| Only more research can dig up facts for solving . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Each \listlevel must have a beginning \listbegin and an ending \listend. diff --git a/macros/text1/cms_help_files/lin.helpmark b/macros/text1/cms_help_files/lin.helpmark new file mode 100644 index 0000000000..df27e80960 --- /dev/null +++ b/macros/text1/cms_help_files/lin.helpmark @@ -0,0 +1,69 @@ ++-----------------------------------------------------------------------------+ +| leftindent | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\linã% + +Parameters: ã|unit of measureã% + + ã|Description:ã% +The \lin markup indents text from the left margin. The value may be +relative, e.g., {+.5in}, which adds (or subtracts) the amount from the +current left margin or current indent (if one is in effect). The default +for left indent is zero. The indentation remains until another \leftindent +overrides it. This markup causes a break in text. + + ã|Example:ã% +from Camus: The rock should be left at the bottom, +because of the inevitability of entropic direction. +\vs{9pt} +\leftindent{+1in} + +What I have read doesn't make any sense. How can +minerals influence human social behavior, any more +than gravity? This theory is 'on the rocks.' +\par +\leftindent{-1in} +\rightline{Clay Gneiss} + ++-----------------------------------------------------------------------------+ +| | +| | +| from Camus: The rock should be left at the bottom, because of the | +| inevitability of entropic direction. | +| What I have read doesn't make any sense. How can minerals | +| influence human social behavior, any more than gravity? This | +| theory is 'on the rocks.' | +| Clay Gneiss | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% + +You can also use grouping to limit the effects of the \leftindent. If you +do, be sure that the last paragraph to be indented is followed by a \par. +The above illustration could also have been accomplished with grouping as +illustrated on the next page. + +from Camus: The rock should be left at the bottom, +because of the inevitability of entropic direction. +\vs{9pt} +{\leftindent{+1in} +What I have read doesn't make any sense. How can +minerals influence human social behavior, any more +than gravity? This theory is 'on the rocks.' +\par +} +\rightline{Clay Gneiss} + ++-----------------------------------------------------------------------------+ +| | +| from Camus: The rock should be left at the bottom, because of the | +| inevitability of entropic direction. | +| | +| What I have read doesn't make any sense. How can minerals | +| influence human social behavior, any more than gravity? This | +| theory is 'on the rocks.' | +| Clay Gneiss | +| | ++-----------------------------------------------------------------------------+ diff --git a/macros/text1/cms_help_files/line.helpmark b/macros/text1/cms_help_files/line.helpmark new file mode 100644 index 0000000000..e10d568d60 --- /dev/null +++ b/macros/text1/cms_help_files/line.helpmark @@ -0,0 +1,56 @@ ++-----------------------------------------------------------------------------+ +| line | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \line markup is used most often in the \runningheadformat and \running- +footformat running title markup. + + ã|Example:ã% +If you wanted to left justify "Chapter 1" and right justify "page 2" (where +"2" is actually the page number, \pagenumber), enter: + +\rhf{\bothpages{ + \line{\lft{Chapter 1}\rt{page \pagenumber}}}} + ++-----------------------------------------------------------------------------+ +| | +| Chapter 1 page 1 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +A construct such as, + +\rhf{\bothpages{ + \line{\lft{page \pn}\ctr{\today} + \rt{PNW Waterfalls}}}} + +will not print the date centered on the page: + ++-----------------------------------------------------------------------------+ +| | +| page 2 January 13, 1987 PNW Waterfalls | +| | ++-----------------------------------------------------------------------------+ + +To accomplish this, you should print the left and right justified text with +\line, then space backwards one line (\verticalspace{-\bl}), then center the +date: + +\rhf{\bothpages{\line{\lft{page \pn} + \rt{PNW Waterfalls}}} + \vs{-\bl} + \line{\ctr{\today}} + ++-----------------------------------------------------------------------------+ +| | +| page 3 January 13, 1987 PNW Waterfalls | +| | ++-----------------------------------------------------------------------------+ + + Refer to The TEXbook for more on this markup. diff --git a/macros/text1/cms_help_files/lint.helpmark b/macros/text1/cms_help_files/lint.helpmark new file mode 100644 index 0000000000..1394439251 --- /dev/null +++ b/macros/text1/cms_help_files/lint.helpmark @@ -0,0 +1,25 @@ ++-----------------------------------------------------------------------------+ +| lineinterval | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\lintã% + +Parameters: ã|intervalã% + + ã|Description:ã% +When \printingnumbers{yes} and \countinglines{yes} have both been specified, +this markup is used to specify when a line number is to be printed for line +numbering in the margin of a document. It need only be specified once at +the top of a document. The default is every fifth line counted will be +numbered. + + ã|Example:ã% +If you wanted every tenth line counted to be numbered, you would specify: + +\lineinterval{10} + + ã|Notes:ã% +Line numbering is only available on the phototypesetter. This markup is +ignored for all other printers. + You may specify an interval from 0-255. Practically speaking, you +should specify an interval from 1-150. diff --git a/macros/text1/cms_help_files/lir.helpmark b/macros/text1/cms_help_files/lir.helpmark new file mode 100644 index 0000000000..a872714bb7 --- /dev/null +++ b/macros/text1/cms_help_files/lir.helpmark @@ -0,0 +1,46 @@ ++-----------------------------------------------------------------------------+ +| listresume | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\lirã% + +Parameters: ã|noneã% + + ã|Description:ã% +\listresume is used to end a lower listlevel and return to the next higher +listlevel without starting a new point. + + ã|Example:ã% +\lib +\lil1 All fixed time controllers shall be equipped with +indicating switches and wiring to provide local control +of the following functions: +\lil2 Transfer from automatic to manual operation, +\lil2 Transfer from normal operation to flashing, +\listresume + +Combined master and intersection controllers shall have +indicating switches for functions (b) and (c), above, +for interconnected system. +\par +Combined master and intersection controllers shall also +have provisions for time switch control. +\lil1 All fixed-time controllers shall be . . . +\listend + ++-----------------------------------------------------------------------------+ +| | +| 1. All fixed time controllers shall be equipped with indicating switches | +| and wiring to provide local control of the following functions: | +| a. Transfer from automatic to manual operation, | +| b. Transfer from normal operation to flashing, | +| Combined master and intersection controllers shall have indicating | +| switches for functions (b) and (c), above, for interconnected system. | +| Combined master and intersection controllers shall also have | +| provisions for time switch control. | +| 2. All fixed-time controllers shall be . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/lists.helpbloc b/macros/text1/cms_help_files/lists.helpbloc new file mode 100644 index 0000000000..9c6016c1d8 --- /dev/null +++ b/macros/text1/cms_help_files/lists.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|LISTSã%block is to be selected if you want to modify the +\listformat. diff --git a/macros/text1/cms_help_files/lnf.helpmark b/macros/text1/cms_help_files/lnf.helpmark new file mode 100644 index 0000000000..26007a09dd --- /dev/null +++ b/macros/text1/cms_help_files/lnf.helpmark @@ -0,0 +1,24 @@ ++-----------------------------------------------------------------------------+ +| linenumberfont | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\lnfã% + +Parameters: ã|fontã% + + ã|Description:ã% +When \printingnumbers{yes} and \countinglines{yes} have both been specified, +this markup is used to specify what font the line number is to be printed in +the margin of a document. It need only be specified once at the top of a +document. The default is font "etsc 8", which is English Times Small Caps +at 8 point. + + ã|Example:ã% +If you wanted to use Plantin Roman, you would specify: + +\linenumberfont{plr 10} + + ã|Notes:ã% +Line numbering is only available on the phototypesetter. This markup is +ignored for all other printers. + See the Font Catalog to determine what fonts to use. diff --git a/macros/text1/cms_help_files/lr.helpmark b/macros/text1/cms_help_files/lr.helpmark new file mode 100644 index 0000000000..bab03a2243 --- /dev/null +++ b/macros/text1/cms_help_files/lr.helpmark @@ -0,0 +1,44 @@ ++-----------------------------------------------------------------------------+ +| leftragged | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\lrã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \leftragged markup leaves the left margin uneven after formatting. This +markup is used only with unusual text, for instance, introductory quotes for +chapters. + + ã|Example:ã% +\leftragged +The comparison may seem facile, but from deliberate +oversimplification comes complex obfuscation and general +theoretification. +Behavioral research will lead in this direction, as the + +general theory of Sociogeology predicts the features of +social organization from knowledge of population +parameters and behavioral constraints imposed by +the mineral constitution of the species. +\par +Humans exhibit metamorphic behavior over time or at high +temperatures, fever, for instance. +Metamorphic crystallization involves low temperatures; +\justify + ++-----------------------------------------------------------------------------+ +| | +| Thecomparison mayseemfacile, butfrom deliberateoversimplificationcomes | +| complex obfuscationandgeneral theoretification.Behavioral researchwilllead | +| inthis direction,asthe generaltheoryof Sociogeologypredicts thefeaturesof | +| social organizationfromknowledge ofpopulation parametersandbehavioral | +| constraints imposedbythe mineralconstitution ofthespecies. | +| Humansexhibit metamorphicbehaviorover timeor athightemperatures, | +| fever,forinstance. Metamorphiccrystallization involveslowtemperatures; | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Use \justify to turn the justification back on again. diff --git a/macros/text1/cms_help_files/markup.helpmenu b/macros/text1/cms_help_files/markup.helpmenu new file mode 100644 index 0000000000..29c37a2849 --- /dev/null +++ b/macros/text1/cms_help_files/markup.helpmenu @@ -0,0 +1,176 @@ ++-----------------------------------------------------------------------------+ +| Summary of TEXT1 Markup | ++-----------------------------------------------------------------------------+ + + Help may be selected for the following markup by placing the cursor +under any of the first eight characters of the desired markup abbreviation +followed bypressing the PF1 key. + +Abbreviation Markup Name Function + +app \appendix{} designate appendix +apf \appendixformat{} modify appendix style +aib \asisbegin start 'as is' text +aie \asisend end 'as is' text +aif \asisformat{} modify 'as is' style +aen \autoendnote{} save endnote +afn \autofootnote{} add footnote +bie \bibentry start entry +bib \bibliography{} designate bibliography +bif \bibliographyformat{} modify bibliography style +bqb \blockquotebegin start block quote +bqe \blockquoteend end block quote +bqf \blockquoteformat{} modify block quote style +bd \bold call bold font +bi \bolditalic call bolditalic font +break \break force line and page breaks +bul \bullet start bullet +cc \caps call caps/small caps font +cl \centerline{} center one line +clb \centerlinesbegin begin centering, 'as is' +cle \centerlinesend end centering +cents \cents cent sign +chap \chapter{} designate chapter +chf \chapterformat{} modify chapter style +coul \countinglines{} start counting lines +dsp \doublespace start alternate blank lines +db \drawbox{} draw a box around text +dbrs \drawboxrulesize{} thickness of a box's rule +dbm \drawboxmat{} white space around a box +die \dumpinsertseject dump and print inserts +el \ellipsis{} 3 or 4 dot ellipsis +ep \emptypage print an empty page +enf \endnoteformat{} modify endnote style +epm \evenpagemargin used in line numbering +ex \extension call the extension font +fig \figure{}{} create a figure +fif \figureformat{} modify figures +fixf \fixedformat multiple column format style +font \font font definition +footnote \footnote{}{} add footnote +fnf \footnoteformat{} modify footnote style +frac \fraction print a fraction +frenchspacing \frenchspacing spacing for bibliographies +goodbreak \goodbreak indicate likely page break +halign \halign table building +hin \hangingindent set hanging paragraph indent +hp \hangingparagraph start hanging paragraph +hbox \hbox TEX horizontal box +hs \horizontalspace{} add horizontal space +hrule \hrule draw a horizontal rule +hsize \hsize set the galleywidth +hof \hyphenoff turn off hyphenation +hon \hyphenon turn on hyphenation +incl \include add an external graphic +indent \indent add horizontal space +ix \index add item to index +ixf \indexformat specify the index format +input \input input another file +isk \interlineskip{} set interline skip +it \italic specify italic font +item \item unordered lists +ju \justify align margins +la \label start a label +laf \labelformat modify label style +leader \leader dot leadering +lin \leftindent{} indent left margin +lr \leftragged unaligned left margin +line \line left justify a line +lbr \linebreak cause unfilled line break +lint \lineinterval line numbering +lnf \linenumberfont line numbering +lib \listbegin start list +lie \listend end list +lif \listformat{} modify list style +lil \listlevel{} start new list level (1-7) +lir \listresume resume at previous list level +mn \marginnote print a note in the margin +mnf \marginnoteformat modify margin note style +mathdefault \mathdefault establish math fonts +mi \mathitalic call math italic font +msp \monospace typewriter printer setup +mcf \multicolumnformat modify multiple column defaults +nc \newcolumn start a new column +np \newpage start a new page +nobreak \nobreak discourage page break +nin \noindent suppress paragraph indent +nonfrenchspacing \nonfrenchspacing turn off french spacing +ntp \notitlepage suppress title page +numl \numberinglines line numbering +opm \oddpagemargin line numbering +oc \onecolumn one column formatting +pf \pageformat page size and margins +pn \pagenumber print page number +par \paragraph end paragraph +pb \paragraphbox box a paragraph +pin \paragraphindent{} set paragraph indentation +printind \printindex print the document index +psk \paragraphskip{} set space between paragraphs +part \part{} designate major heading +paf \partformat{} modify part style +plaintexmathon \plaintexmathon use PLAIN.TEX's $ +ppl \poplevel line numbering +pre \preface{} designate preliminary pages +prf \prefaceformat{} modify preface style +pen \printendnotes print accumulated endnotes +prin \printingnumbers{} line numbering +pic \putincontents1{} add to the table of contents +quad \quad add an 'em' of space +qquad \qquad add two 'em's of space +raggedbottom \raggedbottom don't align page bottoms +rin \rightindent{} indent right margin +rl \rightline{} right justify line +rlb \rightlinesbegin begin right alignment, 'as is' +rle \rightlinesend end right alignment, 'as is' +rr \rightragged unaligned right margin +rm \roman specify roman font +rule \rule create horizontal line +rff \runningfootformat{} specify running foot format +rhf \runningheadformat{} specify running head format +sau \sameauthor previous author, bibliography +sfs \selectfontset{}{}{} specify font set +sms \selectmathset{}{} specify math set +ssf \selectspecificfont{}{}{} specify specific font +san \setappendixnumber{} reset appendix number +scn \setchapternumber{} reset chapter number +senn \setendnotenumber{} reset endnote number +sfn \setfigurenumber{} reset figure number +sffn \setfootnotenumber{} reset footnote number +spn \setpagenumber{} reset page number +sptn \setpartnumber{} reset part number +ssan \setsubheadanumber{} reset subheada number +ssbn \setsubheadbnumber{} reset subheadb number +sscn \setsubheadcnumber{} reset subheadc number +ssdn \setsubheaddnumber{} reset subheadd number +stn \settablenumber{} reset table number +settabs \settabs tables +ssp \singlespace start single spacing +strut \strut tables +sha \subheada{} designate first subheading +shaf \subheadaformat{} modify first subheading style +shb \subheadb{} designate second subheading +shbf \subheadbformat{} modify second subheading style +shc \subheadc{} designate third subheading +shcf \subheadcformat{} modify third subheading style +shd \subheadd{} designate fourth subheading +shdf \subheaddformat{} modify fourth subheading style +sy \symbol call the symbol font +taf \tableformat{} modify table title style +toc \tableofcontents{} print table of contents +tocf \tableofcontentsformat{} modify table of contents style +tat \tabletitle{} print a table title +tenpt \tenpt call 10pt font set +text1 \text1 print "TEXT1" +thc \threecolumns print text in 3 columns +tp \titlepage designate title page +tpf \titlepageformat{} modify title page style +toclbr \toclinebreak cause a line break in the contents +today \today print current date +twelvept \twelvept call 12pt font set +twc \twocolumns print text in 2 columns +tt \typewriter call typewriter font +us \underscore{} underline word(s) +vbox \vbox TEX vertical box +vs \verticalspace{} leave vertical space +vsk \verticalspacekeep{} leave vertical space +vrule \vrule draw a vertical rule diff --git a/macros/text1/cms_help_files/marnote.helpbloc b/macros/text1/cms_help_files/marnote.helpbloc new file mode 100644 index 0000000000..13e28e3ece --- /dev/null +++ b/macros/text1/cms_help_files/marnote.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|MARNOTEã%block is to be selected if you want to modify the +\marginnoteformat. diff --git a/macros/text1/cms_help_files/mathdefa.helpmark b/macros/text1/cms_help_files/mathdefa.helpmark new file mode 100644 index 0000000000..9fe869f6a3 --- /dev/null +++ b/macros/text1/cms_help_files/mathdefa.helpmark @@ -0,0 +1,24 @@ ++-----------------------------------------------------------------------------+ +| mathdefault | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +By default, TEXT1 establishes a 9 point font for math mode superscripts, +and a 7 point font for math mode supersuperscripts. This is the value of +\mathdefault. You can establish other math mode font combinations than 9/7 +by using the \selectmathset markup. + + ã|Example:ã% +You can establish a larger math set called \bigmath which can be used for +display math and you can switch back to \mathdefault for the text math. + +\selectmathset{cm1412m}{bigmath} +\twelvept +\mathdefault + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/mcf.helpmark b/macros/text1/cms_help_files/mcf.helpmark new file mode 100644 index 0000000000..f24f22ac48 --- /dev/null +++ b/macros/text1/cms_help_files/mcf.helpmark @@ -0,0 +1,260 @@ ++-----------------------------------------------------------------------------+ +| multicolumnformat | ++-----------------------------------------------------------------------------+ + +\multicolumnformat{ + \twocolumnwidth{.48\galleywidth} + \threecolumnwidth{.31\galleywidth} + \twocolumngutter{.04\galleywidth} + \threecolumngutter{.035\galleywidth} + \columnrulewidth{0.0pt} + \skipbefore{6pt plus3pt minus2pt} + \skipafter{6pt plus3pt minus2pt} + } + +Abbreviation: ã|\mcfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\twocolumnwidth, \threecolumnwidth, +\twocolumngutter, \threecolumngutter, \columnrulewidth, +\skipbefore, \skipafterã% + + ã|Description:ã% +The column and gutter widths can be changed by modifying the +\multicolumnformat markup. Column widths are specified in a percentage +of the \galleywidth, the width of the text area on the page as specified +in the \pageformat markup. If the default "flexibleformat" is being used +a skip before and a skip after the multiple column format may also be +specified. These skips are ignored if you are using \fixedformat. + +ã|\twocolumnwidthã% is the width of each column when you specify \twocolumns. +Each column will be exactly the same width. This width is the shaded area +illustrated below: ++-----------------------------------------------------------------------------+ +| | +| Greek man- from the fourth | +| uscripts of the to the ninth | +| Bible fall into centuries, be- | +| 3 groups (1) Pa- ginning with the | +| pyri, covering Codex Vaticanus | +| the period from and the Codex | +| the third cen- Sinaiticus; (3) | +| tury b.c. to Vellum minis- | +| the fourth cen- cules, from the | +| tury a.d. (2) ninth century | +| Vellum uncials-- to the inven- | +| -a form of ma- tion of print- | +| juscule (large ing, there are | +| letter)--- well over 4,000 | +| of various dates manuscripts. | +| | ++-----------------------------------------------------------------------------+ + +ã|\threecolumnwidthã% is the width of each column when you specify +\threecolumns. Each column will be exactly the same width. This +width is the shaded area illustrated below: + ++-----------------------------------------------------------------------------+ +| | +| Greek manu- (2) Vellum icanus and | +| scripts of uncials- the Codex | +| the Bible --a form Sinaiticus; | +| fall into of majus- (3) Vel- | +| 3 groups: cule (large lum minis- | +| (1) Papyri, letter)-- cules, from | +| covering -of various the ninth | +| the period dates from century to | +| from the the fourth the inven- | +| third cen- to the tion | +| tury b.c. ninth cen- of print- | +| to the turies, be- ing, there | +| fourth cen- ginning are over | +| tury a.d. with the 4,000 manu- | +| Codex Vat- scripts. | +| | ++-----------------------------------------------------------------------------+ + +ã|\twocolumngutterã% is the distance between each column when you specify +\twocolumns. The gutter is the shaded area illustrated below: ++-----------------------------------------------------------------------------+ +| | +| Greek man- from the fourth | +| uscripts of the to the ninth | +| Bible fall into centuries, be- | +| 3 groups (1) Pa- ginning with the | +| pyri, covering Codex Vaticanus | +| the period from and the Codex | +| the third cen- Sinaiticus; (3) | +| tury b.c. to Vellum minis- | +| the fourth cen- cules, from the | +| tury a.d. (2) ninth century | +| Vellum uncials-- to the inven- | +| -a form of ma- tion of print- | +| juscule (large ing, there are | +| letter)--- well over 4,000 | +| of various dates manuscripts. | +| | ++-----------------------------------------------------------------------------+ + +ã|\threecolumngutterã% is the distance between each column when you specify +\threecolumns. Each gutter will be exactly the same width. The gutter is +the shaded area illustrated on the next page: ++-----------------------------------------------------------------------------+ +| | +| Greek manu- (2) Vellum icanus and | +| scripts of uncials- the Codex | +| the Bible --a form Sinaiticus; | +| fall into of majus- (3) Vel- | +| 3 groups: cule (large lum minis- | +| (1) Papyri, letter)-- cules, from | +| covering -of various the ninth | +| the period dates from century to | +| from the the fourth the inven- | +| third cen- to the tion | +| tury b.c. ninth cen- of print- | +| to the turies, be- ing, there | +| fourth cen- ginning are over | +| tury a.d. with the 4,000 manu- | +| Codex Vat- scripts. | +| | ++-----------------------------------------------------------------------------+ + +ã|\columnrulewidthã% when set to a non zero value will print a rule between +each column. + +ã|\skipbeforeã% is the distance between the one column text and the multiple +column text when you are using the flexible method of setting multiple +columns. The skip is ignored if you are using \fixedformat. + +ã|\skipafterã% is the distance between the multiple column text and the one +column text when you are using the flexible method of setting multiple +columns. The skip is ignored if you are using \fixedformat. + + ã|Example:ã% +You can also specify the column widths in units of measure, instead of a +percentage of the \galleywidth. + + \multicolumnformat{ + \twocolumnwidth{10pc} + \twocolumngutter{3pc} + \columnrulewidth{.25pt} + + \skipbefore{6pt plus3pt minus2pt} + \skipafter{6pt plus3pt minus2pt}} + + \twocolumns + Greek manuscripts of the Bible fall into 3 groups + (1) {\it Papyri}, covering the period from the third century + {\caps b.c} to the fourth century {\caps a.d}. + (2) {\it Vellum uncials}---a form of majuscule (large + letter)---of various dates from the fourth to the ninth + centuries, beginning with the {\it Codex Vaticanus} and + the {\it Codex Sinaiticus}; + (3) {\it Vellum miniscules}, from the ninth century to + the invention of printing, there are well over + 4,000 manuscripts. + \onecolumn + ++-----------------------------------------------------------------------------+ +| | +| Greek manu- . from the fourth | +| scripts of the . to the ninth | +| Bible fall into . centuries, be- | +| 3 groups (1) Pa- . ginning with the | +| pyri, covering . Codex Vaticanus | +| the period from . and the Codex | +| the third cen- . Sinaiticus; (3) | +| tury b.c. to . Vellum minis- | +| the fourth cen- . cules, from the | +| tury a.d. (2) . ninth century | +| Vellum uncials-- . to the inven- | +| -a form of ma- . tion of print- | +| juscule (large . ing, there are | +| letter)--- . well over 4,000 | +| of various dates . manuscripts. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% + +The rule between the columns will not print as long as the column rule width +is zero. + The skip before and skip after are ignored in the optional fixed column +method. The fixed column format (\fixedformat) always fills the remainder +of the current page with white space and changes to the new format on the +following page. Columns may not be balanced in \fixedformat. + The \newcolumn markup while in the flexible format estimates the +remaining space on the page at the time it is entered. If a footnote +or other insert is placed on the same page after the newcolumn markup the +length of the blank column cannot be estimated properly. In this case, +TEXT1 will issue a warning, + +overfull \vbox 12pt while \output active + +You can compensate for the footnote or insert by subtracting twice the +amount of the overfull box in two columns or three times this amount in +triple columns immediately before the newcolumn markup. For example, if the +box is overfull by 12 points and you are in two columns, enter, + +\advance\vsize by-24pt +\newcolumn +text + +or in three columns before a \newcolumn enter, + +\advance\vsize by-36pt +\newcolumn +text + +This reduces the height of the current page enough to allow space for the +insert. The height of each column must be reduced by the amount of the +overfull box warning, or twice the amount for two columns and three times +the amount for three columns. See The TEXbook for more on \advance. + If the newcolumn markup appears on the final page of the document it +may cause the balance columns routine to fail because one column is the +full height of the page. Do not change to \fixedformat after entering +\newcolumn. + + Certain line breaking penalties have been altered in the multiple column +formats. These penalties, in combination or separately, may cause a short +column if there are not a sufficient number of places specified to add extra +space, "glue." + + Single Column Penalties +\brokenpenalty=100 \clubpenalty=150 +\exhyphenpenalty=50 \hyphenpenalty=50 +\widowpenalty=150 \hbadness=1000 +\tolerance=200 + Two Columns Penalties +\brokenpenalty=0 \clubpenalty=0 +\exhyphenpenalty=0 \hyphenpenalty=0 +\widowpenalty=0 \hbadness=6400 +\tolerance=6400 + Three Columns Penalties +\brokenpenalty=0 \clubpenalty=0 +\exhyphenpenalty=0 \hyphenpenalty=0 +\widowpenalty=0 \hbadness=9600 +\tolerance=9600 + +The penalties may be reinstated in the multiple column formats by entering +each markup with a new value in the text stream immediately after the first +call for the double or triple column markup. Refer to The TEXbook for a +discussion of the above penalties. + When formatting multiple column text and other large formatting tasks, +the user may run into trouble by calling for so many format changes that +the available memory space is overrun. If this happens reduce the number +of markup used on the page that fails to format. The numbers enclosed in +angle brackets < 1 > < 2 > < 3 > show how many pages have been completed and +are printed on the terminal screen as each page is completed. If the macro +memory was exceeded when < 3 > was the last number in the sequence you would +know that the memory was exceeded while formatting page four. Your file +will not print with this error condition. + To find the point in your document that exceeded the memory use the +markup \bye at different places in your file. This markup stops text +processing. At the point \bye doesn't prevent the error condition you know +that you have passed page 4 where the error occurred. You may then examine +the markup before the \bye for possible elimination or find other markup +that will format properly without overrunning the memory. See The TEXbook +for more on \bye. + diff --git a/macros/text1/cms_help_files/memo.helpmode b/macros/text1/cms_help_files/memo.helpmode new file mode 100644 index 0000000000..e6362b8139 --- /dev/null +++ b/macros/text1/cms_help_files/memo.helpmode @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Models | ++-----------------------------------------------------------------------------+ + +Theã|MEMOã%model is a general memo model. It is a template. You may modify it, +but it is recommended you check with the Information Center first. diff --git a/macros/text1/cms_help_files/mi.helpmark b/macros/text1/cms_help_files/mi.helpmark new file mode 100644 index 0000000000..4e38e59993 --- /dev/null +++ b/macros/text1/cms_help_files/mi.helpmark @@ -0,0 +1,31 @@ ++-----------------------------------------------------------------------------+ +| mathitalic | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\miã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \mathitalic markup is a font change much the same as \roman or +\italic. The behavior of the math italic font is quite different from the +italic. For example, the sequence "This lengthy succession" will print +as "This lengthy succession" with \italic and "This lengthy succession with +\mathitalic. This markup is usually used in math mode. + + ã|Example:ã% + +Control sequences with {\it several +arguments} require even more {\mi precautions +than control sequences with one argument.} + ++-----------------------------------------------------------------------------+ +| | +| Control sequences with several arguments require even more precautions | +| than control sequences with one argument. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +\mathitalic does not honor interword spacing (the space between words) in a +sentence. diff --git a/macros/text1/cms_help_files/mn.helpmark b/macros/text1/cms_help_files/mn.helpmark new file mode 100644 index 0000000000..238c713a5d --- /dev/null +++ b/macros/text1/cms_help_files/mn.helpmark @@ -0,0 +1,30 @@ ++-----------------------------------------------------------------------------+ +| marginnote | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\mnã% + +Parameters: ã|note textã% + + ã|Description:ã% +Margin notes can be added to either the left or right side of a page with +the \marginnote markup. As the name indicates, margin notes are outside the +defined margin. They are produced, by default, right ragged in a 10 point +Computer Modern font in the left margin with a width of 60 points and a +gutter of 12 points. + + ã|Example:ã% +. . . a General Systems Theory of geological change. | +\marginnote{IV.7.4} +No theory, however, has unified diverse sciences of . . . ++-----------------------------------------------------------------------------+ +| | +| . . . a General Systems Theory of geological change. No theory, | +| however, has unified diverse sciences of . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Avoid using \marginnote with \monospace. + Refer to the description of the \marginnoteformat markup to find out how +to change the \marginnote defaults. diff --git a/macros/text1/cms_help_files/mnf.helpmark b/macros/text1/cms_help_files/mnf.helpmark new file mode 100644 index 0000000000..c6bc4061c5 --- /dev/null +++ b/macros/text1/cms_help_files/mnf.helpmark @@ -0,0 +1,53 @@ ++-----------------------------------------------------------------------------+ +| marginnoteformat | ++-----------------------------------------------------------------------------+ + +\marginnoteformat{\position{left} + \notewidth{54pt}} + \notegutter{6pt} + \everymarginnote{\tenpt\rr}} + +Abbreviation: ã|\mnfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\position, \notewidth, \notegutter, +\everymarginnoteã% + + ã|Description:ã% +The defaults for the \marginnote markup can be modified with +\marginnoteformat. + +ã|\positionã% by default places the margin note in the margin. You can have it +placed in the right margin by specifying: + +\marginnoteformat{right} + +ã|\notewidthã% is the width of the area in the margin used for printing the +margin note. + +ã|\notegutterã% is the width of the area between the margin note and the left +margin of the text. + +ã|\everymarginnote{Nested Markup}ã% can be vertical mode markup such as \right- +ragged, \leftragged, \justify, and font changes. + + ã|Example:ã% +Change the margin notes so they print in the right margin in a 7 point font +with a margin note width of 46 points. + +\sfs{cm7}{sevenpt}{default} +\marginnoteformat{\position{right} + \notewidth{46pt}} + \notegutter{1em} + \everymarginnote{\sevenpt\rm} } + +This chapter explains the fundamental steps in preparing +a file containing ordinary English text. Numerous +exercises have been interspersed throughout the +\marginnote{Well, there {\it will} be lots of exercises +eventually.} text, to clarify certain points, +or just to provide practice. + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/msp.helpmark b/macros/text1/cms_help_files/msp.helpmark new file mode 100644 index 0000000000..854d444579 --- /dev/null +++ b/macros/text1/cms_help_files/msp.helpmark @@ -0,0 +1,91 @@ ++-----------------------------------------------------------------------------+ +| monospace | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\mspã% + +Parameters: ã|noneã% + + ã|Description:ã% +Typestyles may be monospaced, where all letters are the same width, or +proportionally spaced, where letters are different widths. Typewriter +printers have only monospaced typestyles; Composing printers have both +styles available. The default typestyle for TEXT1 is Computer Modern, a +proportionally spaced typestyle for composing printers. It is not available +on typewriter printers. + The \monospace markup calls the monospaced font and adjusts many TEXT1 +block defaults to fit within the limitations of monospace. For example, +the amount of space before and after a block quote is increased to whole +baseline skips, instead of half (monospace only deals with whole lines). +References for footnotes are placed on the baseline instead of superscripted +(which is not available in monospace). + + If you specify \italic and you are using \monospace, you will get +underscores instead of italics, since most typewriter printers do not have +italics. + + ã|Example:ã% + +\monospace +As long as human institutions were large and brittle, +war was an effective way of disassembling them. +The intellectual rationalization for the continual +preparation for war is the old Roman adage: +{\it If you want peace, prepare for war.} + ++-----------------------------------------------------------------------------+ +| | +| As long as human institutions were large and brittle, war was an | +| effective way of disassembling them. The intellectual rationalization for | +| the continual preparation for war is the old Roman adage: If you want | +| peace, prepare for war. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Specify the \monospace markup only once. It should be the first markup in +your file. + The markup the \monospace modifies, and their new defaults are as +follows: + + * The font for the table of contents will print with \roman. + + * \raggedbottom is "on" instead of \normalbottom. + + * \paragraphskip is set to "0pt". + + * \paragraphindent is set to "36pt". + + * The \skipbefore and \skipafter for \asisformat is set to "1\bl" instead + of 6 points. + + * The \skipbefore and \skipafter for \blockquoteformat is set to "1\bl" + instead of 6 points; the text is indented 36 points instead of 24 + points; the text is printed in monospace roman instead of 10 point + Computer Modern roman. + + * Figure titles are printed monospace bold instead of 10 point Computer + Modern bold. + + * Table titles are printed in monospace bold instead of Computer Modern + 12 point bold. + + * Endnotes are printed with no extra space, except paragraph skip, + between notes instead of 4 points as is the non \monospace default; The + note is printed in monospace roman instead of Computer Modern 10 point; + The text of the note is not indented, instead of the default 1.2em + indentation. + + * Autofootnotes are printed down instead of superscripted; Their style is + "(1)" instead of "1" in monospace roman instead of Computer Modern 10 + point; At the bottom of the page the note carries a paragraph indent of + 20 points instead of .5in. + + * Heading markup, such as \part, \chapter, \subheada, etc. are printed + in monospace instead of Computer Modern 12 point. + + * The running head is defined to use monospace instead of Computer Modern + 12 point. + +If you want to change any of the defaults for the above mentioned markup, +they must come after the \monospace markup. diff --git a/macros/text1/cms_help_files/multicol.helpbloc b/macros/text1/cms_help_files/multicol.helpbloc new file mode 100644 index 0000000000..88473bcd09 --- /dev/null +++ b/macros/text1/cms_help_files/multicol.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|MULTICOLã%block is to be selected if you want to modify the +\multicolumnformat for 2 or 3 columns. diff --git a/macros/text1/cms_help_files/nc.helpmark b/macros/text1/cms_help_files/nc.helpmark new file mode 100644 index 0000000000..c8463b8ade --- /dev/null +++ b/macros/text1/cms_help_files/nc.helpmark @@ -0,0 +1,49 @@ ++-----------------------------------------------------------------------------+ +| newcolumn | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ncã% + +Parameters: ã|noneã% + + ã|Description:ã% +When using \twocolumns or \threecolumns, there may be times when an author +wants to force TEXT1 to break a column at a point other than at the bottom +of a page. This can be done by entering the \newcolumn markup. Any +column in the double or triple column formats can be broken by inserting the +\newcolumn (\nc) markup. + + ã|Example:ã% +This was accomplished by entering the \newcolumn markup between the desired +list entries while in \twocolumns + +\twocolumns +\hangingparagraph + +Ehrlich, P. et al. 1984. {\it Cold and the Dark}. +New York: W.~Norton. +\hangingparagraph +Osborn, E. 1962. (personal message). +\newcolumn +\hangingparagraph +Roszak, T. 1972. {\it Where the Wasteland Ends}. +New York: Harper & Row. ++-----------------------------------------------------------------------------+ +| | +| Ehrlich, P. et Roszak, T. 1972. | +| al. 1984. Where | +| Cold and the the Wasteland | +| Dark. New Ends. New | +| York: York: Harper | +| W. Norton. & Row. | +| Osborn, E. 1962. | +| (personal | +| message). | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +This markup has the same effect as \newpage if you are in a printing in one +column instead of multiple columns. + If you are in multiple columns and you want to go to the next page, use +\newpage instead of \newcolumn. diff --git a/macros/text1/cms_help_files/nin.helpmark b/macros/text1/cms_help_files/nin.helpmark new file mode 100644 index 0000000000..52e0ac3f16 --- /dev/null +++ b/macros/text1/cms_help_files/nin.helpmark @@ -0,0 +1,46 @@ ++-----------------------------------------------------------------------------+ +| noindent | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ninã% + +Parameters: ã|noneã% + + ã|Description:ã% +Paragraph indentation can be suspended for the following paragraph by +placing a \noindent markup at the beginning of the first line. A paragraph +following a block quote or following a title is often not indented. + + ã|Example:ã% + +\lib +\lil1 the economic advantages of large-scale operations +(as shown in industrial applications) +\listlevel2 armaments (in the form of tanks, bombers, +weapons and troop carriers, and personnel vehicles) +\listlevel2 military forces (the troops and support + +personnel necessary to impose policy by force) +\listend +\noindent +The cultures of industrial nations are based on +accumulations of materials. +\par +Questions about defining . . . + ++-----------------------------------------------------------------------------+ +| | +| 1. the economic advantages of large-scale operations (as shown in | +| industrial applications) | +| a. armaments (in the form of tanks, bombers, weapons and troop | +| carriers, and personnel vehicles) | +| b. military forces (the troops and support personnel necessary to | +| impose policy by force) | +| The cultures of industrial nations are based on accumulations of | +| materials. | +| Questions about defining . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Refer to The TEXbook for more on this markup. diff --git a/macros/text1/cms_help_files/nobreak.helpmark b/macros/text1/cms_help_files/nobreak.helpmark new file mode 100644 index 0000000000..078a6418fc --- /dev/null +++ b/macros/text1/cms_help_files/nobreak.helpmark @@ -0,0 +1,39 @@ ++-----------------------------------------------------------------------------+ +| nobreak | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +You can discourage TEXT1 from breaking a page at a certain point by using +\nobreak. It should be preceded either by a \verticalspace or a \paragraph. + + ã|Example:ã% +This example tells TEXT1 to keep the title "Leached Samples" on the same +page as "Table 6 gives . . . ". + +\cl{\bd Leached Samples} +\vs{\bl} +\nobreak +Table 6 gives the compositions of the leached +samples as reported by x-ray fluorescence analysis + +(XRF). Using silica content as an internal standard, +the relative amounts of each element removed can be +calculated. These too are shown in Table 6. + ++-----------------------------------------------------------------------------+ +| | +| Leached Sample | +| | +| Table 6 gives the compositions of the leached samples as reported by | +| x-ray fluorescence analysis (XRF). Using silica content as an internal | +| standard, the relative amounts of each element removed can be calculated. | +| These too are shown in Table 6. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Refer to The TEXbook for more on this markup. diff --git a/macros/text1/cms_help_files/nonfrenc.helpmark b/macros/text1/cms_help_files/nonfrenc.helpmark new file mode 100644 index 0000000000..73157c7f9f --- /dev/null +++ b/macros/text1/cms_help_files/nonfrenc.helpmark @@ -0,0 +1,45 @@ ++-----------------------------------------------------------------------------+ +| nonfrenchspacing | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +By default, TEXT1 will double space after punctuation, unless the letter +prior to the punctuation is a capital letter. To make all interword spacing +the same, regardless of punctuation, you can enter the \frenchspacing +markup. This will turn off the extra spacing following punctuation for the +rest of a document or until TEXT1 sees a \nonfrenchspacing markup. + + ã|Example:ã% +If you had specified \nonfrenchspacing to turn off french spacing, + +\nonfrenchspacing +\bibentry + +Grabens, Gruss M. 1970. {\it Mechanical Processes +in the Human Geomechanism}. Winston: Geomedical +Publications, International. + +it might print as: + ++-----------------------------------------------------------------------------+ +| | +| Grabens, Gruss M. 1970. Mechanical Processes in the Human Geomechanism. | +| Winston: Geomedical Publications, International. | +| | ++-----------------------------------------------------------------------------+ + +Compare this to the same bibliography entry printed with \frenchspacing: + ++-----------------------------------------------------------------------------+ +| | +| Grabens, Gruss M. 1970. Mechanical Processes in the Human Geomechanism. | +| Winston: Geomedical Publications, International. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/np.helpmark b/macros/text1/cms_help_files/np.helpmark new file mode 100644 index 0000000000..ee4040fd74 --- /dev/null +++ b/macros/text1/cms_help_files/np.helpmark @@ -0,0 +1,36 @@ ++-----------------------------------------------------------------------------+ +| newpage | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\npã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \newpage markup stops formatting the current page, leaving the remainder +blank (footnotes or bottom titles will print as expected), and starts a new +page with the text following the markup. + + ã|Example:ã% +The following example would print "Bibliography" at the top of the next +page. + +The rock should be left at the bottom, because of +the inevitability of entropic direction. +\par + +\newpage +\centerline{\bd Bibliography} +\hp +Grabens, G. 1970. {\it Mechanical Processes in +the Human Geomechanism}. Winston: Geomedical +Publications International. +\hp +Illite, I. 1911. "Picking the Philosopher's +Stone." {\it Mining Truth}. 11:455--601. + + ã|Notes:ã% +If you are in \twocolumns and you specify \newpage while in the first +column, the second column will be left blank. If you are in \threecolumns +and you specify \newpage while in the first column, the second and third +columns will be left blank. diff --git a/macros/text1/cms_help_files/ntp.helpmark b/macros/text1/cms_help_files/ntp.helpmark new file mode 100644 index 0000000000..7a6c62959f --- /dev/null +++ b/macros/text1/cms_help_files/ntp.helpmark @@ -0,0 +1,47 @@ ++-----------------------------------------------------------------------------+ +| notitlepage | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ntpã% + +Parameters: ã|noneã% + + ã|Description:ã% +By default, you always get a title page as the first page of your document. +If you want running titles on the first page, put the \notitlepage markup at +the top of the source. Then the first line of the \runningheadformat will +be the first line to appear at the top of the first and subsequent pages. + + ã|Example:ã% + +\rhf{\bothpages{\line{\ctr{\today}}}} +\notitlepage +\rightlinesbegin +J.R. Bays + +P.O. Box 2021 CS +Pullman, WA 99163 +\rightlinesend +\vs{2\bl} +\centerline{\bd Nuclear Utopia} +\vs{2\bl} +Nuclear war is unthinkable. +Limited disarmament is unworkable. +Environmental degradation is unconscionable. + ++-----------------------------------------------------------------------------+ +| | +| January 13, 1987 | +| | +| J.R. Bays | +| P.O. Box 2021 CS | +| Pullman, WA 99163 | +| | +| | +| Nuclear Utopia | +| | +| | +| Nuclear war is unthinkable. Limited disarmament is unworkable. | +| Environmental degradation is unconscionable. | +| | ++-----------------------------------------------------------------------------+ diff --git a/macros/text1/cms_help_files/numl.helpmark b/macros/text1/cms_help_files/numl.helpmark new file mode 100644 index 0000000000..a71e31704a --- /dev/null +++ b/macros/text1/cms_help_files/numl.helpmark @@ -0,0 +1,20 @@ ++-----------------------------------------------------------------------------+ +| numberinglines | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\numlã% + +Parameters: ã|statusã% + + ã|Description:ã% +This markup is used to start numbering lines for line numbering in the +margin of a document. Status is true or false. + + ã|Example:ã% +To start line numbering you enter + +\numberinglines{true} + + ã|Notes:ã% +Line numbering is only available on the phototypesetter. This markup is +ignored for all other printers. diff --git a/macros/text1/cms_help_files/oc.helpmark b/macros/text1/cms_help_files/oc.helpmark new file mode 100644 index 0000000000..0b3e8cdf0b --- /dev/null +++ b/macros/text1/cms_help_files/oc.helpmark @@ -0,0 +1,52 @@ ++-----------------------------------------------------------------------------+ +| onecolumn | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ocã% + +Parameters: ã|noneã% + + ã|Description:ã% +If you have specified \twocolumns or \threecolumns, single column text can +be formatted again by entering the \onecolumn markup. For example, if an +author wants to change from a single column to two columns he enters the +\twocolumns markup where the two column text begins and \onecolumn or \oc +markup where the single column text begins again. + + ã|Example:ã% +The \twocolumns markup places the bullets in two columns. And \onecolumn +returns text to a single column. + +\twocolumns\listbegin +\bul {\it Russia} in Eastern Europe (and in + +South America and the Caribbean) +\nc +\bul {\it China} in Tibet (and most lately in Southeast +Asia---Campuchea, and Vietnam) +\listend +\onecolumn +\noindent +Countries have tried to dominate each other +economically and militarily for thousands of years. +Reasons for this continued behavior include . . . + ++-----------------------------------------------------------------------------+ +| | +| * Russia in * China in Ti- | +| Eastern Eu- bet (and | +| rope (and in most lately | +| South Amer- in South- | +| ica and the east Asia--- | +| Caribbean) Campuchea, | +| and Vietnam) | +| | +| Countries have tried to dominate each other economically and militarily | +| for thousands of years. Reasons for this continued behavior include | +| . . . | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +\onecolumn has no effect if you are already in one column. + If you are in \fixedformat, \onecolumn will do a \newpage before +starting one column formatting. diff --git a/macros/text1/cms_help_files/opm.helpmark b/macros/text1/cms_help_files/opm.helpmark new file mode 100644 index 0000000000..657fa0e915 --- /dev/null +++ b/macros/text1/cms_help_files/opm.helpmark @@ -0,0 +1,24 @@ ++-----------------------------------------------------------------------------+ +| oddpagemargin | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\opmã% + +Parameters: ã|measurementã% + + ã|Description:ã% +This markup is used to indicate where a document's line numbering is to be +printed on odd numbered pages. The default is 407.7 points from the left +edge of the paper on odd pages. + + ã|Example:ã% +To indicate that you want line numbering to start at 1 inch from the left +edge, you would enter at the beginning of your document: + +\oddpagemargin{1in} + + ã|Notes:ã% +Line numbering is only available on the phototypesetter. This markup is +ignored for all other printers. + Valid values for \oddpagemargin are 0 to 2 to the power of 32 points, +practical values are 5 to 860 points. diff --git a/macros/text1/cms_help_files/paf.helpmark b/macros/text1/cms_help_files/paf.helpmark new file mode 100644 index 0000000000..851a5e290e --- /dev/null +++ b/macros/text1/cms_help_files/paf.helpmark @@ -0,0 +1,67 @@ ++-----------------------------------------------------------------------------+ +| partformat | ++-----------------------------------------------------------------------------+ + +\partformat{\numberingstyle{1} + \titleformat{\dumpinsertseject\titlepage + \hrule height 0pt depth 0pt + \vfil + \centerline{\twelvept\bd + Part \partnumber} + \centerline{\twelvept\bd \parttitle} + \setchapternumber{0} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + \setfootnotenumber{0} + \setendnotenumber{0} + \setfigurenumber{0} + \settablenumber{0} + } + + \incontents{yes} + } + +Abbreviation: ã|\pafã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\numberingstyle, \titleformat, \incontentsã% + + ã|Description:ã% +The \partformat markup allows you to modify the defaults that control the +appearance of the part title. Following are the submarkup descriptions. + +ã|numberingstyleã% allows you to change the style from Arabic numerals, the +default (1), to capital letters (A) or roman numerals (I). If you wanted +your parts in roman numerals, you would specify: + +\partformat{\numberingstyle{I}} + +ã|titleformatã% controls the appearance of the part title banner. You may +use markup such as \newpage, \dumpinsertseject \verticalspace, and \center- +line within \titleformat as Nested Markup. Other markup you may use within +or outside of \partformat: + ã|partnumber.ã% prints the most recent part number. + ã|parttitle.ã% prints the most recent part title. + ã|hrule height 0pt depth 0pt.ã% is used to create a half title page +along with \vfil. + +ã|incontentsã% places the part title in contents (if one is printed). +Printing can be suppressed by changing to "no." + + ã|Example:ã% +This example does not create a half title page. Instead the part starts a +new page, centers the title bold, and one line is skipped afterwards before +printing the text of the part. + +\partformat{\titleformat{\newpage + \cl{\bd \parttitle} + + \vs{1\bl} + }} + + ã|Notes:ã% +The \partformat markup must come after the \monospace markup, if both are +used. See The TEXbook for more on \vfil. diff --git a/macros/text1/cms_help_files/pagem.helpbloc b/macros/text1/cms_help_files/pagem.helpbloc new file mode 100644 index 0000000000..9e08994304 --- /dev/null +++ b/macros/text1/cms_help_files/pagem.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|PAGE-Mã%block is to be selected if you want to modify the +\pageformat, page dimensions and margins for this \monospace job. diff --git a/macros/text1/cms_help_files/pagep.helpbloc b/macros/text1/cms_help_files/pagep.helpbloc new file mode 100644 index 0000000000..7b17e6276d --- /dev/null +++ b/macros/text1/cms_help_files/pagep.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|PAGE-Pã%block is to be selected if you want to modify the +\pageformat, page dimensions and margins for thisã|nonã%\monospace job. diff --git a/macros/text1/cms_help_files/paper.helpmode b/macros/text1/cms_help_files/paper.helpmode new file mode 100644 index 0000000000..51c7b221ef --- /dev/null +++ b/macros/text1/cms_help_files/paper.helpmode @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Models | ++-----------------------------------------------------------------------------+ + +Theã|PAPERã%model is a general paper model. It is a template. You may modify +it, but it is recommended you check with the Information Center first. diff --git a/macros/text1/cms_help_files/par.helpmark b/macros/text1/cms_help_files/par.helpmark new file mode 100644 index 0000000000..1a4a9c500f --- /dev/null +++ b/macros/text1/cms_help_files/par.helpmark @@ -0,0 +1,81 @@ ++-----------------------------------------------------------------------------+ +| paragraph | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\parã% + +Parameters: ã|noneã% + + ã|Description:ã% +A paragraph is a composition consisting of a group of sentences dealing with +a single topic. A paragraph is commonly indicated by beginning on a new +line and indenting the first line. + The TEXT1 program is paragraph-oriented, that is, it reads an entire +paragraph before breaking it into lines. Because TEXT1 reads by paragraphs, +the \paragraph markup comes at the end of a paragraph, instead of the +beginning. Thus, to end a paragraph, enter the \paragraph markup (or a +blank line) on the last line of text or on a line by itself, which makes it +easier to spot paragraphs in the source. + + ã|Example:ã% +This sample shows the relation of text to markup. + +\psk{5pt}\pin{10pt} +I raised it in order to characterize the +essence of Sociogeology. Will Durant recognized that +civilization existed by consent of geology---subject +to change without notice. +\paragraph +The definition of Sociogeology is the study of the +geological basis of all social behavior. +It explains human behavior by empirical description +of the attributes of mineral composition. +It is most successful when it provides detailed +description of particulate phenomena and first-order +correlations with features of the physical +environment. + +One of its primary functions is to reformulate the +shaky foundations of social sciences in a way that +draws them into a modern synthesis with the hard +sciences. + +\par +This article is an outline of the codification of +Sociogeology into a branch of evolutionary geology. +The subject has an aggregate of self-sufficient . . . ++-----------------------------------------------------------------------------+ + +| | +| I raised it in order to characterize the essence of Sociogeology. Will | +| Durant recognized that civilization existed by consent of geology--- | +| subject to change without notice. | +| The definition of Sociogeology is the study of the geological basis of | +| all social behavior. It explains human behavior by empirical description | +| of the attributes of mineral composition. It is most successful when | +| it provides detailed description of particulate phenomena and first-order | +| correlations with features of the physical environment. | +| | +| One of its primary functions is to reformulate the shaky foundations of | +| social sciences in a way that draws them into a modern synthesis with the | +| hard sciences. | +| This article is an outline of the codification of Sociogeology into | +| a branch of evolutionary geology. The subject has an aggregate of | +| self-sufficient . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +A blank line also ends a paragraph. For this reason, blank lines may be +used in place of \paragraph markup. + Paragraphs are not permitted in math mode; they cause errors. Blank +lines will also cause errors in math mode. + The distance between paragraphs is determined by the \par- +agraphskip markup. The default value for \paragraphskip is +"0 points plus 3 points minus 0 points". The "plus/minus" specification +allows up to 3 additional points to be added between paragraphs to get the +bottom of each page to line up properly is you are using \normalbottom. + The indent at the beginning of each paragraph is determined by the +\paragraphindent markup. The default value for indentation is 24 points. + For a complete discussion of how paragraphs are read in and formatted, +refer to The TEXbook. diff --git a/macros/text1/cms_help_files/parm.helpbloc b/macros/text1/cms_help_files/parm.helpbloc new file mode 100644 index 0000000000..4164a4a16a --- /dev/null +++ b/macros/text1/cms_help_files/parm.helpbloc @@ -0,0 +1,8 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|PAR-Mã%block is to be selected if you want to modify +\paragraphindent, \paragraphskip, \justify, or \hypenon. +The defaults given are for \monospace jobs. diff --git a/macros/text1/cms_help_files/parp.helpbloc b/macros/text1/cms_help_files/parp.helpbloc new file mode 100644 index 0000000000..d3d2f1de79 --- /dev/null +++ b/macros/text1/cms_help_files/parp.helpbloc @@ -0,0 +1,8 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|PAR-Pã%block is to be selected if you want to modify +\paragraphindent, \paragraphskip, \justify, or \hypenon. +The defaults given areã|notã%for \monospace jobs. diff --git a/macros/text1/cms_help_files/part.helpbloc b/macros/text1/cms_help_files/part.helpbloc new file mode 100644 index 0000000000..771ae0c672 --- /dev/null +++ b/macros/text1/cms_help_files/part.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|PARTã%block is to be selected if you want to modify the +\partformat. diff --git a/macros/text1/cms_help_files/part.helpmark b/macros/text1/cms_help_files/part.helpmark new file mode 100644 index 0000000000..eee751234e --- /dev/null +++ b/macros/text1/cms_help_files/part.helpmark @@ -0,0 +1,32 @@ ++-----------------------------------------------------------------------------+ +| part | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|titleã% + + ã|Description:ã% +The \part markup starts a new page, centers the title in 12 point Computer +Modern bold, and enters the title in the table of contents. Furthermore, +the \part markup places the part title in the center of a blank page (called +a half-title page). Parts are numbered. Each heading markup can be used as +often as necessary. + + ã|Example:ã% +This example would print the title "Human Sciences" on a half title page, +then skip to a new page where it begins the paragraph "Humanity is still + . . ." + +in order. + +\part{Human Sciences} +\newpage +Humanity is still the measure of . . . + + ã|Notes:ã% +To change how a part looks, use the \partformat markup. + If you are using \monospace, the part title is printed in monospace bold +instead of Computer Modern 12 point bold. + Each time you enter \part, the chapter number and subhead numbers are +reset to zero. diff --git a/macros/text1/cms_help_files/pb.helpmark b/macros/text1/cms_help_files/pb.helpmark new file mode 100644 index 0000000000..629dae4e29 --- /dev/null +++ b/macros/text1/cms_help_files/pb.helpmark @@ -0,0 +1,47 @@ ++-----------------------------------------------------------------------------+ +| paragraphbox | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\pbã% + +Parameters: ã|textã% + + ã|Description:ã% +Whole paragraphs can be put into a \drawbox if you use \vbox with the +\drawbox. The resulting box will extend into the left and right margins by +the sum of the \drawboxmat and \drawboxrulesize. If you use \paragraphbox{ +| . . } instead of \drawbox{\vbox{ . . . }}, the paragraph size is reduced | +such that the box will fit within the current margins. + + ã|Example:ã% +This illustrates the difference between a paragraph boxed with \paragraphbox +and \drawbox. + + \paragraphbox{{\it The Journal of Nonrepeating + Results} is published by the Center for Unpleasant + + Phenomena, at Palouse, Washington. The copyrights for + articles are assigned to and held by the authors.} + \drawbox{\vbox{The Center for Unpleasant Phenomena + is the research arm of Giga Geologicals, Inc. No apologies + are tendered for the nonverifiability of experiments. + The opinions of the authors do not reflect company policy.}} + ++-----------------------------------------------------------------------------+ +| |. +| ........................................................................... |. +| . The Journal of Nonrepeating Results is published by the Center |. +| . for Unpleasant Phenomena, at Palouse, Washington. The copyrights for |. +| . articles are assigned to and held by the authors. |. +| ........................................................................... |. +| . The Center for Unpleasant Phenomena is the research arm of Gig |. +| . Geologicals, Inc. No apologies are tendered for the nonverifiability o |. +| . experiments. The opinions of the authors do not reflect company policy. |. +| ........................................................................... |. +| |. ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Do not use this markup if you are using \monospace. + Do not use \paragraphbox around more than one page of formatted +material. diff --git a/macros/text1/cms_help_files/pen.helpmark b/macros/text1/cms_help_files/pen.helpmark new file mode 100644 index 0000000000..7c2523f3cd --- /dev/null +++ b/macros/text1/cms_help_files/pen.helpmark @@ -0,0 +1,42 @@ ++-----------------------------------------------------------------------------+ +| printendnotes | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\penã% + +Parameters: ã|noneã% + + ã|Description:ã% +To print the endnotes accumulated with the \autoendnote markup, use the +\printendnotes markup. + + ã|Example:ã% +To start a new page, center a title (such as "Notes"), and dump the +endnotes, enter: + +There is a well-marked division of +labor.\autoendnote{Such as it is. Things could be +different in the geological world, but they are not.} +Details of organization have evolved by an +optimization process. . . . +\newpage +\titlepage +\cl{\bd Notes} +\vs{\bl} +\printendnotes + ++-----------------------------------------------------------------------------+ +| | +| Notes | +| | +| 1. Such as it is. Things could be different in the geological world, but | +| they are not. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \printendnotes markup does not print the title "Note". It may be used +more than once in a paper; for example, you may want to print all endnotes +within a chapter at the end of the chapter rather than at the end of the +entire paper. The \printendnotes markup prints all endnotes accumulated up +to that point. diff --git a/macros/text1/cms_help_files/pf.helpmark b/macros/text1/cms_help_files/pf.helpmark new file mode 100644 index 0000000000..a49a225f25 --- /dev/null +++ b/macros/text1/cms_help_files/pf.helpmark @@ -0,0 +1,83 @@ ++-----------------------------------------------------------------------------+ +| pageformat | ++-----------------------------------------------------------------------------+ + +\pageformat{\pagelength{11in} + \pagewidth{8.5in} + \topmargin{1in} + \bottommargin{1in} + \leftmargin{1.2in} + \rightmargin{1in} + \bindingadjust{0pt} + } + +Abbreviation: ã|\pfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\pagelength, \pagewidth, \topmargin, +\bottommargin, \leftmargin, \rightmargin, \bindingadjust, +\galleywidthã% + + ã|Description:ã% +The \pageformat markup specifies the page size and margins. The dimensions +and margins for the pages of a document are set with page formatting markup. +These submarkup are valid only within the \pageformat markup. Its seven +submarkup are described below. + +ã|pagelengthã% specifies the length of the page to be used. The default +page length, 11 inches is maximum for most printers. + +ã|pagewidthã% specifies the width of the page to be used. The default +page width, 8.5 inches, is maximum for most printers. The \pagewidth +and \rightmargin submarkup may optionally be replaced with the \galleywidth +submarkup. + +ã|topmarginã% sets the distance from the top of the paper to the first line +of text, excluding the top title(s). The default value is 1 inch. + +ã|bottommarginã% sets the distance from the bottom of the paper to the last +line of the text, excluding the bottom title(s). The default value is 1 +inch. + +ã|leftmarginã% sets the distance from the left edge of the page to the left +edge of the text. The default value is 1.2 inches. + +ã|rightmarginã% sets the distance from the right edge of the page to the +right edge of the text. The default value is 1 inch. The \pagewidth +and \rightmargin submarkup may optionally be replaced with the \galleywidth +submarkup. + +ã|bindingadjustã% is used to offset left and right margins, which is useful +for duplex printing (on both sides). The value given the \bindingadjust +submarkup will increase the left margin on odd pages and decrease the left +margin on even pages. The page text width is not shortened, only the +margin. The default value is {0pt}. + +ã|galleywidthã% may be substituted for \pagewidth and \rightmargin to +determine the width of the text. The \galleywidth has the same dimension +as \hsize. You cannot use \galleywidth in the same fashion, however, as +\hsize. + + ã|Example:ã% +This custom source has 90 point (1 1/4inch) left and right margins. + +\pageformat{\leftmargin{90pt} + \rightmargin{90pt}} + + ã|Example:ã% +This custom source sets up a 9 inch by 6 inch page size. The margins have +been decreased accordingly. A binding adjust value has been added. + +\pageformat{\pagelength{9in} + \topmargin{.5in} + \bottommargin{.5in} + + \leftmargin{.6in} + \galleywidth{4.9in} + \bindingadjust{.2in} + } + + ã|Notes:ã% +Do note include \pagewidth and \rightmargin in the \pageformat markup if you +use the \galleywidth submarkup. diff --git a/macros/text1/cms_help_files/pic.helpmark b/macros/text1/cms_help_files/pic.helpmark new file mode 100644 index 0000000000..c387a6fc35 --- /dev/null +++ b/macros/text1/cms_help_files/pic.helpmark @@ -0,0 +1,97 @@ ++-----------------------------------------------------------------------------+ +| putincontents | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\picnã% + +Parameters: ã|text and markupã% + + ã|Description:ã% +Major headings and the first two levels of subheadings are automatically +placed in a table of contents (if one is called). Any heading, text, or +markup can be put in the table of contents using the \putincontents markup +(abbreviated \pic). + This markup has one parameter, but that parameter can be either markup +to manipulate the table of contents itself or the text, usually a heading, +to be put in the contents. Note that in the example the page number and dot +leadering to separate it from the text were both included. + There are three levels of contents: the first (\pic1) puts text and/or +markup into the primary table of contents; \pic2 puts text and/or markup +into the list of figures; \pic3 puts text and/or markup into the list of +tables. + + Refer to the example on the next page. + + ã|Example:ã% +To create an Abstract that conforms to the Washington State University +graduate school's thesis requirements and print the abstract title in the +table of contents, enter: + +\newpage +\putincontents1{ABSTRACT\leader\pagenumber\par} +\doublespace +\vsk{6\bl} +\centerlinesbegin +\bd EFFECTIVENESS OF PRISM TRAINING +ON THE IMPROVEMENT OF READING +AT THE FIFTH GRADE LEVEL +ABSTRACT +\singlespace +\vs{2\bl} +\rm by Ray Elmer Brown, Ph.D. +Washington State University, 1979 +\vs{1\bl} + +\centerlinesend +\nin Chairman: Lloyd B. Johnson +\vs{1\bl} +The text of the abstract follows at this point . . . + +\pic2{LIST OF FIGURES\leader vi} +\pic3{LIST OF TABLES\leader viii} +\setpagenumber{0} +\chapter{Introduction} + +(Note, single spacing will return to double spacing after the +\centerlinesend markup, since it acts as a delimiter with +\centerlinesbegin.) + +The abstract would print as: + ++-----------------------------------------------------------------------------+ +| | +| iv | +| | +| | +| EFFECTIVENESS OF PRISM TRAINING | +| ON THE IMPROVEMENT OF READING | +| AT THE FIFTH GRADE LEVEL | +| ABSTRACT | +| | +| | +| by Ray Elmer Brown, Ph.D. | +| Washington State University, 1979 | +| | +| Chairman: Lloyd B. Johnson | +| | +| The text of the abstract follows at this point . . . | +| | ++-----------------------------------------------------------------------------+ + +The table of contents generated would contain: + ++-----------------------------------------------------------------------------+ +| | +| ACKNOWLEDGEMENTS... . ... ... . ...... . ... ... . ...... . ... iii | +| ABSTRACT. . . .... . . ...... . . .... . . ...... . . .... . . .....iv | +| List of Figures ... . ... ... . ...... . ... ... . ...... . ... .vi | +| List of Tables .... . .. .. .. . ...... . .. .. .. . ...... . .. . viii | +| Introduction .. ... . ...... . ... ... . ...... . ... ... . ..... 1 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Notice in the sample source file illustrated on the previous page that the +List of Figure's and List of Table's page numbers were manually put into the +\putincontents markup. This is the only way to have these placed into the +table of contents. diff --git a/macros/text1/cms_help_files/pin.helpmark b/macros/text1/cms_help_files/pin.helpmark new file mode 100644 index 0000000000..cb2aca4f66 --- /dev/null +++ b/macros/text1/cms_help_files/pin.helpmark @@ -0,0 +1,46 @@ ++-----------------------------------------------------------------------------+ +| paragraphindent | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\pinã% + +Parameters: ã|indentã% + + ã|Description:ã% +Throughout an entire document, paragraphs have 24 points indentation on the +first line of each paragraph. This value may be changed by modifying the +default with \paragraphindent. All following paragraphs will then exhibit +the new indent. + + ã|Example:ã% +The first paragraph indent has been set to 14 points for comparison with the +second paragraph which has a \paragraphindent of 24 points. + +\paragraphindent{14pt} +{\it The Journal of Nonrepeating + +Results} is published by the Center for Unpleasant +Phenomena, at Palouse, Washington. The copyrights for +articles are assigned to and held by the authors. +\par +\pin{24pt} +The Center for Unpleasant Phenomena is the research arm +of Giga Geologicals, Inc. +No apologies are tendered for the nonverifiability of +experiments. The opinions of the authors do not reflect +company policy. + ++-----------------------------------------------------------------------------+ +| | +| The Journal of Nonrepeating Results is published by the Center for | +| Unpleasant Phenomena, at Palouse, Washington. The copyrights for articles | +| are assigned to and held by the authors. | +| The Center for Unpleasant Phenomena is the research arm of Giga | +| Geologicals, Inc. No apologies are tendered for the nonverifiability of | +| experiments. The opinions of the authors do not reflect company policy. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +If you are using \monospace, it is best to define the indent in tenths of an +inch or in em's. diff --git a/macros/text1/cms_help_files/plaintex.helpmark b/macros/text1/cms_help_files/plaintex.helpmark new file mode 100644 index 0000000000..9115410ad1 --- /dev/null +++ b/macros/text1/cms_help_files/plaintex.helpmark @@ -0,0 +1,28 @@ ++-----------------------------------------------------------------------------+ +| plaintexmathon | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +This markup can be used to make the dollar sign ($) the valid math mode +indicator as is used in PLAIN TEX instead of the TEXT1 math mode indicator, +the at sign (@). + + ã|Example:ã% + +\plaintexmathon +$x+y=100$ + + ã|Notes:ã% + +Do not use this markup with \monospace. + If used, it should be specified at the top of your document. You will +need to use the TEX \catcode markup to change back to using the at sign as +the math mode indicator: + +\catcode'44=12 + +For more on the \catcode markup, refer to The TEXbook. diff --git a/macros/text1/cms_help_files/pn.helpmark b/macros/text1/cms_help_files/pn.helpmark new file mode 100644 index 0000000000..9cba3d9d1e --- /dev/null +++ b/macros/text1/cms_help_files/pn.helpmark @@ -0,0 +1,40 @@ ++-----------------------------------------------------------------------------+ +| pagenumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\pnã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \pagenumber markup merely places the current page number wherever the +markup appears. + + ã|Example:ã% +In running heads, \pagenumber numbers the pages. + +\runningheadformat{\bothpages{\line{\rm + \lft{Southern Bays}\rt{page \pagenumber}} + \vs{2pt} + \hrule + \vs{1\bl} + } + } + +The running head would look like: + ++-----------------------------------------------------------------------------+ +| | +| Southern Bays 1 | +| ........................................................................... | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you want no page numbers, then enter the following: + +\runningheadformat{\bothpage{}} + + ã|Notes:ã% +none. + diff --git a/macros/text1/cms_help_files/ppl.helpmark b/macros/text1/cms_help_files/ppl.helpmark new file mode 100644 index 0000000000..8260c9d69e --- /dev/null +++ b/macros/text1/cms_help_files/ppl.helpmark @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| poplevel | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\pplã% + +Parameters: ã|levelã% + + ã|Description:ã% +This markup is used in counting lines for line numbering in the margin of a +document. The level number is TEX's stacking level number. The default is +pop level 7. + + ã|Example:ã% +If you must change to a different pop level, 9 for example, enter: + +\poplevel{9} + + ã|Notes:ã% +Line numbering is only available on the phototypesetter. This markup is +ignored for all other printers. diff --git a/macros/text1/cms_help_files/pre.helpmark b/macros/text1/cms_help_files/pre.helpmark new file mode 100644 index 0000000000..7e44bb2dbd --- /dev/null +++ b/macros/text1/cms_help_files/pre.helpmark @@ -0,0 +1,31 @@ ++-----------------------------------------------------------------------------+ +| preface | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\preã% + +Parameters: ã|titleã% + + ã|Description:ã% +Each preface starts a new page, centers the title in bold, and enters it in +the table of contents (if one is printed). The preface is not numbered. +Each heading markup can be used as often as necessary. + + ã|Example:ã% +\today +\preface{Acknowledgments} +I am grateful for the assistance and financial support +of the Grand Foundation for . . . + ++-----------------------------------------------------------------------------+ +| | +| Acknowledgments | +| | +| I am grateful for the assistance and financial support of the Grand | +| Foundation for . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +You can modify the default style for a preface with the \prefaceformat +markup. diff --git a/macros/text1/cms_help_files/preface.helpbloc b/macros/text1/cms_help_files/preface.helpbloc new file mode 100644 index 0000000000..8fd4f9faf6 --- /dev/null +++ b/macros/text1/cms_help_files/preface.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|PREFACEã%block is to be selected if you want to modify the +\prefaceformat. diff --git a/macros/text1/cms_help_files/prf.helpmark b/macros/text1/cms_help_files/prf.helpmark new file mode 100644 index 0000000000..c0f4cde759 --- /dev/null +++ b/macros/text1/cms_help_files/prf.helpmark @@ -0,0 +1,42 @@ ++-----------------------------------------------------------------------------+ +| prefaceformat | ++-----------------------------------------------------------------------------+ + +\prefaceformat{\titleformat{\dumpinsertseject + \cl{\twelvept\bd \prefacetitle} + \vs{1\bl}} + \incontents{yes} + } + +Abbreviation: ã|\prfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\titleformat, \incontentsã% + + ã|Description:ã% +The \prefaceformat markup allows you to modify the defaults that control the +appearance of the preface title. There are two submarkup: + +ã|titleformatã% controls the appearance of the part title banner. You +may use markup such as \newpage, \verticalspace, and \centerline within +\titleformat as Nested Markup. You may also use: + ã|prefacetitle.ã% prints the most recent preface title. + +ã|incontentsã% places the preface title in contents (if one is printed). +Printing can be suppressed by changing to "no." + + ã|Example:ã% +In this example, the preface starts a new page, the title is centered in +bold, and one line is skipped afterwards. No preface is put in contents. + +\prefaceformat{\titleformat{\newpage + \cl{\bd \prefacetitle} + \vs{1\bl} + } + \incontents{no} + } + + ã|Notes:ã% +The \prefaceformat markup must come after the \monospace markup, if both are +used. diff --git a/macros/text1/cms_help_files/prin.helpmark b/macros/text1/cms_help_files/prin.helpmark new file mode 100644 index 0000000000..50b159f13f --- /dev/null +++ b/macros/text1/cms_help_files/prin.helpmark @@ -0,0 +1,20 @@ ++-----------------------------------------------------------------------------+ +| printingnumbers | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\prinã% + +Parameters: ã|statusã% + + ã|Description:ã% +This markup is used to start the printing of line numbering in the margin of +a document. Status is true or false. + + ã|Example:ã% +To enable line numbers to be printed, enter: + +\printingnumbers{true} + + ã|Notes:ã% +Line numbering is only available on the phototypesetter. This markup is +ignored for all other printers. diff --git a/macros/text1/cms_help_files/printend.helpmark b/macros/text1/cms_help_files/printend.helpmark new file mode 100644 index 0000000000..f149a6007e --- /dev/null +++ b/macros/text1/cms_help_files/printend.helpmark @@ -0,0 +1,10 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \printendnotes (\pen) COMMAND | ++-----------------------------------------------------------------------------+ + +The \printendnotes (\pen) command will space down the amount specified in the +\endnoteformat{\skipbefore}} and print all accumulated endnotes. The +\printendnotes (\pen) format is: + + \printendnotes + diff --git a/macros/text1/cms_help_files/printind.helpmark b/macros/text1/cms_help_files/printind.helpmark new file mode 100644 index 0000000000..3f796827af --- /dev/null +++ b/macros/text1/cms_help_files/printind.helpmark @@ -0,0 +1,58 @@ ++-----------------------------------------------------------------------------+ +| printindex | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|index numberã% + + ã|Description:ã% +The \printindex markup sorts and prints the index entries generated with the +\index markup. The \printindex markup would usually come at the end of a +document before the table of contents. This markup has the format + +\printindexN + +where N is the index number: 1, 2 or 3. By default, the index is +printed using the indent style of index in ten point Computer Modern. It +is recommended that you print the index in two columns (\twocolumns). For +a complete list of the defaults and how to modify them, refer to the +\indexformat markup. + + ã|Example:ã% +The following illustrates how to place an index at the end of a document, +after the last appendix, and before the table of contents. Assume the table +of contents is to begin on page "iv". + +\appendix{Sample Data} + +\preface{Index} +\twocolumns +\printindex1 +\onecolumns +\tableofcontents{-4} + +Using the \preface markup will start a new page with the title +"Index" at the top of the page. Then \twocolumns will begin two column +formatting (typical for indexes). Next \printindex1 will sort index "1" and +print the sorted index according to the defaults set by the \indexformat +markup. After printing the last of the index, \onecolumn will switch back +to single column mode before printing the table of contents. + + ã|Example:ã% +Sometimes multiple indexes are required. If you had used \index1 and +\index2, then you would use \printindex1 and \printindex2 to print them out: + +\index1item in first index +\index2item in second index +\preface{Index One} +\twocolumns +\printindex1 +\onecolumns +\preface{Index Two} +\twocolumns +\printindex2 +\onecolumns + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/psk.helpmark b/macros/text1/cms_help_files/psk.helpmark new file mode 100644 index 0000000000..5a665edd5e --- /dev/null +++ b/macros/text1/cms_help_files/psk.helpmark @@ -0,0 +1,62 @@ ++-----------------------------------------------------------------------------+ +| paragraphskip | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\pskã% + +Parameters: ã|units of measureã% + + ã|Description:ã% +This markup causes all following paragraphs to be separated by the new +distance. The \paragraphskip is expressed using valid units of measurement +in TEXT1. The default value is 0 points. + + ã|Example:ã% +The first two paragraphs used a paragraph skip of 10 points. The third one +used a skip of 20 points. + +\paragraphskip{10pt} +{\it The Journal of Nonrepeating +Results} is published by the Center for Unpleasant + +Phenomena, at Palouse, Washington. The copyrights for +articles are assigned to and held by the authors. +\par +The Center for Unpleasant Phenomena is the research arm +of Giga Geologicals, Inc. + +\psk{20pt} +No apologies are tendered for the nonverifiability of +experiments. The opinions of the authors do not reflect +company policy. + ++-----------------------------------------------------------------------------+ +| | +| The Journal of Nonrepeating Results is published by the Center for | +| Unpleasant Phenomena, at Palouse, Washington. The copyrights for articles | +| are assigned to and held by the authors. | +| | +| The Center for Unpleasant Phenomena is the research arm of Giga | +| Geologicals, Inc. | +| | +| | +| No apologies are tendered for the nonverifiability of experiments. | +| The opinions of the authors do not reflect company policy. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The "plus3pt" after the setting of "0pt" means that up to 3 points +additional space may be added before each paragraph, if this space is needed +to fill out a page when using \normalbottom. If the \paragraphskip is set +to "minus1pt", it implies that up to 1 point may be subtracted before each + +paragraphs if needed to fill out a page when using \normalbottom. Since the +leading is usually only 2 points more than the size of the type, the "minus" +value should not be more than 1 point. + If you are using \monospace, it is best to specify the units in blank +lines. For example, + +\paragraphskip{1\bl} + +There are 6 \bl in an inch with \monospace. diff --git a/macros/text1/cms_help_files/qquad.helpmark b/macros/text1/cms_help_files/qquad.helpmark new file mode 100644 index 0000000000..31d6772c21 --- /dev/null +++ b/macros/text1/cms_help_files/qquad.helpmark @@ -0,0 +1,39 @@ ++-----------------------------------------------------------------------------+ +| qquad | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \qquad markup leaves two quads of space. It is two em spaces in the +current type size. It can be used in text, "as is," or math mode. + + ã|Example:ã% +\tat{Surface Land Temperature (degrees C)\lbr +Changes after Nuclear Exchanges} +\vs{6pt} +\settabs\+\qquad&number\qquad&number\qquad +\+&number\qquad&number\qquad&10,000&\cr +\+&1000&-22&8&7&13\cr + +\+&3000&9&6&8&10\cr + ++-----------------------------------------------------------------------------+ +| | +| Table 1 | +| Surface Land Temperature (degrees C) | +| Changes after Nuclear Exchanges | +| | +| | +| 1000 -22 8 7 13 | +| 3000 9 6 8 10 | +| | ++-----------------------------------------------------------------------------+ + + + ã|Notes:ã% + +\qquad=\horizontalspace{2em}=\quad\quad. In \twelvept, \qquad approximately +24 points; in \tenpt, \qquad approximately 20 points. diff --git a/macros/text1/cms_help_files/quad.helpmark b/macros/text1/cms_help_files/quad.helpmark new file mode 100644 index 0000000000..ffd0b320b0 --- /dev/null +++ b/macros/text1/cms_help_files/quad.helpmark @@ -0,0 +1,40 @@ ++-----------------------------------------------------------------------------+ +| quad | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +A printer's quad of space used to be a blank square of type, 1 em high and +1 em wide, equivalent in size to a capital "M." A TEXT1 quad is a unit of +horizontal space. It is one em space in the current type size. The \quad +markup can be used in text, "as is," and math mode. + + ã|Example:ã% +Consider the input for this table: + +\tat{Surface Land Temperature (degrees C)\lbr +Changes after Nuclear Exchanges} +\vs{6pt} + +\settabs\+\quad&number\quad&number\quad +\+&number\quad&number\quad&number&\cr +\+&1000&-22&8&7&13\cr +\+&3000&9&6&8&10\cr + ++-----------------------------------------------------------------------------+ +| | +| Table 1 | +| Surface Land Temperature (degrees C) | +| Changes after Nuclear Exchanges | +| | +| 1000 -22 8 7 13 | +| 3000 9 6 8 10 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +\quad=\horizontalspace{1em}. In \twelvept, \quad approximately 12 points; +in \tenpt, \quad approximately 10 points. diff --git a/macros/text1/cms_help_files/raggedbo.helpmark b/macros/text1/cms_help_files/raggedbo.helpmark new file mode 100644 index 0000000000..ab947ecb1e --- /dev/null +++ b/macros/text1/cms_help_files/raggedbo.helpmark @@ -0,0 +1,16 @@ ++-----------------------------------------------------------------------------+ +| raggedbottom | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +By default, TEXT1 tries to make the top and bottom of each page of text line +up. If you are not concerned with having the bottom of each page line up, +you can enter \raggedbottom. If you have specified \raggedbottom and you +want to go back to the default, enter \normalbottom. + + ã|Notes:ã% +Refer to The TEXbook for more on this markup. diff --git a/macros/text1/cms_help_files/resume.helpmode b/macros/text1/cms_help_files/resume.helpmode new file mode 100644 index 0000000000..4ffcb945d8 --- /dev/null +++ b/macros/text1/cms_help_files/resume.helpmode @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Models | ++-----------------------------------------------------------------------------+ + +Theã|RESUMEã%model is a general resume model. It is a template. You may modify +it, but it is recommended you check with the Information Center first. diff --git a/macros/text1/cms_help_files/rff.helpmark b/macros/text1/cms_help_files/rff.helpmark new file mode 100644 index 0000000000..22999b573a --- /dev/null +++ b/macros/text1/cms_help_files/rff.helpmark @@ -0,0 +1,129 @@ ++-----------------------------------------------------------------------------+ +| runningheadformat | ++-----------------------------------------------------------------------------+ + +\runningfootformat{ + \bothpages{\vs{1\bl} + \line{\twelvept\rm\lft{} + \ctr{}\rt{}}} + } + +Abbreviation: ã|\rffã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\bothpages, \evenpages, \oddpagesã% + + ã|Description:ã% +The \runningfootformat markup provides running titles at the bottom of all +pages except the title page. The default running bottom title for TEXT1 is +blank. + +\bothpages is used to place the same running foot at the bottom of both the +even and odd pages. The \line markup defines a single title line. Within +it, you may center, left align, or right align text, using the submarkup +\ctr, \lft, or \rt. Besides \line, you may also use markup such as \hrule +and \verticalspace. + +\evenpages is used to place the same running foot at the bottom of each +even page. The \line markup defines a single title line. Within it, +you may center, left align, or right align text, using the submarkup \ctr, +\lft, or \rt. Besides \line, you may also use markup such as \hrule and +\verticalspace. + +\oddpages is used to place the same running foot at the bottom of each +odd page. The \line markup defines a single title line. Within it, you +may center, left align, or right align text, using the submarkup \ctr, +\lft, or \rt. Besides \line, you may also use markup such as \hrule and +\verticalspace. + + ã|Example:ã% +This example prints the date and author's initials at the bottom of each +page. + +\runningfootformat{ + \bothpages{\vs{18pt} + \line{\rm\lft{\today}\ctr{}\rt{JNP}} + } + } + +which produces a running foot as illustrated on the next page. + ++-----------------------------------------------------------------------------+ +| | +| January 13, 1987 JNP | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +This example illustrates the use of odd and even page layout with two lines. +The page number alternates sides so that it appears on the outside of the +page. The title appears above the subtitle on even pages. The author's +name appears above the journal name on odd pages. + +\runningfootformat{ + \evenpages{\line{\lft{\pagenumber} + \rt{Sociogeology}} + \vs{2pt}} + \line{\rt{A New Science}} + \vs{\bl}} + \oddpages{\line{\lft{A. Chert} + \rt{\pagenumber}} + + \vs{2pt}} + \line{\lft{SPP---UP}} + \vs{\bl}} + } + +which produces on even page numbers a running foot that looks like: + ++-----------------------------------------------------------------------------+ +| | +| 22 Sociogeology | +| A New Science | +| | ++-----------------------------------------------------------------------------+ + +and produces on odd page numbers a running foot that looks like: + ++-----------------------------------------------------------------------------+ +| | +| A. Chert 11 | +| SPP---UP | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +An empty \lft, \ctr, or \rt may be omitted as was done in the above example. + A construct such as, + +\rff{\bothpages{ + \line{\lft{page \pn}\ctr{\today} + \rt{PNW Waterfalls}}}} + +will not print the date centered on the page: + ++-----------------------------------------------------------------------------+ +| | +| page 7 January 13, 1987 PNW Waterfalls | +| | ++-----------------------------------------------------------------------------+ + +To accomplish this, you should print the left and right justified text with +\line, then space backwards one line (\verticalspace{-\bl}), then center the +date: + +\rff{\bothpages{\line{\lft{page \pn} + + \rt{PNW Waterfalls}}} + \vs{-\bl} + \line{\ctr{\today}}} + ++-----------------------------------------------------------------------------+ +| | +| page 8 January 13, 1987 PNW Waterfalls | +| | ++-----------------------------------------------------------------------------+ + + The \runningfootformat markup must come after the \monospace markup, if +both are used. diff --git a/macros/text1/cms_help_files/rhf.helpmark b/macros/text1/cms_help_files/rhf.helpmark new file mode 100644 index 0000000000..28f4ce697f --- /dev/null +++ b/macros/text1/cms_help_files/rhf.helpmark @@ -0,0 +1,115 @@ ++-----------------------------------------------------------------------------+ +| runningheadformat | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\rhfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\bothpages, \evenpages, \oddpagesã% + + ã|Description:ã% +The \runningheadformat markup provides running titles at the top of all +pages except the title page. The default running top title for TEXT1 is a +right justified page number. + +ã|bothpagesã% is used to place the same running head at the top of both the +even and odd pages. The \line markup defines a single title line. Within +it, you may center, left align, or right align text, using the submarkup +\ctr, \lft, or \rt. Besides \line, you may also use markup such as \hrule +and \verticalspace. + +ã|evenpagesã% is used to place the same running head at the top of each +even page. The \line markup defines a single title line. Within it, +you may center, left align, or right align text, using the submarkup \ctr, +\lft, or \rt. Besides \line, you may also use markup such as \hrule and +\verticalspace. + +ã|oddpagesã% is used to place the same running head at the top of each +odd page. The \line markup defines a single title line. Within it, you +may center, left align, or right align text, using the submarkup \ctr, +\lft, or \rt. Besides \line, you may also use markup such as \hrule and +\verticalspace. + + ã|Example:ã% +To customize running titles, you modify the \runningheadformat for the top +titles and the \runningfootformat for bottom titles. In this example, +"Sociogeology" and a page number are placed at the top of every page. + +\runningheadformat{\bothpages{\it + \line{\lft{Sociogeology}\ctr{}\rt{\pn}} + \vs{2pt} + \hrule + \verticalspace{18pt} + } +} + ++-----------------------------------------------------------------------------+ +| | +| Sociogeology 1 | +| ........................................................................... | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +This example alternates the author's name and page number at the top of even +and odd pages. It complements the last example on the previous page. + +\rhf{\evenpages{\vs{\bl} + \line{\lft{Chert}}} + \oddpages{\vs{\bl} + \line{\rt{\pagenumber}}} + } + +Even pages will look like: + ++-----------------------------------------------------------------------------+ +| | +| Chert | +| | ++-----------------------------------------------------------------------------+ + +Odd pages will look like: + ++-----------------------------------------------------------------------------+ +| | +| 4 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +An empty \lft, \ctr, or \rt may be omitted as was done in the above example. + A construct such as, + +\rhf{\bothpages{ + \line{\lft{page \pn}\ctr{\today} + \rt{PNW Waterfalls}}}} + +will not print the date centered on the page: + ++-----------------------------------------------------------------------------+ +| | +| page 6 February 5, 1987 PNW Waterfalls | +| | ++-----------------------------------------------------------------------------+ + +To accomplish this, you should print the left and right justified text with +\line, then space backwards one line (\verticalspace{-\bl}), then center the +date: + +\rhf{\bothpages{\line{\lft{page \pn} + + \rt{PNW Waterfalls}}} + \vs{-\bl} + \line{\ctr{\today}}} + ++-----------------------------------------------------------------------------+ +| | +| page 7 February 5, 1987 PNW Waterfalls | +| | ++-----------------------------------------------------------------------------+ + + The \runningheadformat markup must come after the \monospace markup, if +both are used. + If you want no page numbers, then enter the following: + +\runningheadformat{\bothpages{}} diff --git a/macros/text1/cms_help_files/rin.helpmark b/macros/text1/cms_help_files/rin.helpmark new file mode 100644 index 0000000000..bed41f21f2 --- /dev/null +++ b/macros/text1/cms_help_files/rin.helpmark @@ -0,0 +1,79 @@ ++-----------------------------------------------------------------------------+ +| rightindent | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\rinã% + +Parameters: ã|units of measurementã% + + ã|Description:ã% +The \rightindent markup adds (or subtracts) the amount from the current +right margin (default is zero). The indentation remains until another +\rightindent overrides it. This markup causes a break in text. + + ã|Example:ã% + +Humans also require trace amounts of manganese, +zinc, selenium, and copper, appearing in suitable +proportions. +\vs{50pt} +\lin{1in} + +\rightindent{1.5in} +{\bd Figure 2}. +Physiognomic similarities between the earth and +human beings. +\rightindent{-1.5in} +\lin{0in} +\vs{10pt} +Most elemental abundances are the same in the +lithosphere and the anthrosphere. + ++-----------------------------------------------------------------------------+ +| | +| Humans also require trace amounts of manganese, zinc, selenium, and | +| copper, appearing in suitable proportions. | +| | +| Figure 2. Physiognomic similarities between | +| the earth and human beings. | +| | +| Most elemental abundances are the same in the lithosphere and the | +| anthrosphere. | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +The previous example could have used grouping as illustrated below and the +same output would have been generated. If you do grouping, be sure there is +a \paragraph markup before the closing right curly brace of the group. + +Humans also require trace amounts of manganese, +zinc, selenium, and copper, appearing in suitable +proportions. +\vs{50pt} +{\lin{1in} +\rightindent{1.5in} +{\bd Figure 2}. +Physiognomic similarities between the earth and +human beings. +\par +} +\vs{10pt} +Most elemental abundances are the same in the +lithosphere and the anthrosphere. + ++-----------------------------------------------------------------------------+ +| | +| Humans also require trace amounts of manganese, zinc, selenium, and | +| copper, appearing in suitable proportions. | +| | +| Figure 2. Physiognomic similarities between | +| the earth and human beings. | +| | +| Most elemental abundances are the same in the lithosphere and the | +| anthrosphere. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/rl.helpmark b/macros/text1/cms_help_files/rl.helpmark new file mode 100644 index 0000000000..92e51079b0 --- /dev/null +++ b/macros/text1/cms_help_files/rl.helpmark @@ -0,0 +1,29 @@ ++-----------------------------------------------------------------------------+ +| rightline | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\rlã% + +Parameters: ã|text to be right justifiedã% + + ã|Description:ã% +The \rightline markup right justifies individual lines. This markup ends +the previous paragraph. The only parameter for this markup is text. + + ã|Example:ã% +yet some of the reviews of "Sociogeology" have +been mixed, especially from academics. +\rightline{This theory is 'on the rocks.'} +\rl{\it Clay Gneiss} + ++-----------------------------------------------------------------------------+ +| | +| yet some of the reviews of "Sociogeology" have been mixed, especially from | +| academics. | +| This theory is 'on the rocks.' | +| Clay Gneiss | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/rlb.helpmark b/macros/text1/cms_help_files/rlb.helpmark new file mode 100644 index 0000000000..4d714ff65a --- /dev/null +++ b/macros/text1/cms_help_files/rlb.helpmark @@ -0,0 +1,35 @@ ++-----------------------------------------------------------------------------+ +| rightlinesbegin | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\rlbã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \rightlinesbegin markup begins right justifying all following lines. +Vertical spacing and font changes are the only markup permitted after it. +There are no parameters or markup options. End a \rightlinesbegin with a +matching \rightlinesend. + + ã|Example:ã% + +\rightlinesbegin +This theory is 'on the rocks.' +{\it Clay Gneiss} +\rightlinesend + ++-----------------------------------------------------------------------------+ +| | +| This theory is 'on the rocks.' | +| Clay Gneiss | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Each \rightlinesbegin must be followed by a matching \rightlinesend. + You cannot use \rightlinesbegin within any of the following markup: +\appendim, \autofootnote, \bibliography, \centerline, \chapter, \drawbox, +\figure, \footnote, \item, \label, \marginnote, \paragraphbox, \part, +\preface, \rightline, \runningheadformat, \runningfootformat, \subheada, +\subheadb, \subheadc, \subheadd, or \tabletitle. diff --git a/macros/text1/cms_help_files/rle.helpmark b/macros/text1/cms_help_files/rle.helpmark new file mode 100644 index 0000000000..4c4ec76858 --- /dev/null +++ b/macros/text1/cms_help_files/rle.helpmark @@ -0,0 +1,28 @@ ++-----------------------------------------------------------------------------+ +| rightlinesend | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\rleã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \rightlinesend markup ends lines that are being right justified with +\rightlinesbegin. This markup causes a paragraph break. + + ã|Example:ã% + +\rightlinesbegin +This theory is 'on the rocks.' +{\it Clay Gneiss} +\rightlinesend + ++-----------------------------------------------------------------------------+ +| | +| This theory is 'on the rocks.' | +| Clay Gneiss | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Each \rightlinesbegin must be followed by a matching \rightlinesend. diff --git a/macros/text1/cms_help_files/rm.helpmark b/macros/text1/cms_help_files/rm.helpmark new file mode 100644 index 0000000000..de8ed390f8 --- /dev/null +++ b/macros/text1/cms_help_files/rm.helpmark @@ -0,0 +1,41 @@ ++-----------------------------------------------------------------------------+ +| roman | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\rmã% + +Parameters: ã|noneã% + + ã|Description:ã% +Roman is a medium-weight type good for reading. It is the default face for +TEXT1. It is usually specified as the default font at the beginning of a +paper, so that it will be in effect for most of the paper. Roman can also +be used to terminate the use of a special typeface, such as italic or bold. + + ã|Example:ã% + +\twelvept +\italic now! \roman It is important to realize +\it the facts! ++-----------------------------------------------------------------------------+ +| | +| now! It is important to realize the facts! | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +This example is the same as the one above, except that grouping was used to +change from the roman font back to italics. + +\tenpt +\italic now! {\roman It is important to realize} +the facts! + ++-----------------------------------------------------------------------------+ +| | +| now! It is important to realize the facts! | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/rr.helpmark b/macros/text1/cms_help_files/rr.helpmark new file mode 100644 index 0000000000..af80dc37cf --- /dev/null +++ b/macros/text1/cms_help_files/rr.helpmark @@ -0,0 +1,47 @@ ++-----------------------------------------------------------------------------+ +| rightragged | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\rrã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \rightragged markup turns off right justification. If you only want +to right justify a certain section of the document, then you would use a +combination of the \justify and \rightragged markup. + + ã|Example:ã% + +\rightragged +The comparison may seem facile, but from deliberate +oversimplification comes complex obfuscation and +general theoretification. +Behavioral research will lead in this direction, as + +the general theory of Sociogeology predicts the . . . +\justify +Humans exhibit metamorphic behavior over time or at high +temperatures, fever, for instance. +Metamorphic crystallization involves low . . . + ++-----------------------------------------------------------------------------+ +| | +| The comparison may seem facile, but from deliberate oversimplification | +| comes complex obfuscation and general theoretification. Behavioral | +| research will lead in this direction, as the general theory of | +| Sociogeology predicts the . . . | +| Humans exhibit metamorphic behavior over time or at high temperatures, | +| fever, for instance. Metamorphic crystallization involves low . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% + +The default values for space skips is listed below. When you are using +\monospace you get the values in the right column. + + Composing Printers Typewriter Printers + \rightskip plus 1fil plus 10em + \spaceskip .35em 1em + \xspaceskip .55em 1em diff --git a/macros/text1/cms_help_files/rule.helpmark b/macros/text1/cms_help_files/rule.helpmark new file mode 100644 index 0000000000..71a72ad0a7 --- /dev/null +++ b/macros/text1/cms_help_files/rule.helpmark @@ -0,0 +1,48 @@ ++-----------------------------------------------------------------------------+ +| rule | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \rule markup skips a blank line and draws a horizontal line (rule). +Rules are used to separate material, such as tables or sections. No extra +vertical space is skipped after the rule, so you may need to add some with +\vs. + + ã|Example:ã% + +\tabletitle{Elements of the Spheres} +\rule +\vs{6pt} +\tabskip 3em plus 3em minus 1em +\halign{\lft{#}&&\rt{#}\hs{20pt}\cr + +Element&\omit\ctr{Anthrosphere}&\omit\ctr{Lithosphere}\cr +Oxygen&62.1\phantom{0}&60.6\phantom{0}\cr +Hydrogen&1.1\phantom{0}&0.1\phantom{0}\cr +Aluminum&0.22&11.54\cr} +\rule +\vs{6pt} +\nin Most elemental abundances are the same in the . . . ++-----------------------------------------------------------------------------+ +| | +| | +| Table 1 | +| Elements of the Spheres | +| | +| ........................................................................... | +| | +| Element Anthrosphere Lithosphere | +| Oxygen 62.1 60.6 | +| Hydrogen 1.1 0.1 | +| Aluminum 0.22 11.54 | +| ........................................................................... | +| Most elemental abundances are the same in the . . . | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +If you want a rule of a different height, depth, or width than illustrated +with \rule and if you are not using \monospace, then use \hrule. diff --git a/macros/text1/cms_help_files/runfoot.helpbloc b/macros/text1/cms_help_files/runfoot.helpbloc new file mode 100644 index 0000000000..259d368dcb --- /dev/null +++ b/macros/text1/cms_help_files/runfoot.helpbloc @@ -0,0 +1,8 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|RUNFOOTã%block is to be selected if you want to modify the +\runningfootformat which is carried at the bottom of every page +except the title page. diff --git a/macros/text1/cms_help_files/runhead.helpbloc b/macros/text1/cms_help_files/runhead.helpbloc new file mode 100644 index 0000000000..0dd2248ba3 --- /dev/null +++ b/macros/text1/cms_help_files/runhead.helpbloc @@ -0,0 +1,8 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|RUNHEADã%block is to be selected if you want to modify the +\runningheadformat which is carried at the top of every page +except the title page. diff --git a/macros/text1/cms_help_files/san.helpmark b/macros/text1/cms_help_files/san.helpmark new file mode 100644 index 0000000000..05b9299a2c --- /dev/null +++ b/macros/text1/cms_help_files/san.helpmark @@ -0,0 +1,25 @@ ++-----------------------------------------------------------------------------+ +| setappendixnumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\sanã% + +Parameters: ã|previous appendix numberã% + + ã|Description:ã% +The appendix number will be automatically incremented by one for each +use of \appendix. The appendix number can be reset by inserting the +\setappendixnumber markup before the next occurrence of \appendix. + + ã|Example:ã% +By default, the first appendix is number 1. If you want to start with +appendix 5, you would enter: + +\setappendixnumber{4} +\appendix{Title of the fifth appendix} + + + + ã|Notes:ã% +The number specified in the \setappendixnumber parameter is the previous +appendix number, not the next appendix number. diff --git a/macros/text1/cms_help_files/sau.helpmark b/macros/text1/cms_help_files/sau.helpmark new file mode 100644 index 0000000000..24ce71ea8b --- /dev/null +++ b/macros/text1/cms_help_files/sau.helpmark @@ -0,0 +1,44 @@ ++-----------------------------------------------------------------------------+ +| sameauthor | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\sauã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \sameauthor markup allows you to substitute a standard rule for an +author's name for multiple references in a bibliography. The default rule +is 3 em spaces wide; the default width may be changed in \bibliographyformat +markup. + + ã|Example:ã% +\bibliography{References Cited} +\frenchspacing +\bibentry +Roszak, T. 1972. {\it Where the Wasteland Ends}. +New York: Harper \& Row. + +\bie +Weldon, S. 1971. {\it Waging Peace}. +Wilmington: M. \&\ R. Wolfe, Limited. +\bie +\sameauthor 1983. {\it The Metaindustry: War and +Economic Development}. +Los Angeles: Thompson Books. + ++-----------------------------------------------------------------------------+ +| | +| References Cited | +| | +| Roszak, T. 1972. Where the Wasteland Ends. New York: Harper & Row. | +| | +| Weldon, S. 1971. Waging Peace. Wilmington: M. & R. Wolfe, Limited. | +| | +| ....1983. The Metaindustry: War and Economic Development. Los Angeles: | +| Thompson Books. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/scn.helpmark b/macros/text1/cms_help_files/scn.helpmark new file mode 100644 index 0000000000..08b572cb2d --- /dev/null +++ b/macros/text1/cms_help_files/scn.helpmark @@ -0,0 +1,25 @@ ++-----------------------------------------------------------------------------+ +| setchapternumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\scnã% + +Parameters: ã|previous chapter numberã% + + ã|Description:ã% +The chapter number will be automatically incremented by one for each use of +\chapter. The chapter number can be reset by inserting the \setchapternum- +ber markup before the next occurrence of \chapter. + + ã|Example:ã% +By default, the first chapter is number 1. If you want to start with +chapter 5, you would enter: + +\setchapternumber{4} +\chapter{Title of the fifth chapter} + + + + ã|Notes:ã% +The number specified in the \setchapternumber parameter is the previous +chapter number, not the next chapter number. diff --git a/macros/text1/cms_help_files/senn.helpmark b/macros/text1/cms_help_files/senn.helpmark new file mode 100644 index 0000000000..b032b8a8d9 --- /dev/null +++ b/macros/text1/cms_help_files/senn.helpmark @@ -0,0 +1,37 @@ ++-----------------------------------------------------------------------------+ +| setendnotenumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\sennã% + +Parameters: ã|previous endnote numberã% + + ã|Description:ã% +The endnote number will be automatically incremented by one for each +use of \autoendnote. The endnote number can be reset by adding the +\setendnotenumber markup before the next occurrence of an \autoendnote. + + ã|Example:ã% +By default, endnote numbers are reset in parts. If you also want them reset +in chapters, you could modify the \chapterformat by adding \setendnotenumber +to the \titleformat: + +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \cl{\twelvept\bd Chapter \chapternumber} + + \cl{\twelvept\bd \chaptertitle} + \vs{1\bl} + \setendnotenumber{0} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0}} + \incontents{yes}} + + ã|Notes:ã% +The number specified in the \setendnotenumber parameter is the previous +endnote number, not the next endnote number. If you want the next +\autoendnote to be endnote 90, then specify + +\setendnotenumber{89} diff --git a/macros/text1/cms_help_files/settabs.helpmark b/macros/text1/cms_help_files/settabs.helpmark new file mode 100644 index 0000000000..53b535a5e6 --- /dev/null +++ b/macros/text1/cms_help_files/settabs.helpmark @@ -0,0 +1,151 @@ ++-----------------------------------------------------------------------------+ +| settabs | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|number of columnsã% + + ã|Description:ã% +The body of the table is created with the \settabs n \columns markup, which +establishes a number (n) of equal-size tabular columns (\columns). + Each new column after the first is indicated with the TEXT1 tab +character (&). Each row is started with the \+ markup and ended with the +\cr markup (which is an abbreviation for carriage return on typewriters). + The ampersand (&) is like the TAB key on many typewriters; it tells +TEXT1 to advance to the next tab position, where there is a tab at the right +edge of each column. But & is not exactly like a mechanical typewriter +TAB, because it first backs up to the beginning of the current column +before advancing to the next. In this way you can always tell what column +you are tabbing to, by counting the number of &s; that is handy, because + +variable-width type otherwise makes it difficult to know whether you have +passed a tab position. + The ampersands are different from tabs in another way, too: TEXT1 +ignores spaces after &, hence you can conveniently finish a column by typing +& at the end of a line in your input file, without worrying that an extra +blank space will be introduced there. Incidentally, TEXT1 also ignores +spaces after \+, so that the first column is treated like the others. + You can say \cr before you have specified a complete set of columns, if +the remaining columns are blank. The last \cr ends the settabs. No other +ending is necessary; normal text may follow. + + ã|Example:ã% + +can be seen, the pool of common words is prodigious. +\par +\tabletitle{Etymological Clues} +\settabs 3 \columns +\+\it Term&\it Geological&\it Social Reference\cr +\+boss&small rock&supervisor\cr +\+domehead&pushing through&intellectual\cr +\+fossil&turned to stone&age\cr +\+creep&move slowly&person\cr +\+streak&move quickly&naked\cr +\+ejecta&very quickly&mating\cr +\+sublimate&change to gas&dream\cr +\+trench&sediments&mouth\cr + ++-----------------------------------------------------------------------------+ +| | +| can be seen, the pool of common words is prodigious. | +| | +| Table 1 | +| Etymological Clues | +| | +| Term Geological Social Reference | +| boss small rock supervisor | +| domehead pushing through intellectual | +| fossil turned to stone age | +| creep move slowly person | +| streak move quickly naked | +| ejecta very quickly mating | +| sublimate change to gas dream | +| trench sediments mouth | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +You may not want all of the columns to be the same size, so there is another +way to set them, by typing "\+sample line\cr" immediately after \settabs. +In this case tabs are placed at the positions of the &s in the sample line, +but the sample line itself does not appear in the output. Look through +the table and determine the biggest entry in each column; the sample line +is then constructed by typing the widest entry in the first column, then +the widest in each subsequent column, omitting the last column. Be sure to +include some extra space (\horizontalspace{}) between columns in the sample +line, so that the columns won't touch each other. + +can be seen, the pool of common words is prodigious. +\par +\tabletitle{Etymological Clues} +\settabs\+\hs{4pt}&domeheads\hs{4pt} + &material pushing through + \hs{10pt}&Intellectual\cr +\+&\it Term&\it Geological&\it Social Reference\cr +\+&trench&subducted sediments&mouth\cr + +\+&dike&material holding back&female\cr +\+&domehead&material pushing through&intellectual\cr +\+&fossil&life turned to stone&age\cr +\+&cleavage&the tendency to split&bosom\cr + ++-----------------------------------------------------------------------------+ +| | +| can be seen, the pool of common words is prodigious. | +| | +| Table 2 | +| Etymological Clues | +| | +| Term Geological Social Reference | +| trench subducted sediments mouth | +| dike material holding back female | +| domehead material pushing through intellectual | +| fossil life turned to stone age | +| cleavage the tendency to split bosom | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you want to put something right justified (flush right) in its column, +just type \rt{text} where text is the text to be right justified; Be sure +to type & after it, so that TEX will be sure to move the information all +the way until it touches the next tab. Similarly, if you want to center +something in its column, type \ctr{text} where text is the text to be +centered. Notice also the use of \phantom in decimal alignment. + + \centerline{\bd Table 1} + \centerline{Etymological Clues} + \settabs \+\hs{20pts}&Aluminum\quad&Anthrosphere& + \hs{20pt}&Lithosphere\quad\cr + \+&\lft{Element}&\rt{Anthrosphere}& + &\rt{Lithosphere}&\cr + \+&Sodium&\rt{0.001\phantom{0}}&&\rt{0.4\phantom{000}}\cr + \+&Silicon&\rt{.0001}&&\rt{20.2\phantom{000}}\cr + \+&Aluminum&\rt{0.22\phantom{00}}&& + \rt{11.54\phantom{00}}\cr + \+&Carbon&\rt{19.1001}&&\rt{0.0202}\cr + + \+&Nitrogen&\rt{3.2205}&&\rt{.0208}\cr + ++-----------------------------------------------------------------------------+ +| | +| Table 1 | +| Etymological Clues | +| Element Anthrosphere Lithosphere | +| Sodium 0.001 0.4 | +| Silicon .0001 20.2 | +| Aluminum 0.22 11.54 | +| Carbon 19.1001 0.0202 | +| Nitrogen 3.2205 .0208 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% + +Tab positions are remembered, until they are reset with another \settabs, +regardless of text and other markup following. + The operation of tabs addresses one line at a time; this allows multiple +page tables. + You cannot use \figure, \drawbox or \paragraphbox around a \settabs. + Refer to The TEXbook for more on \phantom. diff --git a/macros/text1/cms_help_files/sfn.helpmark b/macros/text1/cms_help_files/sfn.helpmark new file mode 100644 index 0000000000..0c3ef81afc --- /dev/null +++ b/macros/text1/cms_help_files/sfn.helpmark @@ -0,0 +1,37 @@ ++-----------------------------------------------------------------------------+ +| setfigurenumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\sfnã% + +Parameters: ã|previous figure numberã% + + ã|Description:ã% +The figure number will be automatically incremented by one for each use of +\figure. The figure number can be reset by adding the \setfigurenumber +markup before the next occurrence of \figure. + + ã|Example:ã% +By default, figure numbers are reset in parts. If you also want them reset +in chapters, you could modify the \chapterformat by adding \setfigurenumber +to the \titleformat: + +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \cl{\twelvept\bd Chapter \chapternumber} + + \cl{\twelvept\bd \chaptertitle} + \vs{1\bl} + \setfigurenumber{0} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0}} + \incontents{yes}} + + ã|Notes:ã% +The number specified in the \setfigurenumber parameter is the previous +figure number, not the next figure number. If you want the next \figure to +be Figure 90, then specify + +\setfigurenumber{89} diff --git a/macros/text1/cms_help_files/sfnn.helpmark b/macros/text1/cms_help_files/sfnn.helpmark new file mode 100644 index 0000000000..369f764e65 --- /dev/null +++ b/macros/text1/cms_help_files/sfnn.helpmark @@ -0,0 +1,39 @@ ++-----------------------------------------------------------------------------+ +| setfootnotenumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\sfnnã% + +Parameters: ã|previous footnote numberã% + + ã|Description:ã% +The footnote number will be automatically incremented by one for each +use of \autofootnote. The footnote number can be reset by adding the +\setfootnotenumber markup before the next occurrence of an autofootnote. + + ã|Example:ã% +By default, footnote numbers are reset in parts. If you also want +them reset in chapters, you could modify the \chapterformat by adding +\setfootnotenumber to the \titleformat: + +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \cl{\twelvept\bd Chapter \chapternumber} + + \cl{\twelvept\bd \chaptertitle} + \vs{1\bl} + \setfootnotenumber{0} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0}} + \incontents{yes}} + + ã|Notes:ã% +The number specified in the \setfootnotenumber parameter is the previous +footnote number, not the next footnote number. If you want the next +\autofootnote to be footnote 90, then specify + +\setfootnotenumber{89} + + The \setfootnotenumber markup has no effect on the \footnote markup. diff --git a/macros/text1/cms_help_files/sfs.helpmark b/macros/text1/cms_help_files/sfs.helpmark new file mode 100644 index 0000000000..241c41268b --- /dev/null +++ b/macros/text1/cms_help_files/sfs.helpmark @@ -0,0 +1,79 @@ ++-----------------------------------------------------------------------------+ +| selectfontset | ++-----------------------------------------------------------------------------+ + +\selectfontset{cm12}{twelvept}{14pt} +\selectfontset{cm10}{tenpt}{12pt} +\twelvept + +Abbreviation: ã|\sfsã% + +Parameters: ã|catalog name, user's reference, leadingã% + + ã|Description:ã% +For a typical document, you will need both a font set and a math set. +The default font set selections consist of two sets for composing printers: +\twelvept for the 12 point size Computer Modern serif typestyle; and \tenpt +for the 10 point Computer Modern serif typestyle. Typically, the \select- +fontset markup is placed in the front of your document. The format of this +markup is + +\selectfontset{catalog name}{user's reference name}{leading between lines} + +where catalog name is the system name for that font set. (Complete lists +of the catalog names can be found by going to the TEXT1 help menu, or by +looking in the Font Catalogs.) The user's reference is a name of your own +devising. This name, when prefaced with a backslash will give you access to +that font set. The leading is the interlineskip specification. + Users of typewriter printers use different \selectfontset markup, which +offers "standard", "underscore" (for italic), and "bold" monospaced faces. +These are the only fonts available to such printers. + Each font set includes the following nine faces, each of which is called +by adding a backslash in front of the name, or using the abbreviation: +\roman (\rm), \bold (\bd), \italic (\it), \typewriter (\tt), \caps (\cc), +\mathitalic (\mi), \symbol (\sy), \extension (\ex), and \bolditalic (\bi). +Not all font sets have all nine faces available. If a particular face is +not available, a warning message will be printed. + + ã|Example:ã% +After entering the \selectfontset, + +\selectfontset{cm11}{eleven}{default} +\eleven + +each time \eleven is specified, you would be using the Computer Modern font +set at a 11 point size (cm11). The third parameter ("default") indicates +that TEXT1 will use the default value for \interlineskip, in this case 13 +points. Then, whenever you switch to bold (\bd) you would get Computer +Modern bold at a 11 point size. If you were to specify \it you would get +Computer Modern italic at 11 points. + + ã|Example:ã% +Consider this example for switching from 9 point to a 8 point size. +The \eightpoint is set with \interlineskip{9pt} instead of the default +\interlineskip{10pt}, leaving less space between lines. + +\selectfontset{cm9}{ninepoint}{default} +\selectfontset{cm8}{eightpoint}{9pt} +\eightpoint + +\centerline{\ninepoint\bd Sociogeology} +\vs{12pt} +\centerline{\it by Achilles Chert} +\vs{12pt} +"Does the absurd dictate death?" asks Albert Camus, + ++-----------------------------------------------------------------------------+ +| | +| Sociogeology | +| | +| by Achilles Chert | +| | +| "Does the absurd dictate death?" asks Albert Camus, | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Again, not all font sets have all nine faces available. If a particular +face is not available, a warning message will be printed. + diff --git a/macros/text1/cms_help_files/sha.helpmark b/macros/text1/cms_help_files/sha.helpmark new file mode 100644 index 0000000000..4c5bb98f47 --- /dev/null +++ b/macros/text1/cms_help_files/sha.helpmark @@ -0,0 +1,40 @@ ++-----------------------------------------------------------------------------+ +| subheada | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\shaã% + +Parameters: ã|titleã% + + ã|Description:ã% +The \subheada markup creates a first level subheading, which skips two +baselines, prints the title in bold type, then skips one more baseline. It +does not begin a new page. Its title is placed in the table of contents +automatically. + + ã|Example:ã% +more realistic. +\subheada{Nationalism and War} +Nationalism is directly related to war. +Lord Acton observed that . . . + +which prints: + ++-----------------------------------------------------------------------------+ +| | +| | +| more realistic. | +| | +| | +| Nationalism and War | +| | +| Nationalism is directly related to war. Lord Acton observed that | +| . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Use \subheadaformat to change any of the above mentioned defaults. + TEXT1 will encourage page breaking before a \subheada. It discourages +page breaking between the \subheada and the first line of the following +paragraph. diff --git a/macros/text1/cms_help_files/shaf.helpmark b/macros/text1/cms_help_files/shaf.helpmark new file mode 100644 index 0000000000..3cf2d51cd9 --- /dev/null +++ b/macros/text1/cms_help_files/shaf.helpmark @@ -0,0 +1,85 @@ ++-----------------------------------------------------------------------------+ +| subheadaformat | ++-----------------------------------------------------------------------------+ + +\subheadaformat{\numberingstyle{1} + \titleformat{\removelastskip + \goodbreak\vs{2\bl} + \twelvept + \bd\nin\subheadatitle + \par\nobreak + \vs{1\bl}\nobreak + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0}} + \incontents{yes} + } + +Abbreviation: ã|\shafã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\numberingstyle, \titleformat, \incontentsã% + + ã|Description:ã% +The \subheadaformat markup lets you change the appearance of the subheading +title. There are three submarkup that control how the \subheada is to +appear. + +ã|\numberingstyleã% by default is 1 which will print the subhead number in +Arabic numbers. Other possibilities are "A" and "I". By default, subhead +numbers are not printed, even though the \subheadanumber is incremented. + +ã|\titleformat{Nested Markup}ã% is used to describe how the subhead title is +to be printed. You may use markup such as \newpage, \removelastskip, +\goodbreak, \nobreak, \verticalspace, and \centerline within \titleformat +as Nested Markup. Other markup you may use within or outside of +\subheadaformat: + + * \subheadanumberprints the most recent subheada number. + + * \subheadatitleprints the most recent subheada title. + +ã|\incontentsã% places the subheada title by default in the contents (if one is +printed). Printing in the table of contents can be suppressed by changing +to "no": + +\shaf{\incontents{no}} + + ã|Example:ã% +Some applications require the subheads to be numbered. For \subheada to +include a number like "pp.cc-aa" where "pp" is the part number, "cc" is +the chapter number, and "aa" is the subheada number, you would modify the +\subheadaformat: + +\subheadaformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \bd\partnumber.\chapternumber-\subheadanumber + \quad\subheadatitle\par + \nobreak\vs{1\bl}\nobreak} + \incontents{yes} +} + +more realistic. +\par +\subheada{Nationalism and War} +Nationalism is directly related to war. +Lord Acton observed that . . . + +The second subheada in the third chapter of the first part would print as: + ++-----------------------------------------------------------------------------+ +| | +| more realistic. | +| | +| | +| 1.3-2 Nationalism and War | +| | +| Nationalism is directly related to war. Lord Acton observed that | +| . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \subheadaformat markup must come after the \monospace markup, if both +are used. diff --git a/macros/text1/cms_help_files/shb.helpmark b/macros/text1/cms_help_files/shb.helpmark new file mode 100644 index 0000000000..6c4e302561 --- /dev/null +++ b/macros/text1/cms_help_files/shb.helpmark @@ -0,0 +1,40 @@ ++-----------------------------------------------------------------------------+ +| subheadb | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\shbã% + +Parameters: ã|titleã% + + ã|Description:ã% +The \subheadb markup creates a second level subheading, which skips two +baselines, prints the title in italics, then skips one more baseline. It +does not begin a new page. Its title is placed in the table of contents +automatically. + + ã|Example:ã% +more realistic. +\par +\subheadb{Nationalism and War} +Nationalism is directly related to war. +Lord Acton observed that . . . + +which prints: + ++-----------------------------------------------------------------------------+ +| | +| more realistic. | +| | +| | +| Nationalism and War | +| | +| Nationalism is directly related to war. Lord Acton observed that | +| . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Use \subheadbformat to change any of the above mentioned defaults. + TEXT1 will encourage page breaking before a \subheadb. It discourages +page breaking between the \subheadb and the first line of the following +paragraph. diff --git a/macros/text1/cms_help_files/shbf.helpmark b/macros/text1/cms_help_files/shbf.helpmark new file mode 100644 index 0000000000..7c0e27505b --- /dev/null +++ b/macros/text1/cms_help_files/shbf.helpmark @@ -0,0 +1,86 @@ ++-----------------------------------------------------------------------------+ +| subheadbformat | ++-----------------------------------------------------------------------------+ + +\subheadbformat{\numberingstyle{1} + \titleformat{\removelastskip + \goodbreak\vs{2\bl} + \twelvept + \it\nin\subheadbtitle + \par\nobreak + \vs{1\bl}\nobreak + \setsubheadcnumber{0} + \setsubheaddnumber{0}} + \incontents{yes} + } + +Abbreviation: ã|\shbfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\numberingstyle, \titleformat, \incontentsã% + + ã|Description:ã% +The \subheadbformat markup lets you change the appearance of the subheading +title. There are three submarkup that control how the \subheadb is to +appear. + +ã|\numberingstyleã% by default is 1 which will print the subhead number in +Arabic numbers. Other possibilities are "A" and "I". By default, subhead +numbers are not printed, even though the \subheadbnumber is incremented. + +ã|\titleformat{Nested Markup}ã is used to describe how the subhead title is +to be printed. You may use markup such as \newpage, \removelastskip, +\goodbreak, \nobreak, \verticalspace, and \centerline within \titleformat +as Nested Markup. Other markup you may use within or outside of +\subheadbformat: + + * \subheadbnumberprints the most recent subheadb number. + + * \subheadbtitleprints the most recent subheadb title. + +ã|\incontentsã% places the subheadb title by default in the contents (if one is +printed). Printing in the table of contents can be suppressed by changing +to "no": + +\shbf{\incontents{no}} + + ã|Example:ã% +Some applications require the subheads to be numbered. If you wanted +\subheadb to include a number like "pp.cc.aa.bb" where "pp" is the part +number, "cc" is the chapter number, "aa" is the subheada number, and "bb" is +the subheadb number, you would modify the \subheadbformat: + + \subheadbformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \italic + \partnumber.\chapternumber.\subheadanumber.\subheadbnumber + \quad\subheadbtitle\par + \nobreak\vs{1\bl}\nobreak} + \incontents{yes} + } + + more realistic. + \subheadb{Nationalism and War} + Nationalism is directly related to war. + + Lord Acton observed that . . . + +The first subheadb in the second subheada of the third chapter of the first +part would print as: ++-----------------------------------------------------------------------------+ +| | +| more realistic. | +| | +| | +| 1.3.2.1 Nationalism and War | +| | +| Nationalism is directly related to war. Lord Acton observed that | +| . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \subheadbformat markup must come after the \monospace markup, if both +are used. + diff --git a/macros/text1/cms_help_files/shc.helpmark b/macros/text1/cms_help_files/shc.helpmark new file mode 100644 index 0000000000..19133b8456 --- /dev/null +++ b/macros/text1/cms_help_files/shc.helpmark @@ -0,0 +1,39 @@ ++-----------------------------------------------------------------------------+ +| subheadc | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\shcã% + +Parameters: ã|titleã% + + ã|Description:ã% +The \subheadc markup creates a third level subheading, which skips two +baselines, prints the title in roman type, then skips one more baseline. It +does not begin a new page. Its title is not placed in the table of contents +automatically. + + ã|Example:ã% +more realistic. +\subheadc{Nationalism and War} +Nationalism is directly related to war. +Lord Acton observed that . . . + +which prints: + ++-----------------------------------------------------------------------------+ +| | +| more realistic. | +| | +| | +| Nationalism and War | +| | +| Nationalism is directly related to war. Lord Acton observed that | +| . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Use \subheadcformat to change any of the above mentioned defaults. + TEXT1 will encourage page breaking before a \subheadc. It discourages +page breaking between the \subheadc and the first line of the following +paragraph. diff --git a/macros/text1/cms_help_files/shcf.helpmark b/macros/text1/cms_help_files/shcf.helpmark new file mode 100644 index 0000000000..bb7cbe0822 --- /dev/null +++ b/macros/text1/cms_help_files/shcf.helpmark @@ -0,0 +1,81 @@ ++-----------------------------------------------------------------------------+ +| subheadcformat | ++-----------------------------------------------------------------------------+ + +\subheadcformat{\numberingstyle{1} + \titleformat{\removelastskip + \goodbreak\vs{2\bl} + \twelvept + \rm\nin\subheadctitle + \par\nobreak + \vs{1\bl}\nobreak + \setsubheaddnumber{0}} + \incontents{no} + } + +Abbreviation: ã|\shcfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\numberingstyle, \titleformat, \incontentsã% + + ã|Description:ã% +The \subheadcformat markup lets you change the appearance of the subheading +title. There are three submarkup that control how the \subheadc is to +appear. + +ã|\numberingstyleã% by default is 1 which will print the subhead number in +Arabic numbers. Other possibilities are "A" and "I". By default, subhead +numbers are not printed, even though the \subheadcnumber is incremented. + +ã|\titleformat{Nested Markup}ã% is used to describe how the \subheadc title +is to be printed. You may use markup such as \newpage, \removelastskip, +\goodbreak, \nobreak, \verticalspace, and \centerline within \titleformat +as Nested Markup. Other markup you may use within or outside of +\subheadcformat: + + * \subheadcnumberprints the most recent subheadc number. + + * \subheadctitleprints the most recent subheadc title. + +ã|\incontentsã% places the subheadc title in the contents (if one is printed). +By default, the title is not placed in the contents. Printing in the table +of contents can be included by changing to "yes": + +\shcf{\incontents{yes}} + + ã|Example:ã% +Some applications require the subheads to be numbered. If you wanted +\subheadc to include a number like "Section cc:" where "cc" is a bold +subheadc number, you could modify the \subheadcformat: + +\subheadcformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \nin\bd Section \subheadcnumber: + \quad\subheadctitle\par + \nobreak\vs{1\bl}\nobreak} + \incontents{no} +} + +more realistic. +\subheadc{Nationalism and War} +Nationalism is directly related to war. +Lord Acton observed that . . . + +The third subheadc would print as: + ++-----------------------------------------------------------------------------+ +| | +| more realistic. | +| | +| | +| Section 3: Nationalism and War | +| | +| Nationalism is directly related to war. Lord Acton observed that | +| . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \subheadcformat markup must come after the \monospace markup, if both +are used. diff --git a/macros/text1/cms_help_files/shd.helpmark b/macros/text1/cms_help_files/shd.helpmark new file mode 100644 index 0000000000..fa6cb2feaa --- /dev/null +++ b/macros/text1/cms_help_files/shd.helpmark @@ -0,0 +1,33 @@ ++-----------------------------------------------------------------------------+ +| subheadd | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\shdã% + +Parameters: ã|titleã% + + ã|Description:ã% +The \subheadd markup creates a fourth level subheading, which skips to a new +paragraph, prints the title in italics followed by a period, then continues +the paragraph. It does not begin a new page. Its title is not placed in +the table of contents automatically. + + ã|Example:ã% +more realistic. +\subheadd{Nationalism and War} +Nationalism is directly related to war. +Lord Acton observed that . . . + +which prints: + ++-----------------------------------------------------------------------------+ +| | +| more realistic. | +| Nationalism and War. Nationalism is directly related to war. Lord | +| Acton observed that . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Use \subheaddformat to change any of the above mentioned defaults. + TEXT1 will encourage page breaking before a \subheadd. diff --git a/macros/text1/cms_help_files/shdf.helpmark b/macros/text1/cms_help_files/shdf.helpmark new file mode 100644 index 0000000000..39b552a430 --- /dev/null +++ b/macros/text1/cms_help_files/shdf.helpmark @@ -0,0 +1,77 @@ ++-----------------------------------------------------------------------------+ +| subheaddformat | ++-----------------------------------------------------------------------------+ + +\subheaddformat{\numberingstyle{1} + \titleformat{\goodbreak + {\twelvept + \it\subheaddtitle.} + \incontents{no} + } + +Abbreviation: ã|\shdfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\numberingstyle, \titleformat, \incontentsã% + + ã|Description:ã% +The \subheaddformat markup lets you change the appearance of the subheading +title. There are three submarkup that control how the \subheadd is to +appear. + +ã|\numberingstyleã% by default is 1 which will print the subhead number in +Arabic numbers. Other possibilities are "A" and "I". By default, subhead +numbers are not printed, even though the \subheaddnumber is incremented. + +ã|\titleformat{Nested Markup}ã% is used to describe how the subhead title is +to be printed. You may use markup such as \newpage, \removelastskip, +\goodbreak, \nobreak, \verticalspace, and \centerline within \titleformat +as Nested Markup. Other markup you may use within or outside of +\subheaddformat: + + * \subheaddnumberprints the most recent subheadd number. + + * \subheaddtitleprints the most recent subheadd title. + +ã|\incontentsã% places the subheadd title in the contents (if one is printed). +By default, the title is not placed in the contents. Printing in the table +of contents can be included by changing to "yes": + +\shdf{\incontents{yes}} + + ã|Example:ã% +If you wanted a subhead to place the title in a lable, you would modify the +\subheaddformat: + +\subheaddformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \label{\subheaddtitle} + } + \incontents{no} +} + +more realistic. +\subheadd{Nationalism and War} +Nationalism is directly related to war. +Lord Acton observed that the increase in nationalism +significantly increases a country's ability to +protect itself . . . + +The fourth subheadd would print as: + ++-----------------------------------------------------------------------------+ +| | +| more realistic. | +| | +| | +| | +| Nationalism | +| and War thatonthesmincreaseeinlynationalism significantlyctincreasesea | +| country's ability to protect itself . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \subheaddformat markup must come after the \monospace markup, if both +are used. diff --git a/macros/text1/cms_help_files/sms.helpmark b/macros/text1/cms_help_files/sms.helpmark new file mode 100644 index 0000000000..63213a1656 --- /dev/null +++ b/macros/text1/cms_help_files/sms.helpmark @@ -0,0 +1,50 @@ ++-----------------------------------------------------------------------------+ +| selectmathset | ++-----------------------------------------------------------------------------+ + +\selectmathset{cm97m}{mathdefault} +\mathdefault + +Abbreviation: ã|\smsã% + +Parameters: ã|catalog name, user's referenceã% + + ã|Description:ã% +The \selectmathset markup loads type for use by math mode. Superscripted +footnotes, and mathematical equations, require the TEXT1 math mode. For +composing printers, the default for the primary (script) math set that is +used to set super or subscripts is a 9 point Computer Modern, the secondary +(script-script) math set which is used to set super-super or sub-subscripts +is 7 point Computer Modern. TEXT1 typewriter printers do not support math +mode. The format of this markup is + +\selectmathset{catalog name}{user's reference name} + +where catalog name is the system name for that math set. (Complete lists +of the catalog names can be found by going to the TEXT1 help menu, or by +looking in the Font Catalogs.) The design of this name is such that the +first digit(s) is the primary (script) size, the second digit(s) is the +secondary (script-script) size. The user's reference is a name of your own +devising. This name, when prefaced with a backslash will give you access to +that math set. + Typically, the \selectmathset markup is placed in the front of your +document with your \selectfontset markup. + + ã|Example:ã% +This math mode example uses a primary 14 point math font, instead of the +default, and a secondary math font of 12 point. + +\selectmathset{cm1412m}{bigmath} +\selectfontset{cm18}{bigfont}{default} +\bigfont +\bigmath +Human intelligence became possible when +@@C_{14}\to C_{1.4 \bullet 10^6}@@ + + ã|Notes:ã% +Typically, the \selectmathset markup is placed in the front of your document +with your \selectfontset markup. + TEXT1 typewriter printers do not support math mode. + Only the super and subscripts are affected by the math mode fonts +selected with the \selectmathset markup. + See The TEXbook for more on math mode. diff --git a/macros/text1/cms_help_files/special.helpmark b/macros/text1/cms_help_files/special.helpmark new file mode 100644 index 0000000000..48597c9326 --- /dev/null +++ b/macros/text1/cms_help_files/special.helpmark @@ -0,0 +1,24 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 Special Characters | ++-----------------------------------------------------------------------------+ + +In TeX there are 10 keyboard characters which have special meaning. They are: + + \ (backslash) } (right curly brace) { (left curly brace) + @ (at sign) # (pound sign) _ (underscore) + & (ampersand) % (percent sign) ~ (tilde) | (vertical bar) + +If you need any of these characters as part of your text you must precede all +but the tilde and vertical bar with a \ (backslash) or TeX will interpret them +as a TeX command. To print a tilde you must enter \tilde and for a vertical bar +enter \vbar. + +For example, the following input: + + Mom sent Tommy to the store and told him to buy 5\# potatoes, a + half gallon of 2\% milk and two packages of M\&Ms. + +would result in: + +Mom sent Tommy to the store and told him to buy 5# potatoes, a half gallon of +2% milk and two packages of M&Ms. diff --git a/macros/text1/cms_help_files/spn.helpmark b/macros/text1/cms_help_files/spn.helpmark new file mode 100644 index 0000000000..8377cd9a4a --- /dev/null +++ b/macros/text1/cms_help_files/spn.helpmark @@ -0,0 +1,46 @@ ++-----------------------------------------------------------------------------+ +| setpagenumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\spnã% + +Parameters: ã|previous page numberã% + + ã|Description:ã% +The \setpagenumber markup resets the page number of a paper. The first page +of a document, commonly referred to as the title page, is treated as page +number "1". You can begin the document with a page number other than 1, or +renumber sections of the document. + The \setpagenumber markup can be specified anywhere in your document. +It changes the number of the current page. This can be particularly useful +if you are printing your document one part or chapter at a time. + To get pages in lower case roman numerals, for lead pages, enter a +negative number, for instance \setpagenumber{-1}. + + ã|Example:ã% +To set the page number so that the sentence beginning "Furthermore . . . " +is on page 11, enter + +as shown in this series of figures. +% insert four full-page figures +\setpagenumber{10} +\newpage +Furthermore, there are too many physical +similarities between human forms and earth forms +to dismiss. Indeed, they are made of the same . . . + + You could also have placed the \setpagenumber markup after the \newpage +and changed the number from 10 to 11: + +as shown in this series of figures. +% insert four full-page figures +\newpage +\setpagenumber{11} +Furthermore, there are too many physical + +similarities between human forms and earth forms +to dismiss. Indeed, they are made of the same . . . + + ã|Notes:ã% +To get pages in lower case roman numerals, for lead pages, enter a negative +number, for instance \setpagenumber{-1}. diff --git a/macros/text1/cms_help_files/sptn.helpmark b/macros/text1/cms_help_files/sptn.helpmark new file mode 100644 index 0000000000..fb40c3ae20 --- /dev/null +++ b/macros/text1/cms_help_files/sptn.helpmark @@ -0,0 +1,23 @@ ++-----------------------------------------------------------------------------+ +| setpartnumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\sptnã% + +Parameters: ã|previous part numberã% + + ã|Description:ã% +The part number will be automatically incremented by one for each use of +\part. The part number can be reset by inserting the \setpartnumber markup +before the next occurrence of \part. + + ã|Example:ã% +By default, the first part is number 1. If you want to start with part 5, +you would enter: + +\setpartnumber{4} +\part{Title of the fifth part} + + ã|Notes:ã% +The number specified in the \setpartnumber parameter is the previous part +number, not the next part number. diff --git a/macros/text1/cms_help_files/ssan.helpmark b/macros/text1/cms_help_files/ssan.helpmark new file mode 100644 index 0000000000..6b4085cc82 --- /dev/null +++ b/macros/text1/cms_help_files/ssan.helpmark @@ -0,0 +1,25 @@ ++-----------------------------------------------------------------------------+ +| setsubheadanumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ssanã% + +Parameters: ã|previous subheada numberã% + + ã|Description:ã% +The subheada number will be automatically incremented by one for each +use of \subheada. The subheada number can be reset by inserting the +\setsubheadanumber markup before the next occurrence of \subheada. + + ã|Example:ã% +By default, the first subheada is number 1. If you want to start with +number 5, you would enter: + +\setsubheadanumber{4} +\subheada{Title of the fifth subheada} + + ã|Notes:ã% +The number specified in the \setsubheadanumber parameter is the previous +subheada number, not the next subheada number. + The subheada number is reset to zero when you enter \part, \chapter or +\appendix. diff --git a/macros/text1/cms_help_files/ssbn.helpmark b/macros/text1/cms_help_files/ssbn.helpmark new file mode 100644 index 0000000000..df728a0689 --- /dev/null +++ b/macros/text1/cms_help_files/ssbn.helpmark @@ -0,0 +1,25 @@ ++-----------------------------------------------------------------------------+ +| setsubheadbnumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ssbnã% + +Parameters: ã|previous subheadb numberã% + + ã|Description:ã% +The subheadb number will be automatically incremented by one for each +use of \subheadb. The subheadb number can be reset by inserting the +\setsubheadbnumber markup before the next occurrence of \subheadb. + + ã|Example:ã% +By default, the first subheadb is number 1. If you want to start with +number 5, you would enter: + +\setsubheadbnumber{4} +\subheadb{Title of the fifth subheadb} + + ã|Notes:ã% +The number specified in the \setsubheadbnumber parameter is the previous +subheadb number, not the next subheadb number. + The subheadb number is reset to zero when you enter \part, \chapter, +\subheada, or \appendix. diff --git a/macros/text1/cms_help_files/sscn.helpmark b/macros/text1/cms_help_files/sscn.helpmark new file mode 100644 index 0000000000..c6db33d4e0 --- /dev/null +++ b/macros/text1/cms_help_files/sscn.helpmark @@ -0,0 +1,25 @@ ++-----------------------------------------------------------------------------+ +| setsubheadcnumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\sscnã% + +Parameters: ã|previous subheadc numberã% + + ã|Description:ã% +The subheadc number will be automatically incremented by one for each +use of \subheadc. The subheadc number can be reset by inserting the +\setsubheadcnumber markup before the next occurrence of \subheadc. + + ã|Example:ã% +By default, the first subheadc is number 1. If you want to start with +number 5, you would enter: + +\setsubheadcnumber{4} +\subheadc{Title of the fifth subheadc} + + ã|Notes:ã% +The number specified in the \setsubheadcnumber parameter is the previous +subheadc number, not the next subheadc number. + The subheadc number is reset to zero when you enter \part, \chapter, +\subheada, \subheadb, or \appendix. diff --git a/macros/text1/cms_help_files/ssdn.helpmark b/macros/text1/cms_help_files/ssdn.helpmark new file mode 100644 index 0000000000..b93175860c --- /dev/null +++ b/macros/text1/cms_help_files/ssdn.helpmark @@ -0,0 +1,25 @@ ++-----------------------------------------------------------------------------+ +| setsubheaddnumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ssdnã% + +Parameters: ã|previous subheadd numberã% + + ã|Description:ã% +The subheadd number will be automatically incremented by one for each +use of \subheadd. The subheadd number can be reset by inserting the +\setsubheaddnumber markup before the next occurrence of \subheadd. + + ã|Example:ã% +By default, the first subheadd is number 1. If you want to start with +number 5, you would enter: + +\setsubheaddnumber{4} +\subheadd{Title of the fifth subheadd} + + ã|Notes:ã% +The number specified in the \setsubheaddnumber parameter is the previous +subheadd number, not the next subheadd number. + The subheadd number is reset to zero when you enter \part, \chapter, +\subheada, \subheadb, \subheadc, or \appendix. diff --git a/macros/text1/cms_help_files/ssf.helpmark b/macros/text1/cms_help_files/ssf.helpmark new file mode 100644 index 0000000000..1d7173e845 --- /dev/null +++ b/macros/text1/cms_help_files/ssf.helpmark @@ -0,0 +1,50 @@ ++-----------------------------------------------------------------------------+ +| selectspecificfont | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ssfã% + +Parameters: ã|catalog name, font size, leadingã% + + ã|Description:ã% +The \selectspecificfont markup permits you to include fonts that are not +members of sets or families, and have an \interlineskip associated with it. +The format of this markup is, + +\selectspecificfont{catalog name}{font size}{leading} + +where catalog name is the system name for that font without the font size +specification. (Complete lists of the catalog names can be found by going +to the TEXT1 help menu, or by looking in the Font Catalogs.) The font +size is the size in points of that face. The leading is the interlineskip + +specification. You cannot use "default" for the leading as you can with +\selectfontset. + To access a specific font made available with \selectspecificfont, you +enter a backslash, followed by the catalog name, followed by the font size, +and ending with a semicolon. + + ã|Example:ã% +This example makes the Computer Modern Slanted font at 12 points available +for use. After specifying, + +\selectspecificfont{cmsl}{12}{14pt} + +you would then enter "\cmsl12;" to use this font. For example, + +\selectspecificfont{cmsl}{12}{14pt} +\twelvept +\cl{\cmsl12; Nuclear Utopia} +Nuclear war is unthinkable. + ++-----------------------------------------------------------------------------+ +| | +| Nuclear Utopia | +| Nuclear war is unthinkable. | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +Each font specified with \selectspecificfont must be followed by a +semicolon. + You cannot use "default" for the leading as you can with \selectfontset. diff --git a/macros/text1/cms_help_files/ssp.helpmark b/macros/text1/cms_help_files/ssp.helpmark new file mode 100644 index 0000000000..bb69c58d75 --- /dev/null +++ b/macros/text1/cms_help_files/ssp.helpmark @@ -0,0 +1,43 @@ ++-----------------------------------------------------------------------------+ +| singlespace | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\sspã% + +Parameters: ã|noneã% + + ã|Description:ã% +Single spacing is the default for TEXT1. The \singlespace markup can +be used to return to single spacing if the spacing has been changed +double spacing with \doublespace. The markup \singlespace markup has no +parameters, and causes an end-of-paragraph, forcing the following text into +a new paragraph. + + ã|Example:ã% +\doublespace +The cultures of industrial nations are based on +unethical accumulations of materials. +This inequality is maintained by power, not +persuasion. +\singlespace +Power politics makes problems that cannot be solved +except by war. +Questions about defining the best nation or the best +religion lead to organized . . . + ++-----------------------------------------------------------------------------+ +| | +| The cultures of industrial nations are based on unethical | +| | +| accumulations of materials. This inequality is maintained by power, | +| | +| not persuasion. | +| Power politics makes problems that cannot be solved except by war. | +| Questions about defining the best nation or the best religion lead to | +| organized . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The interline skip value used with \singlespace and \doublespace is set with +the \interlineskip markup. diff --git a/macros/text1/cms_help_files/stn.helpmark b/macros/text1/cms_help_files/stn.helpmark new file mode 100644 index 0000000000..94fe79e895 --- /dev/null +++ b/macros/text1/cms_help_files/stn.helpmark @@ -0,0 +1,37 @@ ++-----------------------------------------------------------------------------+ +| settablenumber | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\stnã% + +Parameters: ã|previous table numberã% + + ã|Description:ã% +The table number will be automatically incremented by one for each use of +\tabletitle. The table number can be reset by adding the \settablenumber +markup before the next occurrence of \tabletitle. + + ã|Example:ã% +By default, table numbers are reset in parts. If you also want them reset +in chapters, you could modify the \chapterformat by adding \settablenumber +to the \titleformat: + +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \cl{\twelvept\bd Chapter \chapternumber} + + \cl{\twelvept\bd \chaptertitle} + \vs{1\bl} + \settablenumber{0} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0}} + \incontents{yes} } + + ã|Notes:ã% +The number specified in the \settablenumber parameter is the previous table +number, not the next table number. If you want the next \tabletitle to be +Table 90, then specify + +\settablenumber{89} diff --git a/macros/text1/cms_help_files/strut.helpmark b/macros/text1/cms_help_files/strut.helpmark new file mode 100644 index 0000000000..582344ae8a --- /dev/null +++ b/macros/text1/cms_help_files/strut.helpmark @@ -0,0 +1,82 @@ ++-----------------------------------------------------------------------------+ +| strut | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +There are times when it is necessary to have the baselineskip between two +lines be the same, especially if you are building a table that uses rules +between columns. The \strut markup can be used in an \halign to maintain +consistent distance between lines of a table. The \strut markup has no +parameters. Its height is 1.8 times the height of an "x" in the current +point size. Its depth is .6 times the height of an "x" in the current point +size. + + ã|Example:ã% +Consider this table created without the use of \strut, + +\sfs{cm8}{eightpt}{default} + +\twelvept + + +\tabletitle{Comparison of the composition of goat's +milk and that of two common breeds of dairy cows} +{\offinterlineskip\eightpt +\halign{\vrule\hs{3pt}\lft{#}\hs{3pt}\vrule&& + \hs{3pt}\ctr{#}\hs{3pt}\vrule\cr +\noalign{\hrule} +&&\bd Total&&&\cr +\bd Source of milk&\bd Water&\bd Solids& + \bd Fat&\bd Protein&\bd Lactose\cr +\noalign{\hrule height 1pt} +Goats&82.02\%&11.98\%&3.50\%&3.13\%&4.55\%\cr +\noalign{\hrule} +Holstein-Friesian&87.50\%&12.50\%&3.55\%&3.42\%&4.86\%\cr +\noalign{\hrule} +Jersey&85.31\%&14.69\%&5.18\%&3.86\%&4.94\%\cr +\noalign{\hrule} + +}} +\twelvept + +which prints as: ++-----------------------------------------------------------------------------+ +| | +| Table 1 | +| Comparison of the composition of goat's milk and that of two common breeds | +| of dairy cows | +| ...................................................... | +| ....................................................... | +| ....................................................... | +| .Jersey...........85.31%..14.69%5.18%..3.86%...4.94%... | +| ...................................................... | ++-----------------------------------------------------------------------------+ + +Now add \strut to the \halign preamble, + +\halign{\strut\vrule\hs{3pt}\lft{#}\hs{3pt}\vrule&& + \hs{3pt}\ctr{#}\hs{3pt}\vrule\cr + +and notice the uniform distance between lines: ++-----------------------------------------------------------------------------+ +| | +| Table 2 | +| Comparison of the composition of goat's milk and that of two common breeds | +| of dairy cows | +| ...................................................... | +| . . Total . . . . | +| ....................................................... | +| Goats 82.02%11.98% 3.50% 3.13% 4.55% | +| ..Holstein-Friesia87.50%..12.50%3.55%..3.42%...4.86%.. | +| ....................................................... | +| ....................................................... | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The size of the strut changes as the interline skip changes. \twelvept will +have a longer \strut than will \tenpt. + See The TEXbook for more on \offinterlineskip. diff --git a/macros/text1/cms_help_files/subheada.helpbloc b/macros/text1/cms_help_files/subheada.helpbloc new file mode 100644 index 0000000000..e7e95f9a4d --- /dev/null +++ b/macros/text1/cms_help_files/subheada.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|SUBHEADAã%block is to be selected if you want to modify the +\subheadaformat. diff --git a/macros/text1/cms_help_files/subheadb.helpbloc b/macros/text1/cms_help_files/subheadb.helpbloc new file mode 100644 index 0000000000..9504d6e77b --- /dev/null +++ b/macros/text1/cms_help_files/subheadb.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|SUBHEADBã%block is to be selected if you want to modify the +\subheadbformat. diff --git a/macros/text1/cms_help_files/subheadc.helpbloc b/macros/text1/cms_help_files/subheadc.helpbloc new file mode 100644 index 0000000000..9d092ec196 --- /dev/null +++ b/macros/text1/cms_help_files/subheadc.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|SUBHEADCã%block is to be selected if you want to modify the +\subheadcformat. diff --git a/macros/text1/cms_help_files/subheadd.helpbloc b/macros/text1/cms_help_files/subheadd.helpbloc new file mode 100644 index 0000000000..92786990ed --- /dev/null +++ b/macros/text1/cms_help_files/subheadd.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|SUBHEADDã%block is to be selected if you want to modify the +\subheadDformat. diff --git a/macros/text1/cms_help_files/sy.helpmark b/macros/text1/cms_help_files/sy.helpmark new file mode 100644 index 0000000000..1cd81220f6 --- /dev/null +++ b/macros/text1/cms_help_files/sy.helpmark @@ -0,0 +1,26 @@ ++-----------------------------------------------------------------------------+ +| symbol | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\syã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \symbol markup sets the face to the Computer Modern Math Symbol face. +Refer to The TEXbook, Appendix F, for a complete list of the characters +available in the Symbol face. + + ã|Example:ã% +This example uses \symbol to print a diagonal arrow: + +Put a {\symbol\char'45} next to . . . + ++-----------------------------------------------------------------------------+ +| | +| Put a \ next to . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +For more on the use of the \char markup, refer to The TEXbook. diff --git a/macros/text1/cms_help_files/tablem.helpbloc b/macros/text1/cms_help_files/tablem.helpbloc new file mode 100644 index 0000000000..81d335148d --- /dev/null +++ b/macros/text1/cms_help_files/tablem.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|TABLE-Mã%block is to be selected if you want to modify the +\tableformat. This is to be used when you are using \monospace. diff --git a/macros/text1/cms_help_files/tablep.helpbloc b/macros/text1/cms_help_files/tablep.helpbloc new file mode 100644 index 0000000000..292d726559 --- /dev/null +++ b/macros/text1/cms_help_files/tablep.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|TABLE-Pã%block is to be selected if you want to modify the +\tableformat. This is to be used when you areã|notã%using \monospace. diff --git a/macros/text1/cms_help_files/taf.helpmark b/macros/text1/cms_help_files/taf.helpmark new file mode 100644 index 0000000000..afa15b556b --- /dev/null +++ b/macros/text1/cms_help_files/taf.helpmark @@ -0,0 +1,56 @@ ++-----------------------------------------------------------------------------+ +| tableformat | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\tafã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\titleformat, \incontentsã% + + ã|Description:ã% +The \tableformat markup allows you to modify the defaults that control the +appearance of the table title. + +ã|titleformat{Nested Markup}ã% controls the appearance of the table title. +You may use markup such as \blockquotebegin, \hangingparagraph, \vertical- +space, and \centerline within \titleformat as Nested Markup. Other markup +you may use within or outside of \tableformat: + ã|tablenumber.ã% prints the most recent table number. + ã|tabletitle.ã% prints the most recent table title. + +ã|incontentsã% places the table title in contents (if one is printed). +Printing can be suppressed by changing to "no." + + ã|Example:ã% +If you wanted a table title to print in a hanging paragraph style, and you +didn't want the table title put in the table of contents, enter: + +\tableformat{% + \titleformat{\bqb\hp\bd Table \tablenumber. + \rm\tabletitle\bqe} + \incontents{yes} + } + +\tabletitle{Size data of a Yellow +Transparent fruit during the period of July 23 to August 9, +1977. (fruit No. IV@_b@)} +\halign{\qquad\ctr{#}&&\hs{1em}\ctr{#}\cr +July 23&July 27&July 31&August 5&August 9\cr +32&67&44&47&18\cr} + ++-----------------------------------------------------------------------------+ +| | +| | +| Table 1. Size data of a Yellow Transparent fruit during the | +| period of July 23 to August 9, 1977. (fruit No. IV[b]) | +| | +| July 23 July 27 July 31 August 5 August 9 | +| 32 67 44 47 18 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +The \tableformat markup must come after the \monospace markup, if both are +used. If you are using \monospace, the only difference in defaults is that +the table title is printed in the \monospace font instead of \twelvept. diff --git a/macros/text1/cms_help_files/talaris.helpbloc b/macros/text1/cms_help_files/talaris.helpbloc new file mode 100644 index 0000000000..b6d310e084 --- /dev/null +++ b/macros/text1/cms_help_files/talaris.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|TALARISã%block is to be selected if you want to change the default +proportional space fonts and you are using a Talaris. diff --git a/macros/text1/cms_help_files/tat.helpmark b/macros/text1/cms_help_files/tat.helpmark new file mode 100644 index 0000000000..d5f13ab97a --- /dev/null +++ b/macros/text1/cms_help_files/tat.helpmark @@ -0,0 +1,59 @@ ++-----------------------------------------------------------------------------+ +| tabletitle | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\tatã% + +Parameters: ã|title textã% + + ã|Description:ã% +A table is a presentation of information in columns. The \tabletitle markup +centers the title and puts that title in the table of contents. The +\tabletitle markup does not print the actual table, you must use \halign or +\settabs to accomplish that. + + ã|Example:ã% +\tabletitle{Monthly Salaries in Public Libraries\lbr +for 1981} +\tenpt +\halign{\quad\lft{#}&&\quad\ctr{#}\cr +\noalign{\hrule\vs{3pt}} + +&&\ctr{\bd Library Aide}&\ctr{\bd Page}\cr +\omit\ctr{\bd City/Town}&\ctr{\bd Librarian}& + \ctr{\bd and Clerical}&\ctr{\bd and}\cr +\omit\ctr{\bd Libraries}&\ctr{\bd (a)(b)}& + \ctr{\bd Assistant}&\ctr{\bd Bookbinder}\cr +Brewster&190&---&---\cr +Burlington&1158&5.89 hr&3.35/3.50 hr\cr +Castle Rock&300&3.35 hr&---\cr +Cathlamet&225&---&---\cr +Chewelah&290&---&---\cr +Cle Elum&3.50 hr&---&---\cr +Colville&5.68 hr&5.00 hr&---\cr +} + +which prints the table illustrated on the following page. + ++-----------------------------------------------------------------------------+ +| | +| Table 1 | +| Monthly Salaries in Public Libraries | +| for 1981 | +|.............................................................................| +| Library Aide Page | +| City/Town Librarian and Clerical and | +| Libraries (a)(b) Assistant Bookbinder | +| Brewster 190 --- --- | +| Burlington 1158 5.89 hr 3.35/3.50 hr | +| Castle Rock 300 3.35 hr --- | +| Cathlamet 225 --- --- | +| Chewelah 290 --- --- | +| Cle Elum 3.50 hr --- --- | +| Colville 5.68 hr 5.00 hr --- | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +\tabletitle only prints the table title in the text and places the title +in the table of contents. Use \halign or \settabs to construct the table +itself. diff --git a/macros/text1/cms_help_files/tenpt.helpmark b/macros/text1/cms_help_files/tenpt.helpmark new file mode 100644 index 0000000000..0ee2d7e6b9 --- /dev/null +++ b/macros/text1/cms_help_files/tenpt.helpmark @@ -0,0 +1,42 @@ ++-----------------------------------------------------------------------------+ +| tenpt | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +There are two default \selectfontsets established when you format a TEXT1 +file: \twelvept for the 12 point size Computer Modern serif typestyle; and +\tenpt for the 10 point Computer Modern serif typestyle. + The font set includes the following nine faces, each of which is called +by adding a backslash in front of the name, or using the abbreviation: +\roman (\rm), \bold (\bd), \italic (\it), \typewriter (\tt), \caps (\cc), +\mathitalic (\mi), \symbol (\sy), \extension (\ex), and \bolditalic (\bi). + + ã|Example:ã% +Consider this example for switching from 12 point to a 10 point size. + +\tenpt +\centerline{\twelvept\bd Sociogeology} +\centerline{\it by Achilles Chert} +"Does the absurd dictate death?" asks Albert Camus, + ++-----------------------------------------------------------------------------+ +| | +| Sociogeology | +| by Achilles Chert | +| "Does the absurd dictate death?" asks Albert Camus, | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +There are some markup, such as \figure, \blockquotebegin, \autoendnote, and +\autofootnote which use \tenpt in formatting. If you decide you want to use +another 10 point font set (like Plantin) instead of Computer Modern as the +default, you must give that set the same name, "tenpt": + +\selectfontset{pl10}{tenpt}{default} +\selectfontset{pl12}{twelvept}{default} +\selectmathset{cg97m}{mathdefault} +\tenpt diff --git a/macros/text1/cms_help_files/text1.helpmark b/macros/text1/cms_help_files/text1.helpmark new file mode 100644 index 0000000000..cfb0983202 --- /dev/null +++ b/macros/text1/cms_help_files/text1.helpmark @@ -0,0 +1,44 @@ ++-----------------------------------------------------------------------------+ +| text1 | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +You can print the name of the TEXT1 system by entering the markup \text1. + + ã|Example:ã% +\appendix{\text1\ Markup} +Following is the list of markup for \text1. +\twc +\aib +appendix +asisbegin +asisend +\aie +\oc + +will print an appendix that looks like: + ++-----------------------------------------------------------------------------+ +| | +| 2 | +| | +| Appendix A | +| TEXT1 Markup | +| Following is the list of markup for TEXT1. | +| | +| appendix | +| asisbegin | +| asisend | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +You must follow \text1 with a required space (either a tilde ~ or with +a backslash-space, if you want a space following \text1 as indicated in +the example above in the \appendix markup. If you do not need a space +following, such as at the end of the sentence illustrated in the second line +of the example above beginning "Following is . . . ", then omit the space. diff --git a/macros/text1/cms_help_files/thc.helpmark b/macros/text1/cms_help_files/thc.helpmark new file mode 100644 index 0000000000..dc34bb186e --- /dev/null +++ b/macros/text1/cms_help_files/thc.helpmark @@ -0,0 +1,75 @@ ++-----------------------------------------------------------------------------+ +| threecolumns | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\thcã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \threecolumns markup formats text in three identical width columns. +Column widths, gutters and margins are calculated automatically. The +default column width is 31% of the galleywidth (hsize). The default gutter +between each column is 3.5% of the galleywidth. + The Flexible format (the default) allows the user to use single column, +two column, and three column text interchangeably on the current page by +entering one of the markup choices at the desired point in the text. The +flexible format will balance the text columns whenever the number of columns +changes. + For example, if the author changes the multiple column format by +typing a different markup TEXT1 will automatically balance the columns it +is currently processing and change to a new number of columns. These +instructions can be inserted at any point on the page. + The author may want to handle tables and other large blocks of text by +returning to a single column for the table by typing \onecolumn immediately +before the table and returning to two or three column formatting immediately +after the table. + All running head, running foot, and inserts are printed across the +full single column width that prints across the top of the current page. +Footnotes will be printed across the full width at the bottom of the page. + + ã|Example:ã% +\threecolumns +\nin Hebrew is called a Semitic language because it has +its roots in Shem, one of the sons of Noah. +Viewing Jerusalem as its center, it is related to the +northern, rougher Aramaic, and to the southern, more +polished Arabic. It has a freshness, simplicity and +power that few modern languages possess. Bounds of the +ancient Semitic tongue were approximately the +Mediterranean Sea on the west, the Euphrates and Tigris +Rivers on the easy, the mountains +of Armenia on the north, +and the coast of Arabia on the south. Consider the first +character, N . . . + ++-----------------------------------------------------------------------------+ +| | +| Hebrew is rougher approximately. | +| called Aramaic, the Mediter- | +| a Semitic and to the ranean Sea | +| language southern, on the west, | +| because more pol- the Euphrates. | +| it has its ished Ara- and Tigris | +| roots in bic. It Rivers on | +| Shem, one has a the easy, | +| of the sons freshness, sim- the mountains. | +| of Noah. plicity and of Armenia | +| Viewing power that on the north,. | +| Jerusalem few modern and the coast. | +| as its cen- languages pos Arabia on | +| ter, it is sess. Bounds the south. | +| related to of the an- Consider the | +| the north- cient Semitic first char- | +| ern, tongue were acter, N | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +To change the column width or the gutter width, use the \multicolumnformat +markup. + You cannot specify \threecolumns inside of \vbox, \drawbox, +\paragraphbox, or a floating \figure (non floating figures, \nofloat, +are ok). + If you want footnotes and figures to print in one column instead of +across both columns, use the \fixedformat markup. diff --git a/macros/text1/cms_help_files/thesis.helpmode b/macros/text1/cms_help_files/thesis.helpmode new file mode 100644 index 0000000000..5d43b13234 --- /dev/null +++ b/macros/text1/cms_help_files/thesis.helpmode @@ -0,0 +1,8 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Models | ++-----------------------------------------------------------------------------+ + +Theã|THESISã%model is a thesis model set up to abide by all of the WSU +graduate school's rules. It is a template. You may modify it, but +it is recommended you check with the Information Center first. diff --git a/macros/text1/cms_help_files/titlepg.helpbloc b/macros/text1/cms_help_files/titlepg.helpbloc new file mode 100644 index 0000000000..dd15e332b0 --- /dev/null +++ b/macros/text1/cms_help_files/titlepg.helpbloc @@ -0,0 +1,7 @@ + ++-----------------------------------------------------------------------------+ +| TEXT1 Select Formatting Blocks | ++-----------------------------------------------------------------------------+ + +Theã|TITLEPGã%block is to be selected if you want to modify the +\titlepageformat for changing the way a title page is printed. diff --git a/macros/text1/cms_help_files/toc.helpmark b/macros/text1/cms_help_files/toc.helpmark new file mode 100644 index 0000000000..dd9d895ec7 --- /dev/null +++ b/macros/text1/cms_help_files/toc.helpmark @@ -0,0 +1,39 @@ ++-----------------------------------------------------------------------------+ +| tableofcontents | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\tocã% + +Parameters: ã|page numberã% + + ã|Description:ã% +The \tableofcontents markup prints the table of contents, beginning with +the designated page. A roman numeral page number is specified by entering +a negative page number. This markup must always appear at the end of a +document. + By default, parts, chapters, appendices and subheading levels "A" and +"B" are included in the table of contents. The order of printing in the +table of contents is always + 1. table of contents + 2. list of figures + 3. list of tables + The list of figures will print only if a \figure markup was used. The +list of tables will print only if a \tabletitle markup was used. + + ã|Example:ã% +To print the table of contents beginning on page 32 enter: +of utmost importance. +\tableofcontents{32} + + ã|Example:ã% +If you wanted the table of contents to begin on roman numeral page three +("iii"), you would enter a minus three. + +New York: Halstead Press. +\tableofcontents{-3} + + ã|Notes:ã% +This markup must always appear at the end of a document. + Multiple line titles may be broken in the table of contents by using +\toclinebreak. + diff --git a/macros/text1/cms_help_files/tocf.helpmark b/macros/text1/cms_help_files/tocf.helpmark new file mode 100644 index 0000000000..f178e50e3c --- /dev/null +++ b/macros/text1/cms_help_files/tocf.helpmark @@ -0,0 +1,478 @@ ++-----------------------------------------------------------------------------+ +| tableofcontentsformat | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\tocfã% + +Parameters: ã|submarkupã% + +Submarkup: ã| \toctitle, \prefacetocformat, \parttocformat, +\continuechapter, \chaptertocformat, +\hangingchapterindent, \appendixtocformat, +\hangingappendixindent, \subheadatocformat, +\subheadbtocformat, \subheadctocformat, +\subheaddtocformat, \bibliographytocformat, +\figuretoctitle, \figuretocformat, +\hangingfigureindent, \tabletoctitle, +\tabletocformat, \hangingtableindentã% + + ã|Description:ã% +The table of contents prints with the titles "Table of Contents", "List of +Figures", and "List of Tables" centered in bold letters and each beginning + +on a new page. If you want to change these defaults you use the \table- +ofcontentsformat markup. This markup also changes the way part, chapter, +subhead, appendix, bibliography, preface, figure and table titles print in +table of contents. + +ã|toctitleã% regulates how the table of contents title is to be printed. By +default it is a centered bold title "Table of Contents". Use \toctitle to +change this default. + + ã|Example:ã% +If you wanted the title of the table of contents to print "Contents" you +would enter: + +\tableofcontentsformat{ + \toctitle{\cl{\it Contents}}} + +ã|prefacetocformatã% determines how titles entered on the \preface markup +are to print in the table of contents. By default, they are simply printed +with a \noindent. + ++-----------------------------------------------------------------------------+ +| | +| Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you wanted the preface title to print in italics as illustrated on the +next page, you would enter: + +\tocf{\prefacetocformat{\nin\it + \prefacetitle\leader\pn}} + ++-----------------------------------------------------------------------------+ +| | +| Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | +| | ++-----------------------------------------------------------------------------+ + +ã|parttocformatã% determines how titles entered on the \part markup are to +print in the table of contents. By default, part titles skip one line, +center the part number, center the part title, skip another line, then print +"Part" followed by the part number again, followed by leader and the page +number: + ++-----------------------------------------------------------------------------+ +| | +| Part 1 | +| Mechanics | +| | +| Part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% + +If you wanted parts to print in a hanging paragraph style, enter: + +\tocf{\parttocformat{\hp\parttitle\leader\pn}} + ++-----------------------------------------------------------------------------+ +| | +| Videodiscs in today's modern office --- Timely | +| TV Tutors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | ++-----------------------------------------------------------------------------+ + +ã|continuechapterã% if specified as "yes" will print "Chapter" at the top of +each page under the header. The default is "no". + +ã|chaptertocformat{Nested Markup}ã% determines how a chapter title is to be +printed in the table of contents. By default, the chapter number and title +are printed in a hanging number style. For example, if you entered, + +\chapter{The Nineteenth Century and after\lbr +best-sellers\toclbr and steady-sellers} + +you would get in the table of contents: + ++-----------------------------------------------------------------------------+ +| | +| 1. The Nineteenth Century and after best-sellers | +| and steady-sellers . . . . . . . . . . . . . . . . . . . . . . . . . 6 | ++-----------------------------------------------------------------------------+ + +Note that the line break from \lbr only occurs in the text, not in the +table of contents. Use \toclbr to create a line break which is to occur +in the table of contents. To change the amount of indent, use the +\hangingchapterindent. You may use markup such as \newpage, \chaptertitle, +\chapternumber, \verticalspace, and \centerline within \chaptertocformat as +Nested Markup. You may also use \hangingchapternumber, which prints the +chapter number in a similar fashion as \item. + + ã|Example:ã% +If you wanted chapter titles to print in a hanging paragraph style, without +an associated chapter number, you would enter: + +\tocf{\chaptertocformat{\hp\chaptertitle\leader\pn}} + ++-----------------------------------------------------------------------------+ +| | +| The Nineteenth Century and after best-sellers | +| and steady-sellers . . . . . . . . . . . . . . . . . . . . . . . . . 7 | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you want the title "Chapter" to appear left justified in the table of +contents above the first chapter number, prior to the first chapter you +would enter the following \putincontents markup: + +\putincontents1{\nin Chapter} +\chapter{First Chapter} +Text of the first chapter . . . + +which prints in the table of contents as: + ++-----------------------------------------------------------------------------+ +| | +| Chapter | +| 1. First Chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | ++-----------------------------------------------------------------------------+ + +ã|hangingchapterindentã% controls the amount of indent before printing the +chapter title when you print using \hangingchapternumber. + +ã|appendixtocformat{Nested Markup}ã% determines how an appendix title is to +be printed in the table of contents. By default, the appendix number and +title are printed in a hanging number style. For example, if you entered, + +\appendix{The Nineteenth Century and after\lbr +best-sellers\toclbr and steady-sellers} + +you would get in the table of contents: + ++-----------------------------------------------------------------------------+ +| | +| A. The Nineteenth Century and after best-sellers | +| and steady-sellers . . . . . . . . . . . . . . . . . . . . . . . . . 9 | ++-----------------------------------------------------------------------------+ + +Note that the line break from \lbr only occurs in the text, not in +the table of contents. Use \toclbr to create a line break which +is to occur in the table of contents. To change the amount of +indent, use the \hangingappendixindent. You may use markup such as +\newpage, \appendixtitle, \appendixnumber, \verticalspace, and \center- +line within \appendixtocformat as Nested Markup. You may also use +\hangingappendixnumber, which prints the chapter number in a similar fashion +as \item. + + ã|Example:ã% +If you wanted appendix titles to print in a hanging paragraph style, without +an associated appendix number, you would enter: + +\tocf{\appendixtocformat{\hp\appendixtitle\leader\pn}} + ++-----------------------------------------------------------------------------+ +| | +| The Nineteenth Century and after best-sellers | +| and steady-sellers . . . . . . . . . . . . . . . . . . . . . . . . . 10 | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you want the title "Appendix" to appear left justified in the table of +contents above the first appendix number, prior to the first appendix you +would enter the following \putincontents markup: + +\putincontents1{\nin Appendix} +\appendix{First Appendix} +Text of the first appendix . . . + ++-----------------------------------------------------------------------------+ +| | +| Appendix | +| A. First Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | ++-----------------------------------------------------------------------------+ + +ã|hangingappendixindentã% controls the amount of indent before printing the +appendix title when you print using \hangingappendixnumber. + +ã|subheadatocformatã% by default prints all titles entered with \subheada to +be block indented 1/2 inch from the left margin. Use \subheadatocformat to +change this default. + ++-----------------------------------------------------------------------------+ +| | +| Chapter | +| 1. Document Exchange . . . . . . . . . . . . . . . . . . . . . . . . . 12 | +| Micro-to-Mainframe Links: They don't quite | +| make it yet . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +To have subheada titles indented 1/4inch and printed with a hangingindent, +enter: + +\tocf{\subheadatocformat{\leftindent{.25in} + \hp\subheadatitle \leader \pagenumber}} + ++-----------------------------------------------------------------------------+ +| | +| Chapter | +| 1. Document Exchange . . . . . . . . . . . . . . . . . . . . . . . . . 12 | +| Micro-to-Mainframe Links: They don't quite make | +| it yet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | +| | ++-----------------------------------------------------------------------------+ + +ã|subheadbtocformatã% by default prints all titles entered with \subheadb to +be block indented 1 inch from the left margin. Use \subheadbtocformat to +change the default illustrated here: + ++-----------------------------------------------------------------------------+ +| | +| Chapter | +| 1. Document Exchange . . . . . . . . . . . . . . . . . . . . . . . . . 14 | +| Micro-to-Mainframe Links: They don't | +| quite make it yet . . . . . . . . . . . . . . . . . . . . . . 14 | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +To have subheadb titles indented /4 inch and printed with a hangingindent +prefaced with "cc.aa.bb" where cc is the chapter number, aa is the subheada +number and bb is the subheadb number, enter: + + \tocf{\subheadbtocformat{\leftindent{.25in} + \hp\chapternumber.\subheadanumber.\subheadbnumber + \quad\subheadbtitle \leader \pagenumber}} + + The first \subheadb in the second \subheada of the first chapter would +print in the table of contents as: + ++-----------------------------------------------------------------------------+ +| | +| Chapter | +| 1. Document Exchange . . . . . . . . . . . . . . . . . . . . . . . . . 15 | +| 1.2.1 Micro-to-Mainframe Links: They | +| don't quite make it yet . . . . . . . . . . . . . . . . . 15 | ++-----------------------------------------------------------------------------+ + +ã|subheadctocformatã% by default prints all titles entered with \subheadc to +be block indented 11/2inch from the left margin. Use \subheadctocformat to +change this default. + ++-----------------------------------------------------------------------------+ +| | +| | +| Chapter | +| 1. Document Exchange .. . ...... . .. .. .. . ...... . .. .. .. . .....15 | +| Micro-to-Mainframe Links: They | +| don't quite make it yet .... . . ..... . . ..... . . ....15 | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +To have subheadc titles indented 3/4inch and printed in italics, enter: + +\tocf{\subheadctocformat{\leftindent{.75in} + \nin\italic + \subheadctitle \leader \pagenumber}} + ++-----------------------------------------------------------------------------+ +| | +| Chapter | +| 1. Document Exchange . . . . . . . . . . . . . . . . . . . . . . . . . 17 | +| Micro-to-Mainframe Links: They don't | +| quite make it yet . . . . . . . . . . . . . . . . . . . . . . . 17 | ++-----------------------------------------------------------------------------+ + +ã|subheaddtocformatã% by default prints all titles entered with \subheadd to +be block indented 2 inches from the left margin. Use \subheaddtocformat to +change this default. + ++-----------------------------------------------------------------------------+ +| | +| Chapter | +| 1. Document Exchange . . . . . . . . . . . . . . . . . . . . . . . . . 17 | +| Micro-to-Mainframe Links: | +| They don't quite make | +| it yet . . . . . . . . . . . . . . . . . . . . . . 17 | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +To have subheadd titles indented 2 inches, printed with a hangingindent in a +10 point Computer Modern italic font, and no page number, enter: + +\tocf{\subheadatocformat{\leftindent{2in} + \hp\tenpt\italic + \subheaddtitle}} + ++-----------------------------------------------------------------------------+ +| | +| Chapter | +| 1. Document Exchange . . . . . . . . . . . . . . . . . . . . . . . . . 19 | +| Micro-to-Mainframe Links: | +| They don't quite make it yet | ++-----------------------------------------------------------------------------+ + +ã|bibliographytocformatã% determines how titles entered on the \bibliography +markup are to print in the table of contents. By default, they are simply +printed with a \noindent like prefaces. Use \bibliographytocformat to +change this default. + ++-----------------------------------------------------------------------------+ +| | +| Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you wanted the preface title to print in bold, you would enter: + +\tocf{\bibliographytocformat{\nin\bold + \bibtitle\leader\pn}} + ++-----------------------------------------------------------------------------+ +| | +| ã|Bibliographyã%. . . . . . . . . . . . . . . . . . . . . . . . . . 20 | +| | ++-----------------------------------------------------------------------------+ + +ã|figuretoctitleã% determines how the list of figures is to print. By +default, it will start a new page, center the title "List of Figures", and +then print a header above the first figure, which in the example below had +the title "Hot times . . . " and printed on page 43: ++-----------------------------------------------------------------------------+ +| | +| 21 | +| List of Figures | +| Figure Page | +| 1. Hot times in the land of the midnight sun . . . . . . . . . . . 43 | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you wanted the list of figures to print the title "Illustrations" instead +of "List of Figures" after skipping to a new page, enter + +\tocf{\figuretoctitle{\newpage + \cl{\bd Illustrations} + \line{Figure\rt{Page}}}} + ++-----------------------------------------------------------------------------+ +| | +| Illustrations | +| Figure Page | +| 1. Hot times in the land of the midnight sun ... . ... ... . .....43 | ++-----------------------------------------------------------------------------+ + +ã|figuretocformat{Nested Markup}ã% determines how a figure title is to be +printed in the table of contents. By default, the figure number and title +are printed in a hanging number style. For example, if you entered: + +\figure{\halfpage}{The Nineteenth Century +and after best-sellers\toclbr and steady-sellers} +the figure title would print in the contents as: + ++-----------------------------------------------------------------------------+ +| | +| 1. The Nineteenth Century and after best-sellers | +| and steady-sellers . . . . . . . . . . . . . . . . . . . . . . . . 22 | +| | ++-----------------------------------------------------------------------------+ + + To change the amount of indent, use the \hangingfigureindent. You may +use markup such as \figuretitle and \figurenumber, within \figuretocformat +as Nested Markup. You may also use \hangingnumber{\figurenumber} which +prints the figure number in a similar fashion as \item. + + ã|Example:ã% +If you wanted figure titles to print in a hanging paragraph style prefaced +with the figure number, you would enter: + +\tocf{\figuretocformat{\hp + \figurenumber\quad\figuretitle\leader\pn}} + ++-----------------------------------------------------------------------------+ +| | +| 1 The Nineteenth Century and after best-sellers | +| and steady-sellers . . . . . . . . . . . . . . . . . . . . . . . . . . 23 | ++-----------------------------------------------------------------------------+ + +ã|hangingfigureindentã% controls the amount of indent before printing the +figure title when you print using: + +\hangingnumber{\figurenumber} + +ã|tabletoctitleã% determines how the list of tables is to print. By +default, it will start a new page, center the title "List of Tables ", and +then print a header above the first table, which in the example below had +the title "Hot times . . . " and printed on page 55: + ++-----------------------------------------------------------------------------+ +| | +| List of Tables | +| Table Page | +| 1. Hot times in the land of the midnight sun . . . . . . . . . . . 55 | +| | ++-----------------------------------------------------------------------------+ + + ã|Example:ã% +If you wanted the list of tables to print the title "Tables" after skipping +to a new page, enter + +\tocf{\tabletoctitle{\newpage + \cl{\bd Tables} + \line{Table\rt{Page}}}} + ++-----------------------------------------------------------------------------+ +| | +| Tables | +| Table Page | +| 1. Hot times in the land of the midnight sun . . . . . . . . . . . 55 | +| | ++-----------------------------------------------------------------------------+ + +ã|tabletocformat{Nested Markup}ã% determines how a table title is to be +printed in the table of contents. By default, the table number and title +are printed in a hanging number style. For example, if you entered: + +\tabletitle{The Nineteenth Century +and after best-sellers\toclbr and steady-sellers} +the table title would print as: + ++-----------------------------------------------------------------------------+ +| | +| 1. The Nineteenth Century and after best-sellers | +| and steady-sellers . . . . . . . . . . . . . . . . . . . . . . . . 26 | +| | ++-----------------------------------------------------------------------------+ + + To change the amount of indent, use the \hangingtableindent. You may +use markup such as \tabletitle and \tablenumber, within \tabletocformat as +Nested Markup. You may also use \hangingnumber{\tablenumber}, which prints +the table number in a similar fashion as \item. + + ã|Example:ã% +If you wanted table titles to print in a hanging paragraph style prefaced +with "cc.tt" where cc is the chapter number and tt is the table number, you +would enter, + +\tocf{\tabletocformat{\hp\chapternumber.\tablenumber + \quad\tabletitle\leader\pn}} + +and the first table of the second chapter would print in the contents as: + ++-----------------------------------------------------------------------------+ +| | +| 2.1 The Nineteenth Century and after best-sellers | +| and steady-sellers . . . . . . . . . . . . . . . . . . . . . . . . . 27 | ++-----------------------------------------------------------------------------+ + +ã|hangingtableindentã% controls the amount of indent before printing the +table title when you print using: + +\hangingnumber{\tablenumber} + + ã|Notes:ã% +The \tableofcontentsformat markup should always appear at the top of a +document, but after \monospace, if both are used. diff --git a/macros/text1/cms_help_files/toclbr.helpmark b/macros/text1/cms_help_files/toclbr.helpmark new file mode 100644 index 0000000000..b7503bd102 --- /dev/null +++ b/macros/text1/cms_help_files/toclbr.helpmark @@ -0,0 +1,43 @@ ++-----------------------------------------------------------------------------+ +| toclinebreak | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\toclbrã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \toclinebreak markup causes a line to finish without interrupting a +paragraph in the table of contents. Occasionally it is necessary to break +a line in a precise place within a paragraph, as opposed to letting TEXT1 +decide where to break the line. This markup does not end a paragraph, it +simply starts the following text of the paragraph on a new line in the table +of contents instead of concatenating it to the end of the previous line. + + ã|Example:ã% +\chapter{More facts about Datapoint +information\toclbr processing\linebreak + and office +automation products,\lbr\toclbr +systems, and software} + +will print the chapter title on three lines in the text of the document: + ++-----------------------------------------------------------------------------+ +| | +| More facts about Datapoint information processing | +| and office automation products, | +| systems, and software | ++-----------------------------------------------------------------------------+ + +and on three lines in the table of contents: + ++-----------------------------------------------------------------------------+ +| | +| 1. More facts about Datapoint information | +| processing and office automation products, | +| systems, and software . . . .... . . ...... . . .... . . ...... . . 32 | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/today.helpmark b/macros/text1/cms_help_files/today.helpmark new file mode 100644 index 0000000000..3d9a1bd87c --- /dev/null +++ b/macros/text1/cms_help_files/today.helpmark @@ -0,0 +1,30 @@ ++-----------------------------------------------------------------------------+ +| today | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \today markup prints the current date in a standard format, "month day, +year". + + ã|Example:ã% +\rightlinesbegin +John R. Bays +Philosophy 484 +\today +\rightlinesend + ++-----------------------------------------------------------------------------+ +| | +| John R. Bays | +| Philosophy 484 | +| January 15, 1987 | +| | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/topline1.helpeven b/macros/text1/cms_help_files/topline1.helpeven new file mode 100644 index 0000000000..a839ce01d1 --- /dev/null +++ b/macros/text1/cms_help_files/topline1.helpeven @@ -0,0 +1,31 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \topline1-5 COMMANDS | ++-----------------------------------------------------------------------------+ + +The \topline1-5 commands set what will appear at the top of each page after the +title page. The \topline1-5 command is always used in conjunction with the +\bothpages (\bp), \evenpages (\ep), or \oddpages (\op) command. This command +has the format: + + \evenpages{ + \toplineX{llll}{cccc}{rrrr} + } + +where "X" may be 1-5 and refers to the toptitle line number; "llll" is the +information to be printed left justified; "cccc" is the information to be +printed centered; and "rrrr" is the information to be printed right justified. +For example: + + \evenpages{ + \topline1{Joe Smith}{June 3, 1984}{\pagenumber} + \topline2{\rule}{}{} + } + +will space down the amount specified on the \topmargin command and put "Joe +Smith" at the top far left, with "June 3, 1984" centered and the current page +number on the top far right of the first line of each even page. On the second +line of each even page will be a horizontal line across the width of the text. +The running toptitle of page 4 would look like this: + +Joe Smith June 3, 1984 4 +_______________________________________________________________________________ diff --git a/macros/text1/cms_help_files/topline1.helpoddp b/macros/text1/cms_help_files/topline1.helpoddp new file mode 100644 index 0000000000..592dd44217 --- /dev/null +++ b/macros/text1/cms_help_files/topline1.helpoddp @@ -0,0 +1,31 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \topline1-5 COMMANDS | ++-----------------------------------------------------------------------------+ + +The \topline1-5 commands set what will appear at the top of each page after the +title page. The \topline1-5 command is always used in conjunction with the +\bothpages (\bp), \evenpages (\ep), or \oddpages (\op) command. This command +has the format: + + \oddpages{ + \toplineX{llll}{cccc}{rrrr} + } + +where "X" may be 1-5 and refers to the toptitle line number; "llll" is the +information to be printed left justified; "cccc" is the information to be +printed centered; and "rrrr" is the information to be printed right justified. +For example: + + \oddpages{ + \topline1{Joe Smith}{June 3, 1984}{\pagenumber} + \topline2{\rule}{}{} + } + +will space down the amount specified on the \topmargin command and put "Joe +Smith" at the top far left, with "June 3, 1984" centered and the current page +number on the top far right of the first line of each odd page. On the second +line of each odd page will be a horizontal line across the width of the text. +The running toptitle of page 5 would look like this: + +Joe Smith June 3, 1984 5 +_______________________________________________________________________________ diff --git a/macros/text1/cms_help_files/topmargi.helppage b/macros/text1/cms_help_files/topmargi.helppage new file mode 100644 index 0000000000..407c650c62 --- /dev/null +++ b/macros/text1/cms_help_files/topmargi.helppage @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \topmargin (\tma) COMMAND | ++-----------------------------------------------------------------------------+ + +The \topmargin (\tma) command will set the distance from the top of the page to +the top of the running top title text. This command has the format: + + \topmargin{uu} + +where "uu" is the unit of measurement in number of lines or in any valid TeX +measurement (pt, pc, in, etc.). The default top margin is one inch, or +\topmargin{1IN}. This command may only appear at the beginning of the TeX input +file before any actual text is entered. + +In order to change the top margin from the default of one inch to one-half +inch, you would enter: + + \tma{.5in} + +Which would give you one-half inch between the top of the page to the top of +the running top title. diff --git a/macros/text1/cms_help_files/tp.helpmark b/macros/text1/cms_help_files/tp.helpmark new file mode 100644 index 0000000000..b0e3f5dc3d --- /dev/null +++ b/macros/text1/cms_help_files/tp.helpmark @@ -0,0 +1,44 @@ ++-----------------------------------------------------------------------------+ +| titlepage | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\tpã% + +Parameters: ã|noneã% + + ã|Description:ã% +By convention, a title page is a display page, differing from body pages. +It usually has sinkage (extra vertical space before the title), a centered +title (in bold or larger type), and a blind folio (where the page is +numbered but the number is not printed). It may also have special text in +the footing. + By default, the first page of any paper is a title page in TEXT1, +although it can be suppressed by \notitlepage. Furthermore, title pages can +be added anywhere in a paper using \titlepage. Since the title page usually +receives different treatment from body pages, there is separate markup for +it. By default, the title page adds 1 inch to the top margin and does not +print a running foot line at the bottom of the page. + The next page after a title page in TEXT1 is always assumed to be a +\notitlepage. + + ã|Example:ã% +Some applications have more than one page in the document which are not +to carry a running top title. For example, if you want a chapter to +always print without a running top title, you could add \titlepage to the +\chapterformat markup: + +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \titlepage + \cl{\twelvept\bd Chapter \chapternumber} + \cl{\twelvept\bd \chaptertitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0}} + + \incontents{yes}} + + ã|Notes:ã% +Use the \titlepageformat to change the defaults on the title page. diff --git a/macros/text1/cms_help_files/tpf.helpmark b/macros/text1/cms_help_files/tpf.helpmark new file mode 100644 index 0000000000..61299a89b1 --- /dev/null +++ b/macros/text1/cms_help_files/tpf.helpmark @@ -0,0 +1,50 @@ ++-----------------------------------------------------------------------------+ +| titlepageformat | ++-----------------------------------------------------------------------------+ + +\titlepageformat{\titleleadskip{1in} + \titlefootline{} + } + +Abbreviation: ã|\tpfã% + +Parameters: ã|submarkupã% + +Submarkup: ã|\titleleadskip, \titlefootlineã% + + ã|Description:ã% +By convention, a title page is a display page, differing from body pages. +It usually has sinkage (extra vertical space before the title), a centered +title (in bold or larger type), and a blind folio (where the page is +numbered but the number is not printed). It may also have special text in +the footing. The \titlepageformat markup changes the heading and footing of +a titlepage. + +ã|titleleadskipã% is the amount of space to be left at the top of title +pages, in addition to the top margin. By default, there is a 1 inch lead +skip and a 1 inch top margin, making for a 2 inch white space at the top of +each title page. + +ã|titlefootlineã% is the footing at the bottom of a title page. Similar +in function to the running foot, its difference is that you do not specify +\bothpage, \evenpage, or \oddpage with \titlefootline. + + ã|Example:ã% +If you want to add 3 inches to the top margin, and print "Bays" at the +bottom of the page with the page number, enter: + +\titlepageformat{\titleleadskip{3in} + \titlefootline{\line{\lft{Bays}\rt{\pn}}} + } + +which prints a footing at the bottom of the page like: + ++-----------------------------------------------------------------------------+ + +| | +| Bays 3 | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/tt.helpmark b/macros/text1/cms_help_files/tt.helpmark new file mode 100644 index 0000000000..25af085df6 --- /dev/null +++ b/macros/text1/cms_help_files/tt.helpmark @@ -0,0 +1,50 @@ ++-----------------------------------------------------------------------------+ +| typewriter | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\ttã% + +Parameters: ã|noneã% + + ã|Description:ã% +Typewriter is a medium-weight uniformly spaced type face. You get this face +when you enter \typewriter. Each character has the same width. It is handy +in \asisbegin blocks. + + ã|Example:ã% +Using the typewriter font, + +\asisbegin +And yet not cloy thy lips 1 + with loath'd satiety, 2 +But rather famish them 3 + + amid their plenty, 4 +\asisend + +you get the line number on the right to line up: + ++-----------------------------------------------------------------------------+ + +| | +| And yet not cloy thy lips 1 | +| with loath'd satiety, 2 | +| But rather famish them 3 | +| amid their plenty, 4 | +| | ++-----------------------------------------------------------------------------+ + +Without \typewriter you get: + ++-----------------------------------------------------------------------------+ +| | +| And yet not cloy thy lips 1 | +| with loath'd satiety, 2 | +| But rather famish them 3 | +| amid their plenty, 4 | +| | ++-----------------------------------------------------------------------------+ + + + ã|Notes:ã% +none. diff --git a/macros/text1/cms_help_files/twc.helpmark b/macros/text1/cms_help_files/twc.helpmark new file mode 100644 index 0000000000..eac46c836c --- /dev/null +++ b/macros/text1/cms_help_files/twc.helpmark @@ -0,0 +1,75 @@ ++-----------------------------------------------------------------------------+ +| twocolumns | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\twcã% + +Parameters: ã|noneã% + + ã|Description:ã% +The \twocolumns markup formats text in two columns with identical width. +The column widths and gutter are calculated automatically within the +specified margins. The default width of both columns is 48% of the +galleywidth. The default gutter width is 4% of the galleywidth. + The Flexible format allows the user to use single column, two column, +and three column text interchangeably on the current page by entering one of +the markup choices at the desired point in the text. The flexible format +will balance the text columns whenever the number of columns changes. + For example, if the author changes the multiple column format by +typing a different markup TEXT1 will automatically balance the columns it +is currently processing and change to a new number of columns. These +instructions can be inserted at any point on the page. + The author may want to handle tables and other large blocks of text by +returning to a single column for the table by typing \onecolumn immediately +before the table and returning to two or three column formatting immediately +after the table. + All running head, running foot, and inserts are printed across the +full single column width that prints across the top of the current page. +Footnotes will be printed across the full width at the bottom of the page. + + ã|Example:ã% +\twocolumns +\nin Hebrew is called a Semitic language because it has +its roots in Shem, one of the sons of Noah. +Viewing Jerusalem as its center, it is related to the +northern, rougher Aramaic, and to the southern, more +polished Arabic. It has a freshness, simplicity and +power that few modern languages possess. Bounds of the +ancient Semitic tongue were approximately the +Mediterranean Sea on the west, the Euphrates and Tigris +Rivers on the easy, +the mountains of Armenia on the north, +and the coast of Arabia on the south. Consider the first +character, N . . . + ++-----------------------------------------------------------------------------+ +| | +| Hebrew is called languages pos- | +| a Semitic lan- sess. Bounds | +| guage because it of the ancient | +| has its roots Semitic tongue | +| in Shem, one were approxi- | +| of the sons of mately the Medi- | +| Noah. View- terranean Sea on | +| ing Jerusalem as the west, the | +| its center, it Euphrates and | +| is related to Tigris Rivers on | +| the northern, the easy, the | +| rougher Aramaic, mountains of Ar- | +| and to the menia on the | +| southern, more north, and the | +| polished Arabic. coast of Ara- | +| It has a fresh- bia on the | +| ness, simplic- south. Consider | +| ity and power the first char- | +| that few modern acter, N . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +To change the column width or the gutter width, use the \multicolumnformat +markup. + You cannot specify \twocolumns inside of \vbox, \drawbox, \paragraphbox, +or a floating \figure (non floating figures, \nofloat, are ok). + If you want footnotes and figures to print in one column instead of +across both columns, use the \fixedformat markup. diff --git a/macros/text1/cms_help_files/twelvept.helpmark b/macros/text1/cms_help_files/twelvept.helpmark new file mode 100644 index 0000000000..3a4cfcfd53 --- /dev/null +++ b/macros/text1/cms_help_files/twelvept.helpmark @@ -0,0 +1,44 @@ ++-----------------------------------------------------------------------------+ +| twelvept | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|noneã% + + ã|Description:ã% +There are two default \selectfontsets established when you format a TEXT1 +file: \twelvept for the 12 point size Computer Modern serif typestyle; and +\tenpt for the 10 point Computer Modern serif typestyle. + The font set includes the following nine faces, each of which is called +by adding a backslash in front of the name, or using the abbreviation: +\roman (\rm), \bold (\bd), \italic (\it), \typewriter (\tt), \caps (\cc), +\mathitalic (\mi), \symbol (\sy), \extension (\ex), and \bolditalic (\bi). + + ã|Example:ã% +Consider this example for switching from 12 point to a 10 point size. + +\tenpt +\centerline{\twelvept\bd Sociogeology} +\centerline{\it by Achilles Chert} +"Does the absurd dictate death?" asks Albert Camus, + ++-----------------------------------------------------------------------------+ +| | +| Sociogeology | +| by Achilles Chert | +| "Does the absurd dictate death?" asks Albert Camus, | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +There are some markup, such as \tableformat, \runningheadformat, \run- +ningfootformat, \chapterformat, \partformat and the other heading markup. +If you want to use another 12 point font set (like Plantin) as the +default instead of Computer Modern, you must give that set the same name, +"twelvept": + +\selectfontset{pl10}{tenpt}{default} +\selectfontset{pl12}{twelvept}{default} +\selectmathset{cg97m}{mathdefault} +\twelvept diff --git a/macros/text1/cms_help_files/us.helpmark b/macros/text1/cms_help_files/us.helpmark new file mode 100644 index 0000000000..29e63f08f1 --- /dev/null +++ b/macros/text1/cms_help_files/us.helpmark @@ -0,0 +1,34 @@ ++-----------------------------------------------------------------------------+ +| underscore | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\usã% + +Parameters: ã|textã% + + ã|Description:ã% +Underscoring, drawing a line under words or sentences, is also used for +emphasis and to indicate book titles. + + ã|Example:ã% + +Figure 1 shows a schema borrowed from my previous +book, \us{The} \us{Intact} \us{Societies:} +\us{Vestals} \us{and} \us{Volcanos} +\us{in} \us{the} \us{South Pacific}, which suggests . . . +ff ++-----------------------------------------------------------------------------+ +| | +| Figure 1 shows a schema borrowed from my previous book, The Intact | +| Societies: Vestals and Volcanos in the South Pacific, which suggests | +| . . . | +| | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +In proportional spacing, the \underscore markup has the occasional +disadvantage of preventing hyphenation and line breaking, which can result +in awkward or impossible interword spacing and line breaks. To remedy this, +put each word to be underscored inside of its own \underscore markup as +illustrated above. + Do not use \underscore in math mode; use \underline instead. diff --git a/macros/text1/cms_help_files/vbox.helpmark b/macros/text1/cms_help_files/vbox.helpmark new file mode 100644 index 0000000000..981ddf97ae --- /dev/null +++ b/macros/text1/cms_help_files/vbox.helpmark @@ -0,0 +1,32 @@ ++-----------------------------------------------------------------------------+ +| vbox | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|box materialã% + + ã|Description:ã% +The \vbox markup has many uses. One use is to be able to put multiple lines +into a \drawbox markup. + + ã|Example:ã% +\drawbox{\vbox{The Center for Unpleasant Phenomena +is the research arm of Giga Geologicals, +Inc. No apologies +are tendered for the nonverifiability of experiments. +The opinions of the authors do not reflect +company policy.}} + ++-----------------------------------------------------------------------------+ +| | +| ........................................................................... | +| . The Center for Unpleasant Phenomena is the research arm of Gig . | +| . Geologicals, Inc. No apologies are tendered for the nonverifiability of . | +| . experiments. The opinions of the authors do not reflect company policy. . | +| ........................................................................... | +| | ++-----------------------------------------------------------------------------+. + + ã|Notes:ã% +Refer to The TEXbook for more on this markup. diff --git a/macros/text1/cms_help_files/vertical.helpvert b/macros/text1/cms_help_files/vertical.helpvert new file mode 100644 index 0000000000..872fadaa4f --- /dev/null +++ b/macros/text1/cms_help_files/vertical.helpvert @@ -0,0 +1,21 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \verticalspace (\vs) COMMAND | ++-----------------------------------------------------------------------------+ + +The \verticalspace (\vs) command will leave the specified amount of space or +the specified number of blank lines in the text. This command will also force +the following text into a new paragraph. The format for the \verticalspace +(\vs) command is: + + \verticalspace{x} + +Where "x" is the number of blank lines or space you wish to leave. For +example, + + \verticalspace{4\bl} + +will leave four blank lines, and + + \verticalspace{2in} + +will leave two inches of blank space. diff --git a/macros/text1/cms_help_files/vrule.helpmark b/macros/text1/cms_help_files/vrule.helpmark new file mode 100644 index 0000000000..60e469f102 --- /dev/null +++ b/macros/text1/cms_help_files/vrule.helpmark @@ -0,0 +1,19 @@ ++-----------------------------------------------------------------------------+ +| vrule | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|noneã% + +Parameters: ã|dimensionã% + + ã|Description:ã% +The \vrule markup draws a vertical rule. It is a native TEX markup, and +the usage is different in that the parameter is not surrounded with curly +braces. If you do not supply a dimension, TEXT1 will print the rule with +a height of the highest character in that line and the depth of the deepest +character in that line. By default, the rule drawn has a thickness (width) +of .4pt. + + ã|Notes:ã% +Refer to The TEXbook for more on \vrule and how to use the "depth" parameter +with the "height" and "width" parameters. diff --git a/macros/text1/cms_help_files/vs.helpmark b/macros/text1/cms_help_files/vs.helpmark new file mode 100644 index 0000000000..fb1a1cc8f6 --- /dev/null +++ b/macros/text1/cms_help_files/vs.helpmark @@ -0,0 +1,53 @@ ++-----------------------------------------------------------------------------+ +| verticalspace | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\vsã% + +Parameters: ã|units of measureã% + + ã|Description:ã% +The \verticalspace markup creates blank lines (or space) on a page. This +markup causes a break in text and leaves a specified amount of space within +a page. Any following text starts a new paragraph. The total amount of +white space left is the units of measure (dimension) in the \verticalspace, +plus the current paragraph skip value. This markup is followed by a +parameter, which can be entered in whole blank lines, inches, points, or +other valid units of measure. + + ã|Example:ã% +\verticalspace{24pt} + +{\bd Minerals and Human Behavior} +\verticalspace{1\bl} +"Does the Absurd dictate death?" asks Albert +Camus, a novelist who lionized the labors of . . . + ++-----------------------------------------------------------------------------+ +| | +| | +| | +| | +| Minerals and Human Behavior | +| | +| "Does the Absurd dictate death?" asks Albert Camus, a novelist who | +| lionized the labors of . . . | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% +You can tell TEXT1 you want a variable amount of white space between lines +by entering something line: + +\verticalspace{10pt plus 2pt minus 1pt} + +which tells TEXT1 you want 10 points of white space in addition to the +paragraph skip. If TEXT1 cannot balance text to the bottom of the page +when \normalbottom is in effect (which is the default), then the above +specification allows TEXT1 to add up to 2 points of white space or subtract +up to 1 point of white space from the 10 points of white space. + If you enter a \verticalspace markup at the top of a page it will be +ignored. Putting a \verticalspace at the bottom of a page is risky, also, +if the amount of space left on the page is less than the amount asked for. +The difference will not be carried over to the following page; it will be +lost. Both difficulties can be resolved by using a required space markup, +\verticalspacekeep. diff --git a/macros/text1/cms_help_files/vsk.helpmark b/macros/text1/cms_help_files/vsk.helpmark new file mode 100644 index 0000000000..12befa9880 --- /dev/null +++ b/macros/text1/cms_help_files/vsk.helpmark @@ -0,0 +1,45 @@ ++-----------------------------------------------------------------------------+ +| verticalspacekeep | ++-----------------------------------------------------------------------------+ + +Abbreviation: ã|\vskã% + +Parameters: ã|units of measureã% + + ã|Description:ã% +The \verticalspacekeep markup leaves a required amount of space, for a +figure, plate, or table. The space will always be kept together on +the current page or printed at the top of the next page if not enough +space remains on the current page. Text that follows a \verticalspacekeep +will not be used to fill in the current page if the required space is +moved to the following page. The amount of white space left is the +\verticalspacekeep dimension plus the current paragraph skip value. + + ã|Example:ã% +\verticalspacekeep{2in} + +{\bd Sociogeology} +{\it Minerals and Human Behavior} + ++-----------------------------------------------------------------------------+ +| | +| | +| | +| | +| | +| | +| | +| | +| | +| | +| | +| | +| | +| | +| Sociogeology Minerals and Human Behavior | ++-----------------------------------------------------------------------------+ + + ã|Notes:ã% + +\verticalspacekeep is the best way to have white space left at the top of a +page. \verticalspace will not leave white space at the top of a page. diff --git a/macros/text1/cms_help_files/width.helppage b/macros/text1/cms_help_files/width.helppage new file mode 100644 index 0000000000..ec89a93efc --- /dev/null +++ b/macros/text1/cms_help_files/width.helppage @@ -0,0 +1,13 @@ ++-----------------------------------------------------------------------------+ +| TEXT1 \width COMMAND | ++-----------------------------------------------------------------------------+ + +The \width command specifies the width of the page that will be used for +printing the file. The format is: + + \width{uu} + +where "uu" is the unit of measurement in any valid TeX measurement (pt, pc, in, +etc.) or number of 10-pitch characters. The default page width is 8.5 inches, +or \width{8.5IN}. This command may only appear at the beginning of the TeX +input file before any actual text is entered. diff --git a/macros/text1/compugraphics_8600/et10.textext b/macros/text1/compugraphics_8600/et10.textext new file mode 100644 index 0000000000..5b2e237237 --- /dev/null +++ b/macros/text1/compugraphics_8600/et10.textext @@ -0,0 +1,37 @@ +\font\cgetXrm=etr at 10pt\font\cgetXit=eti at 10pt +\font\cgetXbd=etb at 10pt \font\cgetXmi=mthit at 10pt +\font\cgetXsy=symbola at 10pt \font\cgetXex=ext at 10pt +\font\cgetXbi=etbi at 10pt \font\cgetXtt=elite at 10pt +\font\cgetXcc=etsc at 10pt\font\cgetXmrm=mthrm at 10pt +\expandafter\newdimen\csname\the\naMEtok ilsxet\endcsname +\global\csname\the\naMEtok ilsxet\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxet\endcsname=0pt +\csname\the\naMEtok ilsxet\endcsname=12pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% + \def\noexpand\rm{\fam0\cgetXrm}% + \def\noexpand\mi{\fam1\cgetXmi}% + \def\noexpand\sy{\fam2\cgetXsy}% + \def\noexpand\ex{\fam3\cgetXex}% + \textfont0=\cgetXmrm \textfont1=\cgetXmi + \textfont2=\cgetXsy \textfont3=\cgetXex + \textfont\itfam=\cgetXit\textfont\bifam=\cgetXbi + \textfont\ttfam=\cgetXtt \textfont\bffam=\cgetXbd + \textfont\ccfam=\cgetXcc + \def\noexpand\bd{\fam\bffam\cgetXbd}% + \def\noexpand\it{\fam\itfam\cgetXit}% + \def\noexpand\bi{\fam\bifam\cgetXbi}% + \def\noexpand\tt{\fam\ttfam\cgetXtt}% + \def\noexpand\cc{\fam\ccfam\cgetXcc}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it +\noexpand\let\noexpand\bold=\noexpand\bd +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxet\noexpand\endcsname}}% diff --git a/macros/text1/compugraphics_8600/et11.textext b/macros/text1/compugraphics_8600/et11.textext new file mode 100644 index 0000000000..2cc84b4c7b --- /dev/null +++ b/macros/text1/compugraphics_8600/et11.textext @@ -0,0 +1,37 @@ +\font\cgetXIrm=etr at 11pt\font\cgetXIit=eti at 11pt +\font\cgetXIbd=etb at 11pt \font\cgetXImi=mthit at 11pt +\font\cgetXIsy=symbola at 11pt \font\cgetXIex=ext at 11pt +\font\cgetXIbi=etbi at 11pt \font\cgetXItt=elite at 11pt +\font\cgetXIcc=etsc at 11pt\font\cgetXImrm=mthrm at 11pt +\expandafter\newdimen\csname\the\naMEtok ilsxiet\endcsname +\global\csname\the\naMEtok ilsxiet\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiet\endcsname=0pt +\csname\the\naMEtok ilsxiet\endcsname=13pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% + \def\noexpand\rm{\fam0\cgetXIrm}% + \def\noexpand\mi{\fam1\cgetXImi}% + \def\noexpand\sy{\fam2\cgetXIsy}% + \def\noexpand\ex{\fam3\cgetXIex}% + \textfont0=\cgetXImrm \textfont1=\cgetXImi + \textfont2=\cgetXIsy \textfont3=\cgetXIex + \textfont\itfam=\cgetXIit\textfont\bifam=\cgetXIbi + \textfont\ttfam=\cgetXItt \textfont\bffam=\cgetXIbd + \textfont\ccfam=\cgetXIcc + \def\noexpand\bd{\fam\bffam\cgetXIbd}% + \def\noexpand\it{\fam\itfam\cgetXIit}% + \def\noexpand\bi{\fam\bifam\cgetXIbi}% + \def\noexpand\tt{\fam\ttfam\cgetXItt}% + \def\noexpand\cc{\fam\ccfam\cgetXIcc}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it +\noexpand\let\noexpand\bold=\noexpand\bd +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiet\noexpand\endcsname}}% diff --git a/macros/text1/compugraphics_8600/et12.textext b/macros/text1/compugraphics_8600/et12.textext new file mode 100644 index 0000000000..85c9acc6f7 --- /dev/null +++ b/macros/text1/compugraphics_8600/et12.textext @@ -0,0 +1,37 @@ +\font\cgetXIIrm=etr at 12pt\font\cgetXIIit=eti at 12pt +\font\cgetXIIbd=etb at 12pt \font\cgetXIImi=mthit at 12pt +\font\cgetXIIsy=symbola at 12pt \font\cgetXIIex=ext at 12pt +\font\cgetXIIbi=etbi at 12pt \font\cgetXIItt=elite at 12pt +\font\cgetXIIcc=etsc at 12pt\font\cgetXIImrm=mthrm at 12pt +\expandafter\newdimen\csname\the\naMEtok ilsxiiet\endcsname +\global\csname\the\naMEtok ilsxiiet\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiiet\endcsname=0pt +\csname\the\naMEtok ilsxiiet\endcsname=14pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% + \def\noexpand\rm{\fam0\cgetXIIrm}% + \def\noexpand\mi{\fam1\cgetXIImi}% + \def\noexpand\sy{\fam2\cgetXIIsy}% + \def\noexpand\ex{\fam3\cgetXIIex}% + \textfont0=\cgetXIImrm \textfont1=\cgetXIImi + \textfont2=\cgetXIIsy \textfont3=\cgetXIIex + \textfont\itfam=\cgetXIIit\textfont\bifam=\cgetXIIbi + \textfont\ttfam=\cgetXIItt \textfont\bffam=\cgetXIIbd + \textfont\ccfam=\cgetXIIcc + \def\noexpand\bd{\fam\bffam\cgetXIIbd}% + \def\noexpand\it{\fam\itfam\cgetXIIit}% + \def\noexpand\bi{\fam\bifam\cgetXIIbi}% + \def\noexpand\tt{\fam\ttfam\cgetXIItt}% + \def\noexpand\cc{\fam\ccfam\cgetXIIcc}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it +\noexpand\let\noexpand\bold=\noexpand\bd +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiiet\noexpand\endcsname}}% diff --git a/macros/text1/compugraphics_8600/et14.textext b/macros/text1/compugraphics_8600/et14.textext new file mode 100644 index 0000000000..01a5295803 --- /dev/null +++ b/macros/text1/compugraphics_8600/et14.textext @@ -0,0 +1,37 @@ +\font\cgetXIVrm=etr at 14pt\font\cgetXIVit=eti at 14pt +\font\cgetXIVbd=etb at 14pt \font\cgetXIVmi=mthit at 14pt +\font\cgetXIVsy=symbola at 14pt \font\cgetXIVex=ext at 14pt +\font\cgetXIVbi=etbi at 14pt \font\cgetXIVtt=elite at 14pt +\font\cgetXIVcc=etsc at 14pt\font\cgetXIVmrm=mthrm at 14pt +\expandafter\newdimen\csname\the\naMEtok ilsxivet\endcsname +\global\csname\the\naMEtok ilsxivet\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxivet\endcsname=0pt +\csname\the\naMEtok ilsxivet\endcsname=16pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% + \def\noexpand\rm{\fam0\cgetXIVrm}% + \def\noexpand\mi{\fam1\cgetXIVmi}% + \def\noexpand\sy{\fam2\cgetXIVsy}% + \def\noexpand\ex{\fam3\cgetXIVex}% + \textfont0=\cgetXIVmrm \textfont1=\cgetXIVmi + \textfont2=\cgetXIVsy \textfont3=\cgetXIVex + \textfont\itfam=\cgetXIVit\textfont\bifam=\cgetXIVbi + \textfont\ttfam=\cgetXIVtt \textfont\bffam=\cgetXIVbd + \textfont\ccfam=\cgetXIVcc + \def\noexpand\bd{\fam\bffam\cgetXIVbd}% + \def\noexpand\it{\fam\itfam\cgetXIVit}% + \def\noexpand\bi{\fam\bifam\cgetXIVbi}% + \def\noexpand\tt{\fam\ttfam\cgetXIVtt}% + \def\noexpand\cc{\fam\ccfam\cgetXIVcc}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it +\noexpand\let\noexpand\bold=\noexpand\bd +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxivet\noexpand\endcsname}}% diff --git a/macros/text1/compugraphics_8600/et18.textext b/macros/text1/compugraphics_8600/et18.textext new file mode 100644 index 0000000000..e59a1bc47e --- /dev/null +++ b/macros/text1/compugraphics_8600/et18.textext @@ -0,0 +1,37 @@ +\font\cgetXVIIIrm=etr at 18pt\font\cgetXVIIIit=eti at 18pt +\font\cgetXVIIIbd=etb at 18pt \font\cgetXVIIImi=mthit at 18pt +\font\cgetXVIIIsy=symbola at 18pt \font\cgetXVIIIex=ext at 18pt +\font\cgetXVIIIbi=etbi at 18pt \font\cgetXVIIItt=elite at 18pt +\font\cgetXVIIIcc=etsc at 18pt\font\cgetXVIIImrm=mthrm at 18pt +\expandafter\newdimen\csname\the\naMEtok ilsxviiiet\endcsname +\global\csname\the\naMEtok ilsxviiiet\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxviiiet\endcsname=0pt +\csname\the\naMEtok ilsxviiiet\endcsname=20pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% + \def\noexpand\rm{\fam0\cgetXVIIIrm}% + \def\noexpand\mi{\fam1\cgetXVIIImi}% + \def\noexpand\sy{\fam2\cgetXVIIIsy}% + \def\noexpand\ex{\fam3\cgetXVIIIex}% + \textfont0=\cgetXVIIImrm \textfont1=\cgetXVIIImi + \textfont2=\cgetXVIIIsy \textfont3=\cgetXVIIIex + \textfont\itfam=\cgetXVIIIit\textfont\bifam=\cgetXVIIIbi + \textfont\ttfam=\cgetXVIIItt \textfont\bffam=\cgetXVIIIbd + \textfont\ccfam=\cgetXVIIIcc + \def\noexpand\bd{\fam\bffam\cgetXVIIIbd}% + \def\noexpand\it{\fam\itfam\cgetXVIIIit}% + \def\noexpand\bi{\fam\bifam\cgetXVIIIbi}% + \def\noexpand\tt{\fam\ttfam\cgetXVIIItt}% + \def\noexpand\cc{\fam\ccfam\cgetXVIIIcc}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it +\noexpand\let\noexpand\bold=\noexpand\bd +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxviiiet\noexpand\endcsname}}% diff --git a/macros/text1/compugraphics_8600/et8.textext b/macros/text1/compugraphics_8600/et8.textext new file mode 100644 index 0000000000..ad30284fa6 --- /dev/null +++ b/macros/text1/compugraphics_8600/et8.textext @@ -0,0 +1,37 @@ +\font\cgetVIIIrm=etr at 8pt\font\cgetVIIIit=eti at 8pt +\font\cgetVIIIbd=etb at 8pt \font\cgetVIIImi=mthit at 8pt +\font\cgetVIIIsy=symbola at 8pt \font\cgetVIIIex=ext at 8pt +\font\cgetVIIIbi=etbi at 8pt \font\cgetVIIItt=elite at 8pt +\font\cgetVIIIcc=etsc at 8pt\font\cgetVIIImrm=mthrm at 8pt +\expandafter\newdimen\csname\the\naMEtok ilsviiiet\endcsname +\global\csname\the\naMEtok ilsviiiet\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsviiiet\endcsname=0pt +\csname\the\naMEtok ilsviiiet\endcsname=10pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% + \def\noexpand\rm{\fam0\cgetVIIIrm}% + \def\noexpand\mi{\fam1\cgetVIIImi}% + \def\noexpand\sy{\fam2\cgetVIIIsy}% + \def\noexpand\ex{\fam3\cgetVIIIex}% + \textfont0=\cgetVIIImrm \textfont1=\cgetVIIImi + \textfont2=\cgetVIIIsy \textfont3=\cgetVIIIex + \textfont\itfam=\cgetVIIIit\textfont\bifam=\cgetVIIIbi + \textfont\ttfam=\cgetVIIItt \textfont\bffam=\cgetVIIIbd + \textfont\ccfam=\cgetVIIIcc + \def\noexpand\bd{\fam\bffam\cgetVIIIbd}% + \def\noexpand\it{\fam\itfam\cgetVIIIit}% + \def\noexpand\bi{\fam\bifam\cgetVIIIbi}% + \def\noexpand\tt{\fam\ttfam\cgetVIIItt}% + \def\noexpand\cc{\fam\ccfam\cgetVIIIcc}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it +\noexpand\let\noexpand\bold=\noexpand\bd +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsviiiet\noexpand\endcsname}}% diff --git a/macros/text1/compugraphics_8600/et9.textext b/macros/text1/compugraphics_8600/et9.textext new file mode 100644 index 0000000000..ed560d4d5b --- /dev/null +++ b/macros/text1/compugraphics_8600/et9.textext @@ -0,0 +1,37 @@ +\font\cgetIXrm=etr at 9pt\font\cgetIXit=eti at 9pt +\font\cgetIXbd=etb at 9pt \font\cgetIXmi=mthit at 9pt +\font\cgetIXsy=symbola at 9pt \font\cgetIXex=ext at 9pt +\font\cgetIXbi=etbi at 9pt \font\cgetIXtt=elite at 9pt +\font\cgetIXcc=etsc at 9pt\font\cgetIXmrm=mthrm at 9pt +\expandafter\newdimen\csname\the\naMEtok ilsixet\endcsname +\global\csname\the\naMEtok ilsixet\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsixet\endcsname=0pt +\csname\the\naMEtok ilsixet\endcsname=11pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% + \def\noexpand\rm{\fam0\cgetIXrm}% + \def\noexpand\mi{\fam1\cgetIXmi}% + \def\noexpand\sy{\fam2\cgetIXsy}% + \def\noexpand\ex{\fam3\cgetIXex}% + \textfont0=\cgetIXmrm \textfont1=\cgetIXmi + \textfont2=\cgetIXsy \textfont3=\cgetIXex + \textfont\itfam=\cgetIXit\textfont\bifam=\cgetIXbi + \textfont\ttfam=\cgetIXtt \textfont\bffam=\cgetIXbd + \textfont\ccfam=\cgetIXcc + \def\noexpand\bd{\fam\bffam\cgetIXbd}% + \def\noexpand\it{\fam\itfam\cgetIXit}% + \def\noexpand\bi{\fam\bifam\cgetIXbi}% + \def\noexpand\tt{\fam\ttfam\cgetIXtt}% + \def\noexpand\cc{\fam\ccfam\cgetIXcc}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it +\noexpand\let\noexpand\bold=\noexpand\bd +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsixet\noexpand\endcsname}}% diff --git a/macros/text1/compugraphics_8600/etb.fontinfo b/macros/text1/compugraphics_8600/etb.fontinfo new file mode 100644 index 0000000000..3a9571f163 --- /dev/null +++ b/macros/text1/compugraphics_8600/etb.fontinfo @@ -0,0 +1,236 @@ +* TEX font info -- commerical font format -- English Times Bold 4/25/85 +* CG 5039 Layout, and 1614 Complement, typeface 707 +* +HUNITS 1/54 +VUNITS 1/64 +DEFFONT 032 +DEFWIDTH 1 +SLANT 0 +SPACE 15/54 +SPSTRETCH 12/54 +SPSHRINK 5/54 +XHEIGHT 30/64 +QUAD 1 +EXTRASPACE 1/10 +FONTNAME ETB +* +* WIDTH HEIGHT DEPTH 8600 Decimal +$ +1/2 54 45 0 au,97 +1/4 54 45 0 au,98 +3/4 54 45 0 au,99 +1/3 54 45 3 au,104 +2/3 54 45 0 au,105 +enbul 27 40 0 au,40 +cent 27 40 0 au,36 +openbox 54 45 0 au,37 +1/8 54 45 0 au,100 +3/8 54 45 0 au,101 +5/8 54 45 0 au,102 +ff LIGATURE f+f 33 45 0 au,120 +fi LIGATURE f+i 30 45 0 au,118 +fl LIGATURE f+l 30 45 0 au,119 +ffi LIGATURE ff+i 45 45 0 au,121 +ffl LIGATURE ff+l 45 45 0 au,122 +dotless-i 15 35 0 au,127 +undef 27 0 0 30 +grave 13 45 0 au,82 +acute 13 45 0 au,81 +invertcircum 14 45 0 f195,37 +breve 13 45 0 f195,26 +macron 14 45 0 f195,au,90 +circleaccent 14 45 0 f195,42 +cedila 13 5 10 au,93 +germanSS 30 45 0 au,30 +ae 42 35 0 f35,au,111 +oe 45 35 0 f35,11 +scano 30 35 5 f30,06 +AE 54 45 0 f35,64 +OE 54 45 0 f35,09 +ScanO 42 45 5 f30,au,07 +PolishSl 18 35 0 vmf3,45,vmr3 +! 21 45 0 40 +right" LIGATURE '+' 20 45 0 39,hml2,39 +# 27 45 0 au,114 +dollar 27 45 5 au,35 +% 54 45 0 au,49 +& 39 45 0 91 +' 12 45 0 39 +( 18 45 5 58 +) 18 45 5 59 +* 27 45 0 92 ++ 36 45 0 F186,Au,46 +, 18 10 10 44 +hyphen 18 20 0 45 +. 18 10 0 46 +/ 27 45 0 au,33 +0 27 45 0 48 +1 27 45 0 49 +2 27 45 0 50 +3 27 45 0 51 +4 27 45 0 52 +5 27 45 0 53 +6 27 45 0 54 +7 27 45 0 55 +8 27 45 0 56 +9 27 45 0 57 +: 18 35 0 35 +; 18 35 10 32 +invert! 21 45 5 41 += 36 45 0 F186,Au,43 +invert? 24 45 5 37 +? 27 45 0 36 +@ 54 45 0 f38,93 +A 42 45 0 65 +B 36 45 0 66 +C 39 45 0 67 +D 42 45 0 68 +E 36 45 0 69 +F 33 45 0 70 +G 42 45 0 71 +H 45 45 0 72 +I 21 45 0 73 +J 27 45 0 74 +K 39 45 0 75 +L 36 45 0 76 +M 51 45 0 77 +N 42 45 0 78 +O 42 45 0 79 +P 36 45 0 80 +Q 42 45 15 81 +R 39 45 0 82 +S 30 45 0 83 +T 36 45 0 84 +U 42 45 0 85 +V 39 45 0 86 +W 54 45 0 87 +X 42 45 0 88 +Y 39 45 0 89 +Z 36 45 0 90 +[ 18 45 10 94 +left" LIGATURE l×+l× 20 45 0 38,hml2,38 +] 18 45 10 95 +circumflex 13 45 0 au,83 +raiseddot 14 45 0 f195,41 +l× 12 45 0 38 +a 27 35 0 97 +b 30 45 0 98 +c 24 35 0 99 +d 30 45 0 100 +e 24 35 0 101 +f 21 45 0 102 +g 27 35 10 103 +h 30 45 0 104 +i 15 45 0 105 +j 18 45 10 106 +k 30 45 0 107 +l 15 45 0 108 +m 45 35 0 109 +n 30 35 0 110 +o 30 35 0 111 +p 30 35 10 112 +q 30 35 10 113 +r 21 35 0 114 +s 21 35 0 115 +t 18 45 0 116 +u 30 35 0 117 +v 27 35 0 118 +w 39 35 0 119 +x 27 35 0 120 +y 27 35 10 121 +z 24 35 0 122 +endash LIGATURE hyphen+hyphen 31 25 0 45,hml5,45,hmr5 +emdash LIGATURE endash+hyphen 54 25 0 47 +Hungarian 15 50 0 f189,au,116 +tilde 13 45 0 au,86 +umlaut 13 45 0 au,84 +kern a+v -54/36 +kern a+w -54/36 +kern a+y -54/36 +kern h+t -54/36 +kern h+u -54/36 +kern h+y -54/36 +kern k+e -54/36 +kern m+b -54/36 +kern m+u -54/36 +kern m+y -54/36 +kern n+t -54/36 +kern n+u -54/36 +kern n+v -54/36 +kern n+w -54/36 +kern n+y -54/36 +kern o+o 54/51 +kern o+v -54/36 +kern o+w -54/36 +kern o+x -54/36 +kern o+y -54/36 +kern t+w -54/36 +kern t+y -54/36 +kern v+e -54/36 +kern v+o -54/36 +kern w+a -54/36 +kern w+e -54/36 +kern w+o -54/36 +kern y+a -54/36 +kern y+e -54/36 +kern y+o -54/36 +kern A+T -54/14 +kern A+Y -54/10 +kern A+V -54/6 +kern A+v -54/28 +kern D+A -54/14 +kern D+V -54/14 +kern D+W -54/14 +kern D+Y -54/12 +kern F+a -54/18 +kern F+e -54/32 +kern F+o -54/18 +kern F+r -54/22 +kern F+u -54/18 +kern F+A -54/14 +kern F+O -54/18 +kern K+O -54/14 +kern L+O -54/14 +kern L+U -54/17 +kern L+Y -54/12 +kern O+A -54/14 +kern O+V -54/12 +kern O+W -54/14 +kern O+X -54/12 +kern O+Y -54/12 +kern P+A -54/16 +kern P+r -54/34 +kern R+O -54/14 +kern R+T -54/16 +kern R+U -54/18 +kern R+V -54/16 +kern R+Y -54/14 +kern T+a -54/14 +kern T+e -54/16 +kern T+o -54/14 +kern T+r -54/14 +kern T+u -54/14 +kern T+w -54/16 +kern T+A -54/16 +kern T+O -54/22 +kern V+a -54/16 +kern V+e -54/16 +kern V+o -54/16 +kern V+r -54/16 +kern V+u -54/16 +kern V+A -54/6 +kern V+O -54/18 +kern W+a -54/14 +kern W+e -54/14 +kern W+o -54/14 +kern W+r -54/15 +kern W+u -54/15 +kern W+A -54/10 +kern W+O -54/14 +kern X+O -54/12 +kern Y+a -54/12 +kern Y+e -54/12 +kern Y+o -54/12 +kern Y+r -54/14 +kern Y+u -54/12 +kern Y+A -54/14 diff --git a/macros/text1/compugraphics_8600/etbi.fontinfo b/macros/text1/compugraphics_8600/etbi.fontinfo new file mode 100644 index 0000000000..f2b7ae9d4f --- /dev/null +++ b/macros/text1/compugraphics_8600/etbi.fontinfo @@ -0,0 +1,233 @@ +* TEX font info--commerical font format--English Times Bold Italic 4/25/85 +* +HUNITS 1/54 +VUNITS 1/64 +DEFFONT 033 +DEFWIDTH 1 +SLANT 0 +SPACE 22/54 +SPSTRETCH 15/54 +SPSHRINK 13/54 +XHEIGHT 30/64 +QUAD 1 +EXTRASPACE 2/10 +fontname ETBI +* WIDTH HEIGHT DEPTH 8600 Decimal +$ +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +enbul 27 30 0 au,110 +dagger 27 45 5 au,31 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +section 27 45 5 60 +ff LIGATURE f+f 33 45 15 au,120 +fi LIGATURE f+i 30 45 15 au,118 +fl LIGATURE f+l 30 45 15 au,119 +ffi LIGATURE ff+i 45 45 15 au,121 +ffl LIGATURE ff+l 45 45 15 au,122 +iota 15 35 0 f193,105 +undef 0 0 0 30 +grave 15 45 0 au,82 +acute 15 45 0 au,81 +invertcircum 15 45 0 f195,37 +breve 15 45 0 f195,26 +macron 15 45 0 f195,au,90 +circleaccent 15 45 0 f195,42 +cedila 15 10 15 au,93 +Germanss 30 45 10 au,30 +ae 50 35 0 97,hml10,101,hmr10 +oe 52 35 0 111,hml11,101,hmr11 +pound 27 45 0 96 +AE 72 45 0 65,hml17,69,hmr17 +OE 75 45 0 79,hml16,69,hmr16 +SCANO 42 45 5 f30,au,07 +PolishSl 18 20 0 vmr2,hml1,45,hmr1,vmf1 +! 21 45 0 40 +right" LIGATURE '+' 24 45 0 39,hml2,39,hmr2 +litre 27 45 0 F188,au,111 +dollar 27 45 5 au,35 +% 54 45 0 au,49 +& 39 45 0 91 +' 12 45 0 39 +( 18 45 10 58 +) 18 45 10 59 +* 27 45 0 92 +plus 54 35 0 au,46 +, 18 10 10 44 +hyphen 18 15 15 45 +. 18 10 0 46 +/ 27 45 0 au,33 +0 27 45 0 48 +1 27 45 0 49 +2 27 45 0 50 +3 27 45 0 51 +4 27 45 0 52 +5 27 45 0 53 +6 27 45 0 54 +7 27 45 0 55 +8 27 45 0 56 +9 27 45 0 57 +: 18 30 0 35 +; 18 30 10 32 +invert! 21 35 15 41 += 54 25 0 Au,43 +invert? 27 35 15 37 +? 27 45 0 36 +undef 27 0 0 30 +A 42 45 0 65 +B 36 45 0 66 +C 39 45 5 67 +D 42 45 0 68 +E 36 45 0 69 +F 33 45 0 70 +G 42 45 0 71 +H 45 45 0 72 +I 21 45 0 73 +J 27 45 0 74 +K 39 45 0 75 +L 36 45 0 76 +M 51 45 0 77 +N 42 45 0 78 +O 42 45 0 79 +P 36 45 0 80 +Q 42 45 15 81 +R 39 45 0 82 +S 30 45 0 83 +T 36 45 0 84 +U 42 45 0 85 +V 39 45 20 86 +W 54 45 0 87 +X 42 45 0 88 +Y 39 45 0 89 +Z 36 45 0 90 +[ 18 45 10 94 +left" LIGATURE l×+l× 21 45 0 38,hml2,38,hmr2 +] 18 45 10 95 +circumflex 15 45 0 au,83 +raiseddot 15 45 0 f195,41 +l× 12 45 0 38 +a 27 30 0 97 +b 30 45 0 98 +c 24 30 0 99 +d 30 45 0 100 +e 24 30 0 101 +f 21 45 15 102 +g 27 30 10 103 +h 30 45 0 104 +i 15 45 0 105 +j 18 45 15 106 +k 30 45 0 107 +l 15 45 0 108 +m 45 30 0 109 +n 30 30 0 110 +o 30 30 0 111 +p 30 30 15 112 +q 30 30 15 113 +r 21 30 0 114 +s 21 30 0 115 +t 18 40 0 116 +u 30 30 0 117 +v 27 30 0 118 +w 39 30 0 119 +x 27 30 0 120 +y 27 30 10 121 +z 24 30 5 122 +endash LIGATURE hyphen+hyphen 27 20 0 Au,106 +emdash LIGATURE endash+hyphen 54 20 0 47 +Hungarian 18 50 0 f189,au,116 +tilde 15 45 0 au,86 +umlaut 15 45 0 au,84 +kern a+v -54/36 +kern a+v -54/36 +kern a+w -54/36 +kern a+y -54/36 +kern h+t -54/36 +kern h+u -54/36 +kern h+y -54/36 +kern k+e -54/36 +kern m+b -54/36 +kern m+u -54/36 +kern m+y -54/36 +kern n+t -54/36 +kern n+u -54/36 +kern n+v -54/36 +kern n+w -54/36 +kern n+y -54/36 +kern o+o 54/60 +kern o+v -54/36 +kern o+w -54/36 +kern o+x -54/36 +kern o+y -54/36 +kern t+w -54/36 +kern t+y -54/36 +kern v+e -54/36 +kern v+o -54/36 +kern w+a -54/36 +kern w+e -54/36 +kern w+o -54/36 +kern y+a -54/36 +kern y+e -54/36 +kern y+o -54/36 +kern A+T -54/16 +kern A+U -54/18 +kern A+Y -54/16 +kern A+V -54/12 +kern D+A -54/16 +kern D+V -54/14 +kern D+W -54/16 +kern D+Y -54/16 +kern F+a -54/20 +kern F+e -54/24 +kern F+o -54/18 +kern F+r -54/22 +kern F+u -54/20 +kern F+A -54/18 +kern F+O -54/18 +kern K+O -54/14 +kern L+O -54/18 +kern L+U -54/18 +kern L+Y -54/16 +kern O+A -54/18 +kern O+V -54/16 +kern O+W -54/16 +kern O+X -54/16 +kern O+Y -54/14 +kern P+A -54/18 +kern R+O -54/16 +kern R+T -54/18 +kern R+U -54/18 +kern R+V -54/16 +kern R+Y -54/16 +kern T+a -54/22 +kern T+e -54/22 +kern T+o -54/20 +kern T+r -54/18 +kern T+u -54/22 +kern T+A -54/16 +kern T+O -54/28 +kern V+a -54/18 +kern V+e -54/18 +kern V+o -54/18 +kern V+r -54/22 +kern V+u -54/20 +kern V+A -54/12 +kern V+O -54/16 +kern W+a -54/16 +kern W+e -54/18 +kern W+o -54/18 +kern W+r -54/20 +kern W+u -54/20 +kern W+A -54/10 +kern W+O -54/14 +kern X+O -54/14 +kern Y+a -54/18 +kern Y+e -54/18 +kern Y+o -54/18 +kern Y+r -54/22 +kern Y+u -54/20 +kern Y+A -54/14 diff --git a/macros/text1/compugraphics_8600/eti.fontinfo b/macros/text1/compugraphics_8600/eti.fontinfo new file mode 100644 index 0000000000..a5085be50d --- /dev/null +++ b/macros/text1/compugraphics_8600/eti.fontinfo @@ -0,0 +1,233 @@ +* TEX font info -- commerical font format -- English Times Italic 4/25/84 +* +HUNITS 1/54 +VUNITS 1/64 +DEFFONT 031 +DEFWIDTH 1 +SLANT 1/4 +SPACE 22/54 +SPSTRETCH 15/54 +SPSHRINK 13/54 +XHEIGHT 30/64 +QUAD 1 +EXTRASPACE 2/10 +fontname ETI +* WIDTH HEIGHT DEPTH 8600 Decimal +$ +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +enbul 27 30 0 au,110 +dagger 27 45 5 au,31 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +section 27 45 5 60 +ff LIGATURE f+f 33 45 15 au,120 +fi LIGATURE f+i 30 45 15 au,118 +fl LIGATURE f+l 30 45 15 au,119 +ffi LIGATURE ff+i 45 45 15 au,121 +ffl LIGATURE ff+l 45 45 15 au,122 +iota 15 35 0 f193,105 +undef 27 0 0 30 +grave 16 45 0 au,82 +acute 17 45 0 au,81 +invertcircum 13 45 0 f195,37 +breve 13 45 0 f195,26 +macron 13 45 0 f195,au,90 +circleaccent 15 45 0 f195,42 +cedila 14 10 15 au,93 +Germanss 30 45 10 au,30 +ae 42 35 0 f35,au,113 +oe 45 35 0 f35,10 +pound 27 45 0 96 +AE 54 45 0 f35,au,79 +OE 54 45 0 f35,08 +SCANO 42 45 5 f30,au,07 +PolishSl 15 20 0 vmr2,hml1,45,hmr1,vmf1 +! 21 45 0 40 +right" LIGATURE '+' 24 45 0 39,hml2,39,hmr2 +litre 27 45 0 F188,au,111 +dollar 27 45 5 au,35 +% 54 45 0 au,49 +& 39 45 0 91 +' 12 45 0 39 +( 18 45 10 58 +) 18 45 10 59 +* 27 45 0 92 +plus 54 35 0 au,46 +, 18 10 10 44 +hyphen 18 15 15 45 +. 18 10 0 46 +/ 27 45 0 au,33 +0 27 45 0 48 +1 27 45 0 49 +2 27 45 0 50 +3 27 45 0 51 +4 27 45 0 52 +5 27 45 0 53 +6 27 45 0 54 +7 27 45 0 55 +8 27 45 0 56 +9 27 45 0 57 +: 18 30 0 35 +; 18 30 10 32 +invert! 21 35 15 41 += 54 25 0 Au,43 +invert? 27 35 15 37 +? 27 45 0 36 +undef 27 0 0 30 +A 42 45 0 65 +B 36 45 0 66 +C 39 45 5 67 +D 42 45 0 68 +E 36 45 0 69 +F 33 45 0 70 +G 42 45 0 71 +H 45 45 0 72 +I 21 45 0 73 +J 27 45 0 74 +K 39 45 0 75 +L 36 45 0 76 +M 51 45 0 77 +N 42 45 0 78 +O 42 45 0 79 +P 36 45 0 80 +Q 42 45 15 81 +R 39 45 0 82 +S 30 45 0 83 +T 36 45 0 84 +U 42 45 0 85 +V 39 45 20 86 +W 54 45 0 87 +X 42 45 0 88 +Y 39 45 0 89 +Z 36 45 0 90 +[ 18 45 10 94 +left" LIGATURE l×+l× 21 45 0 38,hml2,38,hmr2 +] 18 45 10 95 +circumflex 17 45 0 au,83 +raiseddot 13 45 0 f195,41 +l× 12 45 0 38 +a 27 30 0 97 +b 30 45 0 98 +c 24 30 0 99 +d 30 45 0 100 +e 24 30 0 101 +f 21 45 15 102 +g 27 30 10 103 +h 30 45 0 104 +i 15 45 0 105 +j 18 45 15 106 +k 30 45 0 107 +l 15 45 0 108 +m 45 30 0 109 +n 30 30 0 110 +o 30 30 0 111 +p 30 30 15 112 +q 30 30 15 113 +r 21 30 0 114 +s 21 30 0 115 +t 18 40 0 116 +u 30 30 0 117 +v 27 30 0 118 +w 39 30 0 119 +x 27 30 0 120 +y 27 30 10 121 +z 24 30 5 122 +endash LIGATURE hyphen+hyphen 27 20 0 Au,106 +emdash LIGATURE endash+hyphen 54 20 0 47 +Hungarian 14 50 0 f189,au,116 +tilde 17 45 0 au,86 +umlaut 17 45 0 au,84 +kern a+v -54/36 +kern a+v -54/36 +kern a+w -54/36 +kern a+y -54/36 +kern h+t -54/36 +kern h+u -54/36 +kern h+y -54/36 +kern k+e -54/36 +kern m+b -54/36 +kern m+u -54/36 +kern m+y -54/36 +kern n+t -54/36 +kern n+u -54/36 +kern n+v -54/36 +kern n+w -54/36 +kern n+y -54/36 +kern o+o 54/60 +kern o+v -54/36 +kern o+w -54/36 +kern o+x -54/36 +kern o+y -54/36 +kern t+w -54/36 +kern t+y -54/36 +kern v+e -54/36 +kern v+o -54/36 +kern w+a -54/36 +kern w+e -54/36 +kern w+o -54/36 +kern y+a -54/36 +kern y+e -54/36 +kern y+o -54/36 +kern A+T -54/16 +kern A+U -54/18 +kern A+Y -54/16 +kern A+V -54/12 +kern D+A -54/16 +kern D+V -54/14 +kern D+W -54/16 +kern D+Y -54/16 +kern F+a -54/20 +kern F+e -54/24 +kern F+o -54/18 +kern F+r -54/22 +kern F+u -54/20 +kern F+A -54/18 +kern F+O -54/18 +kern K+O -54/14 +kern L+O -54/18 +kern L+U -54/18 +kern L+Y -54/16 +kern O+A -54/18 +kern O+V -54/16 +kern O+W -54/16 +kern O+X -54/16 +kern O+Y -54/14 +kern P+A -54/18 +kern R+O -54/16 +kern R+T -54/18 +kern R+U -54/18 +kern R+V -54/16 +kern R+Y -54/16 +kern T+a -54/22 +kern T+e -54/22 +kern T+o -54/20 +kern T+r -54/18 +kern T+u -54/22 +kern T+A -54/16 +kern T+O -54/28 +kern V+a -54/18 +kern V+e -54/18 +kern V+o -54/18 +kern V+r -54/22 +kern V+u -54/20 +kern V+A -54/12 +kern V+O -54/16 +kern W+a -54/16 +kern W+e -54/18 +kern W+o -54/18 +kern W+r -54/20 +kern W+u -54/20 +kern W+A -54/10 +kern W+O -54/14 +kern X+O -54/14 +kern Y+a -54/18 +kern Y+e -54/18 +kern Y+o -54/18 +kern Y+r -54/22 +kern Y+u -54/20 +kern Y+A -54/14 diff --git a/macros/text1/compugraphics_8600/etr.fontinfo b/macros/text1/compugraphics_8600/etr.fontinfo new file mode 100644 index 0000000000..e926b6626a --- /dev/null +++ b/macros/text1/compugraphics_8600/etr.fontinfo @@ -0,0 +1,236 @@ +* TEX font info -- commerical font format -- English Times Roman 4/25/85 +* CG 5039 Layout, and 1614 Compliment, typeface 705 +* +HUNITS 1/54 +VUNITS 1/64 +DEFFONT 030 +DEFWIDTH 1 +SLANT 0 +SPACE 15/54 +SPSTRETCH 12/54 +SPSHRINK 5/54 +XHEIGHT 30/64 +QUAD 1 +EXTRASPACE 1/10 +FONTNAME ETR +* +* WIDTH HEIGHT DEPTH 8600 Decimal +$ +1/2 54 45 0 au,97 +1/4 54 45 0 au,98 +3/4 54 45 0 au,99 +1/3 54 45 3 au,104 +2/3 54 45 0 au,105 +enbul 27 40 0 au,40 +cent 27 40 0 au,36 +openbox 54 45 0 au,37 +1/8 54 45 0 au,100 +3/8 54 45 0 au,101 +5/8 54 45 0 au,102 +ff LIGATURE f+f 33 45 0 au,120 +fi LIGATURE f+i 30 45 0 au,118 +fl LIGATURE f+l 30 45 0 au,119 +ffi LIGATURE ff+i 45 45 0 au,121 +ffl LIGATURE ff+l 45 45 0 au,122 +dotless-i 15 35 0 au,127 +undef 27 0 0 30 +grave 13 45 0 au,82 +acute 13 45 0 au,81 +invertcircum 13 45 0 f195,37 +breve 13 45 0 f195,26 +macron 13 45 0 f195,au,90 +circleaccent 13 45 0 f195,42 +cedila 13 5 10 au,93 +germanSS 30 45 0 au,30 +ae 42 35 0 f35,au,107 +oe 45 35 0 f35,au,116 +scano 30 35 5 06 +AE 54 45 0 f35,63 +OE 54 45 0 f35,au,80 +ScanO 42 45 5 au,07 +PolishSl 15 35 0 vmf3,hml8,45,hmr8,vmr3 +! 21 45 0 40 +right" LIGATURE '+' 20 45 0 39,hml2,39 +# 27 45 0 au,114 +dollar 27 45 5 au,35 +% 54 45 0 au,49 +& 39 45 0 91 +' 12 45 0 39 +( 18 45 5 58 +) 18 45 5 59 +* 27 45 0 92 ++ 36 45 0 F186,Au,46 +, 18 10 10 44 +hyphen 18 20 0 45 +. 18 10 0 46 +/ 27 45 0 au,33 +0 27 45 0 48 +1 27 45 0 49 +2 27 45 0 50 +3 27 45 0 51 +4 27 45 0 52 +5 27 45 0 53 +6 27 45 0 54 +7 27 45 0 55 +8 27 45 0 56 +9 27 45 0 57 +: 18 35 0 35 +; 18 35 10 32 +invert! 24 45 5 41 += 36 45 0 F186,Au,43 +invert? 24 45 5 37 +? 27 45 0 36 +@ 54 45 0 f38,93 +A 42 45 0 65 +B 36 45 0 66 +C 39 45 0 67 +D 42 45 0 68 +E 36 45 0 69 +F 33 45 0 70 +G 42 45 0 71 +H 45 45 0 72 +I 21 45 0 73 +J 27 45 0 74 +K 39 45 0 75 +L 36 45 0 76 +M 51 45 0 77 +N 42 45 0 78 +O 42 45 0 79 +P 36 45 0 80 +Q 42 45 15 81 +R 39 45 0 82 +S 30 45 0 83 +T 36 45 0 84 +U 42 45 0 85 +V 39 45 0 86 +W 54 45 0 87 +X 42 45 0 88 +Y 39 45 0 89 +Z 36 45 0 90 +[ 18 45 10 94 +left" LIGATURE l×+l× 20 45 0 38,hml2,38 +] 18 45 10 95 +circumflex 13 45 0 au,83 +raiseddot 15 45 0 f195,41 +l× 12 45 0 38 +a 27 35 0 97 +b 30 45 0 98 +c 24 35 0 99 +d 30 45 0 100 +e 24 35 0 101 +f 21 45 0 102 +g 27 35 10 103 +h 30 45 0 104 +i 15 45 0 105 +j 18 45 10 106 +k 30 45 0 107 +l 15 45 0 108 +m 45 35 0 109 +n 30 35 0 110 +o 30 35 0 111 +p 30 35 10 112 +q 30 35 10 113 +r 21 35 0 114 +s 21 35 0 115 +t 18 45 0 116 +u 30 35 0 117 +v 27 35 0 118 +w 39 35 0 119 +x 27 35 0 120 +y 27 35 10 121 +z 24 35 0 122 +endash LIGATURE hyphen+hyphen 31 25 0 45,hml5,45,hmr5 +emdash LIGATURE endash+hyphen 54 25 0 47 +Hungarian 15 50 0 f189,au,116 +tilde 13 45 0 au,86 +umlaut 13 45 0 au,84 +kern a+v -54/36 +kern a+w -54/36 +kern a+y -54/36 +kern h+t -54/36 +kern h+u -54/36 +kern h+y -54/36 +kern k+e -54/36 +kern m+b -54/36 +kern m+u -54/36 +kern m+y -54/36 +kern n+t -54/36 +kern n+u -54/36 +kern n+v -54/36 +kern n+w -54/36 +kern n+y -54/36 +kern o+o 54/51 +kern o+v -54/36 +kern o+w -54/36 +kern o+x -54/36 +kern o+y -54/36 +kern t+w -54/36 +kern t+y -54/36 +kern v+e -54/36 +kern v+o -54/36 +kern w+a -54/36 +kern w+e -54/36 +kern w+o -54/36 +kern y+a -54/36 +kern y+e -54/36 +kern y+o -54/36 +kern A+T -54/14 +kern A+Y -54/10 +kern A+V -54/6 +kern A+v -54/28 +kern D+A -54/14 +kern D+V -54/14 +kern D+W -54/14 +kern D+Y -54/12 +kern F+a -54/18 +kern F+e -54/32 +kern F+o -54/18 +kern F+r -54/22 +kern F+u -54/18 +kern F+A -54/14 +kern F+O -54/18 +kern K+O -54/14 +kern L+O -54/14 +kern L+U -54/17 +kern L+Y -54/12 +kern O+A -54/14 +kern O+V -54/12 +kern O+W -54/14 +kern O+X -54/12 +kern O+Y -54/12 +kern P+A -54/16 +kern P+r -54/34 +kern R+O -54/14 +kern R+T -54/16 +kern R+U -54/18 +kern R+V -54/16 +kern R+Y -54/14 +kern T+a -54/14 +kern T+e -54/16 +kern T+o -54/14 +kern T+r -54/14 +kern T+u -54/14 +kern T+w -54/16 +kern T+A -54/16 +kern T+O -54/22 +kern V+a -54/16 +kern V+e -54/16 +kern V+o -54/16 +kern V+r -54/16 +kern V+u -54/16 +kern V+A -54/6 +kern V+O -54/18 +kern W+a -54/14 +kern W+e -54/14 +kern W+o -54/14 +kern W+r -54/15 +kern W+u -54/15 +kern W+A -54/10 +kern W+O -54/14 +kern X+O -54/12 +kern Y+a -54/12 +kern Y+e -54/12 +kern Y+o -54/12 +kern Y+r -54/14 +kern Y+u -54/12 +kern Y+A -54/14 diff --git a/macros/text1/compugraphics_8600/etsc.fontinfo b/macros/text1/compugraphics_8600/etsc.fontinfo new file mode 100644 index 0000000000..a3c70a1297 --- /dev/null +++ b/macros/text1/compugraphics_8600/etsc.fontinfo @@ -0,0 +1,253 @@ +* TEX font info--commerical font format--English Times Small Caps 4/25/85 +* CG 5003 Compliment, typeface 705 +* +HUNITS 1/54 +VUNITS 1/64 +DEFFONT 038 +DEFWIDTH 1 +SLANT 0 +SPACE 22/54 +SPSTRETCH 15/54 +SPSHRINK 13/54 +XHEIGHT 30/64 +QUAD 1 +EXTRASPACE 2/10 +FONTNAME ETSC +* WIDTH HEIGHT DEPTH 8600 Decimal +$ +1/2 54 45 0 au,97 +1/4 54 45 0 au,98 +3/4 54 45 0 au,99 +1/3 54 45 3 au,104 +2/3 54 45 0 au,105 +undef 27 0 0 30 +undef 27 0 0 30 +dbldagger 27 45 0 au,32 +1/8 54 45 0 au,100 +3/8 54 45 0 au,101 +5/8 54 45 0 au,102 +7/8 54 45 0 au,103 +undef 27 0 0 30 +undef 27 0 0 30 +para 27 50 10 au,113 +trademark 33 50 0 au,54 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +! 21 45 0 40 +right" LIGATURE '+' 20 40 0 39,hml2,39,hmr2 +undef 27 0 0 30 +dollar 27 35 5 au,35 +undef 27 00 0 30 +& 30 30 0 91 +' 12 45 0 39 +( 18 45 15 58 +) 18 45 15 59 +* 27 45 0 92 +plus/minus 54 40 10 au,48 +, 18 10 10 44 +hyphen 18 20 0 45 +. 18 10 0 46 +fracbar/ 06 45 5 au,42 +0 27 30 0 48 +1 27 30 0 49 +2 27 30 0 50 +3 27 30 15 51 +4 27 30 15 52 +5 27 40 15 53 +6 27 45 0 54 +7 27 30 15 55 +8 27 45 0 56 +9 27 30 15 57 +: 18 30 0 35 +; 18 30 10 32 +undef 27 0 0 f195,30 +undef 27 0 0 f195,30 +undef 27 0 0 f195,30 +? 27 45 0 36 +atsign 54 45 5 93 +A 42 45 0 65 +B 36 45 0 66 +C 39 45 0 67 +D 42 45 0 68 +E 36 45 0 69 +F 33 45 0 70 +G 42 45 0 71 +H 45 45 0 72 +I 21 45 0 73 +J 27 45 0 74 +K 39 45 0 75 +L 36 45 0 76 +M 51 45 0 77 +N 42 45 0 78 +O 42 45 0 79 +P 36 45 0 80 +Q 42 45 15 81 +R 39 45 0 82 +S 30 45 0 83 +T 36 45 0 84 +U 42 45 0 85 +V 39 45 0 86 +W 54 45 0 87 +X 42 45 0 88 +Y 39 45 0 89 +Z 36 45 0 90 +undef 27 0 0 30 +left" LIGATURE ×+× 20 40 0 38,hml2,38,hmr2 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +× 12 45 0 38 +a 30 35 0 97 +b 27 35 0 98 +c 30 35 0 99 +d 33 35 0 100 +e 27 35 0 101 +f 24 35 0 102 +g 30 35 3 103 +h 33 35 0 104 +i 15 35 0 105 +j 18 35 0 106 +k 33 35 0 107 +l 24 35 0 108 +m 36 35 0 109 +n 33 35 0 110 +o 30 35 0 111 +p 27 35 0 112 +q 30 35 10 113 +r 30 45 0 114 +s 21 35 0 115 +t 27 35 0 116 +u 33 35 0 117 +v 30 35 0 118 +w 45 35 0 119 +x 30 35 0 120 +y 30 35 0 121 +z 27 35 0 122 +endash LIGATURE hyphen+hyphen 33 20 0 45,hml5,45,hmr5 +emdash LIGATURE endash+hyphen 54 20 0 47 +undef 27 0 0 30 +undef 27 0 0 30 +undef 27 0 0 30 +kern a+v -54/16 +kern a+t -54/28 +kern a+w -54/12 +kern a+y -54/12 +kern c+a -54/28 +kern h+b -54/24 +kern k+a -54/44 +kern k+c -54/24 +kern k+o -54/34 +kern m+b -54/48 +kern m+t -54/44 +kern m+v -54/26 +kern m+w -54/26 +kern m+y -54/36 +kern n+b -54/38 +kern o+o 54/44 +kern o+v -54/26 +kern o+w -54/26 +kern o+x -54/26 +kern o+y -54/22 +kern t+a -54/28 +kern t+w -54/36 +kern t+y -54/32 +kern v+c -54/36 +kern v+o -54/26 +kern w+a -54/8 +kern w+c -54/36 +kern y+a -54/16 +kern y+c -54/26 +kern y+e -54/44 +kern y+o -54/26 +kern A+U -54/18 +kern A+T -54/22 +kern A+V -54/8 +kern A+Y -54/10 +kern D+A -54/28 +kern D+V -54/28 +kern D+W -54/28 +kern D+X -54/28 +kern D+Y -54/28 +kern F+a -54/28 +kern F+r -54/28 +kern F+A -54/28 +kern F+C -54/28 +kern F+G -54/28 +kern F+O -54/28 +kern F+Q -54/28 +kern K+C -54/28 +kern K+G -54/28 +kern K+O -54/28 +kern K+Q -54/28 +kern L+C -54/28 +kern L+G -54/28 +kern L+O -54/28 +kern L+Q -54/28 +kern L+T -54/28 +kern L+U -54/28 +kern L+V -54/28 +kern L+W -54/28 +kern L+Y -54/18 +kern O+A -54/28 +kern O+F -54/32 +kern O+U -54/32 +kern O+V -54/28 +kern O+W -54/28 +kern O+X -54/28 +kern O+Y -54/28 +kern P+A -54/28 +kern R+C -54/28 +kern R+G -54/28 +kern R+O -54/28 +kern R+Q -54/28 +kern R+T -54/28 +kern R+U -54/28 +kern R+V -54/28 +kern R+W -54/28 +kern R+Y -54/28 +kern T+a -54/28 +kern T+o -54/28 +kern T+r -54/28 +kern T+u -54/28 +kern T+A -54/14 +kern T+O -54/28 +kern V+a -54/16 +kern V+e -54/28 +kern V+o -54/20 +kern V+A -54/14 +kern V+C -54/28 +kern V+G -54/28 +kern V+O -54/28 +kern V+Q -54/28 +kern W+a -54/8 +kern W+e -54/28 +kern W+o -54/28 +kern W+u -54/28 +kern W+A -54/8 +kern W+C -54/28 +kern W+G -54/28 +kern W+O -54/28 +kern W+Q -54/28 +kern X+C -54/28 +kern X+G -54/28 +kern X+O -54/28 +kern X+Q -54/28 +kern Y+a -54/16 +kern Y+e -54/28 +kern Y+o -54/28 +kern Y+A -54/20 diff --git a/macros/text1/compugraphics_8600/fonttex.cmschan b/macros/text1/compugraphics_8600/fonttex.cmschan new file mode 100644 index 0000000000..d863ceb0fc --- /dev/null +++ b/macros/text1/compugraphics_8600/fonttex.cmschan @@ -0,0 +1,5 @@ +@x +%test version +@y +%test version 1 +@z diff --git a/macros/text1/compugraphics_8600/fonttex.exec b/macros/text1/compugraphics_8600/fonttex.exec new file mode 100644 index 0000000000..5bc405cefa --- /dev/null +++ b/macros/text1/compugraphics_8600/fonttex.exec @@ -0,0 +1,23 @@ +/* FONTTEX EXEC + Note: This REXX exec is used to run the FontTeX driver program. + This exec will prompt the user for a filename if none was entered with + the call to the exec. +*/ + +Address 'COMMAND'; +Trace value 'n' +Parse Upper Arg inFn; +if inFn=' ' +then do + say 'Please enter filename of fontinfo file.' + pull inFn . +end +state inFn 'FONTINFO *' + if RC<>0 then do + say inFn 'FONTINFO file not found.' + exit + end +'FONTTEX' inFn +'REBLOCK' inFn 'TFM'; +'ERASE' inFn 'PRTFM'; +exit diff --git a/macros/text1/compugraphics_8600/fonttex.outchan b/macros/text1/compugraphics_8600/fonttex.outchan new file mode 100644 index 0000000000..8098645143 --- /dev/null +++ b/macros/text1/compugraphics_8600/fonttex.outchan @@ -0,0 +1,324 @@ +@x +%test version +@y +%out version 1 +@z + +@x +\font\twelvept=cmbx12 +\font\tentex=cmr10 +@y +\font\twelvept=cmbx12 +@z + +@x + @@/ +static@/ + @^system dependencies@> + com_table :packed array[0..18] of string(7);@/ +value@/ + com_table[0] := 'HDR'; {Header Record}@/ + com_table[1] := 'CHWIDTH';{Character Width}@/ + com_table[2] := 'RT'; {Reverse Type}@/ + com_table[3] := 'PS'; {Point Size}@/ + com_table[4] := 'SS'; {Set Size}@/ + com_table[5] := 'VMF'; {Vertical Move Forward}@/ + com_table[6] := 'VMR'; {Vertical Move Reverse}@/ + com_table[7] := 'RW'; {Rule Width}@/ + com_table[8] := 'RD'; {Rule Depth}@/ + com_table[9] := 'IR'; {Insert Rule}@/ + com_table[10] := 'SL'; {Slant Mode}@/ + com_table[11] := 'RTWT'; {Reverse Type Window Top}@/ + com_table[12] := 'RTWB'; {Reverse Type Window Bottom}@/ + com_table[13] := 'AU'; {Auxiliary Character Set}@/ + com_table[14] := 'F'; {Change Fonts}@/ + com_table[15] := 'HMR'; {Horizontal Move Right}@/ + com_table[16] := 'HML'; {Horizontal Move Left}@/ + com_table[17] := 'TTS'; {8600 character, in decimal}@/ + com_table[18] := 'MAXCMD';@/ +%include pasclib(asciicvt)@/ +@y +@@/ +static@/ +@!com_table :packed array[0..18] of string(7);@/ +@!ordx : packed array['00'xc..'FF'xc] of '00'x..'7f'x;@/ +@!chrx : packed array['00'x..'7F'x] of '00'xc..'FF'xc;@/ +value@/ + com_table[0] := 'HDR'; {Header Record}@/ + com_table[1] := 'CHWIDTH';{Character Width}@/ + com_table[2] := 'RT'; {Reverse Type}@/ + com_table[3] := 'PS'; {Point Size}@/ + com_table[4] := 'SS'; {Set Size}@/ + com_table[5] := 'VMF'; {Vertical Move Forward}@/ + com_table[6] := 'VMR'; {Vertical Move Reverse}@/ + com_table[7] := 'RW'; {Rule Width}@/ + com_table[8] := 'RD'; {Rule Depth}@/ + com_table[9] := 'IR'; {Insert Rule}@/ + com_table[10] := 'SL'; {Slant Mode}@/ + com_table[11] := 'RTWT'; {Reverse Type Window Top}@/ + com_table[12] := 'RTWB'; {Reverse Type Window Bottom}@/ + com_table[13] := 'AU'; {Auxiliary Character Set}@/ + com_table[14] := 'F'; {Change Fonts}@/ + com_table[15] := 'HMR'; {Horizontal Move Right}@/ + com_table[16] := 'HML'; {Horizontal Move Left}@/ + com_table[17] := 'TTS'; {8600 character, in decimal}@/ + com_table[18] := 'MAXCMD';@/ +{ EBCDIC to ASCII INTEGER and ASCII INTEGER to EBCDIC conversion } +{ EBCDIC char to ASCII integer } { ASCII INTEGER to EBCDIC char } +ordx['00'xc]:='00'x; { NUL NUL } chrx['00'x]:='00'xc; { NUL NUL } +ordx['01'xc]:='01'x; { SOH SOH } chrx['01'x]:='01'xc; { SOH SOH } +ordx['02'xc]:='02'x; { STX STX } chrx['02'x]:='02'xc; { STX STX } +ordx['03'xc]:='03'x; { ETX ETX } chrx['03'x]:='03'xc; { ETX ETX } +ordx['04'xc]:='00'x; { ... NUL } chrx['04'x]:='37'xc; { EOT EOT } +ordx['05'xc]:='09'x; { HT HT } chrx['05'x]:='2D'xc; { ENQ ENQ } +ordx['06'xc]:='00'x; { ... NUL } chrx['06'x]:='2E'xc; { ACK ACK } +ordx['07'xc]:='7F'x; { DEL DEL } chrx['07'x]:='2F'xc; { BEL BEL } +ordx['08'xc]:='00'x; { ... NUL } chrx['08'x]:='16'xc; { BS BS } +ordx['09'xc]:='00'x; { ... NUL } chrx['09'x]:='05'xc; { HT HT } +ordx['0A'xc]:='00'x; { ... NUL } chrx['0A'x]:='25'xc; { LF LF } +ordx['0B'xc]:='0B'x; { VT VT } chrx['0B'x]:='0B'xc; { VT VT } +ordx['0C'xc]:='0C'x; { FF FF } chrx['0C'x]:='0C'xc; { FF FF } +ordx['0D'xc]:='0D'x; { CR CR } chrx['0D'x]:='0D'xc; { CR CR } +ordx['0E'xc]:='0E'x; { SO SO } chrx['0E'x]:='0E'xc; { SO SO } +ordx['0F'xc]:='0F'x; { SI SI } chrx['0F'x]:='0F'xc; { SI SI } +ordx['10'xc]:='10'x; { DLE DLE } chrx['10'x]:='10'xc; { DLE DLE } +ordx['11'xc]:='11'x; { DC1 DC1 } chrx['11'x]:='11'xc; { DC1 DC1 } +ordx['12'xc]:='12'x; { DC2 DC2 } chrx['12'x]:='12'xc; { DC2 DC2 } +ordx['13'xc]:='13'x; { TM DC3 } chrx['13'x]:='13'xc; { DC3 TM } +ordx['14'xc]:='00'x; { ... NUL } chrx['14'x]:='3C'xc; { DC4 DC4 } +ordx['15'xc]:='00'x; { ... NUL } chrx['15'x]:='3D'xc; { NAK NAK } +ordx['16'xc]:='08'x; { BS BS } chrx['16'x]:='32'xc; { SYN SYN } +ordx['17'xc]:='00'x; { ... NUL } chrx['17'x]:='26'xc; { ETB ETB } +ordx['18'xc]:='18'x; { CAN CAN } chrx['18'x]:='18'xc; { CAN CAN } +ordx['19'xc]:='19'x; { EM EM } chrx['19'x]:='19'xc; { EM EM } +ordx['1A'xc]:='00'x; { ... NUL } chrx['1A'x]:='3F'xc; { SUB SUB } +ordx['1B'xc]:='00'x; { ... NUL } chrx['1B'x]:='27'xc; { ESC ESC } +ordx['1C'xc]:='1C'x; { IFS FS } chrx['1C'x]:='1C'xc; { FS IFS } +ordx['1D'xc]:='1D'x; { IGS GS } chrx['1D'x]:='1D'xc; { GS IGS } +ordx['1E'xc]:='1E'x; { IRS RS } chrx['1E'x]:='1E'xc; { RS IRS } +ordx['1F'xc]:='1F'x; { IUS US } chrx['1F'x]:='1F'xc; { US IUS } +ordx['20'xc]:='00'x; { ... NUL } chrx['20'x]:='40'xc; { SP SP } +ordx['21'xc]:='00'x; { ... NUL } chrx['21'x]:='5A'xc; { ! ! } +ordx['22'xc]:='00'x; { ... NUL } chrx['22'x]:='7F'xc; { " " } +ordx['23'xc]:='00'x; { ... NUL } chrx['23'x]:='7B'xc; { # # } +ordx['24'xc]:='00'x; { ... NUL } chrx['24'x]:='5B'xc; { $ $ } +ordx['25'xc]:='0A'x; { LF LF } chrx['25'x]:='6C'xc; { % % } +ordx['26'xc]:='17'x; { ETB ETB } chrx['26'x]:='50'xc; { & & } +ordx['27'xc]:='1B'x; { ESC ESC } chrx['27'x]:='7D'xc; { ' ' } +ordx['28'xc]:='00'x; { ... NUL } chrx['28'x]:='4D'xc; { ( ( } +ordx['29'xc]:='00'x; { ... NUL } chrx['29'x]:='5D'xc; { ) ) } +ordx['2A'xc]:='00'x; { ... NUL } chrx['2A'x]:='5C'xc; { * * } +ordx['2B'xc]:='00'x; { ... NUL } chrx['2B'x]:='4E'xc; { + + } +ordx['2C'xc]:='00'x; { ... NUL } chrx['2C'x]:='6B'xc; { , , } +ordx['2D'xc]:='05'x; { ENQ ENQ } chrx['2D'x]:='60'xc; { - - } +ordx['2E'xc]:='06'x; { ACK ACK } chrx['2E'x]:='4B'xc; { . . } +ordx['2F'xc]:='07'x; { BEL BEL } chrx['2F'x]:='61'xc; { / / } +ordx['30'xc]:='00'x; { ... NUL } chrx['30'x]:='F0'xc; { 0 0 } +ordx['31'xc]:='00'x; { ... NUL } chrx['31'x]:='F1'xc; { 1 1 } +ordx['32'xc]:='16'x; { SYN SYN } chrx['32'x]:='F2'xc; { 2 2 } +ordx['33'xc]:='00'x; { ... NUL } chrx['33'x]:='F3'xc; { 3 3 } +ordx['34'xc]:='00'x; { ... NUL } chrx['34'x]:='F4'xc; { 4 4 } +ordx['35'xc]:='00'x; { ... NUL } chrx['35'x]:='F5'xc; { 5 5 } +ordx['36'xc]:='00'x; { ... NUL } chrx['36'x]:='F6'xc; { 6 6 } +ordx['37'xc]:='04'x; { EOT EOT } chrx['37'x]:='F7'xc; { 7 7 } +ordx['38'xc]:='00'x; { ... NUL } chrx['38'x]:='F8'xc; { 8 8 } +ordx['39'xc]:='00'x; { ... NUL } chrx['39'x]:='F9'xc; { 9 9 } +ordx['3A'xc]:='00'x; { ... NUL } chrx['3A'x]:='7A'xc; { : : } +ordx['3B'xc]:='00'x; { ... NUL } chrx['3B'x]:='5E'xc; { ; ; } +ordx['3C'xc]:='14'x; { DC4 DC4 } chrx['3C'x]:='4C'xc; { < < } +ordx['3D'xc]:='15'x; { NAK NAK } chrx['3D'x]:='7E'xc; { = = } +ordx['3E'xc]:='00'x; { ... NUL } chrx['3E'x]:='6E'xc; { > > } +ordx['3F'xc]:='1A'x; { SUB SUB } chrx['3F'x]:='6F'xc; { ? ? } +ordx['40'xc]:='20'x; { SP SP } chrx['40'x]:='7C'xc; { @@ @@ } +ordx['41'xc]:='00'x; { ... NUL } chrx['41'x]:='C1'xc; { A A } +ordx['42'xc]:='00'x; { ... NUL } chrx['42'x]:='C2'xc; { B B } +ordx['43'xc]:='00'x; { ... NUL } chrx['43'x]:='C3'xc; { C C } +ordx['44'xc]:='00'x; { ... NUL } chrx['44'x]:='C4'xc; { D D } +ordx['45'xc]:='00'x; { ... NUL } chrx['45'x]:='C5'xc; { E E } +ordx['46'xc]:='00'x; { ... NUL } chrx['46'x]:='C6'xc; { F F } +ordx['47'xc]:='00'x; { ... NUL } chrx['47'x]:='C7'xc; { G G } +ordx['48'xc]:='00'x; { ... NUL } chrx['48'x]:='C8'xc; { H H } +ordx['49'xc]:='00'x; { ... NUL } chrx['49'x]:='C9'xc; { I I } +ordx['4A'xc]:='5E'x; { ã ã } chrx['4A'x]:='D1'xc; { J J } +ordx['4B'xc]:='2E'x; { . . } chrx['4B'x]:='D2'xc; { K K } +ordx['4C'xc]:='3C'x; { < < } chrx['4C'x]:='D3'xc; { L L } +ordx['4D'xc]:='28'x; { ( ( } chrx['4D'x]:='D4'xc; { M M } +ordx['4E'xc]:='2B'x; { + + } chrx['4E'x]:='D5'xc; { N N } +ordx['4F'xc]:='7C'x; { | | } chrx['4F'x]:='D6'xc; { O O } +ordx['50'xc]:='26'x; { & & } chrx['50'x]:='D7'xc; { P P } +ordx['51'xc]:='00'x; { ... NUL } chrx['51'x]:='D8'xc; { Q Q } +ordx['52'xc]:='00'x; { ... NUL } chrx['52'x]:='D9'xc; { R R } +ordx['53'xc]:='00'x; { ... NUL } chrx['53'x]:='E2'xc; { S S } +ordx['54'xc]:='00'x; { ... NUL } chrx['54'x]:='E3'xc; { T T } +ordx['55'xc]:='00'x; { ... NUL } chrx['55'x]:='E4'xc; { U U } +ordx['56'xc]:='00'x; { ... NUL } chrx['56'x]:='E5'xc; { V V } +ordx['57'xc]:='00'x; { ... NUL } chrx['57'x]:='E6'xc; { W W } +ordx['58'xc]:='00'x; { ... NUL } chrx['58'x]:='E7'xc; { X X } +ordx['59'xc]:='00'x; { ... NUL } chrx['59'x]:='E8'xc; { Y Y } +ordx['5A'xc]:='21'x; { ! ! } chrx['5A'x]:='E9'xc; { Z Z } +ordx['5B'xc]:='24'x; { $ $ } chrx['5B'x]:='AD'xc; { [ [ } +ordx['5C'xc]:='2A'x; { * * } chrx['5C'x]:='E0'xc; { \ \ } +ordx['5D'xc]:='29'x; { ) ) } chrx['5D'x]:='BD'xc; { ] ] } +ordx['5E'xc]:='3B'x; { ; ; } chrx['5E'x]:='4A'xc; { ã ã } +ordx['5F'xc]:='7E'x; { ^ ^ } chrx['5F'x]:='6D'xc; { _ _ } +ordx['60'xc]:='2D'x; { - - } chrx['60'x]:='79'xc; { ` ` } +ordx['61'xc]:='2F'x; { / / } chrx['61'x]:='81'xc; { a a } +ordx['62'xc]:='00'x; { ... NUL } chrx['62'x]:='82'xc; { b b } +ordx['63'xc]:='00'x; { ... NUL } chrx['63'x]:='83'xc; { c c } +ordx['64'xc]:='00'x; { ... NUL } chrx['64'x]:='84'xc; { d d } +ordx['65'xc]:='00'x; { ... NUL } chrx['65'x]:='85'xc; { e e } +ordx['66'xc]:='00'x; { ... NUL } chrx['66'x]:='86'xc; { f f } +ordx['67'xc]:='00'x; { ... NUL } chrx['67'x]:='87'xc; { g g } +ordx['68'xc]:='00'x; { ... NUL } chrx['68'x]:='88'xc; { h h } +ordx['69'xc]:='00'x; { ... NUL } chrx['69'x]:='89'xc; { i i } +ordx['6A'xc]:='00'x; { ... NUL } chrx['6A'x]:='91'xc; { j j } +ordx['6B'xc]:='2C'x; { , , } chrx['6B'x]:='92'xc; { k k } +ordx['6C'xc]:='25'x; { % % } chrx['6C'x]:='93'xc; { l l } +ordx['6D'xc]:='5F'x; { _ _ } chrx['6D'x]:='94'xc; { m m } +ordx['6E'xc]:='3E'x; { > > } chrx['6E'x]:='95'xc; { n n } +ordx['6F'xc]:='3F'x; { ? ? } chrx['6F'x]:='96'xc; { o o } +ordx['70'xc]:='00'x; { ... NUL } chrx['70'x]:='97'xc; { p p } +ordx['71'xc]:='00'x; { ... NUL } chrx['71'x]:='98'xc; { q q } +ordx['72'xc]:='00'x; { ... NUL } chrx['72'x]:='99'xc; { r r } +ordx['73'xc]:='00'x; { ... NUL } chrx['73'x]:='A2'xc; { s s } +ordx['74'xc]:='00'x; { ... NUL } chrx['74'x]:='A3'xc; { t t } +ordx['75'xc]:='00'x; { ... NUL } chrx['75'x]:='A4'xc; { u u } +ordx['76'xc]:='00'x; { ... NUL } chrx['76'x]:='A5'xc; { v v } +ordx['77'xc]:='00'x; { ... NUL } chrx['77'x]:='A6'xc; { w w } +ordx['78'xc]:='00'x; { ... NUL } chrx['78'x]:='A7'xc; { x x } +ordx['79'xc]:='60'x; { ` ` } chrx['79'x]:='A8'xc; { y y } +ordx['7A'xc]:='3A'x; { : : } chrx['7A'x]:='A9'xc; { z z } +ordx['7B'xc]:='23'x; { # # } chrx['7B'x]:='C0'xc; { lcurly } +ordx['7C'xc]:='40'x; { @@ @@ } chrx['7C'x]:='4F'xc; { | | } +ordx['7D'xc]:='27'x; { ' ' } chrx['7D'x]:='D0'xc; { rcurly } +ordx['7E'xc]:='3D'x; { = = } chrx['7E'x]:='9C'xc; { tilde } +ordx['7F'xc]:='22'x; { " " } chrx['7F'x]:='07'xc; { DEL DEL } +ordx['80'xc]:='00'x; { ... NUL } +ordx['81'xc]:='61'x; { a a } +ordx['82'xc]:='62'x; { b b } +ordx['83'xc]:='63'x; { c c } +ordx['84'xc]:='64'x; { d d } +ordx['85'xc]:='65'x; { e e } +ordx['86'xc]:='66'x; { f f } +ordx['87'xc]:='67'x; { g g } +ordx['88'xc]:='68'x; { h h } +ordx['89'xc]:='69'x; { i i } +ordx['8A'xc]:='00'x; { ... NUL } +ordx['8B'xc]:='00'x; { ... NUL } +ordx['8C'xc]:='00'x; { ... NUL } +ordx['8D'xc]:='00'x; { ... NUL } +ordx['8E'xc]:='00'x; { ... NUL } +ordx['8F'xc]:='00'x; { ... NUL } +ordx['90'xc]:='00'x; { ... NUL } +ordx['91'xc]:='6A'x; { j j } +ordx['92'xc]:='6B'x; { k k } +ordx['93'xc]:='6C'x; { l l } +ordx['94'xc]:='6D'x; { m m } +ordx['95'xc]:='6E'x; { n n } +ordx['96'xc]:='6F'x; { o o } +ordx['97'xc]:='70'x; { p p } +ordx['98'xc]:='71'x; { q q } +ordx['99'xc]:='72'x; { r r } +ordx['9A'xc]:='00'x; { ... NUL } +ordx['9B'xc]:='00'x; { ... NUL } +ordx['9C'xc]:='7E'x; { tilde } +ordx['9D'xc]:='00'x; { ... NUL } +ordx['9E'xc]:='00'x; { ... NUL } +ordx['9F'xc]:='00'x; { ... NUL } +ordx['A0'xc]:='00'x; { ... NUL } +ordx['A1'xc]:='1A'x; { ... SUB } +ordx['A2'xc]:='73'x; { s s } +ordx['A3'xc]:='74'x; { t t } +ordx['A4'xc]:='75'x; { u u } +ordx['A5'xc]:='76'x; { v v } +ordx['A6'xc]:='77'x; { w w } +ordx['A7'xc]:='78'x; { x x } +ordx['A8'xc]:='79'x; { y y } +ordx['A9'xc]:='7A'x; { z z } +ordx['AA'xc]:='00'x; { ... NUL } +ordx['AB'xc]:='00'x; { ... NUL } +ordx['AC'xc]:='00'x; { ... NUL } +ordx['AD'xc]:='5B'x; { [ [ } +ordx['AE'xc]:='00'x; { ... NUL } +ordx['AF'xc]:='00'x; { ... NUL } +ordx['B0'xc]:='00'x; { ... NUL } +ordx['B1'xc]:='00'x; { ... NUL } +ordx['B2'xc]:='00'x; { ... NUL } +ordx['B3'xc]:='00'x; { ... NUL } +ordx['B4'xc]:='00'x; { ... NUL } +ordx['B5'xc]:='00'x; { ... NUL } +ordx['B6'xc]:='00'x; { ... NUL } +ordx['B7'xc]:='00'x; { ... NUL } +ordx['B8'xc]:='00'x; { ... NUL } +ordx['B9'xc]:='00'x; { ... NUL } +ordx['BA'xc]:='00'x; { ... NUL } +ordx['BB'xc]:='00'x; { ... NUL } +ordx['BC'xc]:='00'x; { ... NUL } +ordx['BD'xc]:='5D'x; { ] ] } +ordx['BE'xc]:='00'x; { ... NUL } +ordx['BF'xc]:='00'x; { ... NUL } +ordx['C0'xc]:='7B'x; { lcurly } +ordx['C1'xc]:='41'x; { A A } +ordx['C2'xc]:='42'x; { B B } +ordx['C3'xc]:='43'x; { C C } +ordx['C4'xc]:='44'x; { D D } +ordx['C5'xc]:='45'x; { E E } +ordx['C6'xc]:='46'x; { F F } +ordx['C7'xc]:='47'x; { G G } +ordx['C8'xc]:='48'x; { H H } +ordx['C9'xc]:='49'x; { I I } +ordx['CA'xc]:='00'x; { ... NUL } +ordx['CB'xc]:='00'x; { ... NUL } +ordx['CC'xc]:='00'x; { ... NUL } +ordx['CD'xc]:='00'x; { ... NUL } +ordx['CE'xc]:='00'x; { ... NUL } +ordx['CF'xc]:='00'x; { ... NUL } +ordx['D0'xc]:='7D'x; { rcurly } +ordx['D1'xc]:='4A'x; { J J } +ordx['D2'xc]:='4B'x; { K K } +ordx['D3'xc]:='4C'x; { L L } +ordx['D4'xc]:='4D'x; { M M } +ordx['D5'xc]:='4E'x; { N N } +ordx['D6'xc]:='4F'x; { O O } +ordx['D7'xc]:='50'x; { P P } +ordx['D8'xc]:='51'x; { Q Q } +ordx['D9'xc]:='52'x; { R R } +ordx['DA'xc]:='00'x; { ... NUL } +ordx['DB'xc]:='00'x; { ... NUL } +ordx['DC'xc]:='00'x; { ... NUL } +ordx['DD'xc]:='00'x; { ... NUL } +ordx['DE'xc]:='00'x; { ... NUL } +ordx['DF'xc]:='00'x; { ... NUL } +ordx['E0'xc]:='5C'x; { \ \ } +ordx['E1'xc]:='00'x; { ... NUL } +ordx['E2'xc]:='53'x; { S S } +ordx['E3'xc]:='54'x; { T T } +ordx['E4'xc]:='55'x; { U U } +ordx['E5'xc]:='56'x; { V V } +ordx['E6'xc]:='57'x; { W W } +ordx['E7'xc]:='58'x; { X X } +ordx['E8'xc]:='59'x; { Y Y } +ordx['E9'xc]:='5A'x; { Z Z } +ordx['EA'xc]:='00'x; { ... NUL } +ordx['EB'xc]:='00'x; { ... NUL } +ordx['EC'xc]:='00'x; { ... NUL } +ordx['ED'xc]:='00'x; { ... NUL } +ordx['EE'xc]:='00'x; { ... NUL } +ordx['EF'xc]:='00'x; { ... NUL } +ordx['F0'xc]:='30'x; { 0 0 } +ordx['F1'xc]:='31'x; { 1 1 } +ordx['F2'xc]:='32'x; { 2 2 } +ordx['F3'xc]:='33'x; { 3 3 } +ordx['F4'xc]:='34'x; { 4 4 } +ordx['F5'xc]:='35'x; { 5 5 } +ordx['F6'xc]:='36'x; { 6 6 } +ordx['F7'xc]:='37'x; { 7 7 } +ordx['F8'xc]:='38'x; { 8 8 } +ordx['F9'xc]:='39'x; { 9 9 } +ordx['FA'xc]:='00'x; { ... NUL } +ordx['FB'xc]:='00'x; { ... NUL } +ordx['FC'xc]:='00'x; { ... NUL } +ordx['FD'xc]:='00'x; { ... NUL } +ordx['FE'xc]:='00'x; { ... NUL } +ordx['FF'xc]:='00'x; { ... NUL } +@z diff --git a/macros/text1/compugraphics_8600/fonttex.web b/macros/text1/compugraphics_8600/fonttex.web new file mode 100644 index 0000000000..6f2ce2858e --- /dev/null +++ b/macros/text1/compugraphics_8600/fonttex.web @@ -0,0 +1,1936 @@ +%test version +\font\twelvept=cmbx12 +\font\tentex=cmr10 +\def\topofcontents{\null + \def\titlepage{T} + \centerline{{\twelvept The FONTTEX Program}} + \vskip15pt + \centerline{Version 2, July 1986} + \hbox{\vbox{\hsize\the\hsize This work is + protected as an unpublished work under U.S. copyright laws. + Copyright $\copyright$ 1986 by WSUCSC. All rights Reserved.}} + \vskip18pt + \hbox{\vbox{\hsize\the\hsize This software is furnished under a + license for + use only on a single computer system and may be copied only + with the inclusion of the above copyright notice. + This software, or any other copies + thereof, may not be provided or otherwise made available to any + other person except for use on such system and to one who agrees to + these license terms. Title to and ownership of the software shall + at all times remain in WSUCSC.}} + \vfill} + +@* Introduction. + This version of fonttex writes font and driver information + into elements. Infile, a data file, must be assigned prior + the font data. + + Fonttex reads a font description source element, and creates + a \TeX\ font file (TFM) and an 8600 driver element. + + The font description source is divided into three sections. + The first section includes comments and parameters for the + entire font, the second describes the individual characters, + and the third provides information about ligatures, kerns, + linked math characters, and limit conventions on math + operators. Numeric information is given as integers, + or fractions depending on the context in which it + occurs. All sizes given will be scaled by the point size by + \TeX\ and so should reflect the sizes for 1-point + type. + + The first section can include comments, which begin with a + "*" in column one of the line. It also includes definitions + of numeric parameters for the \TeX\ and driver font files. + The parameter definitions consist of an alphabetic name + beginning in column 1 and ending with one or more blanks; + and a numeric value. Comments and parameters can be + interspersed. This section is ended by a line containing a + dollar sign in column 1. Although the order the parameters + are given in is not significant, we will discuss them in a + conventional order. The first two parameters are the + scaling factors for the heights, widths, and depths of the + characters given in section 2. These scaling factors are + called |HUNITS| and |VUNITS|. Both have real values. All + character widths are implicitly multiplied by |HUNITS|, and + all heights and depths by |VUNITS|. For the Compugraphic 8600 + we use |HUNITS|=1/54 and |VUNITS|=1/64, because of the internal + units used on the machine. The next several parameters give + information about the font needed by the 8600 driver. + |DEFFONT| specifies a font number on the typesetter. Unless + otherwise defined, all characters in this file come from + this font. |DEFWIDTH| gives the width multiplier. All + character widths are also multiplied by |DEFWIDTH|. Typically + |DEFWIDTH| is 1, but it could be less for condensed type and + more for expanded type. The remaining parameters are for + the \TeX\ font file. They all take real values. + + There should be 128 character entries in section two. + Information about character is given in free format columns, + which are separated by one or more blanks. Beginning in + column 1 is the character mnemonic. Most fonts use standard + ascii codes, so that character 65 is A, etc. For this + reason, any single character name will be checked to see + that it corresponds to the appropriate ascii value. If not a + warning is issued. + Following this may be the keyword + LIGATURE or BUILD describing ligatures and built-up math + delimiters. This is omitted for ordinary characters. The + ligature keyword indicates that this character should be + substituted for a combination of two other characters. + Following the keyword should be the names of the two + characters separated by a plus sign. For example, fi + LIGATURE f+i and: ff LIGATURE f+f ffl LIGATURE ff+l. + For the + BUILD keyword, the character will be made from pieces. + There can be a top, bottom, middle, and extension character. + All are optional except the extension character. This is + specified as BUILD keyword=charname,keyword=charname,... + For instance, bigparen BUILD + TOP=parentop,MID=parenmid,BOT=parenmid. + The third field of + information is the character width, the fourth the height, + and the fifth the depth. Widths are given relative to the + point size and are implicitly multiplied by the |HUNITS| + parameter. Likewise height and depth are relative and are + multiplied by |VUNITS|. For example, the typical value of + |HUNITS| is 1/54. Then a character width given as 27 means + that the character is 0.5 times the point size in width. The + point size will be determined when the file is referred to + in \TeX , and the character sizes will be multiplied by it as + the file is read into \TeX . The sixth column gives 8600 + commands and character codes. The commands have integer or + real parameters. Most characters will have a single character + code, and will be selected from the default font. An + alternate font can be specified by the F command. 8600 code + can also include point size commands, psuedo-italic + commands, etc. Refer to the module discussing ``Reading the + 8600 Codes.'' + + The final section specifies kerns, linked math characters, + and math operator conventions. A kern is an amount of + horizontal space to be subtracted between two characters. + It is specified as KERN A+W 5/100 for instance, to shave + 5/100 of the point size between occurences of A and W. + Linking occurs in math extension fonts where various sizes + of parentheses, brackets, and so forth occur. To link one + character to the next larger size of the same symbol, + specify LINK charname1 charname2 Finally, a character is + specified to be a mathop by the MATHOP keyword. (Common + mathops are sum and integral signs.) Following the keyword + is the character name and a real number. If the real number + is zero, limits for the operator will be centered above and + below it in display style. If non-zero, limits are set to + the right of the symbol, and the lower limit is moved left + by this amount. + + Some further detail on the methods and data structures used + by Fonttex. Widths, heights, depths, and italic corrections + are stored in arrays of reals (type realarray). Entry -1 + gives the highest numbered entry used so far. When a height, + depth, etc is read from the input file, procedure |AddToList| + is called to add the value to the array and return the index + of the entry in the array. If two or more characters have + the same dimension, the value is stored only once and the + characters have identical indices pointing to it. In the TFM + format font files, each character has an index into the + width, height, depth, italic correction arrays, and the + arrays of values are given separately. (See TUGboat volume + 2, no 1; or the comments in Sysdep at |ReadFontInfo| for more + details on the font file format.) + + Ligatures are specified by giving the name of the two + "component" characters of the ligature. These are saved in + an array of records, "lig" until the entire pre-file has + been read. Then a pass is made through these records to look + up all the names of the component characters, and a another + pass is made through the lig records to group them by the + first character of the ligature and add a pointer in the + outstuff array for that character pointing to the + ligature/kern program. The same is done with kern + specifications and the final pass over both is done + simultaneously. + + Extendible characters made from top, bottom, middle, and + extension pieces are marked at the character entry, and the + names of the pieces are saved in array ext until the file + has been read. The tag value and pointer into the ext array + are set in outstuff when the line is read in |ReadBuildStuff|, + but the character numbers for the ext array itself are not + found until after the entire file has been read. + + When records are written to the driver and font files they + can be displayed by compiling Fonttex with "drvdump" and + "dump" respectively set to true. + +@ Following are a few macros and definitions used throughout program: + +@d incr(#) == # := # + 1 +@d decr(#) == # := # - 1 +@d do_nothing == begin; end +@d ccat==@=||@> +@f static == var +@f value == var + +@ The beginning of the program. + +@p program fonttex(terminal,sysprint,fontpkt,drvpkt,infile); +const + @@/ +type + @@/ +var + @@/ +static@/ + @^system dependencies@> + com_table :packed array[0..18] of string(7);@/ +value@/ + com_table[0] := 'HDR'; {Header Record}@/ + com_table[1] := 'CHWIDTH';{Character Width}@/ + com_table[2] := 'RT'; {Reverse Type}@/ + com_table[3] := 'PS'; {Point Size}@/ + com_table[4] := 'SS'; {Set Size}@/ + com_table[5] := 'VMF'; {Vertical Move Forward}@/ + com_table[6] := 'VMR'; {Vertical Move Reverse}@/ + com_table[7] := 'RW'; {Rule Width}@/ + com_table[8] := 'RD'; {Rule Depth}@/ + com_table[9] := 'IR'; {Insert Rule}@/ + com_table[10] := 'SL'; {Slant Mode}@/ + com_table[11] := 'RTWT'; {Reverse Type Window Top}@/ + com_table[12] := 'RTWB'; {Reverse Type Window Bottom}@/ + com_table[13] := 'AU'; {Auxiliary Character Set}@/ + com_table[14] := 'F'; {Change Fonts}@/ + com_table[15] := 'HMR'; {Horizontal Move Right}@/ + com_table[16] := 'HML'; {Horizontal Move Left}@/ + com_table[17] := 'TTS'; {8600 character, in decimal}@/ + com_table[18] := 'MAXCMD';@/ +%include pasclib(asciicvt)@/ + +@* Beginning section. +This section includes some basic functions for reading the DVI file +as well as a couple of procedures, like error and allcaps. Nothing +tricky or noteworthy in these. + +@= + maxkerns = 255; + num_entries = 128; {maximum number of characters entered} + +@ +@= + oneoftwo = packed 1..2; + oneoffour = packed 1..4; + bytes4 = packed record + byte0 :packed 0..255; + byte1 :packed 0..255; + case oneoftwo of + 1 :(rhword :packed 0..65535); + 2 :(byte2 :packed 0..255; + byte3 :packed 0..255) + end; + charindex = 0..127;@\ + comm = (HDR,CHWIDTH,RT,PS,SS,VMF,VMR,RW,RD,IR,SL, + RTWT,RTWB,AU,F,HMR,HML,TTS,MAXCMD);@\ + driverrec = record + cmd :integer; + case oneoftwo of + 1 :(param :shortreal); + 2 :(code :integer); + end; + extrec = record + sourceline:integer; + topname,botname,extname,midname :string(40); + top,bot,mid,ext :charindex; + end; + fonttypes = (standard,mathex,mathsy); + halves2 = packed record + lhword :packed 0..65535; + case oneoftwo of + 1 :(rhword :packed 0..65535); + 2 :(byte2 :packed 0..255; + byte3 :packed 0..255) + end; + kernrec = record + frstchar :charindex; + scndchar :charindex; + kernslot :integer; + end; + ligrec = record + sourceline :integer; + firstname :string(40); + scndname :string(40); + frstchar :charindex; + scndchar :charindex; + ligcode :charindex; + end; + memoryword = packed record case oneoffour of + 1 :(pts :shortreal); + 2 :(int :integer); + 3 :(twohalves :halves2); + 4 :(fourbytes :bytes4) + end; + outarray = array[charindex] of memoryword; + parameter = (slant,spacee,spstretch,spshrink, + xheight,quad,extraspace, + raisen1,raisen2,raisen3, + denom1,denom2,sup1,sup2, + sup3,sub1,sub2,supdrop,subdrop, + dlims1,dlims2,axisheight, + defthickness,bgopsp1, + bgopsp2,bgopsp3, + bgopsp4,bgopsp5); + realarray = array[-1..num_entries] of real; + +@ This function will convert whatever is passed to it into +all capital letters. It translates lower case letters into upper case +letters. All other characters outside of the range +a$<$=character$<$=z are returned as their original value. + +@^system dependencies@> +@p function allcaps(instring :string(40)) :string(40); +var + i :integer; + character :char; + buildit :string(40); +static + chtable :packed array['81'xc..'e9'xc] of char; +value + chtable['81'xc] := 'A'; + chtable['82'xc] := 'B'; + chtable['83'xc] := 'C'; + chtable['84'xc] := 'D'; + chtable['85'xc] := 'E'; + chtable['86'xc] := 'F'; + chtable['87'xc] := 'G'; + chtable['88'xc] := 'H'; + chtable['89'xc] := 'I'; + chtable['91'xc] := 'J'; + chtable['92'xc] := 'K'; + chtable['93'xc] := 'L'; + chtable['94'xc] := 'M'; + chtable['95'xc] := 'N'; + chtable['96'xc] := 'O'; + chtable['97'xc] := 'P'; + chtable['98'xc] := 'Q'; + chtable['99'xc] := 'R'; + chtable['a2'xc] := 'S'; + chtable['a3'xc] := 'T'; + chtable['a4'xc] := 'U'; + chtable['a5'xc] := 'V'; + chtable['a6'xc] := 'W'; + chtable['a7'xc] := 'X'; + chtable['a8'xc] := 'Y'; + chtable['a9'xc] := 'Z'; +begin + buildit := ''; + for i := 1 to length(instring) do begin + readstr(substr(instring,i,1),character); + if character in ['a'..'z'] + then buildit := buildit || str(chtable[character]) + else buildit := buildit || str(character); + end; + allcaps := buildit; + end; + +@ This function receives an integer value and converts it to its +hex value and returns that value as a string. + +@^system dependencies@> +@p function hex(int :integer) :string(8); +var + i :integer; + j :integer; + k16 :integer; + stri :string(8); +static + hexarray :array[0..15] of string(1); +value + hexarray[0] := '0'; + hexarray[1] := '1'; + hexarray[2] := '2'; + hexarray[3] := '3'; + hexarray[4] := '4'; + hexarray[5] := '5'; + hexarray[6] := '6'; + hexarray[7] := '7'; + hexarray[8] := '8'; + hexarray[9] := '9'; + hexarray[10] := 'A'; + hexarray[11] := 'B'; + hexarray[12] := 'C'; + hexarray[13] := 'D'; + hexarray[14] := 'E'; + hexarray[15] := 'F'; +begin + stri := ''; + i := int; + if i < 0 then begin + stri := 'FF'; + i := 'FFFFFF'x + i + 1; + end; + k16 := 1048576; + repeat + if i >= k16 + then begin + j := i div k16; + stri := stri || hexarray[j]; + i := i - (j * k16); + end + else if length(stri) > 0 + then stri := stri || '0'; + k16 := k16 div 16; + until k16 = 1; + stri := stri || hexarray[i]; + i := length(stri); + if (i = 1) or (i = 3) or (i = 5) + then stri := '0' || stri; + hex := stri; + end; + +@ +@= + oneofsix = 1..6; + +@ +@= + dump :boolean; + fontpkt :file of memoryword; + inx :integer; + name :array[0..127] of string(40); + outcount :integer; + outrec :memoryword; + +@ +@p procedure writeout(outrec :memoryword; + outtype :oneofsix); +var + length :integer; +begin + if dump then begin + write(outcount:6,': '); + case outtype of + 1 :writeln('Pts=',outrec.pts); + 2 :begin + writeln('Fix=',outrec.int); + end; + 3 :with outrec.twohalves do + writeln('lhword=',lhword,',rhword=',rhword); + 4 :with outrec.fourbytes do + writeln(' Byte0=',byte0:3,'=>"',hex(byte0),'"', + ',Byte1=',byte1:3,'=>"',hex(byte1),'"', + ',Byte2=',byte2:3,'=>"',hex(byte2),'"', + ',Byte3=',byte3:3,'=>"',hex(byte3),'"'); + 5 :with outrec.fourbytes do + writeln(' Width inx =',byte0:3, + ',Height inx= ',byte1 div 16:2, + ',Depth inx =',byte1 mod 16:2, + ',ItCor inx= ',byte2 div 4:2, + ',Tag =',byte2 mod 4:1, + ',Rem =',byte3:2, + ',chr="',name[inx],'"'); + 6 :writeln(outrec.int:1); + end;{case} + end;{if} + outcount := outcount + 1; {count it} + fontpkt@@ := outrec; + put(fontpkt); + end; {writeout} + +@ +@= +@!error_severity = (fatal,notreallyfatal,overlookable); + +@ +@= +@!currchar :charindex; +@!errlin :integer; +@!errlstr :string(10); +@!errmax :integer; +@!errmin :integer; +@!errnum :integer; +@!errstr :string(133); +@!infile :text; +@!lenfile :integer; +@!lineno :integer; +@!sysprint :text; + +@ The error procedure. When a byte is read that does not jive with +what the program was expecting, it goes to this procedure with a +return code of some kind and an appropriate message is printed to user. + +@p procedure error(err :integer; + howbad :error_severity); +begin + if errlin = 0 then errlin := lineno; + {The caller can override the current line by setting errlin} + case err of + 0 :writeln('Empty input file'); + 1 :writeln('Unrecognized keyword :',errstr); + 2 :begin + write('Number of entries must be specified'); + writeln(' before the entries appear'); + end; + 4 :begin + write('Integer expected but not found: next char='); + if eoln(infile) + then writeln('end of line') + else writeln(infile@@); + end; + 5 :writeln('Too many unique widths, depths, or heights'); + 6 :begin + writeln('Entries in font file are out of sequence:'); + writeln('The entry labelled ',errstr[1], + ' has a sequence ', 'of ',currchar:3, + ', not its Ascii value ',ordx[errstr[1]]:3); + end; + 7 :writeln('Ran out of entries in font file prematurely'); + 8 :writeln('Real value given for parameter ',errstr, + ', but integer required'); + 9 :writeln('The character names in a ligature or kern ', + 'have to be separated by a "+"'); + 10 :writeln('Knave! No space should follow thine plus sign'); + 11 :writeln('We expected to see a keyword here, not ', + errstr,'. Perhaps you have too many ', + 'character entries, or (gasp!) a typo'); + 12 :writeln('You never specified "',errstr, + '" as a character name'); + 13 :writeln('Keyword should be TOP,BOT,MID,EXT, not "', + errstr:3,'"'); + 14 :writeln('You''ve specified parameters for both ', + 'mathex and mathsy fonts'); + 15 :writeln('Expected to write ',lenfile:3,' records, ', + 'but actually wrote ',outcount:3); + 16 :writeln('After character name should be BUILD, ', + 'LIGATURE, or integer, not ',errstr); + 17 :writeln('Invalid value for parameter ',errlstr,', ', + errnum,' is <',errmin,' or >',errmax); + 18 :writeln('TTS codes must be within 0 to 127'); + 19 :writeln(errlstr,' is not a valid 8600 command'); + 20 :writeln('There is no 8600 code given for character ', + errstr:1); + 21 :writeln('Bad character for 8600 code :',infile@@); + 24 :writeln('Major font number should be between 1 and ', + maxfont:3); + 27 :writeln('Fontname too long, truncated to 8 characters'); + 28 :writeln('Invalid input values for tracing, ', + 'record "',errlstr,'" skipped'); + otherwise writeln('Unspecified error number ',err:3); + end; {case} + if howbad = fatal + then begin + writeln('Fatal error ends program at input line', + errlin:4); + trace(sysprint); + halt; + end + else writeln('Error at input line',errlin:4); + if (not eof(infile)) and (howbad = overlookable) + then begin + readln(infile); + writeln('rest of this string has been overlooked'); + end; + errlin := 0; {reset default line to lineno} + end; {Error} + +@ +@p procedure skipblanks; +begin + while (infile@@=' ') and not eoln(infile) do + get(infile); {advance one character} + end; + +@ +@= +@!chrset = set of char; + +@ This procedure reads a string from infile to be delimited by +a character in the set delimiters. + +@p procedure readmnemonic(var mn :string(40); + delimiters :chrset); +var + str :string(1); +begin + mn := ''; + while (length(mn) <= 40) and not (infile@@ in delimiters) do begin + read(infile,str); +{writeln('character="',str);} + mn := mn || str; + end; + errstr := mn; {save globally for error messages} + end; {readmnemonic} + +@ +@= + exspacekey = 'EXTRASPACE'; + quadkey = 'QUAD'; + slantkey = 'SLANT'; + spaceekey = 'SPACE'; + spshrkey = 'SPSHRINK'; + spstrkey = 'SPSTRETCH'; + xhtkey = 'XHEIGHT'; + +@ +@p procedure printparam(p :parameter); +begin + case p of + slant :write(slantkey:5); + spacee :write(spaceekey:6); + spstretch :write(spstrkey:9); + spshrink :write(spshrkey:8); + xheight :write(xhtkey:7); + quad :write(quadkey:4); + extraspace:write(exspacekey:10); + otherwise write(' next math parm'); + end; {case} + end; {printparam} + +@ This converts the byte to an integer, for further evaluation by +the program. + +@p procedure readinteger(var int :integer); +var + minusint :integer; +begin + skipblanks; + if not (infile@@ in ['0'..'9','-']) then error(4,fatal); + if infile@@ = '-' + then begin + get(infile); + readinteger(minusint); + int := 0 - minusint; + end + else read(infile,int); + end; {readinteger} + +@ Reads series of integers separated by * and /. Returns + value in fractional form: multiplier/divisor is the real value + +@p procedure readexpr(var multiplier :integer; + var divisor :integer); +var + op :char; + int :integer; +begin + skipblanks; + if infile@@ = ' ' then error(4,fatal); + op := '*'; + multiplier := 1; + divisor := 1; + while not (infile@@ in [' ',',']) do begin + readinteger(int); + if op = '*' + then multiplier := multiplier * int + else divisor := divisor * int; + if (infile@@ = '*') or (infile@@ = '/') + then read(infile,op); + end; {while} + end; {readexpr} + +@ +@p procedure readreal(var r :real); +var + mult :integer; + divs :integer; +begin + readexpr(mult,divs); + r := (1.0 * mult)/(1.0 * divs); + end; + +@ +@=@/ + axishtkey = 'AXISHEIGHT'; + bosp1key = 'BIGOPSPACE1'; + bosp2key = 'BIGOPSPACE2'; + bosp3key = 'BIGOPSPACE3'; + bosp4key = 'BIGOPSPACE4'; + bosp5key = 'BIGOPSPACE5'; + codingschemekey = 'CODINGSCHEME'; + deffontkey = 'DEFFONT'; + dethicknesskey = 'DEFTHICKNESS'; + dewidthkey = 'DEFWIDTH'; + dlims1key = 'DELIMSIZE1'; + dlims2key = 'DELIMSIZE2'; + denom1key = 'DENOMLOWER1'; + denom2key = 'DENOMLOWER2'; + fntnamekey = 'FONTNAME'; + hunitskey = 'HUNITS'; + raizen1key = 'NUMRAISE1'; + raizen2key = 'NUMRAISE2'; + raizen3key = 'NUMRAISE3'; + ptsizekey = 'POINTSIZE'; + subdrpkey = 'SUBDROP'; + sub1key = 'SUB1'; + sub2key = 'SUB2'; + supdrpkey = 'SUPDROP'; + sup1key = 'SUP1'; + sup2key = 'SUP2'; + sup3key = 'SUP3'; + vunitskey = 'VUNITS'; + maxfont = 255; + uninitialized = -5000.0; + +@ +@= + codescheme :string(40); + def_ft_stuff :driverrec; + def_width_stuff :driverrec; + fontname :string(40); + fontype :fonttypes; + hunits :real; + params :array[parameter] of real; + paramset :array[fonttypes] of set of parameter; + pointsize :integer; + uniquecode :integer; + vunits :real; + +@ +@p procedure read_the_parameters; +label 0; +var + mn :string(40); + int :integer; + realval :real; + mult :integer; + divs :integer; + isint :boolean; + pp :parameter; + parmerror :boolean; +begin + while infile@@ in ['A'..'Z','a'..'z','*'] do + if (infile@@ = '*') + then begin + readln(infile); + errlin := errlin + 1; + end + else begin + @ + {You can end the parameters with a '\$' line -- check it} + if infile@@ = '$' + then begin + readln(infile); {Skip end params marker} + errlin := errlin + 1; + end; + {now check that all parameters are given} +0: parmerror := false; + for pp := slant to bgopsp5 do + if (params[pp] = uninitialized) and + (pp in paramset[fontype]+paramset[standard]) + then begin + write('Parameter '); + printparam(pp); + writeln(' was not specified'); + parmerror := true; + end; + if parmerror then error(7,fatal); + end; {|read_the_parameters|} + +@ +@= + readmnemonic(mn,[' ']); + if dump then write('Parameter ',mn); + mn := allcaps(mn); + if mn = 'ENDPARAMS' + @ + if (mn <> fntnamekey) and (mn <> codingschemekey) + then readexpr(mult,divs); + if divs = 0 + then realval := 1.0 * mult + else realval := (1.0 * mult)/(1.0 * divs); + int := mult; + if divs = 1 + then isint := true + else isint := false; {only reals have divisor} + if mn = hunitskey + @ + else if mn = vunitskey + @ + else if mn = fntnamekey + @ + else if mn = codingschemekey + @ + else if mn = deffontkey + @ + else if mn = dewidthkey + @ + else if mn = ptsizekey + @ + else begin + @ + readln(infile); + errlin := errlin + 1; + end; {else..begin} + +@ + @= + then begin + readln(infile); + errlin := errlin + 1; + goto 0; {marks end of parameters} + end; + +@ + @= + then begin + hunits := realval; + if dump then writeln(' = ',realval); + end + +@ + @= + then begin + vunits := realval; + if dump then writeln(' = ',realval); + end + +@ + @= + then begin + skipblanks; + readmnemonic(fontname,[' ','.']); + fontname := allcaps(fontname); + if dump then writeln(' = ',fontname); + end + +@ + @= + then begin + skipblanks; + readmnemonic(codescheme,[' ','.']); + codescheme := allcaps(codescheme); + if dump then writeln(' = ',codescheme); + end + +@ + @= + then {set up |def_ft_stuff| record} + with def_ft_stuff do begin + cmd := ord(F); {8600 font command} + if int > maxfont + then error(24,notreallyfatal); + code := int * 10; + uniquecode := int; + if dump then writeln(' = ',int); + end + +@ + @= + then {set up |def_width_stuff| record} + with def_width_stuff do begin + {ratio of set width to point size} + cmd := ord(CHWIDTH); + param := realval; + if dump then writeln(' = ',realval); + end + +@ + @= + then begin + pointsize := int; + if dump then writeln(' = ',int); + end + +@ + @= + if mn = slantkey + then pp := slant + else if mn = spaceekey + then pp := spacee + else if mn = spstrkey + then pp := spstretch + else if mn = spshrkey + then pp := spshrink + else if mn = xhtkey + then pp := xheight + else if mn = quadkey + then pp := quad + else if mn = exspacekey + then pp := extraspace + @ + @ + else error(1,fatal); + params[pp] := realval; {save value of it} + if dump then writeln(' = ',realval); + if pp in paramset[mathex] + then begin + if fontype = standard + then fontype := mathex + else if fontype <> mathex + then error(14,fatal); + end + else if pp in paramset[mathsy] + then begin + if fontype = standard + {change assumption} + then fontype := mathsy + else if fontype <> mathsy + then error(14,fatal); + end; {then..begin} + end; {else..begin TEX} + +@ + @= + else if mn = raizen1key + then pp := raisen1 + else if mn = raizen2key + then pp := raisen2 + else if mn = raizen3key + then pp := raisen3 + else if mn = denom1key + then pp := denom1 + else if mn = denom2key + then pp := denom2 + else if mn = sup1key + then pp := sup1 + else if mn = sup2key + then pp := sup2 + else if mn = sup3key + then pp := sup3 + else if mn = sub1key + then pp := sub1 + else if mn = sub2key + then pp := sub2 + else if mn = supdrpkey + then pp := supdrop + else if mn = subdrpkey + then pp := subdrop + else if mn = dlims1key + then pp := dlims1 + else if mn = dlims2key + then pp := dlims2 + else if mn = axishtkey + then pp := axisheight + +@ + @= + else if mn = dethicknesskey + then pp := defthickness + else if mn = bosp1key + then pp := bgopsp1 + else if mn = bosp2key + then pp := bgopsp2 + else if mn = bosp3key + then pp := bgopsp3 + else if mn = bosp4key + then pp := bgopsp4 + else if mn = bosp5key + then pp := bgopsp5 + +@ finds entry in array list if present and returns its index + as slot. otherwise it adds it at the end of list (specified + by list[-1]) and returns that index as slot. + +@p procedure add_to_list(var list :realarray; + entry :real; + lmax :integer; + var slot :integer); +var + linx :integer; +begin + if entry = 0 then begin + slot := 0; + return; + end; + for linx := 1 to trunc(list[-1]) do + if entry = list[linx] + then begin + slot := linx; + return; + end; + {not found} + if trunc(list[-1]) = lmax then error(5,fatal); + list[-1] := list[-1] + 1.0; + list[trunc(list[-1])] := entry; + slot := trunc(list[-1]); + end; {|add_to_list|} + +@ +@= + max :array[comm] of integer; + min :array[comm] of integer; + +@ Sets up info needed to read driver file info from the input + file, and write it in proper format into the driver output file + +@p procedure init8600commands; +var + cmd :comm; +begin + for cmd := HDR to MAXCMD do begin {initialize 8600 commands} + if cmd in [PS,SS] then begin + min[cmd] := 0; + max[cmd] := 1275; + end + else if cmd in [VMF, VMR, RD] then begin + min[cmd] := 1; + max[cmd] := 1736; + end + else if cmd in [RW, HML, HMR] then begin + min[cmd] := 1; + max[cmd] := 14688; + end + else if cmd in [SL] then begin + min[cmd] := 0; + max[cmd] := 48; + end + else if cmd in [RTWT, RTWB] then begin + min[cmd] := 0; + max[cmd] := 1440; + end + else if cmd in [F] then begin + min[cmd] := 1; + max[cmd] := 255; + end + else begin {catch any others} + min[cmd] := 0; + max[cmd] := 65535; {largest 2 byte integer} + end; + end; {FOR..begin} + end; {init8600commands} + +@ +@= + depth :realarray; + drvdump :boolean; + drvpkt :file of driverrec; + drvoutcount :integer; + dumpval :boolean; + height :realarray; + inrec :string(30); + itcorr :realarray; + kernout :realarray; + numext :integer; + numkerns :integer; + numligs :integer; + numparams :array[fonttypes] of integer; + outstuff :outarray; + str1 :string(30); + str2 :string(30); + terminal :text; + width :realarray; + +@ +@p procedure initialize; +var + pp :parameter; + outinx :integer; +begin + fontname := trim(parms); + termout(terminal); + termout(output); + rewrite(fontpkt,'NAME='||fontname||'.PRTFM.A'); + rewrite(drvpkt,'NAME='||fontname||'.CGINFO.A'); + reset(infile,'NAME='||fontname||'.FONTINFO.*'); + dump := false; + drvdump := false; +{ + while not eof(terminal) do begin + readln(terminal,inrec); + inx := index(inrec,'='); + if inx < 1 + then begin + errstr := inrec; + error(28,notreallyfatal); + end + else begin + str1 := substr(inrec,1,inx-1); + str2 := substr(inrec,inx+1,length(inrec)-inx); + str1 := allcaps(ltrim(trim(str1))); + str2 := allcaps(ltrim(trim(str2))); + if str2 = 'false' + then dumpval := false + else if str2 = 'true' + then dumpval := true; + if ((str2 <> 'false') and (str2 <> 'true')) or + ((str1 <> 'DUMP') and (str1 <> 'DRVDUMP')) + then begin + errstr := inrec; + error(28,notreallyfatal); + end + else if str1 = 'DUMP' + then dump := dumpval + else drvdump := dumpval; + end; + end; +} + hunits := 1.0 / 54.0; + vunits := 1.0 / 8.0; + lineno := 1; + width[-1] := 0; + width[0] := 0.0; {for non-existent chars} + height[-1] := 0; + height[0] := 0.0; {for non-existent chars} + depth[-1] := 0; + depth[0] := 0.0; {for non-existent chars} + itcorr[-1] := 0; + itcorr[0] := 0.0; {for non-existent chars} + kernout[-1] := 0.0; + kernout[0] := 0.0; + {Set all tag values to 0 = vanilla} + for outinx := 0 to 127 do outstuff[outinx].fourbytes.byte2 := 0; + numkerns := -1; + numligs := -1; + numext := -1; + fontname := ' '; + codescheme := 'PARC TEXT'; + fontype := standard; + paramset[standard] := [slant..quad,extraspace]; + paramset[mathsy] := [raisen1..axisheight]; + paramset[mathex] := [defthickness..bgopsp5]; + pointsize := 1; + numparams[standard] := 7; + numparams[mathex] := 13; + numparams[mathsy] := 22; + for pp := slant to extraspace do params[pp] := uninitialized; + drvoutcount := 0; {no records to driver file yet} + init8600commands; + with def_ft_stuff do begin + cmd := ord(F); + code := 10; {font 1, fontlet 0 = def} + end; + with def_width_stuff do begin + cmd := ord(CHWIDTH); + param := 1.0; {normal width type is def} + end; + end;{initialize} + +@ +@p procedure readentry(var list :realarray; + lmax :integer; + var slot :integer; + units :real); +var + entry :real; + multiplier :integer; + divisor :integer; {save value in expression} +begin + readexpr(multiplier,divisor); + entry := (1.0 * multiplier) / (1.0 * divisor) * units; + if dump then writeln('entry read is ',multiplier:4,'/', + divisor:4,' * ',units:4:2, '=',entry); + add_to_list(list,entry,lmax,slot); + end; {readentry} + +@ +@= + lig :array[0..255] of ligrec; + +@ The keyword LIGATURE has just been scanned in the input for one of +characters 0 to 127. Now we expect to find blank separators followed +by the names of the two characters the ligature replaces. These will +be separated by a '+' sign. Since the characters in question may +not have been specified yet, the names will be saved for now, and +looked up after all 128 character entries have been read. + +@ +@p procedure read_ligature_stuff; +begin + skipblanks; + numligs := numligs+1; + with lig[numligs] do begin + sourceline := lineno; {save line for later error messages} + readmnemonic(firstname,[' ','+']); + if dump then writeln('first char of ligature is ',firstname); + if infile@@ <> '+' + then error(9,notreallyfatal) + else begin + get(infile); {skip plus sign} + if infile@@ = ' ' then error(10,overlookable); + skipblanks; {overlook} + readmnemonic(scndname,[' ']); {read second name} + if dump then writeln('second character of ligature', + ' is ',scndname); + end; {else..begin} + ligcode := currchar; + end; {with..begin} + end; {|read_ligature_stuff|} + +@ + @=@/ + charno :charindex; + +@ look up this name in the name array and tell where and if it was + +@p procedure lookup(lookee :string(40); + var charno :charindex; {where if found} + var found :boolean); {was it found} +var + inx :integer; +begin + found := false; + inx := 0; + while not found and (inx<128) do + if name[inx] = lookee + then found := true {found} + else inx := inx + 1; {check next} + if found + then charno := inx + else charno := 127; {not found, avoid out of range err} + if not found + then begin + errstr := lookee; {string for message} + error(12,notreallyfatal); + end; {then..begin} + end; {lookup} + +@ Set Tag value in lower 2 bits of byte 2 of outstuff record + +@p procedure set_tag_val(chinx :charindex; + tagval :integer); +begin + with outstuff[chinx].fourbytes do begin + if (byte2 mod 4) <> 0 + then writeln('Tag for char ',chinx:1, + ' already set to ',byte2 mod 4); + if tagval > 3 then error(25,fatal); + byte2 := (byte2 div 4 * 4) + tagval; + end; {with..begin} + end; {|set_tag_val|} + +@ Convert a real to a "FIX" which is a 32-bit number stored in the +leftmost 32 bits of a word. The first 12 bits are the integer part, and +the last 20 are the fraction. The left most bit is the sign + +@p function scaleout(r :real) :integer; +var + stri :string(8); + int :integer; +begin + int := round(r*'100000'x); + if dump then begin + stri := hex(int); + if length(stri) < 8 + then stri := substr('00000000',1,8-length(stri)) || stri; + writeln('FIX of ',r,' is ',int,', hex value="',stri,'"'); + end; + scaleout := int; + end; {scaleout} + +@ +@= + found :boolean; + kern :array[0..maxkerns] of kernrec; + mnem :string(40); + +@ The keyword KERN has been read: process the rest of the line + +@p procedure read_kern_stuff; +begin + numkerns := numkerns + 1; + skipblanks; + with kern[numkerns] do begin + readmnemonic(mnem,[' ','+']); + lookup(mnem,charno,found); + if found + then frstchar := charno + else begin + frstchar := 127; + error(12,notreallyfatal); + end; {else..begin} + if infile@@ = ' ' + then begin + error(9,notreallyfatal); + scndchar := 127; {put any old value there} + end + else begin + get(infile); {skip plus sign} + if infile@@ = ' ' + then error(10,overlookable); + skipblanks;{overlook it!} + readmnemonic(mnem,[' ','-']); + lookup(mnem,charno,found); + if found + then scndchar := charno + else scndchar := 127; + end; {else..begin} + readentry(kernout,maxkerns,kernslot,hunits); + end; {with} + readln(infile); + errlin := errlin + 1; + end; {|read_kern_stuff|} + +@ +@= + linktag = 2; + +@ +@p procedure read_link_stuff; +var + mn1 :string(40); + mn2 :string(40); + char1 :charindex; + char2 :charindex; + found :boolean; +begin + skipblanks; + readmnemonic(mn1,[' ']); + lookup(mn1,char1,found); + skipblanks; + readmnemonic(mn2,[' ']); + lookup(mn2,char2,found); + set_tag_val(char1,linktag); {set tag type for special info} + outstuff[char1].fourbytes.byte3 := char2; {next bigger char} + readln(infile); + errlin := errlin + 1; + end; + +@ +@= + maxitcorr = 63; + +@ +@p procedure read_mathop_stuff; +var + mn :string(40); + charno :charindex; + realval :real; + found :boolean; + slot :integer; {index into itcorr array for kerns} + tag :integer; {saves "tag" value from outstuff array} +begin + skipblanks; + readmnemonic(mn,[' ']); + lookup(mn,charno,found); + readreal(realval); + add_to_list(itcorr,realval,maxitcorr,slot); {add value to list} + with outstuff[charno].fourbytes do begin + tag := byte2 mod 4; {tag is lower 2 bits} + byte2 := slot * 4 + tag; {and ic index is upper 6 bits} + end;{with..begin} + readln(infile); + errlin := errlin + 1; + end; {|read_mathop_stuff|} + +@ +@= + botkey = 'BOT'; + extkey = 'EXT'; + midkey = 'MID'; + topkey = 'TOP'; + exttag = 3; + +@ +@= + ext :array[0..127] of extrec; + +@ Name and keyword BUILD already read. Now expect keyword=value, +keyword=value, ... Keywords are TOP, MID, BOT, EXT, and values are +char names. Add a miscellaneous entry and point to it from this +character record. initialize the four names in the ext record +and set the four character values to zero. Later we will look up the +names to determine the actual character numbers of the components. + +@p procedure read_build_stuff; +var + key :string(40); + charname :string(40); +begin + numext := numext + 1; + with ext[numext] do begin + sourceline := lineno; {save line for later error messages} + top := 0; + mid := 0; + bot := 0; + ext := 0; + topname := ''; + midname := ''; + botname := ''; + extname := ''; + end; + set_tag_val(currchar,exttag); + outstuff[currchar].fourbytes.byte3 := numext; {ptr into EXT array} + skipblanks; + repeat + if infile@@ = ',' then get(infile); {skip separator} + readmnemonic(key,['=']); + key := allcaps(key); + get(infile); {skip equal sign delimiter} + readmnemonic(charname,[',',' ']); + if key = topkey then ext[numext].topname := charname + else if key = midkey then ext[numext].midname := charname + else if key = botkey then ext[numext].botname := charname + else if key = extkey then ext[numext].extname := charname + else error(13,fatal); + until infile@@ <> ','; + end; {|read_build_stuff|} + +@ +@= + drvrec :driverrec; + +@ Print out the record about to be written to the driver file. This can + be turned on or off by setting constant 'drvdump' to true or false. + +@p procedure dump_driver_rec(cmdord :integer); +begin + with drvrec do begin + if drvoutcount = 0 + then writeln('*** Driver File Output ***'); + write(drvoutcount:3,': '); + drvoutcount := drvoutcount + 1; + write('Command=',com_table[cmdord],', Parameter='); + if (cmdord = ord(CHWIDTH)) or + ((cmdord >= ord(VMF)) and (cmdord <= ord(IR))) or + (cmdord = ord(RTWT)) or + (cmdord = ord(RTWB)) or + (cmdord = ord(HMR)) or + (cmdord = ord(HML)) + then writeln(param) + else writeln(code); + end; {with..begin} + end; {|dump_driver_rec|} + +@ +@= + stk :array [0..20] of driverrec; + +@ Push a record with an integer character code + +@p procedure pushcode(var stktop :integer); +var + icode :integer; +begin + readinteger(icode); + if icode > 127 then error(18,notreallyfatal); + stktop := stktop + 1; + with stk[stktop] do begin + cmd := ord(TTS); + code := icode; + end; {with..begin} + end; {pushcode} + +@ Reads a command or letter from the input file -- i.e., reads the + 1 to 4 char mnemonic and looks it up in array cmdname to find + the enumeration value of type "command" corresponding to it. + A letter is distinguished from a command because a letter has no + parameter whereas all one-character commands do. + +@p procedure readcmd(var cmd :comm); +label 99; +var + name :string(9); + ch :string(1); + cmdind :comm; +begin + name := ''; + while infile@@ in ['a'..'z','A'..'Z'] do begin + read(infile,ch); + name := name || ch; + end; + name := allcaps(name); + errlstr := name; {save name for error message (if needed)} + {cmd will be the command or MAXCMD if not found} + for cmdind := HDR to MAXCMD do + if name = com_table[ord(cmdind)] then goto 99; +99: cmd := cmdind; + if cmdind = MAXCMD then error(19,notreallyfatal); {bad command} + end; {readcmd} + +@ Read the command "cmnd" -- see if it has any parameters, and +if so read them. Push a record on the local stack for this command + +@p procedure readparams(var stktop :integer); +var + cmnd :comm; +begin + readcmd(cmnd); + stktop := stktop + 1; {push} + with stk[stktop] do begin + cmd := ord(cmnd); + if cmnd in [AU] {this one has no parameters} + then code := 0 + else begin {read integer parm, stuff it into record} + if cmnd in [IR,VMF,VMR,RW,RD,RTWT,RTWB,HMR,HML] + then begin + readreal(param); + if (round(param) < min[cmnd]) or + (round(param) > max[cmnd]) then begin + errlstr := com_table[ord(cmnd)]; + errnum := round(param); + errmax := max[cmnd]; + errmin := min[cmnd]; + error(17,notreallyfatal); + param := min[cmnd]; + end; {then..begin} + if cmnd in [VMF,VMR,RD] + then param := param * vunits + else param := param * hunits; + end {then..end} + else begin + readinteger(code); + if (code < min[cmnd]) or + (code > max[cmnd]) then begin + errlstr := com_table[ord(cmnd)]; + errnum := code; + errmax := max[cmnd]; + errmin := min[cmnd]; + error(17,notreallyfatal); + code := min[cmnd]; + end; {then..begin} + end; {else..begin} + end; {else..begin} + end; {with..begin} + end; {readparams} + +@* Read 8600 Codes. +The 8600 code info corresponding to this character will consist of 1 +or more entries separated by commas and containing no blanks. An entry +can be a decimal character code or an 8600 command in which case it +begins with a letter. The command name will be up to 4 letters long and +may be followed by a parameter. Some commands take integer parameters +and others take reals which will be given in the same format as widths, +etc: i.e., as products and quotients of integer values. +Following are listed the possible codes. +\settabs\+\indent&RTWB = &Reverse Type Window Bottom\quad&value=0--1440 +in 10ths of a point\cr +\+&PS\hfill =&Point Size\hfill&value=0--1275 in 10ths of a point.\cr +\+&SS\hfill =&Set Size\hfill&value=0--1275 in 10ths of a point.\cr +\+&VMF\hfill =&Vertical Move Forward\hfill&value=1--1736 in 8ths of a +point\cr +\+&VMR\hfill =&Vertical Move Reverse\hfill&value=1--1736 in 8ths of a +point\cr +\+&RD\hfill =&Rule Depth\hfill&value=1--1736 in 8ths of a point\cr +\+&RW\hfill =&Rule Width\hfill&value=1--1736 in 8ths of a point\cr +\+&HML\hfill =&Horizontal Move Left\hfill&value=1--14688 in 18ths of a +point\cr +\+&HMR\hfill =&Horizontal Move Right\hfill&value=1--14688 in 18ths of a +point\cr +\+&SL\hfill =&Slant\hfill&value=0 or 48\cr +\+&IR\hfill =&Insert Rule\cr +\+&AU\hfill =&Auxiliary Font\cr +\+&F\hfill =&Font\hfill&value=1--255\cr +\+&RTWT\hfill =&Reverse Type Window Top\hfill&value=0--1440 in 16ths of +a point\cr +\+&RTWB =&Reverse Type Window Bottom&value=0--1440 in 16ths of a point\cr + +@p procedure read8600codes; +var + more_to_come :boolean; + stktop :integer; {gives index of last used (initially 0)} + inx :integer; +begin + skipblanks; + stktop := -1; {no code yet} + if eoln(infile) + then error(20,notreallyfatal) {no code given} + else begin + {Repeat until next is no longer a comma, in which case it + had better be a blank!} + repeat + if infile@@ in ['0'..'9'] + then pushcode(stktop) {decimal character code} + else if infile@@ in ['A'..'Z','a'..'z'] + {read command and optional parms} + then readparams(stktop) + else error(21,notreallyfatal); + if infile@@ = ',' + then begin + more_to_come := true; + get(infile); + end {then..begin} + else more_to_come := false; + until not more_to_come; + end; {else..begin} + {put header record out} + drvrec.cmd := ord(HDR); + drvrec.code := stktop; {how many codes for this character} + if drvdump then dump_driver_rec(drvrec.cmd); + drvpkt@@ := drvrec; + put(drvpkt); + {write out character width record} + drvrec.cmd := ord(CHWIDTH); + drvrec.param := width[outstuff[currchar].fourbytes.byte0]; + {nw for the current character indexes its width in points} + if drvdump then dump_driver_rec(drvrec.cmd); + drvpkt@@ := drvrec; + put(drvpkt); + {Put out rec for each code or command} + for inx := 0 to stktop do begin + drvrec := stk[inx]; + if drvdump then dump_driver_rec(drvrec.cmd); + drvpkt@@ := drvrec; + put(drvpkt); + end; {FOR..begin} + end; {read8600codes} + +@* MAIN PROGRAM. + +@= + buildkey = 'BUILD'; + kernkey = 'KERN'; + ligaturekey = 'LIGATURE'; + linkkey = 'LINK'; + mathopkey = 'MATHOP'; + maxdp = 15; + maxht = 15; + maxwd = 255; + ligkerntag = 1; + +@ +@= + chnum :0..127; + chrt :char; + first :boolean; + heightslot :integer; + iny :integer; + itc :real; + ligcnt :integer; + ligout :array[0..255] of memoryword; + pp :parameter; + slot :integer; + tag :integer; + +@ +@p begin + {--------------- initialize -----------------------} + initialize; + {---------------- read input -------------------------} + read_the_parameters; + {Write first three entries to driver file} + drvrec.cmd := ord(HDR); + drvrec.code := ord(MAXCMD); + if drvdump then dump_driver_rec(drvrec.cmd); + drvpkt@@ := drvrec; + put(drvpkt); + drvrec := def_ft_stuff; + if drvdump then dump_driver_rec(drvrec.cmd); + drvpkt@@ := drvrec; + put(drvpkt); + drvrec := def_width_stuff; + if drvdump then dump_driver_rec(drvrec.cmd); + drvpkt@@ := drvrec; + put(drvpkt); + drvrec.cmd := ord(SL); + if params[slant] = uninitialized + then drvrec.code := 0 + else drvrec.code := trunc(params[slant]); + if drvdump then dump_driver_rec(drvrec.cmd); + drvpkt@@ := drvrec; + put(drvpkt); + {Now read entries...} + for currchar := 0 to num_entries-1 do begin + if eof(infile) then error(7,fatal); + with outstuff[currchar].fourbytes do + byte3 := 0; {set remainder to 0} + readmnemonic(mnem,[' ']); {if any} + if dump then writeln('** Processing font info for "',mnem,'"'); + name[currchar] := mnem; {save for later use!} + {one non-blank character -- check sequencing} + readstr(mnem,chrt); + if (length(mnem) = 1) and (ordx[chrt] <> currchar) + then error(6,notreallyfatal); + skipblanks; {look at next non-blank} + if infile@@ in ['A'..'Z','a'..'z'] + then begin + readmnemonic(mnem,[' ']); + mnem := allcaps(mnem); + if mnem = ligaturekey + then read_ligature_stuff + else if mnem = buildkey + then read_build_stuff + else error(16,fatal); + end; {then..begin} + readentry(width,maxwd,slot,hunits); {read width} + outstuff[currchar].fourbytes.byte0 := slot; {save wid index} + readentry(height,maxht,slot,vunits); {read height} + heightslot := slot; {remember ht slot until depth read} + itc := height[slot] * params[slant]; {it corr = ht * slant} + add_to_list(itcorr,itc,maxitcorr,slot); + with outstuff[currchar].fourbytes do begin + tag := byte2 mod 4; {save tag value} + byte2 := slot * 4 + tag; {put itcorr in 6 bits, tag in 2} + end; + readentry(depth,maxdp,slot,vunits); {read depth} + outstuff[currchar].fourbytes.byte1 := heightslot * 16 + slot; + {now read 8600 information...} + read8600codes; + if not eoln(infile) + then begin + readln(infile); + errlin := errlin + 1; + end; + end; {FOR..begin} + {character entries have all been read...remaining entries + must begin with a keyword: KERN, Link, MATHOP These supply + additional information about certain characters} + while not eof(infile) do begin + readmnemonic(mnem,[' ']); + mnem := allcaps(mnem); + if mnem = kernkey + then read_kern_stuff + else if mnem = linkkey + then read_link_stuff + else if mnem = mathopkey + then read_mathop_stuff + else error(11,fatal); + end; {while..begin} +@@/ +@@/ +@@/ +end. + +@ +@= + for inx:= 0 to numligs do + with lig[inx] do begin + errlin := sourceline; + lookup(firstname,frstchar,found); + if not found + then begin + errlin := sourceline; + error(12,notreallyfatal); + frstchar := 127; + end; {then..begin} + lookup(scndname,scndchar,found); + if not found + then begin + errlin := sourceline; + error(12,notreallyfatal); + scndchar := 127; + end; {then..begin} + end; {with..begin} + for inx := 0 to numext do + with ext[inx] do begin + errlin := sourceline; + if topname <> '' then lookup(topname,top,found); + if midname <> '' then lookup(midname,mid,found); + if botname <> '' then lookup(botname,bot,found); + if extname <> '' then lookup(extname,ext,found); + end; {with..begin} + +@ +@= + ligcnt := 0; + for chnum := 0 to 127 do begin + first := true; + for inx := 0 to numligs do + if lig[inx].frstchar = chnum + then begin + if first then begin + {ptr to first ligature} + outstuff[chnum].fourbytes.byte3 := ligcnt; + set_tag_val(chnum,ligkerntag); + first := false; + end; {then..begin} + with ligout[ligcnt].fourbytes, lig[inx] do + begin {transfer info into output records} + {byte0=1 if last ligature + byte1=next chararacter of ligature + byte2=0 for a ligature + byte3=code of ligature character} + byte0 := '00000000'B; + byte1 := scndchar; + byte2 := '00000000'B; + byte3 := ligcode; + end; {with..begin} + ligcnt := ligcnt+1; {ready for next one} + end; {then..begin} + {Now do same with kerns} + for inx := 0 to numkerns do + if kern[inx].frstchar = chnum + then begin + if first then begin + {link to ligature record} + outstuff[chnum].fourbytes.byte3 := ligcnt; + set_tag_val(chnum,ligkerntag); + first := false; {not anymore} + end; {then..begin} + with ligout[ligcnt].fourbytes, kern[inx] do + begin {transfer info into output records} + {byte0=1 if last kern + byte1=next chararacter of kern + byte2=1 for a kern + byte3=index of kern character} + byte0 := '00000000'B; + byte1 := scndchar; + byte2 := '10000000'B; + byte3 := kernslot; + end; {with..begin} + ligcnt := ligcnt + 1; + end; {FOR,then..begin} + if not first + then ligout[ligcnt-1].fourbytes.byte0 := '10000000'B; + {there was at least one record, so flag the last of 'em} + end; {FOR..begin} {that's all the characters} + +@ Now write out in TEX format. TUGboat vol 2, no 1 article + TEX FONT METRIC fileS says the first 12 half-words of the + file are lengths, and obey the following equation: + lenfile=6 + lh + (ec-be+1) + nw + nh + nd + ni + nk + nl + ne + np + lh=length of header=18 words ec=end character=127, + bc=beginning char=0, hence: + lenfile = 6 + 18 + 128 + nw + nh + nd + ni + nk + nl + ne + np + Calculate its value: + +@= + if not eof(infile) then error(7,fatal); + lenfile := 6 + 18 + 128 + trunc(width[-1]) + trunc(height[-1])@/ + + trunc(depth[-1]) + trunc(itcorr[-1])@/ + + numkerns + numligs + numext + trunc(kernout[-1])@/ + + numparams[fontype] {num parameters}@/ + + 8; {off by one on nw,nh,nd,ni,nk,nl,ne and kernout}@/ + if dump then writeln('Writing info to TEX-readable file'); + outcount := 0; {start counting} + writeln('Number of records is ',lenfile:4); + if dump then write('* lf, lh:'); + outrec.twohalves.lhword := lenfile; {len of file} + outrec.fourbytes.rhword := 18; {len of header} + writeout(outrec,3); + if dump then write('* bc, ec:'); + outrec.twohalves.lhword := 0; {first char code} + outrec.twohalves.rhword := 127; {last char code} + writeout(outrec,3); + if dump then write('* nw, nh:'); + outrec.twohalves.lhword := trunc(width[-1]+1); + outrec.twohalves.rhword := trunc(height[-1]+1); + writeout(outrec,3); + if dump then write('* nd, ni:'); + outrec.twohalves.lhword := trunc(depth[-1]+1); + outrec.twohalves.rhword := trunc(itcorr[-1]+1); + writeout(outrec,3); + if dump then write('* nl, nk:'); + outrec.twohalves.lhword := numligs + numkerns + 2; + outrec.twohalves.rhword := trunc(kernout[-1]+1); + writeout(outrec,3); + if dump then write('* ne, np:'); + outrec.twohalves.lhword := numext+1; + outrec.twohalves.rhword := numparams[fontype]; + writeout(outrec,3); + + if dump then writeln('*** Header info'); + outrec.int := uniquecode; + writeout(outrec,6); + outrec.int := scaleout(float(pointsize)); {def = 1 point} + writeout(outrec,2); + writeln('*** Coding Scheme = ',codescheme); + outrec.fourbytes.byte0 := length(codescheme); + for inx := 2 to 40 do begin + iny := inx mod 4; + if iny = 0 then iny := 4; + iny := iny - 1; + if inx-1 <= length(codescheme) + then readstr(substr(codescheme,inx-1,1),chrt) + else chrt := chrx['00'X]; + with outrec.fourbytes do case iny of + 0 :byte0 := ordx[chrt]; + 1 :byte1 := ordx[chrt]; + 2 :byte2 := ordx[chrt]; + 3 :begin + byte3 := ordx[chrt]; + writeout(outrec,4); + end; + otherwise error(99,fatal); + end; + end; + if length(fontname) > 8 + then begin + error(27,notreallyfatal); + fontname := substr(fontname,1,8); + end; + writeln('*** Font Name = ',fontname); + outrec.fourbytes.byte0 := length(fontname); + for inx := 2 to 20 do begin + iny := inx mod 4; + if iny = 0 then iny := 4; + iny := iny - 1; + if inx-1 <= length(fontname) + then readstr(substr(fontname,inx-1,1),chrt) + else chrt := chrx['00'X]; + with outrec.fourbytes do case iny of + 0 :byte0 := ordx[chrt]; + 1 :byte1 := ordx[chrt]; + 2 :byte2 := ordx[chrt]; + 3 :begin + byte3 := ordx[chrt]; + writeout(outrec,4); + end; + otherwise error(99,fatal); + end; + end; + outrec.int := 0; + writeout(outrec,6); {no Parc face byte now} + @ + @ + @ + @ + @ + @ + @ + @ + writeln('End of font file preprocessor'); + +@ + @= + for inx := 0 to num_entries-1 do writeout(outstuff[inx],5); + +@ + @= + if dump then writeln('*** Widths'); + for inx := 0 to trunc(width[-1]) do begin + outrec.int := scaleout(width[inx]); + writeout(outrec,2); + end; + +@ + @= + if dump then writeln('*** Heights'); + for inx := 0 to trunc(height[-1]) do begin + outrec.int := scaleout(height[inx]); + writeout(outrec,2); + end; + +@ + @= + if dump then writeln('*** Depths'); + for inx := 0 to trunc(depth[-1]) do begin + outrec.int := scaleout(depth[inx]); + writeout(outrec,2); + end; + +@ + @= + if dump then writeln('*** itcorrs'); + for inx := 0 to trunc(itcorr[-1]) do begin + outrec.int := scaleout(itcorr[inx]); + writeout(outrec,2); + end; + +@ + @= + if dump then writeln('*** Lig/Kern programs'); + for inx := 0 to numligs + numkerns + 1 do + writeout(ligout[inx],4); + {write out kern values as fixes} + if dump then writeln('*** Kern values'); + for inx := 0 to trunc(kernout[-1]) do begin + outrec.int := scaleout(kernout[inx]); + writeout(outrec,2); + end; + +@ + @= + if dump then writeln('*** Extension chars'); + for inx := 0 to numext do + with ext[inx], outrec.fourbytes do begin + byte0 := top; + byte1 := mid; + byte2 := bot; + byte3 := ext; + writeout(outrec,4); + end; {with..begin} + +@ + @= + if dump then writeln('*** Params'); + for pp := slant to bgopsp5 do + if pp in paramset[standard]+paramset[fontype] + then begin + if dump then begin + printparam(pp); + write(': '); + end; + outrec.int := scaleout(params[pp]); + writeout(outrec,2); + end; {then..begin} + +@* INDEX. diff --git a/macros/text1/compugraphics_8600/reblock.pascal b/macros/text1/compugraphics_8600/reblock.pascal new file mode 100644 index 0000000000..28c7dd6e8f --- /dev/null +++ b/macros/text1/compugraphics_8600/reblock.pascal @@ -0,0 +1,34 @@ + PROGRAM reblock(input,output); + VAR + outstring :STRING(1024); + instring :STRING(8); + fontname :STRING(8); + filetype :STRING(8); + parmstring :STRING(20); + i, fill :integer; + BEGIN + parmstring := TRIM(parms); + i := index(parmstring,' '); + fontname := SUBSTR(parmstring,1,i-1); + filetype := SUBSTR(parmstring,i+1); + RESET(input,'NAME='||fontname||'.PR'||filetype||'.A'); + REWRITE(output,'NAME='||fontname||'.'||filetype|| + '.A,LRECL=1024,RECFM=F'); + outstring := ''; + READLN(input,instring); + WHILE NOT EOF(input) DO BEGIN; + outstring := outstring || instring; + IF LENGTH(outstring) >= 1024 THEN BEGIN + WRITELN(output,outstring); + outstring := ''; + END; + READLN(input,instring); + END; + IF LENGTH(outstring) > 0 THEN BEGIN + IF LENGTH(outstring) < 1024 THEN + REPEAT + outstring := outstring || '00'xc; + UNTIL LENGTH(outstring) >= 1024; + WRITELN(output,outstring); + END; + END. diff --git a/macros/text1/compugraphics_8600/tex8600.cmschan b/macros/text1/compugraphics_8600/tex8600.cmschan new file mode 100644 index 0000000000..cd3acaba08 --- /dev/null +++ b/macros/text1/compugraphics_8600/tex8600.cmschan @@ -0,0 +1 @@ +% No change file needed generally diff --git a/macros/text1/compugraphics_8600/tex8600.outchan b/macros/text1/compugraphics_8600/tex8600.outchan new file mode 100644 index 0000000000..b2182cc794 --- /dev/null +++ b/macros/text1/compugraphics_8600/tex8600.outchan @@ -0,0 +1,580 @@ +@x +%test version +@y +%out version 1 +@z + +@x +\font\twelvept=cmbx12 +\font\tentex=cmr10 +@y +\font\twelvept=cmbx12 +@z + +@x +@p program tex8600(sysprint,addrline,setfile,cgfonts,infofile); +@y +@p program tex8600(sysprint,addrline,setfile,cgfonts); +@z + +@x +@@/ +static@/ +@!com_table :packed array[0..18] of string(7);@/ +value@/ + com_table[0] := 'HDR'; {Header Record}@/ + com_table[1] := 'CHWIDTH';{Character Width}@/ + com_table[2] := 'RT'; {Reverse Type}@/ + com_table[3] := 'PS'; {Point Size}@/ + com_table[4] := 'SS'; {Set Size}@/ + com_table[5] := 'VMF'; {Vertical Move Forward}@/ + com_table[6] := 'VMR'; {Vertical Move Reverse}@/ + com_table[7] := 'RW'; {Rule Width}@/ + com_table[8] := 'RD'; {Rule Depth}@/ + com_table[9] := 'IR'; {Insert Rule}@/ + com_table[10] := 'SL'; {Slant Mode}@/ + com_table[11] := 'RTWT'; {Reverse Type Window Top}@/ + com_table[12] := 'RTWB'; {Reverse Type Window Bottom}@/ + com_table[13] := 'AU'; {Auxiliary Character Set}@/ + com_table[14] := 'F'; {Change Fonts}@/ + com_table[15] := 'HMR'; {Horizontal Move Right}@/ + com_table[16] := 'HML'; {Horizontal Move Left}@/ + com_table[17] := 'TTS'; {8600 character, in decimal}@/ + com_table[18] := 'MAXCMD';@/ +%include pasclib(asciicvt)@/ +@y +@@/ +static@/ +@!com_table :packed array[0..18] of string(7);@/ +@!ordx : packed array['00'xc..'FF'xc] of '00'x..'7f'x;@/ +@!chrx : packed array['00'x..'7F'x] of '00'xc..'FF'xc;@/ +value@/ + com_table[0] := 'HDR'; {Header Record}@/ + com_table[1] := 'CHWIDTH';{Character Width}@/ + com_table[2] := 'RT'; {Reverse Type}@/ + com_table[3] := 'PS'; {Point Size}@/ + com_table[4] := 'SS'; {Set Size}@/ + com_table[5] := 'VMF'; {Vertical Move Forward}@/ + com_table[6] := 'VMR'; {Vertical Move Reverse}@/ + com_table[7] := 'RW'; {Rule Width}@/ + com_table[8] := 'RD'; {Rule Depth}@/ + com_table[9] := 'IR'; {Insert Rule}@/ + com_table[10] := 'SL'; {Slant Mode}@/ + com_table[11] := 'RTWT'; {Reverse Type Window Top}@/ + com_table[12] := 'RTWB'; {Reverse Type Window Bottom}@/ + com_table[13] := 'AU'; {Auxiliary Character Set}@/ + com_table[14] := 'F'; {Change Fonts}@/ + com_table[15] := 'HMR'; {Horizontal Move Right}@/ + com_table[16] := 'HML'; {Horizontal Move Left}@/ + com_table[17] := 'TTS'; {8600 character, in decimal}@/ + com_table[18] := 'MAXCMD';@/ +{ EBCDIC to ASCII INTEGER and ASCII INTEGER to EBCDIC conversion } +{ EBCDIC char to ASCII integer } { ASCII INTEGER to EBCDIC char } +ordx['00'xc]:='00'x; { NUL NUL } chrx['00'x]:='00'xc; { NUL NUL } +ordx['01'xc]:='01'x; { SOH SOH } chrx['01'x]:='01'xc; { SOH SOH } +ordx['02'xc]:='02'x; { STX STX } chrx['02'x]:='02'xc; { STX STX } +ordx['03'xc]:='03'x; { ETX ETX } chrx['03'x]:='03'xc; { ETX ETX } +ordx['04'xc]:='00'x; { ... NUL } chrx['04'x]:='37'xc; { EOT EOT } +ordx['05'xc]:='09'x; { HT HT } chrx['05'x]:='2D'xc; { ENQ ENQ } +ordx['06'xc]:='00'x; { ... NUL } chrx['06'x]:='2E'xc; { ACK ACK } +ordx['07'xc]:='7F'x; { DEL DEL } chrx['07'x]:='2F'xc; { BEL BEL } +ordx['08'xc]:='00'x; { ... NUL } chrx['08'x]:='16'xc; { BS BS } +ordx['09'xc]:='00'x; { ... NUL } chrx['09'x]:='05'xc; { HT HT } +ordx['0A'xc]:='00'x; { ... NUL } chrx['0A'x]:='25'xc; { LF LF } +ordx['0B'xc]:='0B'x; { VT VT } chrx['0B'x]:='0B'xc; { VT VT } +ordx['0C'xc]:='0C'x; { FF FF } chrx['0C'x]:='0C'xc; { FF FF } +ordx['0D'xc]:='0D'x; { CR CR } chrx['0D'x]:='0D'xc; { CR CR } +ordx['0E'xc]:='0E'x; { SO SO } chrx['0E'x]:='0E'xc; { SO SO } +ordx['0F'xc]:='0F'x; { SI SI } chrx['0F'x]:='0F'xc; { SI SI } +ordx['10'xc]:='10'x; { DLE DLE } chrx['10'x]:='10'xc; { DLE DLE } +ordx['11'xc]:='11'x; { DC1 DC1 } chrx['11'x]:='11'xc; { DC1 DC1 } +ordx['12'xc]:='12'x; { DC2 DC2 } chrx['12'x]:='12'xc; { DC2 DC2 } +ordx['13'xc]:='13'x; { TM DC3 } chrx['13'x]:='13'xc; { DC3 TM } +ordx['14'xc]:='00'x; { ... NUL } chrx['14'x]:='3C'xc; { DC4 DC4 } +ordx['15'xc]:='00'x; { ... NUL } chrx['15'x]:='3D'xc; { NAK NAK } +ordx['16'xc]:='08'x; { BS BS } chrx['16'x]:='32'xc; { SYN SYN } +ordx['17'xc]:='00'x; { ... NUL } chrx['17'x]:='26'xc; { ETB ETB } +ordx['18'xc]:='18'x; { CAN CAN } chrx['18'x]:='18'xc; { CAN CAN } +ordx['19'xc]:='19'x; { EM EM } chrx['19'x]:='19'xc; { EM EM } +ordx['1A'xc]:='00'x; { ... NUL } chrx['1A'x]:='3F'xc; { SUB SUB } +ordx['1B'xc]:='00'x; { ... NUL } chrx['1B'x]:='27'xc; { ESC ESC } +ordx['1C'xc]:='1C'x; { IFS FS } chrx['1C'x]:='1C'xc; { FS IFS } +ordx['1D'xc]:='1D'x; { IGS GS } chrx['1D'x]:='1D'xc; { GS IGS } +ordx['1E'xc]:='1E'x; { IRS RS } chrx['1E'x]:='1E'xc; { RS IRS } +ordx['1F'xc]:='1F'x; { IUS US } chrx['1F'x]:='1F'xc; { US IUS } +ordx['20'xc]:='00'x; { ... NUL } chrx['20'x]:='40'xc; { SP SP } +ordx['21'xc]:='00'x; { ... NUL } chrx['21'x]:='5A'xc; { ! ! } +ordx['22'xc]:='00'x; { ... NUL } chrx['22'x]:='7F'xc; { " " } +ordx['23'xc]:='00'x; { ... NUL } chrx['23'x]:='7B'xc; { # # } +ordx['24'xc]:='00'x; { ... NUL } chrx['24'x]:='5B'xc; { $ $ } +ordx['25'xc]:='0A'x; { LF LF } chrx['25'x]:='6C'xc; { % % } +ordx['26'xc]:='17'x; { ETB ETB } chrx['26'x]:='50'xc; { & & } +ordx['27'xc]:='1B'x; { ESC ESC } chrx['27'x]:='7D'xc; { ' ' } +ordx['28'xc]:='00'x; { ... NUL } chrx['28'x]:='4D'xc; { ( ( } +ordx['29'xc]:='00'x; { ... NUL } chrx['29'x]:='5D'xc; { ) ) } +ordx['2A'xc]:='00'x; { ... NUL } chrx['2A'x]:='5C'xc; { * * } +ordx['2B'xc]:='00'x; { ... NUL } chrx['2B'x]:='4E'xc; { + + } +ordx['2C'xc]:='00'x; { ... NUL } chrx['2C'x]:='6B'xc; { , , } +ordx['2D'xc]:='05'x; { ENQ ENQ } chrx['2D'x]:='60'xc; { - - } +ordx['2E'xc]:='06'x; { ACK ACK } chrx['2E'x]:='4B'xc; { . . } +ordx['2F'xc]:='07'x; { BEL BEL } chrx['2F'x]:='61'xc; { / / } +ordx['30'xc]:='00'x; { ... NUL } chrx['30'x]:='F0'xc; { 0 0 } +ordx['31'xc]:='00'x; { ... NUL } chrx['31'x]:='F1'xc; { 1 1 } +ordx['32'xc]:='16'x; { SYN SYN } chrx['32'x]:='F2'xc; { 2 2 } +ordx['33'xc]:='00'x; { ... NUL } chrx['33'x]:='F3'xc; { 3 3 } +ordx['34'xc]:='00'x; { ... NUL } chrx['34'x]:='F4'xc; { 4 4 } +ordx['35'xc]:='00'x; { ... NUL } chrx['35'x]:='F5'xc; { 5 5 } +ordx['36'xc]:='00'x; { ... NUL } chrx['36'x]:='F6'xc; { 6 6 } +ordx['37'xc]:='04'x; { EOT EOT } chrx['37'x]:='F7'xc; { 7 7 } +ordx['38'xc]:='00'x; { ... NUL } chrx['38'x]:='F8'xc; { 8 8 } +ordx['39'xc]:='00'x; { ... NUL } chrx['39'x]:='F9'xc; { 9 9 } +ordx['3A'xc]:='00'x; { ... NUL } chrx['3A'x]:='7A'xc; { : : } +ordx['3B'xc]:='00'x; { ... NUL } chrx['3B'x]:='5E'xc; { ; ; } +ordx['3C'xc]:='14'x; { DC4 DC4 } chrx['3C'x]:='4C'xc; { < < } +ordx['3D'xc]:='15'x; { NAK NAK } chrx['3D'x]:='7E'xc; { = = } +ordx['3E'xc]:='00'x; { ... NUL } chrx['3E'x]:='6E'xc; { > > } +ordx['3F'xc]:='1A'x; { SUB SUB } chrx['3F'x]:='6F'xc; { ? ? } +ordx['40'xc]:='20'x; { SP SP } chrx['40'x]:='7C'xc; { @@ @@ } +ordx['41'xc]:='00'x; { ... NUL } chrx['41'x]:='C1'xc; { A A } +ordx['42'xc]:='00'x; { ... NUL } chrx['42'x]:='C2'xc; { B B } +ordx['43'xc]:='00'x; { ... NUL } chrx['43'x]:='C3'xc; { C C } +ordx['44'xc]:='00'x; { ... NUL } chrx['44'x]:='C4'xc; { D D } +ordx['45'xc]:='00'x; { ... NUL } chrx['45'x]:='C5'xc; { E E } +ordx['46'xc]:='00'x; { ... NUL } chrx['46'x]:='C6'xc; { F F } +ordx['47'xc]:='00'x; { ... NUL } chrx['47'x]:='C7'xc; { G G } +ordx['48'xc]:='00'x; { ... NUL } chrx['48'x]:='C8'xc; { H H } +ordx['49'xc]:='00'x; { ... NUL } chrx['49'x]:='C9'xc; { I I } +ordx['4A'xc]:='5E'x; { ã ã } chrx['4A'x]:='D1'xc; { J J } +ordx['4B'xc]:='2E'x; { . . } chrx['4B'x]:='D2'xc; { K K } +ordx['4C'xc]:='3C'x; { < < } chrx['4C'x]:='D3'xc; { L L } +ordx['4D'xc]:='28'x; { ( ( } chrx['4D'x]:='D4'xc; { M M } +ordx['4E'xc]:='2B'x; { + + } chrx['4E'x]:='D5'xc; { N N } +ordx['4F'xc]:='7C'x; { | | } chrx['4F'x]:='D6'xc; { O O } +ordx['50'xc]:='26'x; { & & } chrx['50'x]:='D7'xc; { P P } +ordx['51'xc]:='00'x; { ... NUL } chrx['51'x]:='D8'xc; { Q Q } +ordx['52'xc]:='00'x; { ... NUL } chrx['52'x]:='D9'xc; { R R } +ordx['53'xc]:='00'x; { ... NUL } chrx['53'x]:='E2'xc; { S S } +ordx['54'xc]:='00'x; { ... NUL } chrx['54'x]:='E3'xc; { T T } +ordx['55'xc]:='00'x; { ... NUL } chrx['55'x]:='E4'xc; { U U } +ordx['56'xc]:='00'x; { ... NUL } chrx['56'x]:='E5'xc; { V V } +ordx['57'xc]:='00'x; { ... NUL } chrx['57'x]:='E6'xc; { W W } +ordx['58'xc]:='00'x; { ... NUL } chrx['58'x]:='E7'xc; { X X } +ordx['59'xc]:='00'x; { ... NUL } chrx['59'x]:='E8'xc; { Y Y } +ordx['5A'xc]:='21'x; { ! ! } chrx['5A'x]:='E9'xc; { Z Z } +ordx['5B'xc]:='24'x; { $ $ } chrx['5B'x]:='AD'xc; { [ [ } +ordx['5C'xc]:='2A'x; { * * } chrx['5C'x]:='E0'xc; { \ \ } +ordx['5D'xc]:='29'x; { ) ) } chrx['5D'x]:='BD'xc; { ] ] } +ordx['5E'xc]:='3B'x; { ; ; } chrx['5E'x]:='4A'xc; { ã ã } +ordx['5F'xc]:='7E'x; { ^ ^ } chrx['5F'x]:='6D'xc; { _ _ } +ordx['60'xc]:='2D'x; { - - } chrx['60'x]:='79'xc; { ` ` } +ordx['61'xc]:='2F'x; { / / } chrx['61'x]:='81'xc; { a a } +ordx['62'xc]:='00'x; { ... NUL } chrx['62'x]:='82'xc; { b b } +ordx['63'xc]:='00'x; { ... NUL } chrx['63'x]:='83'xc; { c c } +ordx['64'xc]:='00'x; { ... NUL } chrx['64'x]:='84'xc; { d d } +ordx['65'xc]:='00'x; { ... NUL } chrx['65'x]:='85'xc; { e e } +ordx['66'xc]:='00'x; { ... NUL } chrx['66'x]:='86'xc; { f f } +ordx['67'xc]:='00'x; { ... NUL } chrx['67'x]:='87'xc; { g g } +ordx['68'xc]:='00'x; { ... NUL } chrx['68'x]:='88'xc; { h h } +ordx['69'xc]:='00'x; { ... NUL } chrx['69'x]:='89'xc; { i i } +ordx['6A'xc]:='00'x; { ... NUL } chrx['6A'x]:='91'xc; { j j } +ordx['6B'xc]:='2C'x; { , , } chrx['6B'x]:='92'xc; { k k } +ordx['6C'xc]:='25'x; { % % } chrx['6C'x]:='93'xc; { l l } +ordx['6D'xc]:='5F'x; { _ _ } chrx['6D'x]:='94'xc; { m m } +ordx['6E'xc]:='3E'x; { > > } chrx['6E'x]:='95'xc; { n n } +ordx['6F'xc]:='3F'x; { ? ? } chrx['6F'x]:='96'xc; { o o } +ordx['70'xc]:='00'x; { ... NUL } chrx['70'x]:='97'xc; { p p } +ordx['71'xc]:='00'x; { ... NUL } chrx['71'x]:='98'xc; { q q } +ordx['72'xc]:='00'x; { ... NUL } chrx['72'x]:='99'xc; { r r } +ordx['73'xc]:='00'x; { ... NUL } chrx['73'x]:='A2'xc; { s s } +ordx['74'xc]:='00'x; { ... NUL } chrx['74'x]:='A3'xc; { t t } +ordx['75'xc]:='00'x; { ... NUL } chrx['75'x]:='A4'xc; { u u } +ordx['76'xc]:='00'x; { ... NUL } chrx['76'x]:='A5'xc; { v v } +ordx['77'xc]:='00'x; { ... NUL } chrx['77'x]:='A6'xc; { w w } +ordx['78'xc]:='00'x; { ... NUL } chrx['78'x]:='A7'xc; { x x } +ordx['79'xc]:='60'x; { ` ` } chrx['79'x]:='A8'xc; { y y } +ordx['7A'xc]:='3A'x; { : : } chrx['7A'x]:='A9'xc; { z z } +ordx['7B'xc]:='23'x; { # # } chrx['7B'x]:='C0'xc; { lcurly } +ordx['7C'xc]:='40'x; { @@ @@ } chrx['7C'x]:='4F'xc; { | | } +ordx['7D'xc]:='27'x; { ' ' } chrx['7D'x]:='D0'xc; { rcurly } +ordx['7E'xc]:='3D'x; { = = } chrx['7E'x]:='9C'xc; { tilde } +ordx['7F'xc]:='22'x; { " " } chrx['7F'x]:='07'xc; { DEL DEL } +ordx['80'xc]:='00'x; { ... NUL } +ordx['81'xc]:='61'x; { a a } +ordx['82'xc]:='62'x; { b b } +ordx['83'xc]:='63'x; { c c } +ordx['84'xc]:='64'x; { d d } +ordx['85'xc]:='65'x; { e e } +ordx['86'xc]:='66'x; { f f } +ordx['87'xc]:='67'x; { g g } +ordx['88'xc]:='68'x; { h h } +ordx['89'xc]:='69'x; { i i } +ordx['8A'xc]:='00'x; { ... NUL } +ordx['8B'xc]:='00'x; { ... NUL } +ordx['8C'xc]:='00'x; { ... NUL } +ordx['8D'xc]:='00'x; { ... NUL } +ordx['8E'xc]:='00'x; { ... NUL } +ordx['8F'xc]:='00'x; { ... NUL } +ordx['90'xc]:='00'x; { ... NUL } +ordx['91'xc]:='6A'x; { j j } +ordx['92'xc]:='6B'x; { k k } +ordx['93'xc]:='6C'x; { l l } +ordx['94'xc]:='6D'x; { m m } +ordx['95'xc]:='6E'x; { n n } +ordx['96'xc]:='6F'x; { o o } +ordx['97'xc]:='70'x; { p p } +ordx['98'xc]:='71'x; { q q } +ordx['99'xc]:='72'x; { r r } +ordx['9A'xc]:='00'x; { ... NUL } +ordx['9B'xc]:='00'x; { ... NUL } +ordx['9C'xc]:='7E'x; { tilde } +ordx['9D'xc]:='00'x; { ... NUL } +ordx['9E'xc]:='00'x; { ... NUL } +ordx['9F'xc]:='00'x; { ... NUL } +ordx['A0'xc]:='00'x; { ... NUL } +ordx['A1'xc]:='1A'x; { ... SUB } +ordx['A2'xc]:='73'x; { s s } +ordx['A3'xc]:='74'x; { t t } +ordx['A4'xc]:='75'x; { u u } +ordx['A5'xc]:='76'x; { v v } +ordx['A6'xc]:='77'x; { w w } +ordx['A7'xc]:='78'x; { x x } +ordx['A8'xc]:='79'x; { y y } +ordx['A9'xc]:='7A'x; { z z } +ordx['AA'xc]:='00'x; { ... NUL } +ordx['AB'xc]:='00'x; { ... NUL } +ordx['AC'xc]:='00'x; { ... NUL } +ordx['AD'xc]:='5B'x; { [ [ } +ordx['AE'xc]:='00'x; { ... NUL } +ordx['AF'xc]:='00'x; { ... NUL } +ordx['B0'xc]:='00'x; { ... NUL } +ordx['B1'xc]:='00'x; { ... NUL } +ordx['B2'xc]:='00'x; { ... NUL } +ordx['B3'xc]:='00'x; { ... NUL } +ordx['B4'xc]:='00'x; { ... NUL } +ordx['B5'xc]:='00'x; { ... NUL } +ordx['B6'xc]:='00'x; { ... NUL } +ordx['B7'xc]:='00'x; { ... NUL } +ordx['B8'xc]:='00'x; { ... NUL } +ordx['B9'xc]:='00'x; { ... NUL } +ordx['BA'xc]:='00'x; { ... NUL } +ordx['BB'xc]:='00'x; { ... NUL } +ordx['BC'xc]:='00'x; { ... NUL } +ordx['BD'xc]:='5D'x; { ] ] } +ordx['BE'xc]:='00'x; { ... NUL } +ordx['BF'xc]:='00'x; { ... NUL } +ordx['C0'xc]:='7B'x; { lcurly } +ordx['C1'xc]:='41'x; { A A } +ordx['C2'xc]:='42'x; { B B } +ordx['C3'xc]:='43'x; { C C } +ordx['C4'xc]:='44'x; { D D } +ordx['C5'xc]:='45'x; { E E } +ordx['C6'xc]:='46'x; { F F } +ordx['C7'xc]:='47'x; { G G } +ordx['C8'xc]:='48'x; { H H } +ordx['C9'xc]:='49'x; { I I } +ordx['CA'xc]:='00'x; { ... NUL } +ordx['CB'xc]:='00'x; { ... NUL } +ordx['CC'xc]:='00'x; { ... NUL } +ordx['CD'xc]:='00'x; { ... NUL } +ordx['CE'xc]:='00'x; { ... NUL } +ordx['CF'xc]:='00'x; { ... NUL } +ordx['D0'xc]:='7D'x; { rcurly } +ordx['D1'xc]:='4A'x; { J J } +ordx['D2'xc]:='4B'x; { K K } +ordx['D3'xc]:='4C'x; { L L } +ordx['D4'xc]:='4D'x; { M M } +ordx['D5'xc]:='4E'x; { N N } +ordx['D6'xc]:='4F'x; { O O } +ordx['D7'xc]:='50'x; { P P } +ordx['D8'xc]:='51'x; { Q Q } +ordx['D9'xc]:='52'x; { R R } +ordx['DA'xc]:='00'x; { ... NUL } +ordx['DB'xc]:='00'x; { ... NUL } +ordx['DC'xc]:='00'x; { ... NUL } +ordx['DD'xc]:='00'x; { ... NUL } +ordx['DE'xc]:='00'x; { ... NUL } +ordx['DF'xc]:='00'x; { ... NUL } +ordx['E0'xc]:='5C'x; { \ \ } +ordx['E1'xc]:='00'x; { ... NUL } +ordx['E2'xc]:='53'x; { S S } +ordx['E3'xc]:='54'x; { T T } +ordx['E4'xc]:='55'x; { U U } +ordx['E5'xc]:='56'x; { V V } +ordx['E6'xc]:='57'x; { W W } +ordx['E7'xc]:='58'x; { X X } +ordx['E8'xc]:='59'x; { Y Y } +ordx['E9'xc]:='5A'x; { Z Z } +ordx['EA'xc]:='00'x; { ... NUL } +ordx['EB'xc]:='00'x; { ... NUL } +ordx['EC'xc]:='00'x; { ... NUL } +ordx['ED'xc]:='00'x; { ... NUL } +ordx['EE'xc]:='00'x; { ... NUL } +ordx['EF'xc]:='00'x; { ... NUL } +ordx['F0'xc]:='30'x; { 0 0 } +ordx['F1'xc]:='31'x; { 1 1 } +ordx['F2'xc]:='32'x; { 2 2 } +ordx['F3'xc]:='33'x; { 3 3 } +ordx['F4'xc]:='34'x; { 4 4 } +ordx['F5'xc]:='35'x; { 5 5 } +ordx['F6'xc]:='36'x; { 6 6 } +ordx['F7'xc]:='37'x; { 7 7 } +ordx['F8'xc]:='38'x; { 8 8 } +ordx['F9'xc]:='39'x; { 9 9 } +ordx['FA'xc]:='00'x; { ... NUL } +ordx['FB'xc]:='00'x; { ... NUL } +ordx['FC'xc]:='00'x; { ... NUL } +ordx['FD'xc]:='00'x; { ... NUL } +ordx['FE'xc]:='00'x; { ... NUL } +ordx['FF'xc]:='00'x; { ... NUL } +@z + +@x +@! maxbuffer = 1029;@/ +@y +@! maxbuffer = 1024;@/ +@z + +@x +@p procedure writeheader; {only needed when using Datum 5095} +var + hdrec :string(5); +begin + if doingpages = true + then begin + hdrec := strconv(headernum); + write(setfile,hdrec); + bufferlen := 5; + end; {then..begin} + end; {writeheader} +@y +@p procedure writeheader; {only needed when using Datum 5095} +begin + if doingpages = true + then + bufferlen := 0; + end; {writeheader} +@z + +@x +@= + writecommand(11,155*SPsPerPt); {155pt indent} + writecommand(25,320); {Bold} + write8600rec('50616765731e'xc); {'Pages '} + write8600rec('536574231e1e'xc); {'Set: '} + writecommand(25,330); {Bold Italic} + pages_conv := strconv(pages_set); + for inx := 1 to 5 + do write8600rec(str(chr(ordx + [pages_conv[inx]]))); + writecommand(11,265*SPsPerPt); {get ready for Tape \#} + +@ +@= + writecommand(25,320); {Bold} + write8600rec('546170651e'xc); {'Tape '} + writecommand(20,2); {aux. char. set} + write8600rec('72'xc); {'\#'} + writecommand(20,1); {pri. char. set} + write8600rec('231e1e1e1e'xc); {': '} + postam_found := true; + writecommand(25,330); {bold italic} +@y +@= + writecommand(11,155*SPsPerPt); {155pt indent} + writecommand(25,320); {Bold} + write8600rec('50616765731e'xc); {'Pages '} + write8600rec('536574231e1e'xc); {'Set: '} + writecommand(25,330); {Bold Italic} + pages_conv := strconv(pages_set); + for inx := 1 to 5 + do write8600rec(str(chr(ordx + [pages_conv[inx]]))); + +@ +@= + postam_found := true; +@z + +@x +|setaccountbox| procedure. It also writes the information to another file +called the |infofile|. + +@= +@! notfatal = false;@/ + +@ +@= +@!addrline : text; +@!infofile : text; +@^system dependencies@> +@y +|setaccountbox| procedure. + +@= +@! notfatal = false;@/ + +@ +@= +@!addrline : text; +@^system dependencies@> +@z + +@x +@= + rewrite(infofile,'NAME=' ccat filename ccat '.INFOFILE.*'); + while length(resource_info) > 0 do begin + inx := index(resource_info,':'); + if inx < 1 + then begin + errstr := resource_info; + error(28,notfatal,0); + end + else begin + str1 := substr(resource_info,1,inx-1); + resource_info := ltrim(substr(resource_info,inx+1)); + inx := index(resource_info,':'); + if inx = 0 + then begin + str2 := resource_info; + resource_info := ''; + end + else begin + int := inx - 1; {no sense starting at a colon:} + tempbool := false; + repeat + if substr(resource_info,int,1) = ' ' + then tempbool := true + else int := int - 1; + until tempbool; {which means we found a blank} + str2 := trim(substr(resource_info,1,int-1)); + resource_info := substr(resource_info,int+1); + end; + str1 := allcaps(ltrim(trim(str1))); + str2 := allcaps(ltrim(trim(str2))); + if str1 = 'NAME' then + infoname := str2 + else if str1 = 'PHONE' then + infophone := str2 + else if str1 = 'PROCEDURE_NUMBER' + then infoprocedure := str2 + else if str1 = 'BUDGET_PROJECT' + then infobudget := str2 + else if str1 = 'PICKUP' then + infodelivery := str2 + else if str1 = 'CAMPUS_ZIP' then + infozip := str2 + else if str1 = 'BIN' then + infobin := str2 + else if str1 = 'ID' then + infoid := str2 + else begin + errstr := resource_info; + error(28,notfatal,0); + end + end; + end; + +@ +@= + setaccountbox(infoname,infophone,infodelivery,infozip, + infobin,infoid); + writeln(infofile,infoname); + writeln(infofile,infophone); + writeln(infofile,infoprocedure); + writeln(infofile,infobudget); + writeln(infofile,infodelivery); + writeln(infofile,infozip); + writeln(infofile,infoid); + writeln(infofile,infobin); + writeln(infofile,job_length); + writeln(infofile,pages_set); + writeln(infofile,minimum_width); + writeln(infofile,real_filename); +@y +@= + while length(resource_info) > 0 do begin + inx := index(resource_info,':'); + if inx < 1 + then begin + errstr := resource_info; + error(28,notfatal,0); + end + else begin + str1 := substr(resource_info,1,inx-1); + resource_info := ltrim(substr(resource_info,inx+1)); + inx := index(resource_info,':'); + if inx = 0 + then begin + str2 := resource_info; + resource_info := ''; + end + else begin + int := inx - 1; {no sense starting at a colon:} + tempbool := false; + repeat + if substr(resource_info,int,1) = ' ' + then tempbool := true + else int := int - 1; + until tempbool; {which means we found a blank} + str2 := trim(substr(resource_info,1,int-1)); + resource_info := substr(resource_info,int+1); + end; + str1 := allcaps(ltrim(trim(str1))); + str2 := allcaps(ltrim(trim(str2))); + if str1 = 'NAME' then + infoname := str2 + else if str1 = 'PHONE' then + infophone := str2 + else if str1 = 'PROCEDURE_NUMBER' + then infoprocedure := str2 + else if str1 = 'BUDGET_PROJECT' + then infobudget := str2 + else if str1 = 'PICKUP' then + infodelivery := str2 + else if str1 = 'CAMPUS_ZIP' then + infozip := str2 + else if str1 = 'BIN' then + infobin := str2 + else if str1 = 'ID' then + infoid := str2 + else begin + errstr := resource_info; + error(28,notfatal,0); + end + end; + end; + +@ +@= + setaccountbox(infoname,infophone,infodelivery,infozip, + infobin,infoid); +@z + +@x +@= + job_length := round(galley_length/72.0); + pages_set := num_of_pages; + job_type := 'TeX'; +@y +@= + job_length := round(galley_length/72.0); + pages_set := num_of_pages; + job_type := 'TeX'; + writecommand(11,0); {quad left} + writecommand(9,100*SPsPerPt); {VMF past box} + writecommand(1,0.0); {End of take} +@z + +@x + reset(input,'NAME=' ccat filename ccat '.' ccat filetype ccat '.*'); + writeln('******* tex8600 Version ',version:2,' Level ', + level:3,' *******'); + rewrite(setfile,'LRECL=1029,RECFM=F,NAME=' ccat filename ccat +'.TAPEFILE.*'); +@y + reset(input,'NAME=' ccat filename ccat '.' ccat filetype ccat '.*'); + writeln('******* tex8600 Version ',version:2,' Level ', + level:3,' *******'); + rewrite(setfile,'LRECL=1024,RECFM=F,NAME=' ccat filename ccat +'.TAPEFILE.*'); +@z diff --git a/macros/text1/compugraphics_8600/tex8600.web b/macros/text1/compugraphics_8600/tex8600.web new file mode 100644 index 0000000000..8b99589a5a --- /dev/null +++ b/macros/text1/compugraphics_8600/tex8600.web @@ -0,0 +1,3034 @@ +\font\twelvept=cmbx12 +\font\tentex=cmr10 +\def\topofcontents{\null\vfill\eject + \def\titlepage{T} + \centerline{{\twelvept The \TeX 8600 Driver}} + \vskip15pt + \centerline{Version 2.2, June 1988} + \hbox{\vbox{\hsize\the\hsize This work is + protected as an unpublished work under U.S. copyright laws. + Copyright $\copyright$ 1986 by WSUCSC. All rights Reserved.}} + \vskip18pt + \hbox{\vbox{\hsize\the\hsize This software is furnished under a + license for + use only on a single computer system and may be copied only + with the inclusion of the above copyright notice. + This software, or any other copies + thereof, may not be provided or otherwise made available to any + other person except for use on such system and to one who agrees to + these license terms. Title to and ownership of the software shall + at all times remain in WSUCSC.}} + \vfill} + +@* Introduction. +This program takes a \TeX\ DVI file and converts it into CG 8600 +Universal Slave Mode commands. Five bytes have been added to each +record. These five bytes are stripped off by the Datum 5095 tape +drive as it passes the file onto the 8600. + +The \TeX 8600 program is written in WEB. You will need the TANGLE +and WEAVE programs to make changes. The WEB code was written +originally for IBM Pascal/VS on VM/CMS. + +If you have a CG font that is not one of the ones on the \TeX 8600 +distribution tape, you need to modify the SAMPLE.FONTINFO file for +that font and process it through FONTTEX. + +@ Following are a few macros and definitions used throughout program: + +@d incr(#) == # := # + 1 +@d decr(#) == # := # - 1 +@d do_nothing == begin; end +@d ccat==@=||@> +@f static == var +@f value == var + +@ The beginning of the program. + +@p program tex8600(dumpout,sysprint,addrline,setfile,cgfonts,infofile); +const +@@/ +type +@@/ +var +@@/ +static@/ +@!com_table :packed array[0..18] of string(7);@/ +value@/ + com_table[0] := 'HDR'; {Header Record}@/ + com_table[1] := 'CHWIDTH';{Character Width}@/ + com_table[2] := 'RT'; {Reverse Type}@/ + com_table[3] := 'PS'; {Point Size}@/ + com_table[4] := 'SS'; {Set Size}@/ + com_table[5] := 'VMF'; {Vertical Move Forward}@/ + com_table[6] := 'VMR'; {Vertical Move Reverse}@/ + com_table[7] := 'RW'; {Rule Width}@/ + com_table[8] := 'RD'; {Rule Depth}@/ + com_table[9] := 'IR'; {Insert Rule}@/ + com_table[10] := 'SL'; {Slant Mode}@/ + com_table[11] := 'RTWT'; {Reverse Type Window Top}@/ + com_table[12] := 'RTWB'; {Reverse Type Window Bottom}@/ + com_table[13] := 'AU'; {Auxiliary Character Set}@/ + com_table[14] := 'F'; {Change Fonts}@/ + com_table[15] := 'HMR'; {Horizontal Move Right}@/ + com_table[16] := 'HML'; {Horizontal Move Left}@/ + com_table[17] := 'TTS'; {8600 character, in decimal}@/ + com_table[18] := 'MAXCMD';@/ +@ + +@ This is a collection of arrays for converting ASCII to EBCDIC. + +@= +@{This is a very long comment. It is designed to force a break@} +%include pasclib(asciicvt); + +@ This is a collection of arrays for converting ASCII to EBCDIC. + +@= +@{This is a very long comment. It is designed to force a break@} +%include cms; +@{This is a very long comment. It is designed to force a break@} + +@* Beginning section. +This section includes some basic functions for reading the DVI file +as well as a couple of procedures, like error and allcaps. Nothing +tricky or noteworthy in these. + +@= +@!count : integer; +@!fileend :boolean; + +@ The function for reading a byte of information from the DVI file. + +@p function getbyte:integer; +var c :integer; + byte :char; +begin + read(byte); + getbyte := ord(byte); + c := count mod pv_dvi_lrecl; + if (c=(pv_dvi_lrecl-1)) and not (eof(input)) + then get(input) + else if (c=(pv_dvi_lrecl-1)) and eof(input) + then fileend:=true; + end; + +@ This is necessary because tangle doesn't let us get away with +using RETCODE by itself in more than one spot. + +@p procedure setretcode(rc:integer); +begin retcode(rc); end; + +@ This converts the byte to an integer, for further evaluation by +the program. + +@p function readinteger(length :integer):integer; +var + inx :integer; + int :integer; +begin + if (length<1) or (length>4) + then begin; + trace(output); + halt; + end; + int:=0; + for inx := 1 to length do begin + int := int * 256 + getbyte; + {check for cvt to negative...} + if (inx = 1) and (length > 1) and (int >= 128) + then int := int - 256; + incr(count); + end; + readinteger := int; + end; {readinteger} + +@ This function receives an integer value and converts it to its +hex value and returns that value as a string. + +@^system dependencies@> +@p function hex(int :integer) :string(2); +var + i :integer; + j :integer; + stri :string(2); +static + hexarray :array[0..15] of string(1); +value + hexarray[0] := '0'; + hexarray[1] := '1'; + hexarray[2] := '2';@/ + hexarray[3] := '3'; + hexarray[4] := '4'; + hexarray[5] := '5';@/ + hexarray[6] := '6'; + hexarray[7] := '7'; + hexarray[8] := '8';@/ + hexarray[9] := '9'; + hexarray[10] := 'A'; + hexarray[11] := 'B';@/ + hexarray[12] := 'C'; + hexarray[13] := 'D'; + hexarray[14] := 'E'; + hexarray[15] := 'F'; +begin + stri := ''; + i := int; + if i >= 16 + then begin + j := i div 16; + stri := hexarray[j]; + i := i - (j * 16); + end + else stri := '0'; + stri := stri ccat hexarray[i];@/ + hex := stri; + end; + +@ +@= +@! savecount :integer; +@^system dependencies@> +@! filename :string(8); +@^system dependencies@> +@! errstr :string(256); + +@ The error procedure. When a byte is read that does not jive with +what the program was expecting, it goes to this procedure with a +return code of some kind and an appropriate message is printed to user. + +@p procedure error(number :integer; + critical:boolean; + intval :integer); +begin + case number of + 1 :writeln('Error in file ',filename,', no header record'); + 2 :writeln('Error in file ',filename,', the highest 8600 ', + 'command has a value of ',ord(MAXCMD):3,' but ', + intval,' was read instead'); + 3 :writeln('Expected a font command and got "', + com_table[intval],'" instead'); + 4 :writeln('Expected a character width definition and got "', + com_table[intval],'" instead in file ',filename); + 5 :writeln('File ',filename,' is out of order for character ', + intval:3,' (',chrx[intval],')'); + 6 :writeln('Error in file ',filename,', the value of byte ', + intval,' is >= 218 and <= 255 at byte ',savecount); + 7 :writeln('Expected a Slantmode command and got ', + com_table[intval],' instead'); + 10 :writeln('No address information given'); + 28 :writeln('Unidentified input option "',errstr,'"'); + otherwise writeln('Unidentified error ',number); + end; {case} + if critical then begin + writeln('TeX8600 run aborted; See your consultant'); + trace(output); + halt; + end; + writeln('Tape will not be sent to operator'); + setretcode(32); + end; {error} + +@ Finally, a function that will convert whatever is passed to it into +all capital letters. It translates lower case letters into upper case +letters. All other characters outside of the range +a$<$=character$<$=z are returned as their original value. + +@^system dependencies@> +@p function allcaps(instring :string(40)) :string(40); +var + i :integer; + character :char; + buildit :string(40); +static@/ + chtable :packed array['81'xc..'e9'xc] of char;@/ +value@/ + chtable['81'xc] := 'A'; + chtable['82'xc] := 'B'; + chtable['83'xc] := 'C'; + chtable['84'xc] := 'D';@/ + chtable['85'xc] := 'E'; + chtable['86'xc] := 'F'; + chtable['87'xc] := 'G'; + chtable['88'xc] := 'H';@/ + chtable['89'xc] := 'I'; + chtable['91'xc] := 'J'; + chtable['92'xc] := 'K'; + chtable['93'xc] := 'L';@/ + chtable['94'xc] := 'M'; + chtable['95'xc] := 'N'; + chtable['96'xc] := 'O'; + chtable['97'xc] := 'P';@/ + chtable['98'xc] := 'Q'; + chtable['99'xc] := 'R'; + chtable['a2'xc] := 'S'; + chtable['a3'xc] := 'T';@/ + chtable['a4'xc] := 'U'; + chtable['a5'xc] := 'V'; + chtable['a6'xc] := 'W';@/ + chtable['a7'xc] := 'X'; + chtable['a8'xc] := 'Y'; + chtable['a9'xc] := 'Z'; +begin + buildit := ''; + for i := 1 to length(instring) do begin + readstr(substr(instring,i,1),character); + if character in ['a'..'z'] + then buildit := buildit ccat str(chtable[character]) + else buildit := buildit ccat str(character); + end; + allcaps := buildit; + end; + +@* Font Related Procedures. +This first font procedure reads the font matrix information for the +current font from an outside file called cginfo defined as cgfonts. + +@= +@! maxfunctions = 15;@/ +@! maxChar=127;@/ +@! fatal = true;@/ +@! fontsperrun = 76;@/ +@! maxFont=256;@/ + +@ +@= +@! oneoftwo = packed 1..2; + command = (HDR,CHWIDTH,RT,PS,SS,VMF,VMR,RW,RD,IR,SL, + RTWT,RTWB,AU,F,HMR,HML,TTS,MAXCMD);@/ +@! storerec = packed record + comcode :packed -128..127; + case oneoftwo of + 1 :(argument :integer); + 2 :(real_argument :shortreal); + end; +@! charrec = packed record + num :-1..maxfunctions; + charwidth :shortreal; + comarray :packed array[0..maxfunctions] of storerec; + end; +@! driverrec = record + cmd :integer; + case oneoftwo of + 1 :(param :shortreal); + 2 :(code :integer); + end; +@! font_def = packed record + pointsize : 0..255; + designsize : 0..255; + fontindex : 0..255; + end; +@^system dependencies@> +@! fontrec = record + fontno8600 : 0..2550; + name : string(8); + a8600chars : packed array[0..maxChar] of charrec; + end; + +@ +@= +@!currfont : -1..maxFont; +@!a8600fontrec : packed array[1..fontsperrun] of fontrec; +@!fontcode : driverrec; +@^system dependencies@> +@!fontname : string(8); +@!dumpin : boolean; +@!fontenviron : packed array[-1..maxFont] of font_def; + +@ A new font is being used so it must have its font metrics read; this +procedure does just that. + +@p procedure readfontinfo(fontnum,a8600index:integer); +var + auxiliary :boolean; + cgfonts :file of driverrec; + changefont :boolean; + charmult :shortreal; + i,j,rc, + numcommands :integer; +begin + @ + @ + @ + @ +end; + +@ First open the cginfo file + + @= + fontenviron[fontnum].fontindex := a8600index; + a8600fontrec[a8600index].name:= fontname; + cms('ESTATE 'ccat fontname ccat ' CGINFO *',rc); + if rc = 0 + then reset(cgfonts,'NAME=' ccat fontname ccat '.CGINFO.*') + else begin + reset(cgfonts,'NAME=ETR.CGINFO.*'); + writeln('Error!! Font ',fontname,' is not on the 8600'); + writeln('You will not be able to continue'); + setretcode(8); + end; + +@ Now read the first few records that give overall font info. + + @= + fontcode := cgfonts@@;{Read the first record of the file} + get(cgfonts);@/ + with fontcode do begin + if cmd <> ord(HDR) then error(1,fatal,0); + if code <> ord(MAXCMD) then error(2,fatal,code); + end; {with..begin} + fontcode := cgfonts@@; {read the second record of the file} + get(cgfonts);@/ + with fontcode do begin + if cmd <> ord(F) then error(3,fatal,cmd); {Must be font cmnd} + a8600fontrec[a8600index].fontno8600 := code; + end; {with..begin} + fontcode := cgfonts@@; + get(cgfonts); + with fontcode do begin + if cmd <> ord(CHWIDTH) then error(4,fatal,cmd); {charac mult} + charmult := param; + end; {with..begin} + {Each character (maxChar) has one header record (HDR) + and one character width record. The number of records + for each character that follows the width record is + contained as "code" in the header record. Each + character will have at least one record.} + fontcode := cgfonts@@; {slantmode option no longer used} + get(cgfonts); + with fontcode do begin + if cmd <> ord(SL) then error(7,fatal,cmd); + end; + if dumpin + then with a8600fontrec[fontenviron[fontnum].fontindex] + do begin + writeln(dumpout, + ' The character width multiplier for ', + filename,' is ',charmult:5:2); + writeln(dumpout, + ' The 8600 font number is ',fontno8600:3); + end; + +@ The individual character heights, depths, widths and positions +come next. + + @= + for i := 0 to maxChar do begin + with a8600fontrec[a8600index].a8600chars[i] +do begin + fontcode := cgfonts@@; + get(cgfonts); + with fontcode do begin + if cmd <> ord(HDR) then error(5,fatal,i); + numcommands := code; {number for this character} + end; {with..begin} + num := -1; + @ + auxiliary := false; + changefont := false; + for j := 0 to numcommands do begin + @ + end; + if auxiliary then begin + @ + end; + if changefont then begin + @ + end; + end; + end; + +@ Font is all read and safely tucked into appropriate places to +be used later, so close the door and shut off the lights on the +way out. + + @= + close(cgfonts); + +@ + @= + fontcode := cgfonts@@; {read the character width} + get(cgfonts); + with fontcode do begin + if cmd <> ord(CHWIDTH) then error(5,fatal,i); + charwidth := param * charmult; + end; {with..begin} + +@ + @= + fontcode := cgfonts@@; + get(cgfonts); + num := num + 1; {increment number of commands} + with fontcode, comarray[num] do begin + if ((cmd >= 5) and (cmd <= 8)) or + (cmd = 11) or (cmd = 12) or (cmd = 16) + then real_argument := param + else argument := code; + case cmd of + 2 :comcode := 3; {reverse type} + 3 :comcode := 7; {Point Size Change} + 4 :comcode := 8; {Set Size Change} + 5 :comcode := 9; {Vertical Move Forward} + 6 :comcode := 10; {Vertical Move Reverse} + 7 :comcode := 12; {Rule Width} + 8 :comcode := 13; {Rule Depth} + 9 :comcode := 14; {Insert Rule} + 10 :comcode := 15; {Slant Mode} + 11 :comcode := 16; {Reverse Window Top} + 12 :comcode := 17; {Reverse Window Bot} + 13 :begin + @ + end; + 14 :begin + @ + end; + 15 :comcode := 27; {Horiz. Move Right} + 16 :comcode := 28; {Horiz. Move Left} + 17 :comcode := -1; {Decimal Char Code} + otherwise begin + @ + end; + end; + end; + +@ + @= + num := num + 1; + with comarray[num] do begin + comcode := 20; + argument := 1; + end; + +@ + @= + num := num + 1; + with comarray[num] do begin + comcode := 25; + argument := -1; {for quick ID in font changes} + end; + +@ + @= + comcode := 20; + if auxiliary + then begin + argument := 1; + auxiliary := false; + end + else begin + argument := 2; + auxiliary := true; + end; + +@ + @= + comcode := 25; + if code <> fontnum + then changefont := true; + argument := code * 10; + +@ + @= + writeln('Invalid 8600 Command Number ', cmd); + error(5,fatal,cmd); + +@ This procedure checks to see if the current font has been + previously defined. If it has, it returns to the main program, + if it hasn't, |readfontinfo| is called. + +@p procedure checkfont; +var + i :integer; +static + in_count :integer; +value + in_count := 0; +begin +@ +readfontinfo(currfont,in_count); + end; + +@ Each time a font is encountered in the DVI file, one is added to +the |in_count|. The following section checks to see if the |curr_font| +has ever been used before in this file. If it has, nothing is done and +it returns to main program. If it is a new file, it continues on in +procedure to read the new font metrics. + +@= + incr(in_count); + for i := 1 to in_count do begin + if a8600fontrec[i].name = fontname + then begin + fontenviron[currfont].fontindex := i; + return; + end; + end; + +@ This procedure reads the DVI file to get all pertinent information +for the |MAIN| program. + +@= +@! SPsPerPt = 65536;@/ +@! pc_dvi_lrecl=1024; + +@ +@= +@!checksumtest : integer; +@!pv_dvi_lrecl :integer; + +@ +@p procedure fontinfo; +var + fnlength : integer; + temp : integer; + temp2 : integer; + inx : integer; +begin + with fontenviron[currfont] do begin + checksumtest := readinteger(4);{check sum} + temp := readinteger(4);{scale} + temp2:= readinteger(4);{design size} + pointsize := temp2 * (temp div temp2) div SPsPerPt; + designsize := temp2 div SPsPerPt; + end; {WITH..begin} + temp := readinteger(1);{font name area} + fnlength := readinteger(1);{file length} + fnlength := fnlength + temp; + fontname := ''; + for inx := 1 to fnlength do begin + temp := readinteger(1); + fontname := fontname ccat allcaps(str(chrx[temp])); + end; + checkfont; +end; + +@* Tape-writing functions and procedures. +These next few functions and procedures prepare or write information +to a tape file + +@ This function converts an integer to a string or something like that + +@^system dependencies@> +@p function strconv(intnum : integer): string(5); +var + hdrec :string(5); + j :integer; + k10 :integer; + temphdr :integer; +begin + hdrec := ''; + k10 := 10000; + temphdr := intnum; + repeat + if temphdr >= k10 then begin + j := temphdr div k10; + hdrec := hdrec ccat str(chr(j + ord('0'))); + temphdr := temphdr - (j * k10); + end; + k10 := k10 div 10; + until k10 = 1; + hdrec := hdrec ccat str(chr(temphdr + ord('0'))); + if length(hdrec) < 5 + then hdrec := substr('00000',1,5-length(hdrec)) ccat hdrec; + strconv := hdrec; + end; + +@ This procedure is to add the 5 bytes at the beginning + of each record that will be read by the 5095 tape + drive. It should be noted that these 5 bytes are + discarded by the 5095 before it sends the rest of the record to the 8600. + +@= +@! maxbuffer = 1029;@/ + +@ +@= +@!doingpages : boolean; +@!setfile : text; +@!dumpout : text; +@!bufferlen : 0..maxbuffer; +@!headernum : integer; + +@ +@p procedure writeheader; {only needed when using Datum 5095} +var + hdrec :string(5); +begin + if doingpages = true + then begin + hdrec := strconv(headernum); + write(setfile,hdrec); + bufferlen := 5; + end; {then..begin} + end; {writeheader} + +@ +@= +@! allzeros = '00'xc;@/ + +@ +@= +@!postam_found : boolean; + +@ This procedure is used to write the tape file for the 5095 +drive on the 8600 + +@p @^system dependencies@> +procedure write8600rec(codes :string(17)); +var + i :integer; + codesize :integer; +begin + codesize := length(codes); + if doingpages=true + then begin + if bufferlen + codesize < maxbuffer + then begin + @ + end {then..begin} + else if bufferlen + codesize = maxbuffer + then begin + @ + end {then..begin} + else begin + @ + end; {else..begin} + end; {then..begin} + end; {write8600rec} + +@ + @= + write(setfile,codes); + bufferlen := bufferlen + codesize; + if postam_found then begin + while bufferlen < maxbuffer do begin + write(setfile,allzeros); + codesize := length(allzeros); + bufferlen := bufferlen + codesize; + end; {while..begin} + end; {then..begin} + +@ + @= + writeln(setfile,codes); + if not postam_found then writeheader; + +@ + @= + i := maxbuffer - bufferlen; + writeln(setfile,substr(codes,1,i)); + writeheader; + write(setfile,substr(codes,i+1,codesize-i)); + bufferlen := bufferlen + codesize - i; + if postam_found then begin + while bufferlen < maxbuffer do begin + write(setfile,allzeros); + codesize := length(allzeros); + bufferlen := bufferlen + codesize; + end; {while..begin} + end; {then..begin} + +@ +@= +@!print_hmove : boolean; + +@ This function, +given amount in scale points, converts it to floating-point +points and print it. + +@p function getpts(amt :integer) :real; +var + temp :real; +begin + temp := float(amt) / SPsPerPt; + if dumpin and print_hmove then write(dumpout,temp:4:1,' pts.'); + getpts := temp; + end; + +@* Main tape-writing procedures. +These next few procedures are the main ones for writing information +to the tape file. + +@ +@= +@! high1 = '8000'@&x;@/ +@! SPsPer8th = 8192;@/ +@! SPsPer18th = 3640.8888;@/ + +@ +@= +@! valrec = packed record case oneoftwo of + 1 :(hexcode :char; + argument :packed -32768..32767); + 2 :(byte1 :packed 0..255; + byte2 :packed 0..255; + byte3 :packed 0..255) + end; +@! stackrec = packed record + H :integer; + V :integer; + W :integer; + X :integer; + Y :integer; + Z :integer; + end; + +@ +@= +@!stack : packed array[1..50] of stackrec; +@!stacktop : integer; +@!outrec : valrec; +@!in_reverse_type : boolean; +@!in_slant_mode : boolean; + +@ This procedure is called to format the output record + in a 1 or 3 byte word to be added to the 8600 output + record buffer. Each command used by the slave mode + is represented here by their appropriate code number + assigned by Compugraphics. The code "-1" was not + assigned by them. It was assigned to denote the use + of a character in the current font. + +@p @^system dependencies@> +procedure writecommand(codenum :integer; + inargument :real); +var + temp :string(3); + realtemp :real; +begin + with outrec do begin + case codenum of + -2 :@@/ + -1 :@@/ + 0 :@@/ + 1 :@@/ + 2 :@@/ + 7 :@@/ + 8 :@@/ + 9 :@@/ + 10 :@@/ + 11 :@@/ + 12 :@@/ + 13 :@@/ + 14 :@@/ + 15 :@@/ + 16 :@@/ + 17 :@@/ + 20 :@@/ + 25 :@@/ + 27 :@@/ + 28 :@@/ + otherwise @ + end; {case} + byte2 := byte2 + '10000000'B; + temp := str(chr(byte1)) ccat + str(chr(byte2)) ccat str(chr(byte3)); + write8600rec(temp); + end; {with..begin} + end; {writecommand} + +@ +@= + begin + hexcode := chr(trunc(inargument)+high1); + argument := round(getpts(stack[stacktop].H) * 18); + temp := str(chr(byte1)) ccat str(chr(byte2)); + temp := temp ccat str(chr(byte3)); + write8600rec(temp); + return; + end; + +@ +@= + begin + {change inargument into a one character + string (hex) value} + argument := trunc(inargument); + write8600rec(str(chr(byte3))); + return; + end; +@ +@= + begin + hexcode := '80'xc; + argument := trunc(inargument); + end; + +@ +@= + begin + hexcode := '81'xc; + argument := trunc(inargument); + end; + +@ +@= + begin + if not in_reverse_type and (inargument = 0) + then return; {8600 warning if you try to + turn it off when its already off} + if inargument = 0 + then in_reverse_type := false + else in_reverse_type := true; + if in_reverse_type then begin + realtemp := {76\% of the current leading} + (fontenviron[currfont].pointsize + 2)*0.76; + writecommand(16,realtemp); {window top} + realtemp := {30\% of the current leading} + (fontenviron[currfont].pointsize + 2)*0.30; + writecommand(17,realtemp); {window bottom} + end; {then..begin} + hexcode := '83'xc; + argument := trunc(inargument); + end; + +@ +@= + begin + hexcode := '87'xc; + argument := round(inargument*2) * 4; {in eighths} + end; + +@ +@= + begin + hexcode := '88'xc; + argument := round((fontenviron[currfont].pointsize* + (inargument/100.0)) * 2) * 4; {in eighths} + end; + +@ +@= + begin + if inargument = 0 then return; {0 invalid on 8600} + hexcode := '89'xc; + {in sixteenths} + argument := round(inargument / SPsPer8th) * 2; + end; + +@ +@= + begin + if inargument = 0 then return; {0 invalid on 8600} + hexcode := '8a'xc; + {in sixteenths} + argument := round(inargument / SPsPer8th) * 2; + end; + +@ +@= + begin + hexcode := '8b'xc; + {eighteenths} + if inargument < -72.27 then begin + if dumpin then writeln(dumpout, + ' HP less than zero'); + inargument := 0; + end; + argument := round(inargument / SPsPer18th); + end; + +@ +@= + begin + if inargument = 0 then return; {0 invalid on 8600} + hexcode := '8c'xc; + argument := round(inargument * 18); + end; + +@ +@= + begin + if inargument = 0 then return; {0 invalid on 8600} + hexcode := '8d'xc; + argument := round(inargument * 8) * 2; + end; + +@ +@= + begin + hexcode := '8e'xc; + if inargument < 0 then begin + if dumpin then writeln(dumpout, + ' IR less than zero'); + inargument := 0; + end; + argument := round(inargument / SPsPer18th); + end; + +@ +@= + begin + hexcode := '8f'xc; + argument := trunc(inargument); + if argument = 0 + then in_slant_mode := false + else in_slant_mode := true; + end; + +@ +@= + begin + hexcode := '90'xc; + argument := round(inargument*8) * 2; {in sixteenths} + end; + +@ +@= + begin + hexcode := '91'xc; + argument := round(inargument*8) * 2; {in sixteenths} + end; + +@ +@= + begin + hexcode := '94'xc; + argument := trunc(inargument); + end; + +@ +@= + begin + hexcode := '99'xc; + argument := trunc(inargument); + end; + +@ +@= + begin + if inargument = 0 then return; {if no move} + hexcode := '9b'xc; + {eighteenths} + argument := round(inargument / SPsPer18th); + end; + +@ +@= + begin + if inargument = 0 then return; {if no move} + hexcode := '9c'xc; + {eighteenths} + argument := round(inargument / SPsPer18th); + end; + +@ +@= + begin + writeln('Invalid 8600 command code = ',codenum); + error(5,fatal,codenum); + end; {otherwise} + +@* Billing and identification information procedures. + +@ The first procedure is the one that writes out all the resource-type +information. It first checks to see if the character it is about to +write out is one of several special characters, if it is the hex code +is changed. + +@^system dependencies@> +@p procedure writeinfo(info:string(30)); + var + inx : integer; + begin + for inx := 1 to length(info) + do begin + if info[inx] = ' ' + then write8600rec('1F'xc) + else if info[inx] = '(' + then write8600rec('3A'xc) + else if info[inx] = ')' + then write8600rec('3B'xc) + else if info[inx] = '*' + then write8600rec('5C'xc) + else if info[inx] = '_' + then begin + writecommand(20,2); {aux. char. set} + write8600rec('50'xc); + writecommand(20,1); {back to primary} + end {then..begin} + else write8600rec(str(chr(ordx[info[inx]]))); + end; {do..begin} + end; {writeinfo} + +@ +@= +@^system dependencies@> +@!job_len_conv : string(5); +@!job_length : integer; +@^system dependencies@> +@!parmvalue : string(80); +@^system dependencies@> +@!pages_conv : string(5); +@!pages_set : integer; +@!galley_length : real; +@^system dependencies@> +@!real_filename : string(8); + +@ The following procedure writes the information within the accounting +box at the end of each job. + +@p @^system dependencies@> + procedure setaccountbox (infoname :string(30); + infophone :string(14); + infodelivery :string(8); + infozip :string(10); + infobin :string(8); + infoid :string(22)); + var + inx :integer; + begin + @@/ + @@/ + @@/ + @@/ + @@/ + @@/ + @@/ + @@/ + @@/ + @@/ + @@/ + @@/ + galley_length := galley_length + 140; + end; {setaccountbox} + +@ +@= + different_setsize := false; + in_slant_mode := false; + in_reverse_type := false; + +@ +@= + writecommand(12,410); {rule width in points} + writecommand(13,8); {rule depth in points} + writecommand(14,0); {set top rule} + writecommand(12,8); {rule width in points} + writecommand(13,84); {rule depth in points} + writecommand(14,402*SPsPerPt); {set left rule} + writecommand(14,0); {set right rule} + writecommand(9,83.8*SPsPerPt); {VMF to bottom in pts} + writecommand(12,410); {rule width in points} + writecommand(13,8); {rule depth in points} + writecommand(14,0); {set bottom rule} + writecommand(11,32*SPsPerPt); {32pt indent} + writecommand(10,56*SPsPerPt); {Move back up} + writecommand(25,320); {define bold font} + writecommand(7,11); {11pt size} + +@ +@= + write8600rec('4e616d65231e'xc); {'Name: '} + writecommand(25,330); {change to Bold Ital} + writeinfo(infoname); + writecommand(11,265*SPsPerPt); {265pt Indent} + writecommand(25,320); {Bold} + +@ +@= + write8600rec('50686f6e65231e'xc); {'Phone: '} + writecommand(25,330); {Bold Italic} + writeinfo(infophone); + +@ +@= + writecommand(11,50*SPsPerPt); {50pt indent} + writecommand(9,16*SPsPerPt); {VMF 16pt} + writecommand(25,320); {Bold} + write8600rec('44656c6976657279231e'xc); {'Delivery: '} + writecommand(25,330); {Bold Italic} + writeinfo(infodelivery); + +@ +@= + if infozip <> 'NA' + then begin + writecommand(11,190*SPsPerPt); {190pt indent} + writecommand(25,320); {Bold} + write8600rec('5a6970636f6465231e'xc); {'Zipcode: '} + writecommand(25,330); {Bold Italic} + writeinfo(infozip); + end; + +@ +@= + if infobin <> 'NA' + then begin + writecommand(11,284*SPsPerPt); {284pt indent} + writecommand(25,320); {Bold} + write8600rec('42696e231e'xc); {'Bin: '} + writecommand(25,330); {Bold Italic} + writeinfo(infobin); + end; {then..begin} + +@ +@= + writecommand(9,14*SPsPerPt); {VMF 14pt} + if infoid <> 'NA' + then begin + writecommand(11,30*SPsPerPt); {30pt indent} + writecommand(25,320); {Bold} + write8600rec('4944231e'xc); {'ID: '} + writecommand(25,330); {Bold Italic} + writeinfo(infoid); + end; {then..begin} +@ +@= + writecommand(11,250*SPsPerPt); {indent for job length} + writecommand(25,320); {BOLD} + write8600rec('4a6f621e'xc); {'Job '} + write8600rec('4c656e677468231e'xc); {'Length: '} + writecommand(25,330); {Bold Italic} + job_len_conv := strconv(job_length); + for inx := 1 to 5 + do write8600rec(str(chr + (ordx[job_len_conv[inx]]))); + write8600rec('1e696e63686573'xc); {' inches'} + writecommand(11,20*SPsPerPt); {get ready for DSN} + +@ +@= + writecommand(9,16*SPsPerPt); {VMF 16pt} + writecommand(25,320); {Bold} + write8600rec('46696c656e616d65231f'xc); {'Filename: '} + writecommand(25,330); {Bold Italic} + parmvalue := real_filename; + writeinfo(parmvalue); + +@ +@= + writecommand(11,155*SPsPerPt); {155pt indent} + writecommand(25,320); {Bold} + write8600rec('50616765731e'xc); {'Pages '} + write8600rec('536574231e1e'xc); {'Set: '} + writecommand(25,330); {Bold Italic} + pages_conv := strconv(pages_set); + for inx := 1 to 5 + do write8600rec(str(chr(ordx + [pages_conv[inx]]))); + writecommand(11,265*SPsPerPt); {get ready for Tape \#} + +@ +@= + writecommand(25,320); {Bold} + write8600rec('546170651e'xc); {'Tape '} + writecommand(20,2); {aux. char. set} + write8600rec('72'xc); {'\#'} + writecommand(20,1); {pri. char. set} + write8600rec('231e1e1e1e'xc); {': '} + postam_found := true; + writecommand(25,330); {bold italic} + + +@ The information procedure reads the billing information from an outside +file called the |addrfile|, and sends that information to the +|setaccountbox| procedure. It also writes the information to another file +called the |infofile|. + +@= +@! notfatal = false;@/ + +@ +@= +@!addrline : text; +@!infofile : text; +@^system dependencies@> +@!resource_info : string(256); +@^system dependencies@> +@!str1 : string(256); +@^system dependencies@> +@!str2 : string(256); +@!minimum_width : integer;@/ + +@ +@p @^system dependencies@> +procedure information; + var + int :integer; + inx :integer; + infoname :string(30); + infophone :string(14); + infodelivery :string(10); + infozip :string(10); + infobin :string(8); + infoid :string(22); + infoprocedure :string(4); + infobudget :string(20); + tempbool :boolean; + begin + @ + @@/ + @ + @ + end; {information} + +@ +@= + infozip := 'NA'; + infoid := 'NA'; + infobin := 'NA'; + infoprocedure := 'NA'; + infobudget := 'NA'; + +@ +@= + termin(addrline); + readln(addrline,resource_info); + close(addrline); + +@ +@= + rewrite(infofile,'NAME=' ccat filename ccat '.INFOFILE.*'); + while length(resource_info) > 0 do begin + inx := index(resource_info,':'); + if inx < 1 + then begin + errstr := resource_info; + error(28,notfatal,0); + end + else begin + str1 := substr(resource_info,1,inx-1); + resource_info := ltrim(substr(resource_info,inx+1)); + inx := index(resource_info,':'); + if inx = 0 + then begin + str2 := resource_info; + resource_info := ''; + end + else begin + int := inx - 1; {no sense starting at a colon:} + tempbool := false; + repeat + if substr(resource_info,int,1) = ' ' + then tempbool := true + else int := int - 1; + until tempbool; {which means we found a blank} + str2 := trim(substr(resource_info,1,int-1)); + resource_info := substr(resource_info,int+1); + end; + str1 := allcaps(ltrim(trim(str1))); + str2 := allcaps(ltrim(trim(str2))); + if str1 = 'NAME' then + infoname := str2 + else if str1 = 'PHONE' then + infophone := str2 + else if str1 = 'PROCEDURE_NUMBER' + then infoprocedure := str2 + else if str1 = 'BUDGET_PROJECT' + then infobudget := str2 + else if str1 = 'PICKUP' then + infodelivery := str2 + else if str1 = 'CAMPUS_ZIP' then + infozip := str2 + else if str1 = 'BIN' then + infobin := str2 + else if str1 = 'ID' then + infoid := str2 + else begin + errstr := resource_info; + error(28,notfatal,0); + end + end; + end; + +@ +@= + setaccountbox(infoname,infophone,infodelivery,infozip, + infobin,infoid); + writeln(infofile,infoname); + writeln(infofile,infophone); + writeln(infofile,infoprocedure); + writeln(infofile,infobudget); + writeln(infofile,infodelivery); + writeln(infofile,infozip); + writeln(infofile,infoid); + writeln(infofile,infobin); + writeln(infofile,job_length); + writeln(infofile,pages_set); + writeln(infofile,minimum_width); + writeln(infofile,real_filename); + +@* End of File procedures. +At the end of the \TeX DVI file is a postamble command, when that +command is encountered |readpostamble| and |post_amble| are called. + +@ The second procedure called but first listed is the |post_amble| +procedure, it calls the |information| procedure and writes the job +length and number of pages to the terminal. + +@= +@!num_of_pages : integer; +@^system dependencies@> +@!job_type : string(6); + +@ +@p procedure post_amble; + begin + @ + @@/ + @ + end; {Postamble} + +@ +@= + if dumpin then writeln(dumpout, + 'PST -- post-amble: End of Run'); + doingpages := true; + writecommand(11,0); {Move to left col.} + writecommand(9,30.0*SPsPerPt); {VMF 30 pts} + information; + +@ +@= + writeln; + writeln('Total length of run = ', + galley_length:9:1,' pts.'); + writeln(' = ', + galley_length/72.0:9:1,' inches.'); + writeln(' = ', + num_of_pages:9,' pages.'); + +@ +@= + job_length := round(galley_length/72.0); + pages_set := num_of_pages; + job_type := 'TeX'; + +@ This second procedure is called first and reads the final job +information for the file. Things like job length, widest page, +tallest page are set and the information sent to |post_amble|. + +@= +@!byte : integer;@/ +@!width : real;@/ +@!even_page_margin : real;@/ +@!odd_page_margin : real;@/ +@!totalpg : integer;@/ + +@ +@p procedure readpostamble; +var + int :integer;@/ + inx :integer;@/ +begin + job_length := round(galley_length / 72.0);@/ + pages_set := num_of_pages;@/ + for inx := 1 to 3 do byte := readinteger(4); + byte := readinteger(4); {Get magnification}@/ + if dumpin + then writeln(dumpout, + '** Font magnification = ',byte/1000.0:3:1); + writeln; + writeln('Tallest page is ',readinteger(4)/SPsPerPt/72.0:2:1, + ' inches.'); + width := readinteger(4) / SPsPerPt / 72.27; + width := max(width,put_width,even_page_margin/72.27, + odd_page_margin/72.27); + writeln('Widest page is ',width:2:1,' inches.');@/ + width := width + 0.31; {5/16" on the left that cannot be used.} + if width < 8.0 then int := 8 + else int := 12; + minimum_width := int; + writeln('The smallest paper you can use is ',int:2,'"'); + totalpg := 9999; + post_amble; + if galley_length = 0 then begin + writeln('Error!! No pages set. '); + setretcode(12); + end; + end; {readpostamble} + +@* Conversion Functions. +The following two functions will convert strings to integers +(|whole_value|) or to real numbers (|decimal_value|). + +@^system dependencies@> +@p function whole_value(str1 :string(10)) :integer; +var + inx, inz : integer;@/ + divisor : real;@/ + number : real;@/ +begin + number := 0; + inx := index(str1,'-'); + if inx > 0 + then begin + divisor := (-1 * 0.1); + str1 := substr(str1,2); + end {then..begin} + else divisor := 0.1; + for inz := 0 to (length(str1)-1) do begin + divisor := divisor * 10.0; + number := number + ((ordx[str1[length(str1) - inz]] - + ordx['0']) * divisor); + end; + whole_value := round(number); +end; {|whole_value|} + +@ +@^system dependencies@> +@p function decimal_value(str2 :string(40)): real; +var + inx, inz : integer; + divisor : real; + str3 : string(30); + number : real; +begin + number := 0.0; + inx := index(str2, '.');@/ + @ + @@/ + @ + decimal_value := number; + end; {|decimal_value|} + +@ +@= + if inx = length(str2) then begin {read left side of decimal} + str2 := substr(str2,1,inx-1); + end +@ +@= + else begin + if inx > 0 then begin + str3 := substr(str2,inx+1); + divisor := 1.0; + for inz := inx+1 to length(str3) do begin + divisor := divisor * 0.1; + number := number + + (ordx[str3[inz]] - ordx['0'] * divisor); + end; + if inx = 1 then return; + str2 := substr(str2,1,inx-1); + end; + end; + +@ +@= + divisor := 0.1; + for inz := 0 to (length(str2)-1) do begin + divisor := divisor * 10.0; + number := number + ((ordx[str2[length(str2) - inz]] - + ordx['0']) * divisor); + end; +@* Parm-reading procedure. +This procedure reads and parses the parameters entered with the +call to this program; it is expecting the following form of some +sort: + +\centerline{\tt tex8600 fn ft (1stpg \#ofpgs) realfn lrecl} + +@= +@^system dependencies@> +@!filetype : string(8); +@!firstpg : integer; + +@ +@p @^system dependencies@> +procedure readparms; +var + namepage : string(256); + temp : integer; + temp2 : integer; + temp3 : integer; + str1 : string(10); + lrecl : string(8); + +begin + namepage := ltrim(trim(parms)); + @ + @ + @ + end; {readparms} + +@ + @= + temp := index(namepage,' '); + temp2 := index(namepage,')'); + if temp2 > 0 + then @ + else error(10,fatal,0); + filename := substr(namepage,1,temp-1); + +@ + @= + begin + temp3 := index(substr(namepage,temp2+2),' '); + if temp3 = 0 + then begin + real_filename := substr(namepage,temp2 + 2); + lrecl := ''; + end + else begin + real_filename := substr(namepage,temp2 + 2,temp3-1); + lrecl := substr(namepage,temp2+2+temp3); + end; + if lrecl = '' + then pv_dvi_lrecl := pc_dvi_lrecl + else readstr(lrecl,pv_dvi_lrecl); + end + +@ + @= + namepage := substr(namepage,temp+1,(temp2-temp)); + temp := index(namepage,'('); + if temp = 1 + then begin + filetype := 'DVI'; + if length(namepage) > 1 + then begin + namepage := substr(namepage,temp+2); + temp := index(namepage,' '); + if temp > 0 + then begin + str1 := substr(namepage,1,temp-1); + firstpg := whole_value(str1); + str1 := substr(namepage,temp+1); + if length(str1) > 0 then + totalpg := whole_value(str1); + end {then..begin} + else begin + str1 := substr(namepage,1); + firstpg := whole_value(str1); + end {ELSE..begin} + end {then..begin} + end {then..begin} + +@ + @= + else begin + filetype := substr(namepage,1,temp-2); + namepage := ltrim(substr(namepage,temp+1)); + temp := index(namepage,')'); + if temp > 1 + then begin + temp2 := index(namepage,' '); + str1 := substr(namepage,1,temp2-1); + if str1='*' + then firstpg := -99999 + else firstpg := whole_value(str1); + str1 := substr(namepage,temp2+1,(temp-temp2)-2); + if str1='*' + then totalpg := 99999 + else totalpg := whole_value(str1); + end; {then..begin} + end; {ELSE..begin} + +@* Print Position Procedures. +The next three procedures are called whenever there is to be a +vertical or horizontal move of any kind. + +@ +@= +@!movetype = (horiz,vert); + +@ This procedure will print the horizontal or vertical + distance that the 8600 is to move the paper. + +@p procedure figuredir(typ :movetype; + amt :integer); +var + temp :real; +begin + if dumpin and print_hmove then begin + writeln(dumpout); + write(dumpout,' *** move '); + end; + @ + @ + @ + @ + @ + @ + if dumpin and print_hmove + then temp := getpts(abs(amt)); + end; {FigureDir} + +@ +@= + if typ = horiz + then if amt >= 0 + +@ +@= + then begin + if dumpin and print_hmove then write(dumpout,'right '); + writecommand(11,stack[stacktop].H); + end + +@ +@= + else begin + if dumpin and print_hmove then write(dumpout,'left '); + writecommand(11,stack[stacktop].H); + end + +@ + @= + else if amt >= 0 + +@ + @= + then begin + if dumpin then write(dumpout,'down '); + writecommand(9,amt); + end + +@ + @= + else begin + if dumpin then write(dumpout,'up '); + writecommand(10,abs(amt)); + end; + +@ +@= +@!hmove_pending : boolean; +@!hmove_amt : integer; +@!vmove_pending : boolean; +@!vmove_amt : integer; +@!length_of_take : real; + +@ This procedure is invoked in the main program each + time something is actually to be set (such as a + character). If there is a vertical or horizontal + move pending, they will be set here, before continuing + on to the next set command (such as set character). + +@p procedure checkmoves; +var + tempbool :boolean; +begin + if hmove_pending then begin + figuredir(horiz,hmove_amt); + hmove_amt := 0; + hmove_pending := false; + print_hmove := true; + end; {then..begin} + if vmove_pending then begin + figuredir(vert,vmove_amt); + tempbool := dumpin; + dumpin := false; + if doingpages=true + then begin + galley_length := galley_length + getpts(vmove_amt); + length_of_take := length_of_take + getpts(vmove_amt); + end; + dumpin := tempbool; + vmove_amt := 0; + vmove_pending := false; + end; {then..begin} + end; {checkmoves} + +@ +@= +@!font8600 : 0..2550; +@!ptsize : 0..255; +@!different_setsize : boolean; +@!setsize : 0..255; + +@ This procedure sets the page environment to be that of ``font" + +@p procedure establish_font_parameters(font :integer); +begin + @ + @ + @ +end; {|establish_font_parameters|} + +@ +@= + with a8600fontrec[fontenviron[font].fontindex] + do begin + if (fontno8600 <> font8600) and (fontno8600 <> 0) + then begin + writecommand(25,float(fontno8600)); + font8600 := fontno8600; + end; {then..begin} + end; {WITH..begin} + +@ +@= + if fontenviron[font].pointsize <> ptsize + then begin + ptsize := fontenviron[font].pointsize; + writecommand(7,float(ptsize)); + end; {then..begin} + +@ +@= + if different_setsize + then writecommand(8,float(setsize)); + + +@* ``Special'' Procedures. +The next few procedures enable the 8600 to do ``special'' things +like setting line footnotes, or slant type, or expanded type, etc. + +@ +@= +@! maxNote = 100;@/ + +@ This procedure establishes the line number reference in +|footnote_line_array| with the line number in which a line note was +called. + +@= +@!foot_area_ref : 0..255; +@!footnote_line_array : packed array[0..maxNote] of 0..255; +@!foot_line_ref : 0..255; +@!line_note_pending : boolean; +@!line_ref_pend_seq : 0..255; +@!counting_lines : boolean; +@!number_of_lines : integer; + +@ +@p procedure line_footnote_reference; +begin + if not counting_lines then begin + incr(foot_area_ref); + line_note_pending := true; + line_ref_pend_seq := 1; + end + else begin + incr(foot_line_ref); + footnote_line_array[foot_line_ref] := number_of_lines + 1; + end; + end; {|line_footnote_reference|} + +@ +@= +@! linefont = 256;@/ +@! linenumfont = 76;@/ + +@ +@= +@^system dependencies@> +@!special : string(40); +@!line_interval : 0..255; +@!margin_note : boolean; +@!numbering_lines : boolean; +@!printing_numbers : boolean; +@!pop_level : integer; + +@ This procedure reads and interprets all the \\special commands +entered in the \TeX\ file. Its primary purpose is for reading the +the instructions pertaining to linenotes. + +@p @^system dependencies@> +procedure readspecials; +var + int : integer; + inx : integer; + temp : string(40); + temp2 : string(40); + temp3 : string(40); + temp4 : string(40); + +begin + @ + if temp = 'EVEN_PAGE_MARGIN' + then begin + temp := (substr(temp2, 1, length(temp2)-2)); + even_page_margin := decimal_value(temp); + end + else if temp = 'ODD_PAGE_MARGIN' + then begin + temp := (substr(temp2, 1, length(temp2)-2)); + odd_page_margin := decimal_value(temp); + end + else if temp = 'LINE_NUMBER_FONT' + @ + else if temp = 'POP_LEVEL' + then pop_level := whole_value(temp2) + else if temp = 'LINE_INTERVAL' + then line_interval := whole_value(temp2) + else if temp = 'NUMBERING_LINES' + then begin + @ + then numbering_lines := true + else numbering_lines := false; + end {then..begin} + else if temp = 'COUNTING_LINES' + then begin + @ + then counting_lines := true + else counting_lines := false; + end {then..begin} + else if (temp = 'MARGINNOTE') + then margin_note := true + else if temp = 'PRINTING_NUMBERS' + then begin + @ + then printing_numbers := true + else printing_numbers := false; + end {then..begin} + else if temp = 'LINE_FOOTNOTE_REFERENCE' + then line_footnote_reference; + end; {then..begin} + end; {ReadSpecials} + +@ This gives default values for even and odd page margins that +will be reset if the user specified them in his file. It also reads +the special command. + +@= + int := index(special, '='); + if int > 0 + then begin + temp := trim(ltrim(substr(special, 1, int-1))); + temp2 := substr(special, int+1); + +@ If the special command is a Line Number Font, the command must +be further broken down to find the point size, as well as the name. + + @= + then begin + int := index(temp2, ' '); + if int > 0 + then begin + @ + end + else begin + @ + end; + fontname := allcaps(temp3); + readfontinfo(linefont,linenumfont); + end + +@ A point size is given and that size must be sent along with the +name to the |readfontinfo| procedure. + +@= + temp3 := trim(ltrim(substr(temp2, 1, int-1))); + temp4 := substr(temp2, int+1); + with fontenviron[linefont] do begin + inx := whole_value(temp4); + pointsize := inx; + designsize := inx; + end; + +@ No point size is given, so the default point size will be used +(ten-point). + +@= + temp3 := trim(ltrim(substr(temp2, 1, int-1))); + inx := 10; + with fontenviron[linefont] do begin + pointsize := inx; + designsize := inx; + end; + +@ The boolean value module is used when the response to the +special command is true or false. + +@= + temp2 := allcaps(ltrim(trim(temp2))); + if temp2 = 'TRUE' + +@ This procedure is used in conjunction with the 0 font and + handles the special functions codes like slant, + reverse type, set size, etc. + +@p procedure call_specials_routine(funcname :integer); +var + inx :integer; + num :integer; +begin + if dumpin then writeln(dumpout,'Function [',funcname:3,'] '); + if funcname = 10 + then counting_lines := true + else if funcname = 11 + then counting_lines := false + else if funcname = 12 + then printing_numbers := true + else if funcname = 13 + then printing_numbers := false + else if funcname = 14 + then line_footnote_reference; + if (funcname=14) or (funcname=13) or (funcname=12) or + (funcname=11) or (funcname=10) then return; + with stack[stacktop], + a8600fontrec[fontenviron[currfont].fontindex], + fontenviron[currfont] do begin + with a8600chars[funcname] do begin + for inx := 0 to num + do with comarray[inx] + do writecommand(comcode,float(argument)); + end; {DO..begin} + end; {DO..begin} + end; {|call_specials_routine|} + +@* Set the characters procedures. +The first procedure is called from the second one if a line +number is to be printed. +The second procedure actually sets an individual character. +First it checks +to make sure the character is a real one and not from the zero or +specials' font, then +it checks to see if a move needs to be made before the character is +printed. It makes the move and then +checks to see if a line number is to be printed; if it does, it prints +the line number, if it doesn't it sets the character. + +@= +@!points : real; +@!we_add_the_character_width : boolean; + +@ When \TeX\ formats the footnotes entered with a linenote reference +command, it simply inserts two zeros for the linenumber. This procedure +replaces those two zeros with the line number in which the linenote +reference was called. + +@p procedure setline_footnote_ref(font :integer); +var + temp :integer; + inx :integer; + tempreal :real; + return_ps :boolean; + return_ss :boolean; +begin +@ +@ +@ +end; {|setline_footnote_ref|} + +@ +@= + if line_ref_pend_seq = 1 + then temp := footnote_line_array[foot_area_ref] div 10 + else temp := footnote_line_array[foot_area_ref] mod 10; + with fontenviron[font], stack[stacktop] do + H := H + round(pointsize * + a8600fontrec[fontindex].a8600chars[48].charwidth + * SPsPerPt); + if (line_ref_pend_seq = 1) and (temp = 0) then begin + hmove_pending := true; + line_ref_pend_seq := 2; + return; + end; + +@ +@= + with stack[stacktop], a8600fontrec[fontenviron[font].fontindex], + fontenviron[font] do begin + with a8600chars[48 + temp] do begin + @ + end; {WITH..begin} + end; {WITH..begin} + +@ +@= + if line_ref_pend_seq = 1 then begin + line_ref_pend_seq := 2; + return; end + else begin + line_ref_pend_seq := 0; + line_note_pending := false; + return; end; + if line_note_pending + then begin + line_note_pending := false; + return; + end; + +@ The |setcharacter| procedure is the main procedure for setting +any and all characters, except the |line_footnote| references. + +@p procedure setcharacter(character :integer; + font :integer); +var + inx :integer; + tempreal :real; + temppt :integer; + tempbool :boolean; + return_ps :boolean; + return_ss :boolean; +begin + @ + checkmoves; + @ + @ + @ + end; {setcharacter} + +@ +@= +if font8600 = 0 then begin + call_specials_routine(character); + return; + end; {then..begin} +if dumpin and (hmove_pending or vmove_pending) + then tempbool := true + else tempbool := false; + +@ +@= + if line_note_pending and (character = 48) + then begin + setline_footnote_ref(font); + return; + end; + +@ +@= + if dumpin and tempbool then writeln(dumpout); + if dumpin + then if (character >= 32) and (character < 127) + then write(dumpout,chrx[character]) + else write(dumpout,'?<',character:3,'>'); + +@ +@= + return_ps := false; + return_ss := false; + with stack[stacktop], a8600fontrec[fontenviron[font].fontindex], + fontenviron[font] do begin + with a8600chars[character] do begin + if different_setsize + then temppt := trunc(float(setsize) / + 100.0 * pointsize) + else temppt := pointsize; + if we_add_the_character_width + then H := H + round(temppt * charwidth * SPsPerPt); + @ + end; {WITH..begin} + end; {WITH..begin} + +@ +@= +for inx := 0 to num do + with comarray[inx] do + if (comcode = 25) and (argument = -1) + then writecommand(25,fontno8600) + {Some commands need to be scaled by + the set size factor} + else if (comcode=9) or (comcode=10) or + (comcode = 27) or (comcode = 28) + then begin + points := float(pointsize) * + SPsPerPt * real_argument; + writecommand(comcode,points); + end {then..begin} + else if (comcode = 12) or (comcode = 13) + then begin + points :=float(pointsize) * real_argument; + writecommand(comcode,points); + end {then..begin} + else if comcode = 14 + then begin + tempreal := SPsPerPt * (getpts(H) + + (real_argument * pointsize)); + if we_add_the_character_width + then tempreal := tempreal - + round(pointsize*charwidth*SPsPerPt); + writecommand(14,tempreal); + end + else if comcode = 7 + then begin + writecommand(7,pointsize+float(argument)); + return_ps := true; + end + else if comcode = 8 + then begin + writecommand(8,designsize+float(argument)); + return_ss := true; + end + else writecommand(comcode,float(argument)); + if return_ss then writecommand(8,designsize); + if return_ps then writecommand(7,pointsize); + +@ +@= +@!size : integer; + +@ This next procedure sets the line number if that option is used. +It will print the line number according to +|odd_page_margin| or |even_page_margin|. The number will + be set in the |line_number_font|. The line numbers + will print every five lines by default or according to +|line_interval|, and begin at 1 on each page. + +@p procedure print_line_number; +var + j :integer; +begin + incr(number_of_lines); + if not printing_numbers then return; + if (number_of_lines <> ((number_of_lines div + line_interval) * line_interval)) + then return; {If this is not a line number divisible by + |line_interval|} + size := headernum div 2; + size := size * 2; + if even_page_margin = 0 then + even_page_margin := 50.8; + if odd_page_margin = 0 then + odd_page_margin := 407.7; + if size = headernum + then writecommand(11,even_page_margin*SPsPerPt) {H position} + else writecommand(11,odd_page_margin*SPsPerPt); {H position} + establish_font_parameters(linefont); + size := number_of_lines; + if dumpin then begin + writeln; + write(dumpout,'*** set line number '); + end; + we_add_the_character_width := false; + if size >= 10 + then begin + j := size div 10; + setcharacter(j+48,linefont); {set 1st digit} + size := size -(j * 10); + end + else with +a8600fontrec[fontenviron[linefont].fontindex].a8600chars[48] + do {set nothing, but move the width of a "0"} + writecommand(27, fontenviron[linefont].pointsize * + charwidth * SPsPerPt); + setcharacter(size+48,linefont); {+48 for ASCII code} + we_add_the_character_width := true; + if dumpin then writeln(dumpout); + establish_font_parameters(currfont); {return to active font} + end; {|print_line_number|} + +@* Initialization procedures. +These next few procedures, get the whole thing started by assigning +values to all necessary items. + +@= +@! version = 2;@/ +@! level = 7;@/ + +@ +@= +@!takenum : integer; +@!currpage : integer; +@!prevpage : integer; + +@ +@p @^system dependencies@> +procedure initialize8600; +begin + @ + @ + @@/ + @ + @ + @ + end; {initialize8600} + +@ + @= + firstpg := -99999; + totalpg := 99999; + doingpages := false; + +@ + @= + termout(output); + readparms; + reset(input,'NAME=' ccat filename ccat '.' ccat filetype ccat '.*'); + writeln('******* tex8600 Version ',version:2,' Level ', + level:3,' *******'); + rewrite(setfile,'LRECL=1029,RECFM=F,NAME=' ccat filename ccat +'.TAPEFILE.*'); + +@ + @= + with fontenviron[-1] do begin + pointsize := 10; + designsize := 1; + fontindex := 0; + end; {WITH..begin} + +@ +@= + currfont := -1; + currpage := 0; + prevpage := -99999; + ptsize := 0; + setsize := 100; + +@ +@= + counting_lines := false; + margin_note := false; + numbering_lines := false; + printing_numbers := false; + line_note_pending := false; + line_ref_pend_seq := 0; + even_page_margin := 0.0; + odd_page_margin := 0.0; + line_interval := 5; + pop_level := 3; + bufferlen := 0; + +@ +@= + takenum := -1; + num_of_pages := 0; + length_of_take := 0; + dumpin := false; + +@ This procedure initializes values that pertain to the overall run. + +@= +@!last_command : 0..255; +@!outputpending : boolean; +@!page_counter : integer; +@!second_to_last_cmnd : 0..255; + +@ +@p procedure init_run; +begin + initialize8600; + @ + count := 0; + fileend := false; + galley_length := 0; + hmove_amt := 0; + hmove_pending := false; + last_command := 0; + outputpending := false; + page_counter := 0; + postam_found := false; + put_width := 0.0; + print_hmove := true; + second_to_last_cmnd := 0; + stacktop := 1; {initialize stack} + vmove_amt := 0; + vmove_pending := false; + we_add_the_character_width := true; + @ + end; {|init_run|} + +@ + @= + if dumpin then begin + writeln(dumpout); + writeln(dumpout); + writeln(dumpout,'********************************************'); + writeln(dumpout,'byte:code meaning'); + writeln(dumpout); + end; + +@ +@= + with stack[stacktop] do begin + H := 0; + V := 0; + W := 0; + X := 0; + Y := 0; + Z := 0; + end; {WITH loop} + +@* Rule-setting Procedures. +The |setrule| procedure is called when the horizontal position +is to be advanced. |putrule| is called when the horizontal position +is not to be advanced. + +@ This procedure sets a rule. + +@= +@!ruleht : integer; +@!rulewidth : integer; +@!height : real; +@!fudge : real; + +@ +@p procedure drawrule; +begin + checkmoves; + points := getpts(ruleht); + height := points * SPsPerPt; + if points <> 0 then begin + writecommand(13,points); + points := getpts(rulewidth); + writecommand(12,points); + if points <> 0 then begin + writecommand(10,height); {Move back the rule height} + writecommand(14,stack[stacktop].H); {set it} + writecommand(9,height); {move down after setting} + writecommand(11,stack[stacktop].H); {set it} + end; {then...begin} + end;{then..begin} +end; + +@ Rule and increase the value of H (horizontal position). + +@p procedure setrule; +begin + drawrule; + hmove_amt := rulewidth; + hmove_pending := true; + stack[stacktop].H := stack[stacktop].H + rulewidth; +end; {setrule} + +@ Rule and do not increase the value of H (horizontal position). + +@p procedure putrule; +begin + drawrule; +end; {putrule} + +@* Page procedures. +The |doendofpage| procedure is called at the end of each page and the +|dobeginningofpage| procedure at the beginning of each page. + +@ This procedure is entirely for the user's information. It prints +out to the terminal the number of pages set in the job. If there are +are more than 8 page numbers a carriage return is thrown. + +@p procedure doendofpage; +begin + incr(page_counter); + if page_counter >= 8 then begin + writeln; + page_counter := 0; + end; + if doingpages=true + then begin + decr(totalpg); + if totalpg = 0 + then begin + writeln('<',currpage:1,'> '); + return; + end {then..begin} + else write('<',currpage:1,'> '); + end; + end; + +@ This procedure does all of the 8600 initialization + for the start of each new page. + +@= +@! indent=' ';@/ +@! nullstring = '00000000000000000000'xc;@/ + +@ +@= +@!int : integer; +@!newtake : boolean; + +@ +@p procedure dobeginningofpage; +var +inx :integer; +begin + @ + @ + @ + @ + if doingpages=true + then begin + if (currpage = firstpg) or (int = -1) + or (length_of_take >= 5184) + then begin + @ + end {then..begin} + else begin + @ + end; {ELSE..begin} + with fontenviron[currfont] do begin + if int = -1 then begin + @ + end + else begin + @ + @ + end; {ELSE..begin} + end;{WITH..begin} + incr(num_of_pages); + end; {then..begin} +end; {DoBeginningOfPage} + +@ +@= + foot_line_ref := 0; + foot_area_ref := 0; + number_of_lines := 0; + newtake := false; + with stack[stacktop] do begin + H := 4718592; + V := 0; {start 1" over and 1" down} +vmove_amt := 4718592; +vmove_pending := true; +hmove_pending := true; + end; {WITH ... do begin} + +@ +@= + int := readinteger(4); + if dumpin then writeln(dumpout,'BOP -- Beginning Of Page ',int); + headernum := int; + prevpage := currpage; + currpage := int; + +@ +@= +if (firstpg = -99999) + then + doingpages := true; +if not doingpages +then + if ((firstpg >= 0) and (firstpg <= currpage)) + or ((firstpg < 0) and (firstpg >= currpage)) + then + doingpages := true; +if (totalpg < 1) + then + doingpages := false; + +@ +@= + for inx := 1 to 9 do begin + int := readinteger(4); + if dumpin then writeln(dumpout,'Counter ',inx:1,' = ',int); + end; {FOR ... do begin} + int := readinteger(4); + if dumpin + then writeln(dumpout,indent,'previous page pointer = ',int); + +@ +@= + incr(takenum); + length_of_take := 0; + if (int = -1) or (currpage = firstpg) {On first page} + then writeheader + else begin + inx := headernum; + headernum := 88888; + repeat {pad end of record with hex FF} + write8600rec(allzeros); + until bufferlen <= 5; + headernum := inx; + writecommand(1,0.0); {End of Take} + repeat {pad record with '00'xc} + write8600rec(allzeros); + until bufferlen <= 5; + end; + write8600rec(nullstring); {10 hex zeros} + writecommand(0,takenum); {Start of Take} + newtake := true; + +@ +@= + repeat {pad end of record with hex FF} + write8600rec(allzeros); + until bufferlen <= 5; + +@ +@= + different_setsize := false; + in_slant_mode := false; + in_reverse_type := false; + +@ +@= + writecommand(25,font8600); + writecommand(7,pointsize); + if different_setsize + then writecommand(8,float(setsize)); + if in_slant_mode + then writecommand(15,48); + if in_reverse_type + then writecommand(3,1); + +@ +@= + writecommand(11,0); {Move to left col.} + writecommand(9,12.0*SPsPerPt); {VMF 12 pts} + writecommand(12,30.0); {set width of rule} + writecommand(13,1.5); {set depth of rule} + writecommand(14,0); {page separator} + writecommand(11,0); {quad left} + writecommand(9,12.0*SPsPerPt); {VMF 12 pts} + galley_length := galley_length + 24; + +@* MAIN PROGRAM. + +@= +@!tempstack : stackrec; +@!inx : integer; +@!temp : integer; +@!temp2 : integer; +@!put_width : real; +@!realtemp : real; + +@ +@p begin {MAIN} + {=== Initialize ===} + init_run; + while not postam_found do begin + savecount := count; {don't change it in readinteger} + byte := readinteger(1); {1-byte code} + if printing_numbers + then if ((byte > 128) and (byte < 218)) then begin + second_to_last_cmnd := last_command; + last_command := byte; + end; {then..begin} + if byte < 128 then begin {This is a character} + outputpending := true; + setcharacter(byte,currfont); + end {then..begin} + else if (byte>=250) and (byte<=255) + then error(6,fatal,byte) + else case byte of + 128: @@/ + 129: @@/ + 130: @@/ + 131: @@/ + 132: @@/ + 133: @@/ + 134: @@/ + 135: @@/ + 136: @@/ + 137: @@/ + 138: do_nothing; {NOP} + 139: dobeginningofpage;{BOP} + 140: doendofpage; {EOP} + 141: @@/ + 142: @@/ + 143: @@/ + 144: @@/ + 145: @@/ + 146: @@/ + 147: @<``W'' horizontal move@>@/ + 148..151: @<``W''1-4 horizontal move@>@/ + 152: @<``X'' horizontal move@>@/ + 153..156: @<``X''1-4 horizontal move@>@/ + 157..160: @@/ + 161: @<``Y'' vertical move@>@/ + 162..165:@<``Y''1-4 vertical move@>@/ + 166: @<``Z'' vertical move@>@/ + 167..170: @<``Z''1-4 vertical move@>@/ + 171..234: @@/ + 235: @@/ + 236: @@/ + 237: @@/ + 238: @@/ + 239: @@/ + 240: @@/ + 241: @@/ + 242: @@/ + 243: @@/ + 244: @@/ + 245: @@/ + 246: @@/ + 247: @@/ + 248: readpostamble; {Post-amble}@/ + 249: do_nothing; {Post-post-amble} + otherwise writeln('oops...forgot about ',byte:12); + end;{CASE} + end;{while} +end. + +@ +@= + begin + int := readinteger(1); + we_add_the_character_width := true; + hmove_pending := true; + setcharacter(int,currfont); + end; + +@ +@= +begin + int := readinteger(2); + we_add_the_character_width := true; + hmove_pending := true; + setcharacter(int,currfont); + end; + +@ + @= + begin + int := readinteger(3); + we_add_the_character_width := true; + hmove_pending := true; + setcharacter(int,currfont); + end; + +@ +@= +begin + int := readinteger(4); + we_add_the_character_width := true; + hmove_pending := true; + setcharacter(int,currfont); + end; + +@ +@= +begin + ruleht := readinteger(4); + rulewidth := readinteger(4); + setrule; + end; + +@ +@= +begin + int := readinteger(1); + we_add_the_character_width := false; + hmove_pending := true; + setcharacter(int,currfont); + we_add_the_character_width := true; + end; + +@ +@= +begin + int := readinteger(2); + we_add_the_character_width := false; + hmove_pending := true; + setcharacter(int,currfont); + we_add_the_character_width := true; + end; + +@ +@= +begin + int := readinteger(3); + we_add_the_character_width := false; + hmove_pending := true; + setcharacter(int,currfont); + we_add_the_character_width := true; + end; + +@ +@= +begin {Put Horizontal Character} + int := readinteger(4); + we_add_the_character_width := false; + hmove_pending := true; + setcharacter(int,currfont); + we_add_the_character_width := true; + end; + +@ +@= +begin + ruleht := readinteger(4); + rulewidth := readinteger(4); + realtemp := rulewidth / SPsPerPt / 72.27; + putrule; + end; + +@ +@= +begin + tempstack := stack[stacktop]; + stacktop := stacktop + 1; + stack[stacktop] := tempstack; + with stack[stacktop] do begin + end; {WITH..begin} + end; + +@ +@= +begin + tempstack := stack[stacktop]; + inx := stacktop; + stacktop := stacktop - 1; + with stack[stacktop] do begin + hmove_pending := false; + hmove_amt := 0; + print_hmove := true; + vmove_amt := vmove_amt + V - tempstack.V; + vmove_pending := true; + if margin_note and counting_lines + then margin_note := false + else if numbering_lines and counting_lines + and (inx = pop_level) + then print_line_number; + writecommand(11,H); {HPOS to left margin} + end; {WITH .. do begin} +with tempstack do begin +if put_width = 12.0 then + else if H / SPsPerPt > 554 then + put_width := 12.0; + end; + end; {POP} + +@ +@= +begin + int := readinteger(1); + with stack[stacktop] do begin + hmove_amt := hmove_amt + int; + hmove_pending := true; + h := h + int; + end; {DO..begin} + end; + +@ +@= +begin + int := readinteger(2); + with stack[stacktop] do begin + hmove_amt := hmove_amt + int; + hmove_pending := true; + h := h + int; + end; {DO..begin} + end; + +@ +@= +begin + int := readinteger(3); + with stack[stacktop] do begin + hmove_amt := hmove_amt + int; + hmove_pending := true; + h := h + int; + end; {DO..begin} + end; + +@ +@= +begin + int := readinteger(4); + with stack[stacktop] do begin + hmove_amt := hmove_amt + int; + hmove_pending := true; + h := h + int; + end; {DO..begin} + end; + +@ +@<``W'' horizontal move@>= +begin + with stack[stacktop] do begin + hmove_amt := hmove_amt + W; + hmove_pending := true; + H := H + W; + end; {WITH..begin} + end; {"W" amount change} + +@ +@<``W''1-4 horizontal move@>= + begin + size := 4 + (byte - 151); + int := readinteger(size); + points := getpts(int); + hmove_amt := hmove_amt + int; + hmove_pending := true; + with stack[stacktop] do begin + W := int; {int is in scalepts} + H := H + W; + end; {WITH..begin} + end; {"W" change} + +@ +@<``X'' horizontal move@>= +begin + with stack[stacktop] do begin + hmove_amt := hmove_amt + X; + hmove_pending := true; + H := H + X; + end; {WITH..begin} + end; {"X" amount move} + +@ +@<``X''1-4 horizontal move@>= + begin + size := 4 + (byte - 156); + int := readinteger(size); + points := getpts(int); + hmove_amt := hmove_amt + int; + hmove_pending := true; + with stack[stacktop] do begin + X := int; ; {saveamt.} + H := H + X; {record the move} + end; {WITH..begin} + end; {"X" amount change} + +@ +@= +begin + size := 4 + (byte - 160); + int := readinteger(size); + points := getpts(int); + with stack[stacktop] do begin + vmove_amt := vmove_amt + int; + vmove_pending := true; + V := V + int; + end; {WITH..begin} + end; {"Down" amount move} + +@ +@<``Y'' vertical move@>= +begin + with stack[stacktop] do begin + vmove_amt := vmove_amt + Y; + vmove_pending := true; + V := V + Y; + end; {WITH..begin} + end; {"Y" amount move} + +@ +@<``Y''1-4 vertical move@>= + begin + size := 4 + (byte - 165); + int := readinteger(size); + points := getpts(int); + vmove_amt := vmove_amt + int; + vmove_pending := true; + with stack[stacktop] do begin + Y := int; {save amt.} + V := V + Y; + end; {WITH..DO begin} + end; {"Y" amount move} + +@ +@<``Z'' vertical move@>= +begin + with stack[stacktop] do begin + vmove_amt := vmove_amt + Z; + vmove_pending := true; + V := V + Z; + end; {WITH..begin} + end; {"Z" amount move} + +@ +@<``Z''1-4 vertical move@>= + begin + size := 4 + (byte - 170); + int := readinteger(size); + points := getpts(int); + vmove_amt := vmove_amt + int; + vmove_pending := true; + with stack[stacktop] do begin + Z := int; {save amt.} + V := V + Z; + end; {WITH..begin} + end; {"Z" amount move} + +@ +@= + begin + currfont := byte - 171; + establish_font_parameters(currfont); + end; + +@ +@= +begin + currfont := readinteger(1); + establish_font_parameters(currfont); + end; + +@ +@= +begin + currfont := readinteger(2); + establish_font_parameters(currfont); + end; + +@ +@= +begin + currfont := readinteger(3); +{ |establish_font_parameters(currfont);|} + end; + +@ +@= +begin + currfont := readinteger(4); + { |establish_font_parameters(currfont);|} + end; + +@ +@= +begin + int := readinteger(1); + special := ''; + for inx := 1 to int do begin + temp := readinteger(1); + special := special ccat allcaps(str(chrx[temp])); + end; {DO..begin} + readspecials; + end; + +@ +@= +begin + int := readinteger(2); + special := ''; + for inx := 1 to int do begin + temp := readinteger(1); + special := special ccat allcaps(str(chrx[temp])); + end; {DO..begin} + readspecials; + end; + +@ +@= +begin + int := readinteger(3); + special := ''; + for inx := 1 to int do begin + temp := readinteger(1); + special := special ccat allcaps(str(chrx[temp])); + end; {DO..begin} + readspecials; + end; + +@ +@= +begin + int := readinteger(4); + special := ''; + for inx := 1 to int do begin + temp := readinteger(1); + special := special ccat allcaps(str(chrx[temp])); + end; {DO..begin} + readspecials; + end; + +@ +@= +begin + currfont := readinteger(1); + fontinfo; + end; + +@ +@= +begin + currfont := readinteger(2); + fontinfo; + end; + +@ +@= +begin + currfont := readinteger(3); + fontinfo; +end; + +@ +@= +begin + currfont := readinteger(4); + fontinfo; + end; + +@ +@= +begin + int := readinteger(1); + int := readinteger(4); + temp := readinteger(4); + temp2 := readinteger(4); + temp := readinteger(1); + for int := 1 to temp do + inx := readinteger(1); + end; + +@* INDEX. diff --git a/macros/text1/docs/readme.tex b/macros/text1/docs/readme.tex new file mode 100644 index 0000000000..90677f14b9 --- /dev/null +++ b/macros/text1/docs/readme.tex @@ -0,0 +1,209 @@ +% tb27textone.tex +\input tugboat.sty + +\font\bi=cmbxti10 + +\begingroup +\def\text#1{{\it\TeX T1}} + + +\title * {\bi\TeX T1} Goes Public Domain * +\author * Dean Guenther * +\address * Computer Service Center \\ + Washington State University \\ + Computer Science Building \\ + Pullman, WA 99164 * +\netaddress[\network{Bitnet}] *GUENTHER@WSUVM1* + +\article + +\text1 is a macro package for use with \plain{} and has been +available for purchase for several years. Beginning in January 1990, +\text1\ went into the \TeX\ public domain collection of macros. + +In 1983, a decision was made at Washington State University +to put time into creating a set of macros to be used with \TeX. +This macro set was to provide many of the functions found in \LaTeX: +multiple columns, table of contents, indexing\footnote{$^*$}{The +three different index styles illustrated in Appendix A in +\TUB~{\bf1}(1) can all be achieved with \text1's index.}, chapters, lists, +boxes, margin notes, etc. Yet there were to be two important differences: +\list[\numbered] +\item The {\tt PLAIN.TEX} commands would be able to be used in +\text1. +\item Modifying the \text1\ formats would be considerably easier than +modifying \LaTeX\ styles. +\endlist + +The resulting set of macros met the above criteria. One important +exception was that no attempt was made to give \text1\ a picture +environment such as was in \LaTeX. The documentation you may +purchase for \text1\ +consists of a 300 page Reference Manual and a 100 page Users Guide. + +\head * Changing the Formats * + +As an example of how easy it is to modify the \text1\ formats, if the +user wants to increase the bottom margin from 6 to 7 picas, they +can simply specify: +||\pageformat{\bottommargin{7pc}}|| +Or if you wanted your running head to contain the chapter title +left-justified and the page number right-justified on odd pages, and +the chapter title right-justified and the page number left-justified +on even pages, you could say: +\verbatim +\runningheadformat{ + \oddpages{\line{\lft{\chaptertitle} + \rt{\pagenumber}}} + \evenpages{\line{\lft{\pagenumber} + \rt{\chaptertitle}}} + } +\endverbatim + +For one last example, it is often desirable to change the text embedded +within macros. For example, by default if you say: +||\chapter{Introduction}|| +you would get ``Chapter 1'' at the top of the next page in bold, with +``Introduction'' centered below that. If you were using \text1\ in +Germany, you would probably prefer ``Kapitel'' instead of +``Chapter'', so you could change the chapter's format to say: +\verbatim +\chapterformat{ + \titleformat{\newpage + \centerline{% + \bf Kapitel \chapternumber} + \centerline{\bf\chaptertitle} + \vs{1\bl} + } + \incontents{yes}} +\endverbatim +Then in your text you would specify the introduction (first +chapter) as: +||\chapter{Einleitung}|| + +\head * Additional Products * + +Other products that came out of this pro\-ject and are now going into +the public domain are a typesetter driver for the Compugraphics 8600 +and additional fonts. + +\subhead * Typesetter Driver * + +The Compugraphics driver is written in \WEB. It has the ability to +add line numbering to the DVI output as it is printed on the 8600. +The program does include some Pascal statements unique to IBM's +Pascal/VS, so a change file would be necessary for any operating +system other than IBM's VM/CMS. + +\subhead * Additional Fonts * + +Extra fonts were created from the base Computer Modern. These were +Computer Modern at 11, 12, 14, 18, 24 and 36 point sizes. I do not +know yet if I can call these Computer Modern, but I have asked +Professor Knuth for permission to do so. + +In addition to the larger Computer Modern fonts, we also created an +International Phonetic Alphabet in 9, 10, 11 and 12 point sizes. The +IPA font is illustrated at the end of this article. + +\head * How to get {\bi\text1} * + +You can get any of the above \text1\ products on diskette or by +anonymous FTP. Also, I will be distributing \text1\ to the various +site coordinators who can determine whether to place it on their +distribution. + +To obtain \text1\ on diskette from Jon Radel, send a note to +\address[\display] +Jon Radel \\ +P.O. Box 2276 \\ +Reston, VA \\ +22090-0276 +\endaddress +and ask for \text1 (4 disks). To cover postage and other expenses, +if you are in North America, please enclose \$1.50/disk if you send +blank disks or \$5.00/disk if you don't; if you are anywhere else in +the world, enclose \$2.00/disk if you send blank disks or \$6.00/disk +if you don't. $\mu$\TeX\ and \PCTeX\ use different directories, so +specify which of these two you are using. If you are using neither of +these, then just specify \PCTeX. You should also specify whether you +want |pk| (3 disks) or |gf| (5 disks) font files for the additional fonts +(these do not include the IPA fonts). + +You may also request \text1\ for a Macintosh from Jon (1 disk). +It is set up to run with \TeXtures. + +To order the IPA fonts from Jon, request the WSU IPA font. This +consists of two diskettes: 1)~the IPA source files and Users Guide, +and 2)~|pk| or |gf| files. + +To get \text1\ by anonymous FTP, you can connect to +ftp.wsu.edu. +Log on as +|anonymous|, and change to the +|/pub/tex/text1| directory. You will see ten subdirectories which you can GET +files from: +\list[\numbered] +\item |BLOCKS|: this directory contains all of the default formats (or +building ``blocks'' such as the |chapterformat|, |runningheadformat|, etc.) + +\item |CMS_HELP_FILES|: these are some of the help files used on the +CMS system at WSU. Some sites have taken these files and used them in creating +help files on a PC or on a \VAX. + +\item |COMPUGRAPHICS_8600|: this is the Compugraphics 8600 phototypesetter +driver program, and its various utilities. Not very much documentation here, +so venture further on your own. + +\item |FONTS|: This is the source for the additional Computer Modern +fonts generated, such as 11, 14, 18, 24 and 36pt sizes. + +\item |MACINTOSH|: this contains the index sorting facility used with +\text1. It is written for Turbo Pascal. (The executable binary can +be obtained from Jon Radel if you do not have Turbo Pascal yourself.) + +\item |MACROS|: this contains the \text1 macros. The file |TEXT1.TEX| is used +with Ini\TeX{} to create a new |fmt|. + +\item |MODELS|: contains various simple models such as letter, resume, +etc. It also contains a model (|MERGETXT|) which can be used as a +model for merge letters. For example, you could tell Dbase III to +create an address list, merge it with a standard letter, and using +the model print a +copy for each person. + +\item |TEXIX|: the sorted index program used with \text1. Presently +the only systems this is running on is CMS and Macintosh. |TEXIX| for +\VAX{} and PC systems is in the works. + +\item |VAX_VMS|: when ready, this will have the sorted index for VMS +users. + +\item |WSUIPA|: This contains the source for the International +Phonetic Alphabet, as well as the |tfm| and |300pk| files. + +\endlist + +\head * {\bi\text1} Documentation * + +The documentation for \text1\ is not free. Pre\-sent\-ly, the +documentation must be ordered through: +\address[\display] +\text1\ Distribution\\ +Computing Service Center \\ +Washington State University \\ +Pullman, WA. 99164-1220 +\endaddress +The cost is \$35 for the Reference Manual and \$25 for the Users +Guide. (Add \$5 postage if outside of the U.S.) The manuals are not +yet available through the \TeX\ Users Group, but I hope to have them +there as soon as I find a publisher. + +If you have any questions, feel free to send me an email note on Bitnet +at {\tt GUENTHER@WSUVM1} or to {\tt GUENTHER@WSUVM1.WSU.EDU} on +Internet. + +\makesignature + +\endgroup +\endarticle diff --git a/macros/text1/docs/refman.ps.gz b/macros/text1/docs/refman.ps.gz new file mode 100644 index 0000000000..2631c303b9 Binary files /dev/null and b/macros/text1/docs/refman.ps.gz differ diff --git a/macros/text1/fonts/cmr36.dump b/macros/text1/fonts/cmr36.dump new file mode 100644 index 0000000000..502e15375f --- /dev/null +++ b/macros/text1/fonts/cmr36.dump @@ -0,0 +1,902 @@ + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 1 (00000001), 512 (0200) bytes + + 04008BDE E5990000 40027475 7074756F 20322E31 204B506F 74464711 59F70200 ..÷Y.GFtoPK 1.2 output.@...åÞ... 000000 + D494E2D6 92E2D890 E2DA27CE 5DE2B267 FC685B64 86AD0A41 F680AE26 0400AE26 &®..&®.öA.­.d[hüg²â]Î'Úâ.Øâ.Öâ.Ô 000020 + 48CA9347 BF4C69C4 3C59F4CD 9444CE93 43FF4C29 F44C1905 3D19148D F9D296E2 â.Òù...=..Lô)L.C.ÎD.ÍôY<ÄiL¿G.ÊH 000040 + 49C39495 344C4959 C4939454 4C3949C5 9492653C 29497F4C 0959C893 90F4C994 .Éô..ÈY.L.I)M.É.M..Jzofû 000100 + 24C042E2 DD1C6402 1C24CE4D 8D02D4D9 D62860AD 1080022C A002E22A C002DE65 eÞ.À*â..,...­`(ÖÙÔ..MÎ$..d.ÝâBÀ$ 000120 + 017C24DE CD461CC0 46E2DD5C E4015C24 DECD4420 C044E2DD 3C24023C 24DECD42 BÍÞ$<.$<ÝâDÀ DÍÞ$\.ä\ÝâFÀ.FÍÞ$|. 000140 + C04CE2DD BC2401BC 24DECD4A 14C04AE2 DD9C6401 9C24DECD 4818C048 E2DD7CA4 ¤|ÝâHÀ.HÍÞ$..d.ÝâJÀ.JÍÞ$¼.$¼ÝâLÀ 000160 + DECDD384 CDD324DE CDD2A4CD D224DECD D1C4CDD1 24DECDD0 E4CDD024 DECD4C10 .LÍÞ$ÐÍäÐÍÞ$ÑÍÄÑÍÞ$ÒͤÒÍÞ$ÓÍ.ÓÍÞ 000180 + D8B48C4D DFCDD704 CDD724DE CDD624CD D624DECD D544CDD5 24DECDD4 64CDD424 $ÔÍdÔÍÞ$ÕÍDÕÍÞ$ÖÍ$ÖÍÞ$×Í.×ÍßM.´Ø 0001A0 + 4DC1DD24 DECDDC34 CC4DE2DD BC4DC5DB 24DECDDA 74AC4DE2 DD9C4DC9 D924DECD ÍÞ$ÙÉM.ÝâM¬tÚÍÞ$ÛÅM¼ÝâMÌ4ÜÍÞ$ÝÁM 0001C0 + E9ADDA1C 01F98DDB 0C01FB6D DC0C010B 01F4DDFC 0DFD4DE2 DDEC2DED 4DE2DDDC ÜÝâMí-ìÝâMý.üÝô....Ümû..Û.ù..Ú­é 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 6 (00000006), 512 (0200) bytes + + AD0A4E90 A99001D6 652D7E03 D5571D01 AFD5DFB7 02005D5D 1D0D01D9 CDD91C01 ..ÙÍÙ...]]..·ßÕ¯..WÕ.~-eÖ..©.N.­ 000000 + C82C1BC4 ABCCB6BB B1CBB6B8 B7C9B5B2 C3C31040 FCDFC5DE C6BF65FB 66596486 .dYfûe¿ÆÞÅßü@.ÃòµÉ·¸¶Ë±»¶Ì«Ä.,È 000020 + 4BCAB245 BFA43C4B F44BCBB2 44BFC42C 3BF44BCC B342BFD4 2C2BE46B CCB341BD ½A³Ìkä+,Ô¿B³ÌKô;,Ä¿D²ËKôK<¤¿E²ÊK 000040 + 4BC5B349 BF642C9B F44BC6B3 48BF742C 8BF44BC8 B247FF4B C9B246BF 943C5BF4 ô[<.¿F²ÉK.G²ÈKô.,t¿H³ÆKô.,d¿I³ÅK 000060 + B3F4BF24 2C2B4BBF 243C1B4B BF342C1B 4BBF343C 0B4BBF44 2C0B4BBF 542CABF4 ô«,T¿K.,D¿K.<4¿K.,4¿K.<$¿K+,$¿ô³ 000080 + BDB2B7F4 4BBEB2B6 F44BBEB3 B5F44BBF B2B5F44B BFB3B4F4 4BC0B2B4 F44BC1B2 ²ÁKô´²ÀKô´³¿Kôµ²¿Kôµ³¾Kô¶²¾Kô·²½ 0000A0 + BF942BBB 4BBFA42B AB4BFF4B BBB2B9F4 4BBBB3B8 F44BBCB2 B8F44BBC B3B7F44B Kô·³¼Kô¸²¼Kô¸³»Kô¹²»K.K«+¤¿K»+.¿ 0000C0 + FB4BBF54 3BEB4BBF 642BEB4B BF742BDB 4BBF743B CB4BBF84 2BCB4BBF 843BBB4B K»;.¿KË+.¿KË;t¿KÛ+t¿Kë+d¿Kë;T¿Kû 0000E0 + B1B2C3F4 4BB1B3C2 F44BB2B2 C2F44BB3 B2C1F4BF 442B0B4C BF443BFB 4BBF542B +T¿Kû;D¿L.+D¿ôÁ²³Kô²²Kô³±Kôò± 000100 + B2C7F44B 386B4CBF 94B2C6F4 4B395B4C BFA4B2C5 F44BB0B2 C4F44BB0 B3C3F44B Kôó°KôIJ°KôŲ¤¿L[9KôƲ.¿Lk8KôDz 000120 + B2CCF44B 24BB4CBF 44B3CAF4 4B25AB4C BF54B3C9 F44B269B 4CBF74B2 C8F4BF84 .¿ôȲt¿L.&KôɳT¿L«%KôʳD¿L»$Kô̲ 000140 + BFB4D1F4 BFB5D0F4 BFB6CFF4 BF14B2CE F44B31DB 4CBF24B2 CDF44B32 CB4CBF34 4¿LË2KôͲ$¿LÛ1Kôβ.¿ô϶¿ôе¿ôÑ´¿ 000160 + B7B8481D BB8BD5CA 9BD5D89B D6E6ABD6 F4BFB0D5 F41B4B4D FF2B3B4D FF3B2B4D M+;.M;+.MK.ôÕ°¿ôÖ«æÖ.ØÕ.ÊÕ.».H¸· 000180 + BF1690DB 01B1CB66 F9685867 3D140B4F EDA0B2F4 3C2C5BCE C32F6BCD C32F7BD2 Ò{/ÃÍk/ÃÎ[,<ô².íO..=gXhùf˱.Û..¿ 0001A0 + C2D99CC4 B99CC798 8CCA599C CC399CCE 199CD1D9 9BD49AAB D75AABDB B00A0B01 ...°Û«Z׫.Ô.ÙÑ..Î.9Ì.YÊ..Ç.¹Ä.Ù 0001C0 + 0B9B0D4B ABD95A0B 7B0D6BAB D78AABD5 FABA3AAD BC399DBE 199DC0F9 9CC1DAAC ¬ÚÁ.ùÀ..¾.9¼­:ºúÕ«.׫k.{.ZÙ«K... 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 7 (00000007), 512 (0200) bytes + + 051B01B0 16FB1DFB 07FB0DFB 18DB1D9B B0DD0200 B00FABDD 1A0BBB0D 2BABDB3A :Û«+.»..Ý«.°..Ý°..Û.û.û.û.û.°... 000000 + 1B01B13F B211204B 2EB11310 1BB21320 4BEB113B 01B1E322 1B01B213 1B01B1E3 ã±...².."ã±.;.ëK .²...±.K .²?±.. 000020 + 0DFBB4B0 D9B02F0B BB0DFBB0 B1DBB10A DB0D9BB1 DDB1E217 FB1D2B5E B2DFB214 .²ß²^+.û.â±Ý±..Û.±Û±°û.»./°Ù°´û. 000040 + C69AACC4 BAACC2DA ACC0FAAC EFABD1CA ABD3AA0B 3B0D9BAB D58A0B5B 0D6B0B7B {.k.[..Õ«..;.ªÓ«ÊÑ«ï¬úÀ¬Ú¬ºÄ¬.Æ 000060 + CBB11D90 6B01BF10 00ABB0DB 5AABD79A ABD4D99B D1FAABCE 399CCC59 9CC97AAC ¬zÉ.YÌ.9ΫúÑ.ÙÔ«.׫ZÛ°«..¿.k..±Ë 000080 + BC1DFD0D CD3DAD3D BD3D03D3 3150FD02 D82CC08D 0265FB66 4E5B00B1 09509BC8 È.P.±.[Nfûe..À,Ø.ýP1Ó.=½=­=Í.ý.¼ 0000A0 + 3CCD19C0 D49B015C BD18C0D5 7C016CBD 17C0D76B 018CBD15 C0D93C01 AC0D1D01 ...¬.<ÙÀ.½..k×À.½l.|ÕÀ.½\..ÔÀ.Í< 0000C0 + 9C012CCD 1AC0E2D1 BC010C2D 0EBD019C 1ECD1BC0 E2D1D01A C0D2AC01 FCD3AB01 .«Óü.¬ÒÀ.ÐÑâÀ.Í...½.-..¼ÑâÀ.Í,.. 0000E0 + D0DFBCCD 11C0DA3B 019CBD14 C0D86A01 7CAD17C0 D67B015C BD18C0D4 9B01FCD3 Óü..ÔÀ.½\.{ÖÀ.­|.jØÀ.½..;ÚÀ.ͼßÐ 000100 + 57C1B001 19405E02 D531104D 03AC019E 011B5001 1F200122 000124E0 2DBDCDDC Üͽ-à$..". ..P....¬.M.1Õ.^@..°ÁW 000120 + 9D2090DB 39027AAD 26A0D3AA 02ABFB02 DD3570CD 039C0166 F9845967 3D140B51 Q..=gY.ùf...Íp5Ý.û«.ªÓ.&­z.9Û. . 000140 + 1F90DFD9 010901BA 011A019A 013A017A 016A0159 01990139 01B90119 01D901F9 ù.Ù...¹.9...Y.j.z.:.....º...Ùß.. 000160 + 02FBD17B 02FBD37A 024ABD25 B0D55A02 7AAD23A0 D81B029B AD21A0DB FA01DA9D .Ú.úÛ.!­...Ø.#­z.ZÕ°%½J.zÓû.{Ñû. 000180 + 31002DED C231C03F D02F002D 4EFC023C 6EDC022C 8EDB029B BC02FCBA 2BB0CF9B .Ï°+ºü.¼..Û.,.Ün<.üN-./Ð?À1Âí-.1 0001A0 + D19B02FB BC2BB0AF BC02FCB9 2DB0C82D C0E2C62F C0E204FD 02D0E3C3 31C02FD0 Ð/À1ÃãÐ.ý.âÀ/ÆâÀ-È°-¹ü.¼¯°+¼û..Ñ 0001C0 + D113ADD9 2A3D4BD2 8AADD275 35ADD75A 1D5DADD5 6BBDD74B ADD9A7AD D37B02FB û.{Ó­§Ù­K×½kÕ­].Z×­5uÒ­.ÒK=*Ù­.Ñ 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 8 (00000008), 512 (0200) bytes + + A713A026 D6831A01 7A623DA9 DF9A523D 0200AADE A9423D9C DDBA323D ACDB0A2D -.Û¬=2ºÝ.=B©Þª..=R.ß©=bz...Ö&..§ 000000 + 3DA12390 D6230902 7A3D941D 9011D843 B9012972 3D9518A0 23D7635A 015A713D =qZ.Zc×#...=r).¹CØ....=z..#Ö.#¡= 000020 + 4D2DF0D1 4D2D10DE D3021FDE 839C01F1 2D742D03 12DD2FB0 08AD020A 0D6D023A :.m...­.°/Ý..-t-ñ...Þ..ÓÞ.-MÑð-M 000040 + 790B03C7 0903268D 2F50D4F7 02646D2F 30D7F602 925D2E30 D9E502B2 4D2EF0C2 Âð.M².åÙ0.]..ö×0/md.÷ÔP/.&..Ç..y 000060 + 967B0A52 0DB97C43 C03E20CD 03D43A60 8D03D837 905D03DA 34C02D2E 03DE1F03 ..Þ..-À4Ú.].7Ø..`:Ô.Í >ÀC|¹.R.{. 000080 + D1C0DDC0 CFC0DEC1 CDC1DEC4 C8C4DE20 60ED01D9 1BC08D01 11300165 FB675C62 b\gûe.0...À.Ù.í` ÞÄÈÄÞÁÍÁÞÀÏÀÝÀÑ 0000A0 + 5FBDD8C0 D5C0D7C0 D67B0D7C BDD6C0D7 C0D5C0D8 5B0D9CBD D4C0DAC0 D2C0DBC0 ÀÛÀÒÀÚÀÔ½..[ØÀÕÀ×ÀÖ½|.{ÖÀ×ÀÕÀؽ_ 0000C0 + 0D5CBDD8 C0D4C0D8 C03F0D9C 0D2C2E1D 9C0D8C3E 0D9C0DFC D3C1D8C0 D4C0D8C0 ÀØÀÔÀØÁÓü...>.....,...?ÀØÀÔÀؽ\. 0000E0 + 0CDCADD1 C0DC2A0D BCADD3C0 D94B0D8C BDD5C0D7 6B0D7CAD D7C0D67B 0D5C0D7C |.\.{ÖÀ×­|.k×ÀÕ½..KÙÀÓ­¼.*ÜÀÑ­Ü. 000100 + CDC012A0 CCC013B0 CAC015B0 C8C017D0 8D01DC15 F03D01C1 C8C011B0 CCC0DFFA úßÀÌ°.ÀÈÁ.=ð.Ü..Ð.ÀÈ°.ÀÊ°.ÀÌ..ÀÍ 000120 + 9F0D3C0D ACBDD3C0 BFBDD2C0 CFBDD1C0 DD1A0DDC BDD0C0DE FB0CFCAD CFC011A0 ..ÀÏ­ü.ûÞÀнÜ..ÝÀѽÏÀÒ½¿ÀÓ½¬.<.. 000140 + C0C1540C 6C0D1C4C C5C1D5C0 C1E2641C 4C0D7C1D 4C0D9C8E 0D4C0D9C 9EBDD4C0 ÀÔ½...L....L.|.L.dâÁÀÕÁÅL..l.TÁÀ 000160 + 65C0CFDA 43BACEDA 42C0DBAC 2D14BCD6 C64BC2C0 D7C2C134 0C7C0D2C 4CC3C1D6 ÖÁÃL,.|.4ÁÂ×ÀÂKÆÖ¼.-¬ÛÀBÚκCÚÏÀe 000180 + 3BB3BCB8 727BAB2B BAB0BA66 F9683B4A E3E90753 EBA0804A 03C4D4DA 851CAD4D M­..ÚÔÄ.J..ëS.éãJ;hùfº°º+«{r¸¼³; 0001A0 + B1C398B2 C1A817E7 9B6A73BC 096B84B9 195B96B5 2A5B179B B1B3A4C2 B5040B6C l..µÂ¤³±..[*µ.[.¹.k.¼sj.ç.¨Á².ñ 0001C0 + 4FD5AC54 CE294ED6 9CE264CD 58C78C5F A89C85CA 68998C96 C8787A8C 075B8C8F ..[..zxÈ...hÊ..¨_.ÇXÍdâ.ÖN)ÎT¬ÕO 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 9 (00000009), 512 (0200) bytes + + C1C7BFCA BCCDB8D0 B6D1B4D3 B3D30200 B2D4B2D4 B1D5B045 CCB045CD B04FE4AC ¬äO°ÍE°ÌE°Õ±Ô²Ô²..ӳӴѶиͼʿÇÁ 000000 + B4D2B5D0 B8CEBBCA BEC8C1C5 C3C3C6C0 C7BFC8BE C9BDC9BE C8BFC8BF C7C1C4C5 ÅÄÁǿȿȾɽɾȿÇÀÆÃÃÅÁȾʻθеҴ 000020 + 7C1F186D E281D2B3 D2E2B3D3 E2B3D2E3 B4D66A0D FBD5B1D5 B0D5B1D4 B2D4B2D3 Ó²Ô²Ô±Õ°Õ±Õû.jÖ´ãÒ³âÓ³âÒ³Ò.âm..| 000040 + 99BA5986 E88B6487 C1276748 3C5B682C 5B781C4B 980C4BA8 AC83CCF9 82CE28F8 ø(Î.ùÌ.¬¨K..K.x[,h[@.jjzJje£¬¢«£J.ê*Ú..¯¢¯... 0000A0 + 5BE343B4 A2B44535 2B4A5B4F 352B3A6B 64B2A2B3 46262B2A 7B74B1A2 B247082B +.G²¢±t{*+&F³¢²dk:+5O[J+5E´¢´Cã[ 0000C0 + 5577A8A8 C6E4C9AA DAA4DEA2 BBD24EB6 A2B7E459 2B6A5B41 B5A2B664 2E452B5A Z+E.d¶¢µA[j+Yä·¢¶NÒ»¢Þ¤ÚªÉäƨ¨wU 0000E0 + E0BE361D DB8BD2B1 BC1A1DBB 1BFB3C7B 7BAB7CAB C3BACBE4 65FB6759 6486AD0A .­.dYgûeä˺ë|«{{<û.»..¼±Ò.Û.6¾à 000100 + 4CCF6A4C CFB0C414 ADC4140D FBC2240D 2B4CD2B1 C1340DFB C1430D0B 4CD4B114 .±ÔL..CÁû.4Á±ÒL+.$Âû..Ä­.Ä°ÏLjÏL 000120 + BD4A6DC1 395DC319 5DC5F95C C7D95CC8 CA4CCAAA 4CCBAA4C CC8A4CCD 8A4CCE6A jÎL.ÍL.ÌLªËLªÊLÊÈ\ÙÇ\ùÅ].Ã]9ÁmJ½ 000140 + 675F6486 AD0A5623 89B0AC20 70AB01BC 15001C01 C4DEAAB2 DC581B8B 7DBB6A7D }j»}..XܲªÞÄ....¼.«p ¬°.#V.­.d_g 000160 + A53B295A BA94A0B6 3BF989BA 949D91B9 949B94B7 969799B3 9A90A2A8 AAE465FE þe䪨¢..³...·...¹...º.ù;¶..ºZ);¥ 000180 + 344B994A B493A845 4B794AB5 94A7643B 694AB794 A5843BF9 A4944B39 4ABA93A2 ¢.ºJ9K.¤ù;.¥.·Ji;d§.µJyKE¨.´J.K4 0001A0 + 4AAD94AF E43AE95A AE94ADF4 4AD94AB0 93AC054B B94AB194 AB243BA9 5AB294A9 ©.²Z©;$«.±J¹K.¬.°JÙJô­.®Zé:ä¯.­J 0001C0 + 4BA693B6 654A594B A794B584 3A494BA9 94B3A43A F9B2B44A 194BAC93 B0C54AF9 ùJÅ°.¬K.J´²ù:¤³.©KI:.µ.§KYJe¶.¦K 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 10 (0000000A), 512 (0200) bytes + + 3AC95BA0 94BB144A B94BA293 0200BA25 4A994BA3 94B9443A 895BA494 B7544A79 yJT·.¤[.:D¹.£K.J%º...¢K¹J.»..[É: 000000 + 49394C9A 932F4C9B 94C1C439 095C9C94 BFD449F9 4B9E93BE E549D94B 9F94BD04 .½..KÙIå¾..KùIÔ¿..\.9ÄÁ..L/..L9I 000020 + 9294C934 49994C94 93C84549 794C9594 C7643969 5C9694C5 7449594C 9893C494 .Ä..LYItÅ..\i9dÇ..LyIEÈ..L.I4É.. 000040 + 94D15493 0F4D46F9 4C37E95C 47D94C48 D94C9093 CC0549B9 4C9194CB 2439A95C \©9$Ë..L¹I.Ì..LÙHLÙG\é7LùFM..TÑ. 000060 + 89B4250E 01F7DE90 E2DC92E2 DA94E2D8 96E2D698 5F4D3149 4D42394D 33F9D244 DÒù3M9BMI1M_.Öâ.Øâ.Úâ.Üâ.Þ÷..%´. 000080 + 4AC94A99 49C96AA9 6A699969 BA69AA89 A29CA997 A9E465FE 67848977 A20E57B7 ·W.¢w..gþeä©.©.¢.ªiºi.ij©jÉI.JÉJ 0000A0 + 3A194AAF 93AD930F 5AAF94AC 949F053B D93AE969 B093AD93 9DF84AC9 4AB919E9 é.¹JÉJø..­.°ié:Ù;...¬.¯Z..­.¯J.: 0000C0 + 4AAA96AA 94A5B45A B93AF9A4 C45AB94A 394AAD93 AD932F5A AD94AC94 A1E44AD9 ÙJä¡.¬.­Z/.­.­J9J¹ZĤù:¹Z´¥.ª.ªJ 0000E0 + 94A9644A 29644A99 4AA79342 A7938F4A A899A794 A7947A99 3AF9A695 7A994A59 YJ.z.¦ù:.z.§.§.¨J..§B.§J.Jd)Jd©. 000100 + AD343A69 343AF9AC 354A4935 4AB94AA4 9444A593 AB543A49 543AA95A A59344A5 ¥D.¥Z©:TI:T«.¥D.¤J¹J5IJ5¬ù:4i:4­ 000120 + 3919499F 930F5B9F 94589F94 AF044A89 143AF94A A19348A1 93EF4AA2 9446A294 .¢F.¢Jï.¡H.¡Jù:..J.¯..X..[...I.9 000140 + 934F5B9B 9395B449 394B9C94 93C44939 4B9D9393 D439F9B2 E4491959 9D94B1F4 ô±..Y.Iä²ù9Ô...K9IÄ...K9I´...[O. 000160 + 93997449 794B9894 97844979 4B999397 9439F9B6 A4495959 9994B5B4 3959499B .IY9´µ..YYI¤¶ù9....KyI....KyIt.. 000180 + 94BB5439 B9499593 AF4B9694 99554999 4B969499 7439994B 97939974 39895B97 .[.9t...K.9t...K.IU...K¯..I¹9T». 0001A0 + 49D95991 94BD2449 D9499393 BD3439D9 499393BC 3539D949 9394BB44 49B94994 .I¹ID»..IÙ95¼..IÙ94½..IÙI$½..YÙI 0001C0 + A16594C1 7494A174 94C18493 A184930F 4C90949F 0449F94B 91939F14 39F9BE15 .¾ù9....KùI....L...¡..Á.t¡.tÁ.e¡ 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 11 (0000000B), 512 (0200) bytes + + 2494C534 94A53494 C5440200 93A54493 4F4C4539 5A44394C 36394A36 F9C26594 .eÂù6J96L9DZ9ELO.D¥...DÅ.4¥.4Å.$ 000000 + 95E2CA96 AB96C997 A997E2C8 1494A799 C71494A7 2493C724 93A72493 C62593A7 §.%Æ.$§.$Ç.$§..Ç.§..Èâ.©.É.«.Êâ. 000020 + AD0A5831 81AE544B D4555BD3 366BE2D2 188BE2D0 91AF91E3 CE93AD93 E2CC95AB «.Ìâ.­.Îã.¯.Ðâ..Òâk6Ó[UÔKT®.1X.­ 000040 + 94AFA75A D90AA95A A92AA95A 797A698A 29DA29DA 9969BAB9 4A2E65FE 665F6486 .d_fþe.J¹ºi.Ú)Ú).izyZ©*©Z©.ÙZ§¯. 000060 + 59A95BA1 95B9344A 895BA395 B6554A69 4BA695B4 755A394B A994B295 5A096BAA ªk.Z.².©K9Zu´.¦KiJU¶.£[.J4¹.¡[©Y 000080 + 956F5C95 95C57449 495C9795 C29559F9 C0B559F9 4B9D94BE D559C95B 9F94BCF5 õ¼..[ÉYÕ¾..KùYµÀùY.Â..\IItÅ..\o. 0000A0 + 9D395D41 295D5219 4D44095D 54F94C56 D95C47C9 5C58B94C 9194CA15 59895C93 .\.Y.Ê..L¹X\ÉG\ÙVLùT].DM.R])A]9. 0000C0 + D19551D3 99D598D5 97D796D7 95D995D9 94D995D9 94D995D9 95D994D8 966F8D59 Y.o.Ø.Ù.Ù.Ù.Ù.Ù.Ù.Ù.×.×.Õ.Õ.ÓQ.Ñ 0000E0 + C6949475 5C3949C9 9492955C 1949CB95 58CC9457 CD9546CF 9455CF95 53D19552 R.ÑS.ÏU.ÏF.ÍW.ÌX.ËI.\...ÉI9\u..Æ 000100 + B55BF949 BD949ED5 5BD949BF 959B054C A959C195 99344C89 59C39597 545C5959 YY\T..ÃY.L4..ÁY©L...¿IÙ[Õ..½Iù[µ 000120 + 5AB095A9 155B994A B395A745 4B695AB5 95A5655B 395AB795 A3945B19 5ABA94A0 ..ºZ.[.£.·Z9[e¥.µZiKE§.³J.[.©.°Z 000140 + 93A394B2 90A595B1 784A296B A895B1A5 5AF95AAC 94AFD45A D95AAE94 ACF55AB9 ¹Zõ¬.®ZÙZÔ¯.¬ZùZ¥±.¨k)Jx±.¥.².£. 000160 + 9B91A2A9 ABE465FF 66616486 AD0A59CD 88ABA3A6 E4919DAA 9C9B98AE 96A095B1 ±...®...ª..䦣«.ÍY.­.daf.eä«©¢.. 000180 + A8554B89 4AB695A6 755B496A B894A387 5B198AB9 94A091B8 959D94B6 979899B3 ³...¶...¸...¹..[.£.¸jI[u¦.¶J.KU¨ 0001A0 + 295BAB94 B2C45A09 5BAD95AF F44AE95A AF95AC15 4BC95AB1 95AA354B A94AB495 .´J©K5ª.±ZÉK.¬.¯ZéJô¯.­[.ZIJ.«[) 0001C0 + 95BC154A C94BA295 BA355A89 5BA594B8 645A695B A794B684 5A495BA9 94B4A45A Z¤´.©[IZ.¶.§[iZd¸.¥[.Z5º.¢KÉJ.¼. 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 12 (0000000C), 512 (0200) bytes + + 5C9794C5 8559494C 02009A95 C2B54929 4C9C95C0 D549094C 9E95BEF5 49E94BA0 .KéIõ¾..L.IÕÀ..L)IµÂ....LIY.Å..\ 000000 + 95D07494 CF7595CE 0459C95C 9194CC24 59A95C93 94CA4459 895C9594 C7655969 iYeÇ..\.YDÊ..\©Y$Ì..\ÉY.Î.uÏ.tÐ. 000020 + ADE4CC99 D895DB93 A9BE5DF9 D997D898 D699D515 95D42594 D33595D2 5494D155 UÑ.TÒ.5Ó.%Ô..Õ.Ö.Ø.Ùù]¾©.Û.Ø.Ìä­ 000040 + 6BB1C8B2 256B4C5B B1C4B724 FBCB4B13 3014303E 65F96642 5179B408 5A1FA1A4 ¤¡.Z.´yQBfùe>0.0.KËû$·Ä±[Lk%²È±k 000060 + C9A6B2CA A6B2C997 B2CAA6B1 CA97B2CA 97B1CA88 B2C989B1 C97AB2C8 B0268B1C ..&°È²zɱ.ɲ.ʱ.ʲ.ʱ¦Ê².ɲ¦Ê²¦É 000080 + 6B4CB5B1 C7442B7B 4CB3B2C7 351B8B5C B2B2C825 1B9B5CB1 B2C9151B 9B6CB0B2 ²°l...ɲ±\..%Ȳ²\..5Dz³L{+DDZµLk 0000A0 + B1DAB2DA B1DAB2DA B1DAB2D9 B2DAB1C4 742B4B4C B7B1C564 2B5B4CB6 B1C6542B +TƱ¶L[+dű·LK+tıڲٲڱڲڱڲڱ 0000C0 + B1DAB2DA B1DAB2DA B1DAB2D9 B2DAB1DA B2DAB1DA B2DAB1DA B2DAB1DA B2D9B2DA Ú²Ù²Ú±Ú²Ú±Ú²Ú±Ú²Ú±Ú²Ù²Ú±Ú²Ú±Ú²Ú± 0000E0 + B6542C6B 4BC4B2B7 441C8B4B C3B2B834 1C9B4BC2 B2DAB1DA B2D9B2DA B1DAB2DA Ú²Ú±Ú²Ù²Ú±Ú²ÂK..4¸²ÃK..D·²ÄKk,T¶ 000100 + 2B4BC9B2 B2842C3B 4BC8B1B4 742C4B4B C7B1B465 2C4B5BC6 B1B5642C 5B4BC6B1 ±ÆK[,dµ±Æ[K,e´±ÇKK,t´±ÈK;,.²²ÉK+ 000120 + 87CBB277 CCB178CB B268CBB2 9FA62CAB B51C0B5B CAB2B0A5 1C1B5BC9 B2B1A41C .¤±²É[..¥°²Ê[..µ«,¦.²Ëh²Ëx±Ìw²Ë. 000140 + 4201C30B 2C3BB7C5 B1546B2C 4BB3C8B1 159B2C4B B1C9B2A5 CBB196CB B296CBB1 ±Ë.²Ë.±Ë¥²É±K,..±È³K,kT±Å·;,.Ã.B 000160 + F59DD315 01096D14 90881690 BD01D421 90D641FA 433B434C 1F0761B3 C05201E3 ã.RÀ³a..LC;CúAÖ.!Ô.½.....m...Ó.õ 000180 + AD4FADD8 FCD47ACD 5F9DD75C 9DD86B9D D8799DD9 889DDBA4 9DD9B58D D9D48DD6 Ö.ÔÙ.µÙ.¤Û..Ù.yØ.kØ.\×._ÍzÔüØ­O­ 0001A0 + BDD82ABD DACAD0DB 9AD1DD4A D310E03D 01DA1740 DD015A4E 02CA4DD7 AA8DD59A .Õ.ª×MÊ.NZ.Ý@.Ú.=à.ÓJÝÑ.ÛÐÊÚ½*ؽ 0001C0 + DC1BE284 CAADD1BA BDD1BAAD D2AABDD2 9ABDD39A ADD48AAD D57AADD6 5ABDD74A J×½ZÖ­zÕ­.Ô­.Ó½.Ò½ªÒ­ºÑ½ºÑ­Ê.â.Ü 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 13 (0000000D), 512 (0200) bytes + + 44A633D6 4A830200 2973BD42 089DBDF1 84BCAD41 C8DBD2B8 DCE2D2A8 DDE2D2A8 ¨ÒâݨÒâܸÒÛÈA­¼.ñ½..B½s)...JÖ3¦D 000000 + E90762A8 B070969D D73B3D2D 0D0D7DCD D26AB759 A248AC48 A436D25B 645943BD ½CYd[Ò6¤H¬H¢Y·jÒÍ}..-=;×..p°¨b.é 000020 + 1A5DAC4A ADC2CA01 0AED1CB0 1B00AC01 C218804C 2E01C317 50C367FD 69424AE3 ãJBiýgÃP.Ã..L..Â.¬..°.í..Ê­J¬]. 000040 + 9CD0C0C6 F81C7C8C CDC2C8B8 4CA1C998 4CA2CA59 5CA3CC28 6CA4CD8A 67FA9C8C ..úg.ͤl(Ì£\YÊ¢L.É¡L¸ÈÂÍ.|.øÆÀÐ. 000060 + AAE37BAD EBABD74A 0EACD62A 1E9CD6FA C259AD3F 8CD53A9C D44A8CD3 5B8CD25B [Ò.[Ó.JÔ.:Õ.?­YÂúÖ..*Ö¬.J׫ë­{㪠000080 + D0C0C528 BDC429BD C448ADC3 49ADC259 AD1FACD5 1A9CD6FA C06AADBF 6BADABD7 ׫­k¿­jÀúÖ..Õ¬.­Y­IíHĽ)Ľ(ÅÀÐ 0000A0 + 9D0C5CCE 8AA7C59C C285B68C C674A68C C854978C CB43878C CD23788C CE14688C .h.Î.x#Í..CË..TÈ.¦tÆ.¶.Â.ŧ.Î\.. 0000C0 + C6658CC8 268CCC88 E9AC3C5D 8CADCC41 FC43323B B5540663 7BB0CC99 01C5C304 .ÃÅ..Ì°{c.Tµ;2CüAÌ­.]<¬é.Ì.&È.eÆ 0000E0 + 59DAAC04 CC9C5FC0 CBF906BC 8CB7CB98 B99C89CC B8E48CC0 C58CC2A5 8CC4858C ..Ä.¥Â.ÅÀ.ä¸Ì..¹.Ë·.¼.ùËÀ_.Ì.¬ÚY 000100 + 79349D46 D34A4FD5 FADCDAAD CFBDE2DC FADCBBBE ADE3DBBB AD47D15A F8ACA4CE Τ¬øZÑG­»Ûã­¾»ÜúÜâ½Ï­ÚÜúÕOJÓF.4y 000120 + 9D0C5DB8 CC15ACC9 549CC774 9CC5A48C C3C48CC2 C49CC0E4 9C3BD099 04AD48D1 ÑH­..Ð;.äÀ.ÄÂ.ÄÃ.¤Å.tÇ.Tɬ.̸].. 000140 + CE01BB01 C01A208C 01C8E412 307C0175 0167FC69 424AE3E9 0764AAB0 C5995D3C <].Å°ªd.éãJBiüg.u.|0.äÈ.. .À.».Î 000160 + CD882CBC 8CC91A94 8CCA2A65 8CCB4A25 9CCC5A87 EAAC970C AD592CAD C169ADD0 ЭiÁ­,Y­..¬ê.ZÌ.%JË.e*Ê...É.¼,.Í 000180 + FAC06A9D 1FACD51A ACD5F9C2 4A9DC34A 8DC43A9D C42B8DC5 C0D0680C FC8CC7C1 ÁÇ.ü.hÐÀÅ.+Ä.:Ä.JÃ.JÂùÕ¬.Õ¬..jÀú 0001A0 + ACD439AC D538ACD5 F9C26A9D 1FACD62A 0EACD74A BE7ABDEB AAD73ABE 6ABDABD6 Ö«½j¾:תë½z¾J׬.*Ö¬..jÂùÕ¬8Õ¬9Ô¬ 0001C0 + 8CC2C853 C5692C2C 948CC7C0 41CB783C DC8CC7C1 CF680C0C 9DC5C0D1 58BCD348 HÓ¼XÑÀÅ...hÏÁÇ.Ü].<Õ­xÙ..`. 000000 + DB630782 22293D5A 046A48C0 8470D1D3 5CAD22E0 D65BCDD4 D1D2D7E4 291D5D70 p].)ä×ÒÑÔÍ[Öà"­\ÓÑp.ÀHj.Z=)"..cÛ 000020 + 6DA3DB37 E0ABCDD9 D1D7D8D0 E4D3D5E5 2D00E68D DCAACDD8 D1E5D8AC ADDCE86D mèÜ­¬ØåÑØͪÜ.æ.-åÕÓäÐØ×ÑÙÍ«à7Û£m 000040 + B0309DD9 D1D5D5D1 77C7B796 B787B769 B75AA83C A93CB82C B9FCA1AC 92D13829 )8Ñ.¬¡ü¹,¸<©<¨Z·i·.·.·ÇwÑÕÕÑÙ.0° 000060 + C34AAE01 1AED1AB0 19008C01 C216804C 0E01C315 50C367FD 68404698 84076BC8 Èk...F@hýgÃP.Ã..L..Â....°.í..®Jà 000080 + 45ACD455 ACD365AC D275ACD0 77ACCF87 ACCE88AC CC7BACC9 C2C76A6C 6CACC1CE ÎÁ¬lljÇÂɬ{̬.ά.ϬwЬuÒ¬eÓ¬UÔ¬E 0000A0 + 4CAABDA5 DB69CA7D A7DC86CA 5DA9DBA5 AA5DABD9 05ACD815 ACD725AC D635ACD5 Õ¬5Ö¬%׬.ج.Ù«]ª¥Û©]Ê.ܧ}ÊiÛ¥½ªL 0000C0 + 4ABDABD5 9B5B0D7C C0D66BC1 D6C0247C BD338CBD 418C5D1C 9A3D2C9A 2D3CAA0D .ª<-.,=..].A½.3½|$ÀÖÁkÖÀ|.[.Õ«½J 0000E0 + EA0C4CAC CF4BACCF C0C30ABD C30A0D2C ACD12BAC D21BACD2 C0C03ABD C03A0DBC ¼.:À½:ÀÀÒ¬.Ò¬+Ѭ,..ý.ÃÀϬKϬL.ê 000100 + 0C6C2C9C ACC8C1C9 9A0C9CAC CAC0C8FA CBC0C7CA BCC7CA0C 6CACCD6B ACCDC0C5 ÅÀͬkͬl.ÊǼÊÇÀËúÈÀʬ...ÉÁȬ.,l. 000120 + 6BCDD5D1 D3D7E42A 2D5DD267 FD681E25 F1F4036C 1CC0006D D2E4765C 2C4C3C8C .JØ¡ë½.ã.Ø¢½k>*Ö¥.ijÔ§ùÔ..)¸Ò 000080 + CAD68929 9DC0F98C C4D87CC8 B77CCA97 7CCC777C CE578CCE 388CD018 9CD0098C ..Ð..Ð.8Î.WÎ|wÌ|.Ê|·È|ØÄ.ùÀ.).ÖÊ 0000A0 + C8C38A67 C8C5C988 7C5CACC3 CF2A5CC3 40FD5E42 4AE3E907 70ABB0CC 0A01C6DA ÚÆ..Ì°«p.éãJB^ý@Ã\*Ïì\|.ÉÅÈg.ÃÈ 0000C0 + D15B9CD1 5BACCFC0 C6DA1C7C 9CCCC3C7 A94C116C 9CC824C8 C04A5C83 2C9CC146 FÁ.,.\JÀÈ$È.l.L©ÇÃÌ.|.ÚÆÀϬ[Ñ.[Ñ 0000E0 + 3ABE7AAD BAD7BABE 7AADBBD6 3A0EACD6 0ABCD5FA C15AAD2F ACD4FAC3 3AAD4FAC ¬O­:ÃúÔ¬/­ZÁúÕ¼.Ö¬.:Ö»­z¾º×º­z¾: 000100 + ACD04BAC D14BACD2 3AACD32A BCD32AAC D41ABCD4 1AACD5FA C05BADC0 6AADBBD6 Ö»­jÀ­[ÀúÕ¬.Ô¼.Ô¬*Ó¼*Ó¬:Ò¬KѬKЬ 000120 + 7CEABC77 A5CC1A5C A4CB594C A3CA794C A2C9A93C A1C8C91C 7C9CCDC1 C6F90C5C \.ùÆÁÍ.|.ÉÈ¡<©É¢LyÊ£LYˤ\.Ì¥w¼ê| 000140 + 9CCC40FC 5E424697 840771AB B0D8D2E4 10209C01 C01BA0C8 6E9DC12A 5D9C0A9D ...]*Á.nÈ..À.. .äÒØ°«q...FB^ü@Ì. 000160 + 7C34CB89 7C35C999 6C37C7A9 6C48C4B9 6C49C1D9 5C6BB7CE 158C0C5D C3C4D274 tÒÄÃ]...ηk\ÙÁIl¹ÄHl©Ç7l.É5|.Ë4| 000180 + C05AAD1F ACD41BAC D42ABCD2 2BBCD23A 0C0CAD4F 8C41CE5A 8C32CE69 8C42CC79 yÌB.iÎ2.ZÎA.O­..:Ò¼+Ò¼*Ô¬.Ô¬.­ZÀ 0001A0 + C25AAD1F ACD5FBC0 6AADC06A BDE3ABD7 BA7ABDEB AAD7BA6A BDE2ABD6 FAC05ABD ½ZÀúÖ«â½jº×ªë½zº×«ã½jÀ­jÀûÕ¬.­Z 0001C0 + 3A749CC9 2A949CC8 1AB49CC7 C2CC6A1C ECACC5C0 D0590C0C ADC42BAD 3FACD4FA úÔ¬?­+Ä­..YÐÀŬì.jÌÂÇ.´.È..*É.t: 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 17 (00000011), 512 (0200) bytes + + 4D0E01C2 1900BC01 8AEC1CA0 C259AD4B 1CAD98FC AC67A8CD 5A159CCC 4A44ACCA ʬDJÌ..Zͨg¬ü.­.K­YÂ..ì..¼..Â..M 000000 + 47741D78 54D76256 763DD277 4D9CD27C 5BD240FD 412D341F 8A057245 C0200200 .. ÀEr...4-Aý@Ò[|Ò.MwÒ=vVb×Tx.tG 000020 + 5E014B4E 012C1E3D D3CC070D BDC9D0BA 3AA1BA3A B1B939C2 B848126D 7B34D791 .×4{m.H¸Â9¹±:º¡:ºÐɽ..ÌÓ=.,.NK.^ 000040 + 084CA41C 3C574C2C BBC341FC 432B3461 9E057397 B0C01440 9E2D3D01 5C016A01 .j.\.=-.@.À°.s..a4+CüAû,LW<.¤L. 000060 + F844D047 F57C4FF5 6C5FE66C 65CD66C7 6C76CC75 A86C97C8 866A6CB9 C3A72597 .%§Ã¹lj.È.l¨uÌvlÇfÍelæ_lõO|õGÐDø 000080 + CEC5D0C4 D1C4D0C4 D0C4D0C5 CFC7CDCA CACEC5D2 C2D3C0D5 5AD4AC44 CEF944CF ÏDùÎD¬ÔZÕÀÓÂÒÅÎÊÊÍÇÏÅÐÄÐÄÐÄÑÄÐÅÎ 0000A0 + 1816FDC2 D2E2C1D3 1F2CFDC2 D1C2D2C2 D1140A4D B1D4C0D4 C1D2C5CF C8CCCCC8 ÈÌÌÈÏÅÒÁÔÀÔ±M..ÑÂÒÂÑÂý,.ÓÁâÒÂý.. 0000C0 + BCA3C939 98794677 C2466566 5C6265C8 1546A6BC 63CC3AE5 9C62CE29 F68C61D0 Ða.ö)Îb.å:Ìc¼¦F.Èeb\feFÂwFy.9É£¼ 0000E0 + ADD4F9D5 F8D6277E 6DE2D855 9E4DE7C5 5BFE5D2A 341F8A05 744DB040 ACC3025C \.ì@°Mt...4*]þ[ÅçM.UØâm~'ÖøÕùÔ­ 000100 + C3339CC2 34AC1F4C C4193CC5 094CC51A ECD43AED C2DBE273 7DD5CFC1 D1C0D23B ;ÒÀÑÁÏÕ}sâÛÂí:Ôì.ÅL.Å<.ÄL.¬4Â.3à 000120 + 40FD4243 4AE3E907 755DC08A D4C1D0C4 CD54AA3C 99C8B369 4CABC513 9CC414AC ¬.Ä..Å«Li³È.<ªTÍÄÐÁÔ.À]u.éãJCBý@ 000140 + D7DBADE3 D7EAAD17 E0D7DBBD D6CCCDD5 D1DAD1D3 D7D4D7E4 2A9D2D2D 5D1350D2 ÒP.]--.*ä×Ô×ÓÑÚÑÕÍÌÖ½Û×à.­ê×ã­Û× 000160 + D4781D3D 639DD83C 738DD92B 839DD91A 939DD91A B29DD8D0 DB89CDDC 89CDDCFA úÜÍ.ÜÍ.ÛÐØ.².Ù...Ù..+Ù.s<Ø.c=.xÔ 000180 + 3FFE4141 46988407 768CB8AA D0BA7DAD D4D7D788 5D7D7D85 3B7D5D14 9DD2D744 D×Ò..]};.}}].××Ô­}ºÐª¸.v...FAAþ? 0001A0 + BCCED4AC CDD5BCCC F4ACBF5C CF9B6CD0 FAC7F9BC C5DB1C1C 4CAC3C8C CAC2D1E4 äÑÂÊ.<¬L..ÛżùÇúÐl.Ï\¿¬ô̼ÕͬÔμ 0001C0 + 44BCD654 AC5F4DC6 4B4DC7FA D384BCD2 94ACD195 BCD0A4BC D0B4ACCF B5BCCEC4 ÄμµÏ¬´Ð¼¤Ð¼.Ѭ.Ò¼.ÓúÇMKÆM_¬TÖ¼D 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 18 (00000012), 512 (0200) bytes + + 0B0174FA 5DB7DE84 EB4DA9DD 95CB4DBA DCB4BA5D BBDA14AC 9F5DC18B 4DC3FAD7 ×úÃM.Á].¬.Ú»]º´ÜºMË.Ý©Më.Þ·]út.. 000000 + 90E21BB0 E219102C 7E01C316 40A15F01 244B0134 FA1340B4 1240A51F 02000164 d....¥@.´@.ú4.K$._¡@.Ã.~,..â°.â. 000020 + 0C7C0C1C 4C5C3C5C 3C7CCBF9 5CCFE43F FE415B60 A7490A77 0EB9D225 FE01F71D .÷.þ%Ò¹.w.I§`[Aþ?äÏ\ùË|<\<\L..|. 000040 + ACC9AB4C CBAAACCA C4ACC99A 5CCC9ABC C8C5ACCA 7A7CCC9A ACC6B9AC C93B0C9C ..;ɬ¹Æ¬.Ì|zʬÅȼ.Ì\.ɬÄʬªËL«É¬ 000060 + 6CACCF74 1C6CBCCE 741C7CAC CE84BCC8 DA5CC88B BCCC94BC C9CA4CCA 9AACCBA5 ¥Ë¬.ÊLÊɼ.̼.È\Úȼ.ά|.tμl.tϬl 000080 + 24BCD234 AC43C22B 4DC41A35 ACD244AC 41C41A4D C51A44BC D0642C5C ACD0641C .dЬ\,dмD.ÅM.ÄA¬DÒ¬5.ÄM+ÂC¬4Ò¼$ 0000A0 + 7AA46B4D AB47ABD6 04AC55AB D505AC45 C04B4DC1 5A14ACD4 24AC53C1 3A5DC23A :Â]:ÁS¬$Ô¬.ZÁMKÀE¬.Õ«U¬.Ö«G«Mk¤z 0000C0 + A64BA6DB 74BA64AB 4DA74BA7 DA849A84 9A5DA849 B8D8949A 948A4DAA 47AAD7A5 ¥×ªGªM....ظI¨]....Ú§K§M«dºtÛ¦K¦ 0000E0 + A1DF253A 4CB2DE34 3A4CB2DE 441A5CA3 DE441A4C A4DD541A 4CB4DC64 BA55CA4D MÊUºdÜ´L.TݤL.DÞ£\.DÞ²L:4Þ²L:%ß¡ 000100 + 019BBC4F 01C0C7C0 13107C1C FC12205C 2C1C01C3 C5C31040 A1C5140A 01243A5C \:$...Å¡@.ÃÅÃ..,\ .ü.|..ÀÇÀ.O¼.. 000120 + 40454698 840778B3 B0CFF55C AF01D66C 9F01D77C 1880CBF8 1790CBF9 16A0C95A ZÉ..ùË..øË..|×..lÖ.¯\õÏ°³x...FE@ 000140 + BCD865BC D6660C4C 7DC73B8D C80BADC8 C0CDC1C6 C2C8C6C3 C6C1CD1B 4D1E3F00 .?.M.ÍÁÆÃÆÈÂÆÁÍÀÈ­.È.;Ç}L.fÖ¼eؼ 000160 + 50B31550 043C0165 3B01751B 0185C0DF A5FB4D0B DC5DC0CB 5DC2BB4D C3C0D945 EÙÀÃM»Â]ËÀ]Ü.Mû¥ßÀ...u.;e.<.P.³P 000180 + 1A20CC01 C11C00EC 01FB01EB 01C01EB0 1FB01D10 BC01C21B 309C01C5 1750B217 .²P.Å..0.Â.¼..°.°.À.ë.û.ì..Á.Ì . 0001A0 + BDC1D5BD 5BDEC05A DF9B1501 7B2501C0 5613B055 15B05316 002C8401 1B9501C3 Ã.....,..S°.U°.VÀ.%{...ßZÀÞ[½ÕÁ½ 0001C0 + C0CADA0C AC8CD0AB 7CD29B6C D3C0C855 BDC775BD C6750D4C 5CD93B5C DAC0C2B5 µÂÀÚ\;Ù\L.uƽuǽUÈÀÓl.Ò|«Ð.¬.ÚÊÀ 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 19 (00000013), 512 (0200) bytes + + 4C9C4C8C CAC2D1E4 3FFE5E41 46988407 79D2B820 1DEC4C9E C6C6C6C5 C2C9C1CB ËÁÉÂÅÆÆÆ.Lì. ¸Òy...FA^þ?äÑÂÊ.L.L 000000 + CBEB4CCC EB4CCDDA 5CCDCB4C CECB4CCF BA5CCF9B 6CD0FAC8 F8BC0200 C5DB1C1C ..ÛÅ..¼øÈúÐl.Ï\ºÏLËÎLËÍ\ÚÍLëÌLëË 000020 + 4DC37A5D C36B4DC4 6B4DC55A 5DC54B4D C7FAD375 BCD294AC 1F4DCA0B 4DCBFA5C \úËM.ÊM.¬.Ò¼uÓúÇMKÅ]ZÅMkÄMkÃ]zÃM 000040 + 01550B01 640B0174 FA5DB7DE 94FADDA4 CB4DABBF 4DC0AB4D C19A5DC1 8B4DC28B .ÂM.Á].ÁM«ÀM¿«MˤÝú.Þ·]út..d..U. 000060 + E21D90E2 1BB0E219 102C7E01 C31640A1 5F01244B 01343A01 352B0144 2B01541A .T.+D.+5.:4.K$._¡@.Ã.~,..â°.â..â 000080 + C1A94DC2 A94DC3A7 4D0F0205 02F42050 20400F02 0502F420 5020400F 02F51F70 p.õ..@ P ô....@ P ô....M§ÃM©ÂM©Á 0000A0 + C018304C 01662601 A50501B5 F55D8ADE A4D94DBA DBA5BB4D BBDAB5AB 4DC09B5D ].ÀM«µÚ»M»¥ÛºMÙ¤Þ.]õµ..¥.&f.L0.À 0000C0 + 66DB6CB6 CC57BB9C A5CA4B7B 2C3C1120 3E3FFC40 303BB554 067A93B0 5001B701 .·.P°.z.Tµ;0@ü?> .<,{KÊ¥.»W̶lÛf 0000E0 + BCC714BC C8F4C09B 4CC0AA4C BBC9A5AB 5C9FBB5C A9CC85CB 4CB8CC85 DA5CB7CC Ì·\Ú.̸LË.Ì©\».\«¥É»LªÀL.Àôȼ.Ǽ 000100 + 74BCC274 ACC364BC D8FBD89B ADD98BBD D99ABDD8 FBD89BAD D98BBDC6 34ACC724 $Ǭ4ƽ.Ù­.Øûؽ.Ù½.Ù­.Øûؼdìt¼t 000120 + 57CD8AC5 BC58CB9B C4BC49CB ABB4AC4B CABB94BC 5BC9BB94 BCC094AC C184BCC1 Á¼.Á¬.À¼.»É[¼.»ÊK¬´«ËI¼Ä.ËX¼Å.ÍW 000140 + 69E60800 52982201 E2327CBC B3CB4AC9 BC84CC4B D8BC74CD 5BE6AC66 CD6BD5BC ¼ÕkÍf¬æ[Ít¼ØKÌ.¼ÉJ˳¼|2â.".R..æi 000160 + 8AB9A2A6 892B6A0A 7A2B6A2A 5A2B6A4A 3A3B5A9A DA6A3AAA 4DD9E365 FB664753 SGfûeãÙMª:jÚ.Z;:Jj+Z*j+z.j+.¦¢¹. 000180 + A4F42B6A 4E5ABEA2 5F4ABEA2 5F5ABDA2 E2A5C62B FAA5B72B 6A6ABBA2 A6A72B6A j+§¦¢»jj+·¥ú+ƥ⢽Z_¢¾J_¢¾ZNj+ô¤ 0001A0 + 803F6D5F 4DA767FA 68626FD4 DE0B0121 71B4BFE4 C1A8CDA4 D0A2A3D2 4EC0A2E3 ã¢ÀNÒ£¢Ð¤Í¨Áä¿´q!..ÞÔobhúg§M_m?. 0001C0 + 2F6C5835 5C58446C 38555C38 645C2875 5C1884AC 988CF8CB 86E2CD84 FF2CF8D1 Ñø,..Íâ.Ëø..¬..\u(\d8\U8lDX\5Xl/ 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 20 (00000014), 512 (0200) bytes + + 58B98587 A46B5858 BB8585C4 5B4858BD 8583E45B 2858BF85 81045C08 58C18547 G.ÁX.\...¿X([ä..½XH[Ä..»XXk¤..¹X 000000 + 868F155B F848B285 8E355BD8 48B4858C 555BB848 B6858A75 02005B98 488F6B78 xk.H.[..u..¶H¸[U..´HØ[5..²Hø[... 000020 + 8599845A 8859A985 97A45A68 59AB8595 C45A4859 AD8593F4 AE8691F5 5A1849B0 °I.Zõ..®ô..­YHZÄ..«YhZ¤..©Y.Z... 000040 + 85A2F559 184AA085 A0155AF8 49A2859E 355AD849 4F6AB859 A5859B64 6A9859A7 §Y.jd..¥Y¸jOIØZ5..¢IøZ....J.Yõ¢. 000060 + 85AB6459 A85A9785 A9845988 5A9985A7 F49A86A5 B559584A 9C86A3D5 59384A9E .J8YÕ£..JXYµ¥..ô§..Z.Y.©..Z¨Yd«. 000080 + 85B4D558 384B8E85 B2F55818 4B0F69F8 5A9185AF 2469D85A 9385AD44 59C85A95 .ZÈYD­..ZØi$¯..Zøi.K.Xõ²..K8XÕ´. 0000A0 + 85BD4458 C85B8585 BBF48686 B9755898 4B8886B7 9558784B 8A85B6B5 58584B8C .KXXµ¶..KxX.·..K.Xu¹..ô»..[ÈXD½. 0000C0 + 66F96858 673D140B 02F4A06C 10D83FD6 E245FD27 0D58085C 8185BF24 58E85B83 .[èX$¿..\.X.'ýEâÖ?Ø.l.ô...=gXhùf 0000E0 + 799CCA59 9CCC399C CE199CD1 D99BD49A ABD75AAB DBB00A0B 01BF1690 DB01B1CB ˱.Û..¿...°Û«Z׫.Ô.ÙÑ..Î.9Ì.YÊ.y 000100 + B67AADB8 5AADB9B0 D3B0BA3A ADBC1AAD BE199DC0 F99CC1DA ACC2BAAC C49AACC7 Ǭ.ĬºÂ¬ÚÁ.ùÀ..¾­.¼­:º°Ó°¹­Z¸­z¶ 000120 + 15FB1D2B 7EB0DFB0 18DB1DFB 09DB0DFB B0B0DBB0 2F0B9B0D FBB49AAD B5B0D7B0 °×°µ­.´û.../°Û°°û.Û.û.Û.°ß°~+.û. 000140 + F1B248CB 84E2BF38 8DE9BF48 CB84B2E2 118BB44C 18FB221B 01B2E213 1B01B1E3 ã±...â².."û.L´..â².ËH¿é.8¿â.ËH²ñ 000160 + B0B0DDB0 9FB1DDB1 8FB0DFB0 17FB1D2B 5EB11110 2B3EB211 203B2EB1 48CB84B1 ±.ËH±.; .²>+..±^+.û.°ß°.±Ý±.°Ý°° 000180 + FA9BD1E9 ABD1CAAB D3AAABD5 FAB87AAD B6B0D7B0 B59AADB4 B0D9B02F 0BBB0DFB û.»./°Ù°´­.µ°×°¶­z¸úÕ«ªÓ«ÊÑ«éÑ.ú 0001A0 + ADB57AAD B94A9DBD 199DC1E9 9CC3C99C C599ACC7 6AACC94A ACCB2AAC CD0AACCF Ϭ.ͬ*ˬJɬjǬ.Å.ÉÃ.éÁ..½.J¹­zµ­ 0001C0 + 9DE31170 E21350E2 BD67FC68 535CEFE2 0903F690 B01CDB01 B916F00B 01B00ABB ».°..ð.¹.Û.°.ö..âï\Shüg½âP.âp.ã. 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 21 (00000015), 512 (0200) bytes + + 55D3A245 D4A3445F 2D3AF4D6 A342D6A3 51D7A241 D8A79F5D 2ABE3D3A DE1D2AFE þ*.Þ:=¾*].§ØA¢×Q£ÖB£Öô:-_D£ÔE¢ÓU 000000 + A2C43C1A 5ACDA2A1 E43C0A4A CEA359CF A2490F3D 8A140200 2D7AF4D2 A346D2A3 £ÒF£Òôz-....=.I¢ÏY£ÎJ.<ä¡¢ÍZ.<Ä¢ 000020 + C5A2A9F4 C6A3A874 2C7A4A8F 3C6A4AC8 A3A5952C 5A4AAF3C 4A4ACBA2 A3F4CCA3 £Ìô£¢ËJJ<¯JZ,.¥£ÈJj<.Jz,t¨£Æô©¢Å 000040 + A3B0E43B FA5ABFA2 AFF4C0A3 AE142CDA 4A2F3CCA 4AC2A3AB 352CBA4A C4A3AAF4 ôª£ÄJº,5«£ÂJÊ,ØÍ|_Í|Öǽ|Ö¹ûÖÍ[»ÕÍKЭ\Ô­* 000140 + 7A8C4A01 99AC1901 AABCEA9D CCD0B9AD D01CADD8 1ACDD26A ADD23CAD D43ACDD4 ÔÍ:Ô­<Ò­jÒÍ.Ø­.Э¹ÐÌ.꼪..¬..J.z 000160 + 09B6C050 FD01E425 504D03D1 37C0EC37 200D03DC 27400121 B01DCC01 4B5C7B01 .{\K.Ì.°!.@'Ü.. 7ìÀ7Ñ.MP%ä.ýPÀ¶. 000180 + CDD81490 CDD911B0 CDDBD119 C0EC3E10 BD03D52C F001E4D9 65F96658 673D140B ..=gXfùeÙä.ð,Õ.½.>ìÀ.ÑÛÍ°.ÙÍ..ØÍ 0001A0 + 4C0DFDD3 5CCDD5FC D2D0D55C 0DFDD0D0 D66C0DFD 1B6DCDD6 D1287DCD D7D2438D .CÒ×Í}(ÑÖÍm.ý.lÖÐÐý.\ÕÐÒüÕÍ\Óý.L 0001C0 + 2CBDAFCD D22CCD9F BDD33CBD 8FCDD33C CDE3D74B CDD4FBD6 4CCDD42C EDD4D0D4 ÔÐÔí,ÔÍLÖûÔÍK×ãÍ<ÓÍ.½<Ó½.Í,Òͯ½, 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 23 (00000017), 512 (0200) bytes + + BABC4A01 BBBC3B01 CACC2A01 CBCC0B01 0BCDD0FB DE1BCDD1 FBDC1CCD D1BCBDD2 Ò½¼ÑÍ.ÜûÑÍ.ÞûÐÍ...ÌË.*ÌÊ.;¼».J¼º 000000 + 5B023B3C 2B025A5C 0A026A6C EA01898C C9010200 999CA901 9A9C8A01 AAAC6A01 .j¬ª.....©.....É...êlj..\Z.+<;.[ 000020 + 5360A749 0A0A03A1 90FD01E4 2C50BD03 D13EC0D0 AE03D932 F0DD0213 90021B1C ......Ýð2Ù.®ÐÀ>Ñ.½P,ä.ý.¡...I§`S 000040 + C82AACC6 5AACC28A ACC0BAAC BCFA0C6B 0B3B1D0B 1B7B4DDC CD6B01B2 C866FA67 gúfȲ.kÍÜM{...;.k.ú¼¬ºÀ¬.¬ZƬ*È 000060 + D6B1B0B0 D6B0B2B0 D4B04F0B 2B0D6B0B 0B0D8BAB D0AAABCE CAABCCEA ABCA0AAC ¬.Ê«êÌ«ÊΫªÐ«....k.+.O°Ô°²°Ö°°±Ö 000080 + B2E214CB 1DFB23CB 2DAB3EB1 DCB14FB2 DAB25FB1 DAB1E217 8B1DFB09 8B0DABB1 ±«...û...â±Ú±_²Ú²O±Ü±>«-Ë#û.Ë.â² 0000A0 + FAB4B0D4 B02F0B6B 0DFBB0B1 D6B10A8B 0D9BB1D8 B1E2278B 2D6BB1DA B15FB2DA Ú²_±Ú±k-.'â±Ø±....±Ö±°û.k./°Ô°´ú 0000C0 + F7C4C77C 2F8CCC08 8CCEF8BE E99CBD08 8DBC099D BA0AADB9 299DB82A AD6FABD4 Ô«o­*¸.)¹­.º..¼..½.é¾øÎ..Ì./|ÇÄ÷ 0000E0 + 24545BC4 554BF164 5BC4658B B5655CB5 F4B8666C CA866C8F 7CC8776C CA667CCA Ê|fÊlwÈ|.l.Êlf¸ôµ\eµ.eÄ[dñKUÄ[T$ 000100 + B7044CB7 F444B624 4CB63465 4BC2645B 42B7244C B724645B C2654B42 B6444CB6 ¶LD¶BKeÂ[d$·L$·B[dÂKe4¶L$¶Dô·L.· 000120 + 85B0E4EB EB2B7EBF BEBFE4E6 0BEC5B57 3BC0537B 54B7033C B745654B C0645B44 D[dÀKeE·<.·T{SÀ;W[ì.æ俾¿~+ëëä°. 000140 + A77CC987 7CCB677C CD477CCF 088CD288 58AD9C4D FCADCB60 FB623843 4C1F0730 0..LC8bû`Ë­üM.­X.Ò..Ï|GÍ|gË|.É|§ 000160 + 494AADE2 95D4397E 488D98D2 99288DE2 8BD0F8C1 077DC3E7 7CC4C88C C5C77CC7 Ç|ÇÅ.ÈÄ|çÃ}.ÁøÐ.â.(.Ò..H~9Ô.â­JI 000180 + F89BD0A9 288D9F29 9D7F499D E3A5D43A 3E4BBDA2 D61AE56B BDCE1E6A ADE793D6 Ö.ç­j.νkå.Ö¢½K>:Ô¥ã.I..)..(©Ð.ø 0001A0 + D569298D C0F87CC4 D77CC6B7 7CC8977C CA778CCA 588CCC48 7CCE378C CE188CD0 Ð..Î.7Î|HÌ.XÊ.wÊ|.È|·Æ|×Ä|øÀ.)iÕ 0001C0 + 6CFC2C3C BDD6897D DAB64DDD E32DCE60 F4612D43 4C1F0731 2EB0B0AC DFC4D9CA ÊÙÄ߬°°.1..LC-aô`Î-ãÝM¶Ú}.Ö½<,ül 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 24 (00000018), 512 (0200) bytes + + 6134434C 1F0732BE A0500CC2 C5D2C1D5 EB026EBD C253BCA7 C53BC2C5 D05FDC8C .Ü_ÐÅÂ;ŧ¼S½n.ëÕÁÒÅÂ.P.¾2..LC4a 000000 + B0B1BD24 2BAB4BB4 B2B7563B 4B6BB7B5 020079BB C2BDC0C0 BCC5B7CB B0B860F9 ù`¸°Ë·Å¼ÀÀ½Â»y..µ·kK;V·²´K«+$½±° 000020 + 1F0B4CEE 1BFCBDC2 B0014B8C 127B4CE2 135B4C5F B1C3F417 1B4C19FB 5B19FB4B Kû.[û.L..ôñ_L[.âL{..K.°Â½ü.îL.. 000040 + ACCEFACE EA0CEBAC CEB0DF0C FBCDB1CD B0CDB1DF 0CEB0C4B 5C142B9C 121B0C1B .....+.\K.ë.߱ͰͱÍû.߰άë.êÎúά 000060 + D3355DD3 356DD226 6DD2266D D2177DD1 177DD108 8DD0089D CFF99CCF FA9CCFF9 ùÏ.úÏ.ùÏ..Ð..Ñ}.Ñ}.Òm&Òm&Òm5Ó]5Ó 000080 + 653CB064 4CB0544C B1444CB2 344CB324 5CB3145C B3145CB4 045CB5F4 5BD3266D m&Ó[ôµ\.´\.³\.³\$³L4²LD±LT°Ld°,...,....+.,.,.a½,."­,.½..3­._ 000180 + 9CC8788C C6988CC4 A88CC3B9 8CC2D88C C0D98C9B CFF8A9CF 890A8DB7 D0691A9D ..iз...Ï©øÏ..ÙÀ.ØÂ.¹Ã.¨Ä..Æ.xÈ. 0001A0 + D8964D5F 64F96639 434C1F07 377CA0CA D95D7C9D 3CCD1CFD ECBCB7CC 199CCA48 HÊ..Ì·¼ìý.Í<.|]ÙÊ.|7..LC9fùd_M.Ø 0001C0 + CC94D44C 49CC85D4 4C8FD45C 47CE75C4 7C865DD8 5FD9A43D BF3DAF2D 3E0D7B7D }{.>-¯=¿=¤Ù_Ø].|ÄuÎG\Ô.LÔ.ÌILÔ.Ì 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 26 (0000001A), 512 (0200) bytes + + 4DD9954D D9F4D994 4D9F4DD9 A44DC824 4BC9144B CA144BC9 144BCA04 4BCBF44A JôËK.ÊK.ÉK.ÊK.ÉK$ÈM¤ÙM.M.ÙôÙM.ÙM 000000 + 4E9DE2D5 285E8DE2 D6276E7D 02007F6D 8F5DD8F6 D8856DD8 F5D8954D D9954D9F .M.ÙM.ØõØm.ØöØ].m...}n'Öâ.^(Õâ.N 000020 + DCADCA60 FA623643 4C1F0738 F2B0504C D858AD3F 1D0BEBD2 B0E6D34A 4E9DD43A :Ô.NJÓæ°Òë..?­XØLP°ò8..LC6bú`Ê­Ü 000040 + 6D8AD106 7CD1068C CF268CCD 468CCA67 9CC787AC C3A80C9C CA1CFDDC 3CAD6C5D ]l­<Üý.Ê..¨Ã¬.Ç.gÊ.FÍ.&Ï..Ñ|.Ñ.m 000060 + C179CF9B 16AD78D2 7A379D76 D469578D 6F677DE3 76D6F678 D586477D 78D4A637 7¦Ôx}G.ÕxöÖvã}go.WiÔv.7zÒx­..ÏyÁ 000080 + DC6C75BC 6C779C5C 6B6C6CC1 C6C4275C 4C6CC5C4 C2764C0C 6CC9C37B CBC16BCD ÍkÁË{ÃÉl.LvÂÄÅlL\'ÄÆÁllk\.wl¼ulÜ 0000A0 + C0667CAC 867C8CA6 8C5CD58C 2CF6DC3C AD5C8D7C 9D7C8D7C 8D6CAD2C DD0C5D82 .].Ý,­l.|.|.|.\­<Üö,.Õ\.¦.|.¬|fÀ 0000C0 + 5B7D034C 6D052C7D 250C6D27 EC7C47CC 6C49AC6C 5A8C6CC0 C6C5266C 3C6CC4C7 ÇÄl.º.?0iùJÇmØ 000160 + EF5DDEE6 5DE2DFF4 5DFF4DE3 DFF54DC2 FE2A00D6 8DDB9A0D 7C2D5C7E 0D9CADDB Û­..~\-|..Û.Ö.*þÂMõßãM.]ôßâ]æÞ]ï 000180 + CF3B06AD DA9ABD9F AD9FAD9F ADD9AA9D DAB98DDB C87DDCF7 DCD76DDD D76DDF6D mßm×Ým×Ü÷Ü}ÈÛ.¹Ú.ªÙ­.­.­.½.Ú­.;Ï 0001A0 + B8D58C59 CE79049D 56D05A24 9D44D32A 35AD62D2 2A08ADEC FCCBCD4B 1EEABC82 .¼ê.KÍËüì­.*Òb­5*ÓD.$ZÐV..yÎY.Õ¸ 0001C0 + 291D5DD2 40FD411D 25F1F403 101CC0C8 C0D4C8CD CDC99A6A 7CC4386C C8185CCB Ë\.Èl8Ä|j.ÉÍÍÈÔÀÈÀ...ôñ%.Aý@Ò].) 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 29 (0000001D), 512 (0200) bytes + + E4D3D505 0140075F 22293D5A 041138C0 8470D1D3 5CAD22E0 D65BCDD4 D1D2D7E4 ä×ÒÑÔÍ[Öà"­\ÓÑp.À8..Z=)"_.@..ÕÓä 000000 + B769B75A A83C0200 A93CB82C B9FCA1AC 92D13829 6DA3DB37 E0ABCDD9 D1D7D8D0 ÐØ×ÑÙÍ«à7Û£m)8Ñ.¬¡ü¹,¸<©..<¨Z·i· 000020 + 1690BD01 D420A0DF 68FD6A3B 434C1F07 19E7C030 9DD9D1D5 D5D177C7 B796B787 .·.·ÇwÑÕÕÑÙ.0Àç...LC;jýhß. Ô.½.. 000040 + DA3AADDA F9D5A98D D68A9DD7 898DD969 8DDB588D DD487DDF 188D1190 8B149097 ........ß}HÝ.XÛ.iÙ..×..Ö.©ÕùÚ­:Ú 000060 + 6A9DD85A 9DD94A9D DA3AADDA FAD2BAAD 1FBDDB1A ADDCFAD0 CBADE7D1 CA9D2FBD ½/.ÊÑç­ËÐúÜ­.Û½.­ºÒúÚ­:Ú.JÙ.ZØ.j 000080 + 187D6D9D 7B7DCD77 8DBD776D 0D7DD7D3 CBCA9DD2 AA9DD49A 9DD58A8D D76AADD7 ×­j×..Õ..Ô.ªÒ.ÊËÓ×}.mw½.wÍ}{.m}. 0000A0 + FAD4A9AD D5A8ADD5 99ADD698 ADD788AD D878ADD9 68ADDA58 ADDB48AD DC38ADDE Þ­8Ü­HÛ­XÚ­hÙ­xØ­.×­.Ö­.Õ­¨Õ­©Ôú 0000C0 + FAAD2ABE DFBABEFA ADE2BBDE FAACDE3A 0EADDDFA D1D9ADD1 CAADD2C9 AD3F9DDB Û.?­ÉÒ­ÊÑ­ÙÑúÝ­.:Þ¬úÞ»â­ú¾ºß¾*­ú 0000E0 + D2A8592B 8D9BA5D2 B9592A8D 9CA5D1C9 590AADD0 670A9DD2 75CAEAAD E2BBDEBA ºÞ»â­êÊuÒ..gЭ.YÉÑ¥..*Y¹Ò¥..+Y¨Ò 000100 + 435560A7 490A1AFD B0508D23 10ADD7D0 D479CD58 86D78A59 779DA866 D7887AC6 Æz.×f¨.wY.×.XÍyÔÐ×­.#.P°ý..I§`UC 000120 + 785CC418 7C8AC565 8C7BC019 6CC86938 AC88CBC8 C6CACFC4 CBC5D429 ADC741FA úAÇ­)ÔÅËÄÏÊÆÈË.¬8iÈl.À{.eÅ.|.Ä\x 000140 + B92C9CBC 88CAC4C9 99994CAC 8C8AC827 C94C9BC6 47A95CC0 686C86CA 248CC486 .Ä.$Ê.lhÀ\©GÆ.LÉ'È..¬L..ÉÄÊ.¼.,¹ 000160 + BCCB78EA BCCAFAA6 CE9B0C6C D90C9C0C 6CD91C8C 0C6CCA1C 8C0C7CB9 2C8C0C7C |..,¹|...Êl...Ùl...Ùl..Φúʼêx˼ 000180 + C015A0C0 C017A019 9C014AC4 1BF08C1C 02CC1A30 4D01D90A ADE4DAF9 BCCD94F9 ù.ͼùÚä­.Ù.M0.Ì...ð.ÄJ.....ÀÀ..À 0001A0 + DBDABCDB DAACDDC9 BCDDB9BC DE9ABCDF 9AAC10A0 C71B016A BC12A0C4 C013A0C2 Â..ÀÄ..¼j..Ç..¬.ß¼.Þ¼¹Ý¼ÉݬÚÛ¼ÚÛ 0001C0 + CF18D7AC 43D0C2CE FB41D2C0 CFFB31D4 FB3C4CBD CFC3D40A BDD9F9BC E2DAF9AC ¬ùÚâ¼ùÙ½.ÔÃϽL<ûÔ1ûÏÀÒAûÎÂÐC¬×.Ï 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 30 (0000001E), 512 (0200) bytes + + C1448CC1 46BC4AC6 B866BC48 C98886AC 38CB6896 BC46CC57 B6BC44CD 38C6BC34 4¼Æ8ÍD¼¶WÌF¼.hË8¬..ÉH¼f¸ÆJ¼FÁ.DÁ 000000 + 673D140B 02001BE7 B0409CD7 0A3D0C6D AC8CACBC 7C5CA7C7 78C0C305 9CC317AC ¬.Ã..ÃÀxǧ\|¼¬.¬m.=.×.@°ç.....=g 000020 + 8CC1377C C4A78C7B C5178CCC 69988C97 D0C8CBC9 D4C4D0C4 D979ADCB 41FC435E ^CüAË­yÙÄÐÄÔÉËÈÐ...iÌ..Å{.§Ä|7Á. 000040 + CA38F78C 9BC957E7 7CC1887C 67CD279C C687B77C C4686C7A C9678CC4 166CC787 .Çl.Ä.gÉzlhÄ|·.Æ.'Íg|.Á|çWÉ..÷8Ê 000060 + D5FAA3CE C0D5F9A4 CEC1D459 D92C3C9D 6FCA3C2C 8D98CB18 178D99CB 27088D8A ...'Ë....Ë..,<Êo.<,ÙYÔÁΤùÕÀΣúÕ 000080 + 5CADE2DB C0D6AABD D7BAADD7 FADB7A9D FE01D7E2 C9D07AAD 31AED06B 9D93CFC0 ÀÏ..kЮ1­zÐÉâ×.þ.zÛú×­º×½ªÖÀÛâ­\ 0000A0 + 048D72D1 78244D1C 9D46D2C3 D359432D 3C9D44D4 C2D33A44 1D5C9DDC C0D5C90D .ÉÕÀÜ.\.D:ÓÂÔD.<-CYÓÃÒF..M$xÑr.. 0000C0 + 4CC9A897 7CC4B38C 78CB274C CC87C77C C0D48C76 CDB8F38C 74CF9804 8D82CF89 .Ï....Ït.ó¸Ív.ÔÀ|Ç.ÌL'Ëx.³Ä|.¨ÉL 0000E0 + 8A3D2C4D 3C8DCC9C 0C5DA7CA 78C95CC0 697CC198 4CC4487C C4774CC6 286CC757 WÇl(ÆLwÄ|HÄL.Á|iÀ\Éxʧ]..Ì.Ú^Ø~Ö.d.öxZ<.V.:Xv@Ð 000100 + 10DC3EDA 5ED87ED6 9E64FE0C 76583A1C 56103C5A 78464AF5 690E25F1 F4033C24 $<.ôñ%.iõJFxZ<.V.:Xv.þd.Ö~Ø^Ú>Ü. 000120 + B32559E3 B31669B3 2559E2B5 4339A667 F985606F D4DE0B23 D9704076 583A1C8E ..:Xv@pÙ#.ÞÔo`.ùg¦9CµâY%³i.³ãY%³ 000140 + E3B31669 B32559E2 B31669B3 2559E3B3 1669B325 59E2B316 69B32559 E2B31669 i.³âY%³i.³âY%³i.³ãY%³i.³âY%³i.³ã 000160 + 69B32559 E2B31669 B32559E2 B31669B3 2559E3B3 1669B325 59E2B316 69B32559 Y%³i.³âY%³i.³ãY%³i.³âY%³i.³âY%³i 000180 + 59B31669 B32559E4 B31669B3 25599728 0120D495 2559E2B3 1669B325 59E3B316 .³ãY%³i.³âY%.Ô .(.Y%³i.³äY%³i.³Y 0001A0 + B32559E2 B31669B3 2559E2B3 1669B325 59E3B316 69B32559 E295D482 12009725 %....Ô.âY%³i.³ãY%³i.³âY%³i.³âY%³ 0001C0 + E3B31669 B32559E2 B31669B3 2559E3B3 1669B325 59E2B316 69B32559 E3B31669 i.³ãY%³i.³âY%³i.³ãY%³i.³âY%³i.³ã 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 34 (00000022), 512 (0200) bytes + + 39B52559 E2B31669 B32559E3 B31669B3 2559E2B3 1669B325 59E2B316 69B32559 Y%³i.³âY%³i.³âY%³i.³ãY%³i.³âY%µ9 000000 + BA665D59 BA866D65 BBA54DCB 5BDCB0BF F37DB56F F978606F D4DE0B25 F7A1A643 C¦¡÷%.ÞÔo`xùoµ}ó¿°Ü[ËM¥»em.ºY]fº 000020 + C5797BB8 997CB796 8BCC567B B8E85CB5 966BD135 6BB9365D B2957BD4 0200145B [...Ô{.²]6¹k5Ñk.µ\è¸{VÌ..·|.¸{yÅ 000040 + A86BD57B A48BB936 B0A845BA 986B81B7 28A47BB9 16D66B42 B9970B1B ACB897AB «.¸¬...¹BkÖ.¹{¤(·.k.ºE¨°6¹.¤{Õk¨ 000060 + D49BCF6B C3D49BBC 553CBDC8 6BC5C48B BB664CBC F8BA266B B4C48BBA 85B73ABB »:·.º.Ä´k&ºø¼Lf».ÄÅkȽm.ãÃÄ 000020 + 3CD06FF3 951F341F 8A05288A B01BD202 3D3C4C4B 3C3C4C3C 3CCF0200 F34C3CCF Ïl>K;â;ó´³´³´³³ 000020 + B5A04076 583A1C56 103C5A78 460DF50E 0E25F1F4 032E13D0 02001AD1 C2B3A4B4 ´¤³ÂÑ...Ð...ôñ%..õ.FxZ<.V.:Xv@.µ 000040 + 365D3F6D D3F5D336 5D3F6DD3 F5D3365D D36FD325 5E3DD56F F9953443 4C1F072F /..LC4.ùoÕ=^%ÓoÓ]6ÓõÓm?]6ÓõÓm?]6 000060 + 6DD3F5D3 365D3F6D D3F5D336 5D3F6DD3 F5D3365D 3F6DD3F5 D3365D3F 6DD3F5D3 ÓõÓm?]6ÓõÓm?]6ÓõÓm?]6ÓõÓm?]6ÓõÓm 000080 + 6DD3F5D3 365D3F6D D3F5D336 5D3F6DD3 F5D3365D 3F6DD3F5 D3365DE2 D3365D3F ?]6Óâ]6ÓõÓm?]6ÓõÓm?]6ÓõÓm?]6ÓõÓm 0000A0 + 6DD3F5D3 365DE2D3 365D3F6D D3F5D336 5D3F6DD3 F5D3365D 3F6DD3F5 D3365D3F ?]6ÓõÓm?]6ÓõÓm?]6ÓõÓm?]6Óâ]6ÓõÓm 0000C0 + D3365D3F 6DD3F5D3 365D3F6D D3F5D336 5D3F6DD3 F5D3365D 3F6DD3F5 D3365D3F ?]6ÓõÓm?]6ÓõÓm?]6ÓõÓm?]6ÓõÓm?]6Ó 0000E0 + F5400E25 F1F4033A 1FD0503D D5253E6D D3F5D336 5D3F6DD3 F5D3365D 3F6DD3F5 õÓm?]6ÓõÓm?]6ÓõÓm>%Õ=PÐ.:.ôñ%.@õ 000100 + 0E25F1F4 033B35D0 4076583A 1C56103C 5A782620 0076583A 1C56103C 5A78463F ?FxZ<.V.:Xv. &xZ<.V.:Xv@Ð5;.ôñ%. 000120 + E3A4B3E6 13463B2C 1D2C102D 2E3B5A88 25200076 583A1C56 103C5A78 463FF55D ]õ?FxZ<.V.:Xv. %.Z;.-.,.,;F.泤ã 000140 + 02900FD2 2B2EF913 58673D14 0B3D1260 192D3B4A 3A3AAFA3 A4F33AAF A423AEA3 £®#¤¯:󤣯::J;-.`.=..=gX.ù.+Ò... 000160 + BF868DB9 B8ADB10A 01BF1690 DB01B1CB 68F96A58 673D140B 4087A120 BD920FB1 ±..½ ¡.@..=gXjùh˱.Û..¿..±­¸¹..¿ 000180 + E54BDB04 4CD9244C D7444CD5 645CD185 5CCFA55C CDC56CC9 F65CC725 6DC3566D mVÃm%Ç\öÉlÅÍ\¥Ï\.Ñ\dÕLD×L$ÙL.ÛKå 0001A0 + A94BB3C5 8BBB5BB4 E44BDB4B B6048CC0 744B1340 B81401A4 4BDFB45B DDC55BDB Û[ÅÝ[´ßK¤..¸@.KtÀ..¶KÛKä´[».ųK© 0001C0 + 49B9948B B7A4945B B8784B5A B9658BB7 054BBA45 7BB9144B BB068BBA 244BBC76 v¼K$º..»K.¹{EºK.·.e¹ZKx¸[.¤·..¹I 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 37 (00000025), 512 (0200) bytes + + B0C1594B 45B0B0C0 594B46B8 F49BB564 844BBE69 4B47B8D4 8BB68494 4BBB784B Kx»K..¶.Ô¸GKi¾K.dµ.ô¸FKYÀ°°EKYÁ° 000000 + 1424ABC4 3A4BE242 B24A9CB4 2424ABC3 4A4B3F14 ABC3494B 4F14ABC2 594B44B1 ±DKY«.OKIë.?KJë$$´.J²BâK:Ä«$. 000020 + B34AACB3 14E234AB C44A8BB3 5A9CB438 ABC53A0B EB380200 ABC5498B B34AACB4 ´¬J³.IÅ«..8ë.:Å«8´.Z³.JÄ«4â.³¬J³ 000040 + 2A9CB534 24ABC349 4B33B33A 9CB43433 ABC34A4B 41B33AAC B41434AB C4494B41 AKIÄ«4.´¬:³AKJë34´.:³3KIë$4µ.* 000060 + 46B1B2BD 684B36B2 B1BE694B 35B2B1BF 594B44B2 B0C0594B 44B2B0C1 594B43B2 ²CKYÁ°²DKYÀ°²DKY¿±²5Ki¾±²6Kh½²±F 000080 + 4B4A9955 B4974B3A AA53B678 5B48B029 858BB784 139B42B9 784B47B1 B3BB784B Kx»³±GKx¹B...·..)°H[x¶Sª:K.´U.JK 0000A0 + 402A402A 40B9B78B C0642B5B 4BDB4BB4 B5B1B8BB 255B946A 97BA144B 9767B0A8 ¨°g.K.º.j.[%»¸±µ´KÛK[+dÀ.·¹@*@*@ 0000C0 + 860CBB6C C4195DC0 4A6DBC99 5DB9C95D B7F85D2A 402A402A 402A4029 50295029 )P)P)@*@*@*@*]ø·]ɹ].¼mJÀ].Äl».. 0000E0 + 9A55EDAF 6FF19513 25F1F403 5B0D4870 5C6B01C0 DEC7D7B5 B41A2DEB 8BCCB0C6 Æ°Ì.ë-.´µ×ÇÞÀ.k\pH.[.ôñ%..ño¯íU. 000100 + 032DD2B1 67F72B10 25F1F403 6030C0F0 9A55EDAA 6FFE9513 25F1F403 5D0D48A0 .H.].ôñ%..þoªíU.ðÀ0`.ôñ%.+÷g±Ò-. 000120 + 132D2F1D E2D3212D 1A332843 36033DE6 3CE34C3C CFC4F33C CFC3C4C3 C3B4C4C3 ÃÄ´ÃÃÄÃÏ<óÄÏm.Ú><=£ÄÙLóÚ!Ò½/-.Ñ<ÑÅ­:xÕ.mv 0000E0 + 6E656469 0EF0800F 28000384 85983E0E 7C0A38D5 28000342 434C1F07 7B090840 @..{..LCB..(Õ8.|.>.....(..ð.iden 000100 + 78657420 58655420 656D6568 6373676E 69646F63 15F0524D 43207265 69666974 tifier CMRð.codingscheme TeX tex 000120 + F6F6F6F6 F6F6F6F6 F6F6F6F5 0000B600 F4657479 62656361 66746E6F 660CF074 tð.fontfacebyteô.¶..õööööööööööö 000140 + F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 öööööööööööööööööööööööööööööööö 000160 + F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 öööööööööööööööööööööööööööööööö 000180 + F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 öööööööööööööööööööööööööööööööö 0001A0 + F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 öööööööööööööööööööööööööööööööö 0001C0 + F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 öööööööööööööööööööööööööööööööö 0001E0 + +Dump of file DISK11:[ANONYMOUS.TEXT1.FONTS]CMR36.300PK;1 on 27-MAR-1991 10:21:13.78 +File ID (473,1,0) End of file block 41 / Allocated 42 + +Virtual block number 41 (00000029), 512 (0200) bytes + + F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 öööööööööööööööööööööööööööööööö 000000 + F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 öööööööööööööööööööööööööööööööö 000020 + 00000000 00000000 00000000 0000FFFF F6F6F6F6 F6F6F6F6 F6F6F6F6 F6F6F6F6 öööööööööööööööö................ 000040 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000060 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000080 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0000A0 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0000C0 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0000E0 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000100 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000120 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000140 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000160 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 000180 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0001A0 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0001C0 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 0001E0 diff --git a/macros/text1/fonts/dt.240pk b/macros/text1/fonts/dt.240pk new file mode 100644 index 0000000000..9bafe234a0 Binary files /dev/null and b/macros/text1/fonts/dt.240pk differ diff --git a/macros/text1/fonts/dt.300pk b/macros/text1/fonts/dt.300pk new file mode 100644 index 0000000000..137d069175 Binary files /dev/null and b/macros/text1/fonts/dt.300pk differ diff --git a/macros/text1/fonts/dt.mf b/macros/text1/fonts/dt.mf new file mode 100644 index 0000000000..54722d595d --- /dev/null +++ b/macros/text1/fonts/dt.mf @@ -0,0 +1,17 @@ +% halftone font with 65 levels of gray, characters "0" (white) to "p" (black) + +pair p[]; % the pixels in order (first p0 becomes black, then p1, etc.) +pair d[]; d[0]=(0,0); d[1]=(1,1); d[2]=(0,1); d[3]=(1,0); % dither control +def wrap(expr z)=(xpart z mod 8,ypart z mod 8) enddef; +for i=0 upto 3: for j=0 upto 3: for k=0 upto 3: + p[16i+4j+k]=wrap(4d[k]+2d[j]+d[i]+(2,2)); endfor endfor endfor + +w#:=8/pt; % that's 8 pixels +font_quad:=w#; designsize:=8w#; + +picture prevchar; prevchar=nullpicture; % pixels blackened so far +for i=0 upto 64: + beginchar(i+ASCII"0",w#,w#,0); currentpicture:=prevchar; + if i>0: addto currentpicture also unitpixel shifted p[i-1]; fi + prevchar:=currentpicture; endchar; +endfor diff --git a/macros/text1/fonts/dt.readme b/macros/text1/fonts/dt.readme new file mode 100644 index 0000000000..ef9efd8f5d --- /dev/null +++ b/macros/text1/fonts/dt.readme @@ -0,0 +1,8 @@ +DT is a font suggested by Don Knuth and illustrated in TUGboat V8N2. It contains +65 levels of gray from white to black. + +To create a new version of font dt, you must run MF on the file dt300.mf. If, +for example, you want a different resolution than 300dpi, you could copy +dt300.mf to dt240.mf, modify the pixels_per_inch to reflect 240dpi, and then +run MF on dt240. When done, rename the 240gf and tfm files to be dt instead of +dt240 (or waits). diff --git a/macros/text1/fonts/dt.tfm b/macros/text1/fonts/dt.tfm new file mode 100644 index 0000000000..4179f63cc2 Binary files /dev/null and b/macros/text1/fonts/dt.tfm differ diff --git a/macros/text1/fonts/dt240.mf b/macros/text1/fonts/dt240.mf new file mode 100644 index 0000000000..27521240d1 --- /dev/null +++ b/macros/text1/fonts/dt240.mf @@ -0,0 +1,12 @@ +% halftone font dithered +mode_setup; +font_coding_scheme:="TEX TEXT"; +if (pixels_per_inch<>240) or (mag<>1): + errmessage "Sorry, this font is only for resolution 240"; + errmessage "Abort the run now or you'll clobber the TFM file"; + forever: endfor +else: input dt fi +if fontmaking>0: font_family font_identifier_; + coding_scheme font_coding_scheme_; fi +end. + diff --git a/macros/text1/fonts/dt300.mf b/macros/text1/fonts/dt300.mf new file mode 100644 index 0000000000..ed44f467b0 --- /dev/null +++ b/macros/text1/fonts/dt300.mf @@ -0,0 +1,12 @@ +% halftone font dithered +mode_setup; +font_coding_scheme:="TEX TEXT"; +if (pixels_per_inch<>300) or (mag<>1): + errmessage "Sorry, this font is only for resolution 300"; + errmessage "Abort the run now or you'll clobber the TFM file"; + forever: endfor +else: input dt fi +if fontmaking>0: font_family font_identifier_; + coding_scheme font_coding_scheme_; fi +end. + diff --git a/macros/text1/macintosh/texix.macinfo b/macros/text1/macintosh/texix.macinfo new file mode 100644 index 0000000000..2de62e24e6 --- /dev/null +++ b/macros/text1/macintosh/texix.macinfo @@ -0,0 +1,4 @@ +To create a new application on the Macintosh for the TEXT1 sorted index, you +must TANGLE the TEXIX.WEB file (found in the directory TEXIX) with the +TEXIX.TURBOMAC changes file. Then compile the program with Turbo Pascal on your +Macintosh. It requires Turbo Pascal and Turbo Toolbox to compile. diff --git a/macros/text1/macintosh/texix.turbomac b/macros/text1/macintosh/texix.turbomac new file mode 100644 index 0000000000..8e6ecaaa49 --- /dev/null +++ b/macros/text1/macintosh/texix.turbomac @@ -0,0 +1,591 @@ +% Version 1.0; Dean Guenther; 4/1/86 +% Version 1.1; Dean Guenther; 12/87 +% Version 1.2; Dean Guenther; 6/28/88 +These are the changes necessary to use TEXIX with Turbo mac pascal. + +@x line 6 + \centerline{{\twelvept For IBM VM/CMS Pascal/VS}} +@y + \centerline{{\twelvept For Macintosh Turbo Pascal}} +@z + +@x line 68 +\def\PASCAL{{\sc PASCAL/VS}} +@y +\def\PASCAL{{\sc Macintosh Turbo Pascal}} +@z + +@x line 87 +@ The @^TEXIX@> +program is written entirely in WEB, except for an external +procedure, {\it plsort}, which is written in @^PL/1@> PL/1. +This was necessary since +\PASCAL\ cannot call +@:plsort@> +Syncsort @^SYNCSORT@> +to do an internal sort, and PL/1 can. +@y +@ The @^TEXIX@> +program is written entirely in WEB, except for an internal +sort which uses the TURBO Pascal DataBase Toolbox sort. +This was necessary since +\PASCAL\ cannot itself do a sort. +@z + +@x line 107 +segment texix; +procedure texix(ix:char); external; +procedure texix; +@y +program texix; +@{$U Sort@} +uses sane, MemTypes, QuickDraw, OSIntf, Sort, toolintf; @/ +@{It is required to convert all @@ into a shift-6 \^ {} before +compiling this with turbo pascal@} @{ There is one exception, +the line at the bottom that calls the Sort routine should retain +the at signs.@} + +@z + +@x line 119 +@= +sysprint:text; +@!ix_file :text; +@y +@= +sysprint:text; +@!ix_file :text; +@!curslist:CursorList; +@!total_recs:integer; +@!clock_time:integer; +@z + +@x line 123 +@ The {\it sort\_file} is used for the internal sort only. The \text1\ user +never has access to it. + +@= +@!sort_file :file of sort_type; +@y +@ The {\it sort\_file} used with Pascal/VS is not needed in \PASCAL. +@z + +@x line 136 +@d dosubstr == substr +@d doindex == index +@y +@d dosubstr == copy +@d doindex == getindex +@z + +@x line 142 +@d getout == return +@d messages == sysprint +@y +@d getout == exit +@d messages == output +@z + +@x line 147 +@d max_field = 300 +@d max_levels = 3 +@d max_lrecl = 2048 +@y +@d max_field = 255 +@d max_levels = 3 +@d max_lrecl = 255 +@z + +@x line 147 +in_record := dosubstr(in_record,1 + #) +@y +in_record := dosubstr(in_record,1 + #,length(in_record)) +@z + +@x line 160 +@d string_type(#) == string(#) +@y +@d string_type(#) == string[#] +@z + +@x line 206 +@ This is arbitrary, but +there should never be more than 8 indicies. + +@d s_file_number == '9' +@y +@ The variable {\it s\_file\_number} is not used in \PASCAL\ and +is omitted here. +@z + +@x line 253 + ccat := x ccat_temp y; +@y + ccat := concat(x,y); +@z + +@x line 277 +@p procedure reset_file(file_number:char); +begin +if file_number = '9' then reset(sort_file, +'NAME=TEXT1$$.OUTSORT.A,LRECL=1857,RECFM=V') +else reset(ix_file, +ccat(ccat('NAME=TEXT1$$.IX',str(file_number)),'.A')); +end; +@y +@p procedure reset_file(file_number:char); +begin +@{$I-@} +reset(ix_file, +ccat('TEXT1$$.IX',file_number)); +@{$I+@} +if ioresult <> 0 then +begin +writeln(messages,^G, +' -- Cannot find file ',ccat('TEXT1$$.IX',file_number)); +halt; +end; +end; + +function getindex(x:string_pass;y:string_pass):integer; +begin + getindex := pos(y,x); + end; + +function trim(object:string_pass):string_pass; +var i:integer; +new_string:string_pass; +begin +i:=length(object)+1; +repeat + decr(i); + until (object[i] <> ' ') or (i=1); +if (object[i] = ' ') and (i=1) +then new_string:='' +else new_string:=copy(object,1,i); +trim:=new_string; +end; +@z + +@x line 292 +@p procedure file_rewrite(file_number:char); +begin +if file_number = '9' +then +rewrite(sort_file,'NAME=TEXT1$$.INSORT.A,LRECL=1857,RECFM=V') +else +rewrite(ix_file, +ccat(ccat('NAME=TEXT1$$.IX',str(file_number)), +'.A,LRECL=2048,RECFM=V')); +end; +@y +@p procedure file_rewrite(file_number:char); +begin +rewrite(ix_file, +ccat('TEXT1$$.IX',file_number)); +end; +@z + +@x line 343 +@ @= +@!string_pass=string_type(max_lrecl); +@y +@ @= +@!CursorList = array[iBeamCursor..watchCursor] of CursHandle; +@!string_pass=string_type(max_lrecl); +@z + +@x line 444 +@ The {\it get\_numeric} +function will take a packed array of length max\_pn\_alpha and convert +that array (which is really the page number) into an integer. + +@p function get_numeric(x_string:string_type(max_pn_alpha)):integer; +var @!i:integer; +begin +readstr(x_string,i); +get_numeric:=i; +end; +@y +@ This function is needed to put the string to be converted by +get\_numeric into the upper right portion of the string to be +converted. + +@p function shift_right(in_string:string_pass):decstr; +var i,j:integer; temp:pn_alpha_type; +begin + j:=0; + repeat incr(j); {find the first blank} + until (in_string[j] = ' ') or (in_string[j] = '') or + (j >= length(in_string)); + for i:= 1 to sizeof(temp)-1 do temp[i]:=' '; + for i:=1 to j do temp[sizeof(temp)-j+i]:=in_string[i]; + shift_right:=temp; + end; + +@ The {\it get\_numeric} +function will take a packed array of length max\_pn\_alpha and convert +that array (which is really the page number) into an integer. + +@p function get_numeric(x_string:string_pass):integer; +var @!i:integer; +begin +get_numeric:=num2integer(str2num(shift_right(x_string))); +end; +@z + +@x line 459 +@p procedure strvalue(x:integer; var results:pass_pn_alpha); +var +temp:string_type(max_pn_alpha); +begin +writestr(temp,x); +results:=ltrim(temp); +end; +@y +@p procedure strvalue(X:integer; var results:pass_pn_alpha); +var temp:decstr; + y:extended; + f:decform; + i,qq:integer; +begin + f.style := fixeddecimal; + f.digits:=0; + y:=num2extended(x); + for i := 1 to decstrlen do temp[i] := ' '; + num2str(f,y,temp); + i:=1; + results:=temp; + end; +@z + +@x line 470 +@p function strconv(x:pn_alpha_type):string_type(max_pn_alpha); +var i:integer; +temp:string_type(max_pn_alpha); +begin +temp:='';i := 1; +with sort_record do begin +repeat +if x[i] <> ' ' then +temp := ccat(temp,str(x[i])); +incr(i); +until (i > max_pn_alpha) or (x[i] = ' '); +end; +strconv:=temp; +end; +@y +@p function strconv(x:pn_alpha_type):pass_pn_alpha; +var i:integer; +temp:string_type(max_pn_alpha); +begin +temp:='';i := 1; +with sort_record do begin +repeat +if x[i] <> ' ' then +temp := ccat(temp,x[i]); +incr(i); +until (i > max_pn_alpha) or (x[i] = ' '); +end; +strconv:=temp; +end; +@z + +@x line 626 +@ The {\it plsort} procedure is written in PL/1 to call the CMS sort program +Syncsort. This was necessary since you cannot call Syncsort from PASCAL/VS. +The fields to be sorted are defined internally in the {\it plsort} +program. This should be the same as the three sort fields in {\it sort\_type}. +@:sort_type@> +@:plsort@> @^PL/1@> +@^Syncsort@> + +@p procedure plsort(var sort_rc:integer); fortran; +@y +@ The {\it LessRec} function is used by Turbo Pascal Database Toolbox's +Sort routine. It returns true if record ``x'' is less than record ``y''. +The record {\it sort\_type} is used for comparison. +@:sort_type@> + +@p function LessRec(var x,y :sort_type):boolean; +var Lower :boolean; +begin Lower := (x.sort_part[1].field_level < y.sort_part[1].field_level); +if not Lower then begin {x $\ge$ y} +Lower := (x.sort_part[1].field_level = y.sort_part[1].field_level); +if Lower then begin {x = y} +Lower := (x.sort_part[2].field_level < y.sort_part[2].field_level); +if not Lower then begin {x $\ge$ y} +Lower := (x.sort_part[2].field_level = y.sort_part[2].field_level); +if Lower then begin {x = y} +Lower := (x.sort_part[3].field_level < y.sort_part[3].field_level); +if not Lower then begin {x $\ge$ y} +Lower := (x.sort_part[3].field_level = y.sort_part[3].field_level); +if Lower then begin {x = y} +Lower := (x.abs_page_number < y.abs_page_number); +if not Lower then begin {x $\ge$ y} +Lower := (x.abs_page_number = y.abs_page_number); +if Lower then begin {x = y} +Lower := (x.page_number < y.page_number); +if not Lower then begin {x $\ge$ y} +Lower := (x.page_number = y.page_number); +if Lower then {x = y} +Lower := (x.record_type < y.record_type); +end; end; end; end; end; end; end; end; end; +LessRec := Lower; +end; +@z + +@x line 643 +@ This function converts to all uppercase. +Notice that this is an EBCIDIC conversion, not an ASCII conversion +to uppercase. + +@p function upper_case(x:char):char; +var temp:char; +begin + if (ord(x)>=129)and(ord(x)<=169) then + temp:=chr(ord(x)+64) + else temp:=x; +upper_case:=temp; +end; +@y +@ This function converts to all uppercase. +Notice that this is an ASCII conversion, not an EBCDIC conversion +to uppercase. + +@p function upper_case(x:char):char; +var temp:char; +begin + if ord(x) >= "a" then + temp:=chr(ord(x)-@'40) + else temp:=x; +upper_case:=temp; +end; +@z + +@x line 719 +@ +@y +writeln(messages); +writeln(messages,'Reading in the input now...'); +total_recs := 0; +@ +@z + +@x line 722 +@@/ +@y +@@/ +incr(total_recs);write(total_recs:6);gotoxy(1,6); +@z + +@x line 728 +end;end; +@y +end; +close(ix_file); +writeln(messages); +writeln(messages,'done reading the records. Starting to sort......'); +clock_time := tickcount; +end; +@z + +@x line 738 +if dosubstr(in_record,doindex(in_record,'=')+1) = 'no' +@y +if dosubstr(in_record,doindex(in_record,'=')+1,length(in_record)) + = 'no' +@z + +@x line 744 +if dosubstr(in_record,doindex(in_record,'=')+1) = 'no' +@y +if dosubstr(in_record,doindex(in_record,'=')+1,length(in_record)) + = 'no' +@z + +@x line 867 +@ Ok, the record has been processed, so write it to the output file. + +@= +sort_file@@:=sort_record; +put(sort_file); +@y +@ Ok, the record has been processed, so write it to the output file +using the procedure defined to Turbo Pascal's Database Toolbox. + +@= +SortRelease(sort_record); +@z + +@x line 890 +The page number for a blind entry will always be 999999999. + +@= +begin remove_characters(6);{Throw away the `\$\{\$\}be'}@/ +i := doindex(in_record,'{$}'); +curr_level:=2; +write_print_chars(i-1); +curr_level:=0; +remove_characters(3);{Throw away the `\{\$\}'} +sort_record.page_number := 999999999; +@y +The page number for a blind entry will always be 9999. + +@= +begin remove_characters(6);{Throw away the `\$\{\$\}be'}@/ +i := doindex(in_record,'{$}'); +curr_level:=2; +write_print_chars(i-1); +curr_level:=0; +remove_characters(3);{Throw away the `\{\$\}'} +sort_record.page_number := 9999; +@z + +@x line 976 +str_blind_entry := ccat(str_blind_entry,str(field_level[i])); +@y +str_blind_entry := ccat(str_blind_entry,field_level[i]); +@z + +@x line 996 +@ If the {\it page\_string[1]} is less than zero, its alphabetic and +roman numeral processing is necessary. + +@= +with sort_record do begin +if ord(page_string[1]) < ord('0') +@y +@ If the {\it page\_string[1]} is greater + than nine, its alphabetic and +roman numeral processing is necessary. + +@= +with sort_record do begin +if ord(page_string[1]) > ord('9') +@z + +@x line 1103 +then curr_str_page:=dosubstr(curr_str_page,2) +@y +then curr_str_page:=dosubstr(curr_str_page,2,length(curr_str_page)) +@z + +@x line 1182 +str_build := dosubstr(str_build,i+1); +end; +@;@/ +if ord(curr_str_page[1]) < ord('0') {Then its alphabetic} +@y +str_build := dosubstr(str_build,i+1,length(str_build)); +end; +@;@/ +if ord(curr_str_page[1]) > ord('9') {Then its alphabetic} +@z + +@x line 1195 +str_build := dosubstr(str_build,i+1); +@y +str_build := dosubstr(str_build,i+1,length(str_build)); +@z + +@x line 1311 +while not eof(sort_file) do begin +sort_record:=sort_file@@; +get(sort_file); +@y +file_rewrite(ix); +clock_time := tickcount - clock_time;write(^G); +writeln(messages,'It took ',clock_time/60.0:1:4,' seconds to sort ', +total_recs:6,' records.'); +writeln(messages,'Now building the file to be formated with TEXT1...'); +while not SortEOS do begin +SortReturn(sort_record); +@z + +@x line 1524 +@* Main Program. +Ok, here is the main program. First we initialize (all\_blanks); then +set the ix\_file for input and the sort\_file for output; read all of the +entries, processing each one; close the files; sort; read the sorted file +in and build the entries, writing them back to the ix\_file to be read in +by the index markup. WHEW!! + +@p +begin @@/ +termout(messages); +reset_file(ix);@/ +file_rewrite(s_file_number); {Should always be file 9}@/ +read_all_entries;@/ +close(ix_file);@/ +close(sort_file);@/ +@@/ +reset_file(s_file_number);@/ +file_rewrite(ix);@/ +build_sorted_index;@/ +end; +@y +@* Main Program. +Ok, here is the main program. First we initialize (all\_blanks); then +prompt to determine which index to use (1, 2, or 3). +Next call Turbo Pascal's sort routine. And thats it. + WHEW!! + +@p +begin @@/ +write('Which index are you processing (1, 2, or 3)? ');@/ +readln(ix);@/ +if (ix <> '1') and (ix <> '2') and (ix <> '3') then begin +writeln(messages, +'You can only process indexes 1, 2, or 3. Start again.'); +halt; end; +clearscreen;writeln(''); +writeln(messages,'Loading the sort routine....'); +writeln(messages); +reset_file(ix);@/ +for m := iBeamCursor to watchCursor do begin +curslist[m] := getcursor(m); +hlock(handle(curslist[m]));end;setcursor(curslist[watchCursor]^^); +showcursor; +@@/ +hidecursor; +close(ix_file); {ix_file now has the index to be run through \TeX} +write(messages,'Press any key to continue ');readln; +end. +@z + + +@x line 1548 +@ As mentioned earlier, {\it plsort} is an external PL/1 subroutine +@^PL/1@> +@^Syncsort@> +which is used to call Syncsort to sort the file. +The sort fields are as follows: +@y +@ As mentioned earlier, {\it TurboSort} is a Turbo Toolbox Database + subroutine +which is used to sort the index file. +The sort fields are as follows: +@z + +@x line 1562 +sort_rc:integer; +@y +sort_rc:integer; +@!ix:char; +@z + +@x line 1564 +@ @= +plsort(sort_rc); +if sort_rc = 0 + then writeln(messages,'Index Successfully Completed') + else writeln(messages,'Index Failed'); +@y +@ @= +sort_rc := TurboSort(sizeof(sort_type),@@read_all_entries, +@@LessRec, @@build_sorted_index); +if sort_rc = 0 + then writeln(messages,'Index Successfully Completed') + else writeln(messages,'Index Failed'); +@z diff --git a/macros/text1/macintosh/texix_macintosh.readme b/macros/text1/macintosh/texix_macintosh.readme new file mode 100644 index 0000000000..255c6f6d19 --- /dev/null +++ b/macros/text1/macintosh/texix_macintosh.readme @@ -0,0 +1,7 @@ +You may unbinhex the file TEXT1_INDEX_SORT.BIN and run that application on a +Macintosh (at least up to system 7). + +To create a new application on the Macintosh for the TEXT1 sorted index, you +must TANGLE the TEXIX.WEB file (found in the directory TEXIX) with the +TEXIX.TURBOMAC changes file. Then compile the program with Turbo Pascal on your +Macintosh. It requires Turbo Pascal and Turbo Toolbox to compile. diff --git a/macros/text1/macintosh/text1_index_sort.bin b/macros/text1/macintosh/text1_index_sort.bin new file mode 100644 index 0000000000..f15a1e7624 Binary files /dev/null and b/macros/text1/macintosh/text1_index_sort.bin differ diff --git a/macros/text1/macros/cgfonts.lclist b/macros/text1/macros/cgfonts.lclist new file mode 100644 index 0000000000..6558013c77 --- /dev/null +++ b/macros/text1/macros/cgfonts.lclist @@ -0,0 +1,124 @@ +agb +agbk +agd +agxl +belb +bell +belli +belr +bemb +bemi +bemr +bemsc +bkd +bkdi +bkl +bkli +bodb +bodbi +bodbk +bodbki +bodi +bodr +bodsc +bodxb +bordera +borderb +brush +cenb +ceni +cenr +censc +courier +ctb +cti +ctr +ding +elite +etb +etbi +eti +etr +etsc +etsi +ext +garab +garabi +garai +garar +garasc +garb +garbi +garbk +garbki +garl +garli +garu +garui +gkh +gkhi +gkt +gktb +gkti +heb +hebi +hei +her +hesc +ipa +korb +korbi +kori +korout +korr +korxb +korxbi +modern +mthit +mthitss +mthrm +mthrmss +ocrb +olde +omb +ombi +omi +omr +omsc +park +plb +plbi +pli +plr +plsc +quil +spchar +specials +svd +svdi +svl +svli +svsc +symbola +symbolb +symlogo +tifd +tifh +tifl +tifr +trib +tribc +tribi +tribl +triblb +tric +trii +tril +trili +trir +trisc +unib +unibi +unii +unil +unir diff --git a/macros/text1/macros/cm10.textext b/macros/text1/macros/cm10.textext new file mode 100644 index 0000000000..aa431de13e --- /dev/null +++ b/macros/text1/macros/cm10.textext @@ -0,0 +1,34 @@ +\font\cmXbi=cmbxti10 +\font\cmXcc=cmcsc10 +\expandafter\newdimen\csname\the\naMEtok ilsx\endcsname +\global\csname\the\naMEtok ilsx\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsx\endcsname=0pt +\csname\the\naMEtok ilsx\endcsname=12pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\tenrm}% +\def\noexpand\mi{\fam1\teni}% +\def\noexpand\sy{\fam2\tensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\tenrm \textfont1=\teni + \textfont2=\tensy \textfont3=\tenex + \textfont\itfam=\tenit + \textfont\ttfam=\tentt \textfont\bffam=\tenbf + \textfont\ccfam=\cmXcc +\def\noexpand\bd{\fam\bffam\tenbf}% +\def\noexpand\it{\fam\itfam\tenit}% +\def\noexpand\tt{\fam\ttfam\tentt}% +\def\noexpand\cc{\fam\ccfam\cmXcc}% +\def\noexpand\bi{\fam\bifam\cmXbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsx\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm108m.texmath b/macros/text1/macros/cm108m.texmath new file mode 100644 index 0000000000..2410c5b3d7 --- /dev/null +++ b/macros/text1/macros/cm108m.texmath @@ -0,0 +1,10 @@ +\font\cmVIIIrm=cmr8 \font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\tenrm \scriptfont1=\teni + \scriptfont2=\tensy \scriptfont3=\tenex + \scriptfont\bffam=\tenbf + \scriptscriptfont0=\cmVIIIrm \scriptscriptfont1=\cmVIIImi + \scriptscriptfont2=\cmVIIIsy \scriptscriptfont3=\cmVIIIex + \scriptscriptfont\bffam=\cmVIIIbd}% diff --git a/macros/text1/macros/cm109m.texmath b/macros/text1/macros/cm109m.texmath new file mode 100644 index 0000000000..7b5104aaf7 --- /dev/null +++ b/macros/text1/macros/cm109m.texmath @@ -0,0 +1,10 @@ +\font\cmIXrm=cmr9 \font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\tenrm \scriptfont1=\teni + \scriptfont2=\tensy \scriptfont3=\tenex + \scriptfont\bffam=\tenbf + \scriptscriptfont0=\cmIXrm \scriptscriptfont1=\cmIXmi + \scriptscriptfont2=\cmIXsy \scriptscriptfont3=\cmIXex + \scriptscriptfont\bffam=\cmIXbd}% diff --git a/macros/text1/macros/cm11.textext b/macros/text1/macros/cm11.textext new file mode 100644 index 0000000000..aa9300ae37 --- /dev/null +++ b/macros/text1/macros/cm11.textext @@ -0,0 +1,40 @@ +\global\newif\ifcmXIbierr +\font\cmXIcc=cmcsc11 +\font\cmXIrm=cmr11 \font\cmXIit=cmti11 +\font\cmXIbd=cmbx11 \font\cmXImi=cmmi11 +\font\cmXItt=cmtt11\font\cmXIsy=cmsy11 +\expandafter\newdimen\csname\the\naMEtok ilsxi\endcsname +\global\csname\the\naMEtok ilsxi\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxi\endcsname=0pt +\csname\the\naMEtok ilsxi\endcsname=13pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIrm}% +\def\noexpand\mi{\fam1\cmXImi}% +\def\noexpand\sy{\fam2\cmXIsy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmXIrm \textfont1=\cmXImi + \textfont2=\cmXIsy\textfont3=\tenex + \textfont\itfam=\cmXIit + \textfont\ttfam=\cmXItt \textfont\bffam=\cmXIbd + \textfont\ccfam=\cmXIcc +\def\noexpand\bd{\fam\bffam\cmXIbd}% +\def\noexpand\it{\fam\itfam\cmXIit}% +\def\noexpand\tt{\fam\ttfam\cmXItt}% +\def\noexpand\cc{\fam\ccfam\cmXIcc}% +\def\noexpand\bi{\noexpand\ifcmXIbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CM11. Will print italic font .}% +\noexpand\global\noexpand\cmXIbierrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxi\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm1110m.texmath b/macros/text1/macros/cm1110m.texmath new file mode 100644 index 0000000000..09cc8fb54e --- /dev/null +++ b/macros/text1/macros/cm1110m.texmath @@ -0,0 +1,10 @@ +\font\cmXImi=cmmi11 +\font\cmXIsy=cmsy11 \font\cmXIex=cmex11 +\font\cmXIbd=cmbx11\font\cmXIrm=cmr11 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIrm \scriptfont1=\cmXImi + \scriptfont2=\cmXIsy \scriptfont3=\cmXIex + \scriptfont\bffam=\cmXIbd + \scriptscriptfont0=\tenrm \scriptscriptfont1=\teni + \scriptscriptfont2=\tensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\tenbf}% diff --git a/macros/text1/macros/cm119m.texmath b/macros/text1/macros/cm119m.texmath new file mode 100644 index 0000000000..13eca0aebf --- /dev/null +++ b/macros/text1/macros/cm119m.texmath @@ -0,0 +1,13 @@ +\font\cmXImi=cmmi11 +\font\cmXIsy=cmsy11 \font\cmXIex=cmex11 +\font\cmXIbd=cmbx11 \font\cmXIrm=cmr11 +\font\cmIXrm=cmr9 \font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIrm \scriptfont1=\cmXImi + \scriptfont2=\cmXIsy \scriptfont3=\cmXIex + \scriptfont\bffam=\cmXIbd + \scriptscriptfont0=\cmIXrm \scriptscriptfont1=\cmIXmi + \scriptscriptfont2=\cmIXsy \scriptscriptfont3=\cmIXex + \scriptscriptfont\bffam=\cmIXbd}% diff --git a/macros/text1/macros/cm12.textext b/macros/text1/macros/cm12.textext new file mode 100644 index 0000000000..a505abed9c --- /dev/null +++ b/macros/text1/macros/cm12.textext @@ -0,0 +1,37 @@ +\font\cmXIIbi=cmbxti12 +\font\cmXIIcc=cmcsc12 \font\cmXIIex=cmex12 +\font\cmXIIrm=cmr12 \font\cmXIIit=cmti12 +\font\cmXIIbd=cmbx12 \font\cmXIImi=cmmi12 +\font\cmXIItt=cmtt12 \font\cmXIIsy=cmsy12 +\expandafter\newdimen\csname\the\naMEtok ilsxii\endcsname +\global\csname\the\naMEtok ilsxii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxii\endcsname=0pt +\csname\the\naMEtok ilsxii\endcsname=14pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIIrm}% +\def\noexpand\mi{\fam1\cmXIImi}% +\def\noexpand\sy{\fam2\cmXIIsy}% +\def\noexpand\ex{\fam3\cmXIIex}% + \textfont0=\cmXIIrm \textfont1=\cmXIImi + \textfont2=\cmXIIsy \textfont3=\cmXIIex + \textfont\itfam=\cmXIIit + \textfont\ttfam=\cmXIItt \textfont\bffam=\cmXIIbd + \textfont\ccfam=\cmXIIcc +\def\noexpand\bd{\fam\bffam\cmXIIbd}% +\def\noexpand\it{\fam\itfam\cmXIIit}% +\def\noexpand\tt{\fam\ttfam\cmXIItt}% +\def\noexpand\cc{\fam\ccfam\cmXIIcc}% +\def\noexpand\bi{\fam\bifam\cmXIIbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxii\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm1210m.texmath b/macros/text1/macros/cm1210m.texmath new file mode 100644 index 0000000000..e1ccb4c7fc --- /dev/null +++ b/macros/text1/macros/cm1210m.texmath @@ -0,0 +1,10 @@ +\font\cmXIImi=cmmi12 +\font\cmXIIsy=cmsy12 \font\cmXIIex=cmex12 +\font\cmXIIbd=cmbx12\font\cmXIIrm=cmr12 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIIrm \scriptfont1=\cmXIImi + \scriptfont2=\cmXIIsy \scriptfont3=\cmXIIex + \scriptfont\bffam=\cmXIIbd + \scriptscriptfont0=\tenrm \scriptscriptfont1=\teni + \scriptscriptfont2=\tensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\tenbf}% diff --git a/macros/text1/macros/cm1211m.texmath b/macros/text1/macros/cm1211m.texmath new file mode 100644 index 0000000000..d9c4e13c45 --- /dev/null +++ b/macros/text1/macros/cm1211m.texmath @@ -0,0 +1,13 @@ +\font\cmXIImi=cmmi12 +\font\cmXIIsy=cmsy12 \font\cmXIIex=cmex12 +\font\cmXIIbd=cmbx12\font\cmXIIrm=cmr12 +\font\cmXIrm=cmr11 \font\cmXImi=cmmi11 +\font\cmXIsy=cmsy11 \font\cmXIex=cmex11 +\font\cmXIbd=cmbx11 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIIrm \scriptfont1=\cmXIImi + \scriptfont2=\cmXIIsy \scriptfont3=\cmXIIex + \scriptfont\bffam=\cmXIIbd + \scriptscriptfont0=\cmXIrm \scriptscriptfont1=\cmXImi + \scriptscriptfont2=\cmXIsy \scriptscriptfont3=\cmXIex + \scriptscriptfont\bffam=\cmXIbd}% diff --git a/macros/text1/macros/cm14.textext b/macros/text1/macros/cm14.textext new file mode 100644 index 0000000000..f302bf6a12 --- /dev/null +++ b/macros/text1/macros/cm14.textext @@ -0,0 +1,37 @@ +\font\cmXIVbi=cmbxti14 +\font\cmXIVcc=cmcsc14 \font\cmXIVex=cmex14 +\font\cmXIVrm=cmr14 \font\cmXIVit=cmti14 +\font\cmXIVbd=cmbx14 \font\cmXIVmi=cmmi14 +\font\cmXIVtt=cmtt14 \font\cmXIVsy=cmsy14 +\expandafter\newdimen\csname\the\naMEtok ilsxiv\endcsname +\global\csname\the\naMEtok ilsxiv\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiv\endcsname=0pt +\csname\the\naMEtok ilsxiv\endcsname=16pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIVrm}% +\def\noexpand\mi{\fam1\cmXIVmi}% +\def\noexpand\sy{\fam2\cmXIVsy}% +\def\noexpand\ex{\fam3\cmXIVex}% + \textfont0=\cmXIVrm \textfont1=\cmXIVmi + \textfont2=\cmXIVsy \textfont3=\cmXIVex + \textfont\itfam=\cmXIVit + \textfont\ttfam=\cmXIVtt \textfont\bffam=\cmXIVbd + \textfont\ccfam=\cmXIVcc +\def\noexpand\bd{\fam\bffam\cmXIVbd}% +\def\noexpand\it{\fam\itfam\cmXIVit}% +\def\noexpand\tt{\fam\ttfam\cmXIVtt}% +\def\noexpand\cc{\fam\ccfam\cmXIVcc}% +\def\noexpand\bi{\fam\bifam\cmXIVbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiv\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm1412m.texmath b/macros/text1/macros/cm1412m.texmath new file mode 100644 index 0000000000..fc933ca00f --- /dev/null +++ b/macros/text1/macros/cm1412m.texmath @@ -0,0 +1,13 @@ +\font\cmXIVmi=cmmi14 +\font\cmXIVsy=cmsy14 \font\cmXIVex=cmex14 +\font\cmXIVbd=cmbx14\font\cmXIVrm=cmr14 +\font\cmXIIrm=cmr12 \font\cmXIImi=cmmi12 +\font\cmXIIsy=cmsy12 \font\cmXIIex=cmex12 +\font\cmXIIbd=cmbx12 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIVrm \scriptfont1=\cmXIVmi + \scriptfont2=\cmXIVsy \scriptfont3=\cmXIVex + \scriptfont\bffam=\cmXIVbd + \scriptscriptfont0=\cmXIIrm \scriptscriptfont1=\cmXIImi + \scriptscriptfont2=\cmXIIsy \scriptscriptfont3=\cmXIIex + \scriptscriptfont\bffam=\cmXIIbd}% diff --git a/macros/text1/macros/cm18.textext b/macros/text1/macros/cm18.textext new file mode 100644 index 0000000000..c4c9f52d87 --- /dev/null +++ b/macros/text1/macros/cm18.textext @@ -0,0 +1,37 @@ +\font\cmXVIIIbi=cmbxti18 +\font\cmXVIIIcc=cmcsc18 \font\cmXVIIIex=cmex18 +\font\cmXVIIIrm=cmr18 \font\cmXVIIIit=cmti18 +\font\cmXVIIIbd=cmbx18 \font\cmXVIIImi=cmmi18 +\font\cmXVIIItt=cmtt18 \font\cmXVIIIsy=cmsy18 +\expandafter\newdimen\csname\the\naMEtok ilsxviii\endcsname +\global\csname\the\naMEtok ilsxviii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxviii\endcsname=0pt +\csname\the\naMEtok ilsxviii\endcsname=20pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXVIIIrm}% +\def\noexpand\mi{\fam1\cmXVIIImi}% +\def\noexpand\sy{\fam2\cmXVIIIsy}% +\def\noexpand\ex{\fam3\cmXVIIIex}% + \textfont0=\cmXVIIIrm \textfont1=\cmXVIIImi + \textfont2=\cmXVIIIsy \textfont3=\cmXVIIIex + \textfont\itfam=\cmXVIIIit + \textfont\ttfam=\cmXVIIItt \textfont\bffam=\cmXVIIIbd + \textfont\ccfam=\cmXVIIIcc +\def\noexpand\bd{\fam\bffam\cmXVIIIbd}% +\def\noexpand\it{\fam\itfam\cmXVIIIit}% +\def\noexpand\tt{\fam\ttfam\cmXVIIItt}% +\def\noexpand\cc{\fam\ccfam\cmXVIIIcc}% +\def\noexpand\bi{\fam\bifam\cmXVIIIbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxviii\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm1814m.texmath b/macros/text1/macros/cm1814m.texmath new file mode 100644 index 0000000000..c3c34b0f02 --- /dev/null +++ b/macros/text1/macros/cm1814m.texmath @@ -0,0 +1,13 @@ +\font\cmXVIIImi=cmmi18 +\font\cmXVIIIsy=cmsy18 \font\cmXVIIIex=cmex18 +\font\cmXVIIIbd=cmbx18\font\cmXVIIIrm=cmr18 +\font\cmXIVrm=cmr14 \font\cmXIVmi=cmmi14 +\font\cmXIVsy=cmsy14 \font\cmXIVex=cmex14 +\font\cmXIVbd=cmbx14 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXVIIIrm \scriptfont1=\cmXVIIImi + \scriptfont2=\cmXVIIIsy \scriptfont3=\cmXVIIIex + \scriptfont\bffam=\cmXVIIIbd + \scriptscriptfont0=\cmXIVrm \scriptscriptfont1=\cmXIVmi + \scriptscriptfont2=\cmXIVsy \scriptscriptfont3=\cmXIVex + \scriptscriptfont\bffam=\cmXIVbd}% diff --git a/macros/text1/macros/cm24.textext b/macros/text1/macros/cm24.textext new file mode 100644 index 0000000000..83dc4387be --- /dev/null +++ b/macros/text1/macros/cm24.textext @@ -0,0 +1,37 @@ +\font\cmXXIVbi=cmbxti24 +\font\cmXXIVcc=cmcsc24 \font\cmXXIVex=cmex24 +\font\cmXXIVrm=cmr24 \font\cmXXIVit=cmti24 +\font\cmXXIVbd=cmbx24 \font\cmXXIVmi=cmmi24 +\font\cmXXIVtt=cmtt24\font\cmXXIVsy=cmsy24 +\expandafter\newdimen\csname\the\naMEtok ilsxxiv\endcsname +\global\csname\the\naMEtok ilsxxiv\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxiv\endcsname=0pt +\csname\the\naMEtok ilsxxiv\endcsname=26pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXIVrm}% +\def\noexpand\mi{\fam1\cmXXIVmi}% +\def\noexpand\sy{\fam2\cmXXIVsy}% +\def\noexpand\ex{\fam3\cmXXIVex}% + \textfont0=\cmXXIVrm \textfont1=\cmXXIVmi + \textfont2=\cmXXIVsy \textfont3=\cmXXIVex + \textfont\itfam=\cmXXIVit + \textfont\ttfam=\cmXXIVtt \textfont\bffam=\cmXXIVbd + \textfont\ccfam=\cmXXIVcc +\def\noexpand\bd{\fam\bffam\cmXXIVbd}% +\def\noexpand\it{\fam\itfam\cmXXIVit}% +\def\noexpand\tt{\fam\ttfam\cmXXIVtt}% +\def\noexpand\cc{\fam\ccfam\cmXXIVcc}% +\def\noexpand\bi{\fam\bifam\cmXXIVbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxiv\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm2418m.texmath b/macros/text1/macros/cm2418m.texmath new file mode 100644 index 0000000000..41222e47d0 --- /dev/null +++ b/macros/text1/macros/cm2418m.texmath @@ -0,0 +1,13 @@ +\font\cmXXIVmi=cmmi24 +\font\cmXXIVsy=cmsy24 \font\cmXXIVex=cmex24 +\font\cmXXIVbd=cmbx24\font\cmXXIVrm=cmr24 +\font\cmXVIIIrm=cmr18 \font\cmXVIIImi=cmmi18 +\font\cmXVIIIsy=cmsy18 \font\cmXVIIIex=cmex18 +\font\cmXVIIIbd=cmbx18 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXXIVrm \scriptfont1=\cmXXIVmi + \scriptfont2=\cmXXIVsy \scriptfont3=\cmXXIVex + \scriptfont\bffam=\cmXXIVbd + \scriptscriptfont0=\cmXVIIIrm \scriptscriptfont1=\cmXVIIImi + \scriptscriptfont2=\cmXVIIIsy \scriptscriptfont3=\cmXVIIIex + \scriptscriptfont\bffam=\cmXVIIIbd}% diff --git a/macros/text1/macros/cm36.textext b/macros/text1/macros/cm36.textext new file mode 100644 index 0000000000..9a6f9ce578 --- /dev/null +++ b/macros/text1/macros/cm36.textext @@ -0,0 +1,37 @@ +\font\cmXXXVIbi=cmbxti36 +\font\cmXXXVIcc=cmcsc36\font\cmXXXVIex=cmex36 +\font\cmXXXVIrm=cmr36 \font\cmXXXVIit=cmti36 +\font\cmXXXVIbd=cmbx36 \font\cmXXXVImi=cmmi36 +\font\cmXXXVItt=cmtt36 \font\cmXXXVIsy=cmsy36 +\expandafter\newdimen\csname\the\naMEtok ilsxxxvi\endcsname +\global\csname\the\naMEtok ilsxxxvi\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxxvi\endcsname=0pt +\csname\the\naMEtok ilsxxxvi\endcsname=38pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXXVIrm}% +\def\noexpand\mi{\fam1\cmXXXVImi}% +\def\noexpand\sy{\fam2\cmXXXVIsy}% +\def\noexpand\ex{\fam3\cmXXXVIex}% + \textfont0=\cmXXXVIrm \textfont1=\cmXXXVImi + \textfont2=\cmXXXVIsy \textfont3=\cmXXXVIex + \textfont\itfam=\cmXXXVIit + \textfont\ttfam=\cmXXXVItt \textfont\bffam=\cmXXXVIbd + \textfont\ccfam=\cmXXXVIcc +\def\noexpand\bd{\fam\bffam\cmXXXVIbd}% +\def\noexpand\it{\fam\itfam\cmXXXVIit}% +\def\noexpand\tt{\fam\ttfam\cmXXXVItt}% +\def\noexpand\cc{\fam\ccfam\cmXXXVIcc}% +\def\noexpand\bi{\fam\bifam\cmXXXVIbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxxvi\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm5.textext b/macros/text1/macros/cm5.textext new file mode 100644 index 0000000000..3cdb0205e3 --- /dev/null +++ b/macros/text1/macros/cm5.textext @@ -0,0 +1,51 @@ +\global\newif\ifVbierr +\global\newif\ifVccerr +\global\newif\ifVtterr +\global\newif\ifViterr +\global\newif\ifVbderr +\expandafter\newdimen\csname\the\naMEtok ilsv\endcsname +\global\csname\the\naMEtok ilsv\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsv\endcsname=0pt +\csname\the\naMEtok ilsv\endcsname=8pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\fiverm}% +\def\noexpand\mi{\fam1\fivei}% +\def\noexpand\sy{\fam2\fivesy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\fiverm\textfont1=\fivei + \textfont2=\fivesy\textfont3=\tenex + \textfont\bffam=\fivebf +\def\noexpand\bd{\noexpand\ifVbderr\noexpand\fam\bffam\fivebf% +\noexpand\else\noexpand\fam\bffam\fivebf% +\noexpand\message{ Warning. % +No bold font in CM5. Will print bold extended font .}% +\noexpand\global\noexpand\Vbderrtrue \noexpand\fi}% +\def\noexpand\it{\noexpand\ifViterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No italic font in CM5. Will print roman font .}% +\noexpand\global\noexpand\Viterrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifVtterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CM5. Will print roman font .}% +\noexpand\global\noexpand\Vtterrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifVbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CM5. Will print italic font .}% +\noexpand\global\noexpand\Vbierrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifVccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CM5. Will print roman font .}% +\noexpand\global\noexpand\Vccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsv\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm6.textext b/macros/text1/macros/cm6.textext new file mode 100644 index 0000000000..5a3a735d8c --- /dev/null +++ b/macros/text1/macros/cm6.textext @@ -0,0 +1,49 @@ +\global\newif\ifcmVIbierr +\global\newif\ifcmVIccerr +\global\newif\ifcmVIiterr +\global\newif\ifcmVItterr +\font\cmVIrm=cmr6 +\font\cmVIbd=cmbx6 \font\cmVImi=cmmi6 +\font\sixsy=cmsy6 +\expandafter\newdimen\csname\the\naMEtok ilsvi\endcsname +\global\csname\the\naMEtok ilsvi\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsvi\endcsname=0pt +\csname\the\naMEtok ilsvi\endcsname=8pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmVIrm}% +\def\noexpand\mi{\fam1\cmVImi}% +\def\noexpand\sy{\fam2\sixsy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmVIrm \textfont1=\cmVImi + \textfont2=\tensy \textfont3=\tenex + \textfont\bffam=\cmVIbd +\def\noexpand\bd{\fam\bffam\cmVIbd}% +\def\noexpand\it{\noexpand\ifcmVIiterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No italic font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVIiterrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifcmVIbierr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No bold italic font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVIbierrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifcmVIccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVIccerrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifcmVItterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVItterrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsvi\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm65m.texmath b/macros/text1/macros/cm65m.texmath new file mode 100644 index 0000000000..d1c44223de --- /dev/null +++ b/macros/text1/macros/cm65m.texmath @@ -0,0 +1,10 @@ +\font\cmVImi=cmmi6 +\font\cmVIsy=cmsy6 \font\cmVIex=cmex10 +\font\cmVIbd=cmbx6\font\cmVIrm=cmr6 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmVIrm \scriptfont1=\cmVImi + \scriptfont2=\cmVIsy \scriptfont3=\cmVIex + \scriptfont\bffam=\cmVIbd + \scriptscriptfont0=\fiverm \scriptscriptfont1=\fivei + \scriptscriptfont2=\fivesy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\fivebf}% diff --git a/macros/text1/macros/cm7.textext b/macros/text1/macros/cm7.textext new file mode 100644 index 0000000000..894bff8b2c --- /dev/null +++ b/macros/text1/macros/cm7.textext @@ -0,0 +1,45 @@ +\global\newif\ifVIIbierr +\global\newif\ifVIIbderr +\global\newif\ifVIItterr +\global\newif\ifVIIccerr +\font\cmVIIit=cmti7 +\expandafter\newdimen\csname\the\naMEtok ilsvii\endcsname +\global\csname\the\naMEtok ilsvii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsvii\endcsname=0pt +\csname\the\naMEtok ilsvii\endcsname=9pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\sevenrm}% +\def\noexpand\mi{\fam1\seveni}% +\def\noexpand\sy{\fam2\sevensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\sevenrm \textfont1=\seveni + \textfont2=\sevensy \textfont3=\tenex + \textfont\itfam=\cmVIIit + \textfont\bffam=\sevenbf +\def\noexpand\it{\fam\itfam\cmVIIit}% +\def\noexpand\bd{\fam\bffam\sevenbf}% +\def\noexpand\tt{\noexpand\ifVIItterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CM7. Will print roman font .}% +\noexpand\global\noexpand\VIItterrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifVIIbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CM7. Will print italic font .}% +\noexpand\global\noexpand\VIIbierrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifVIIccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CM7. Will print roman font .}% +\noexpand\global\noexpand\VIIccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsvii\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm75m.texmath b/macros/text1/macros/cm75m.texmath new file mode 100644 index 0000000000..2acd4dc1f4 --- /dev/null +++ b/macros/text1/macros/cm75m.texmath @@ -0,0 +1,7 @@ + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\sevenrm \scriptfont1=\seveni + \scriptfont2=\sevensy \scriptfont3=\tenex + \scriptfont\bffam=\sevenbf + \scriptscriptfont0=\fiverm \scriptscriptfont1=\fivei + \scriptscriptfont2=\fivesy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\fivebf}% diff --git a/macros/text1/macros/cm76m.texmath b/macros/text1/macros/cm76m.texmath new file mode 100644 index 0000000000..796813490d --- /dev/null +++ b/macros/text1/macros/cm76m.texmath @@ -0,0 +1,10 @@ +\font\cmVIrm=cmr6 \font\cmVImi=cmmi6 +\font\cmVIsy=cmsy6 \font\cmVIex=cmex10 +\font\cmVIbd=cmbx6 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\sevenrm \scriptfont1=\seveni + \scriptfont2=\sevensy \scriptfont3=\tenex + \scriptfont\bffam=\sevenbf + \scriptscriptfont0=\cmVIrm \scriptscriptfont1=\cmVImi + \scriptscriptfont2=\cmVIsy \scriptscriptfont3=\cmVIex + \scriptscriptfont\bffam=\cmVIbd}% diff --git a/macros/text1/macros/cm8.textext b/macros/text1/macros/cm8.textext new file mode 100644 index 0000000000..ea69af7705 --- /dev/null +++ b/macros/text1/macros/cm8.textext @@ -0,0 +1,40 @@ +\global\newif\ifcmVIIIbierr +\font\cmVIIIcc=cmcsc8 +\font\cmVIIIrm=cmr8 \font\cmVIIIit=cmti8 +\font\cmVIIIbd=cmbx8 \font\cmVIIImi=cmmi8 +\font\cmVIIItt=cmtt8 +\expandafter\newdimen\csname\the\naMEtok ilsviii\endcsname +\global\csname\the\naMEtok ilsviii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsviii\endcsname=0pt +\csname\the\naMEtok ilsviii\endcsname=10pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmVIIIrm}% +\def\noexpand\mi{\fam1\cmVIIImi}% +\def\noexpand\sy{\fam2\tensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmVIIIrm \textfont1=\cmVIIImi + \textfont2=\tensy \textfont3=\tenex + \textfont\itfam=\cmVIIIit + \textfont\ttfam=\cmVIIItt \textfont\bffam=\cmVIIIbd + \textfont\ccfam=\cmVIIIcc +\def\noexpand\bd{\fam\bffam\cmVIIIbd}% +\def\noexpand\it{\fam\itfam\cmVIIIit}% +\def\noexpand\tt{\fam\ttfam\cmVIIItt}% +\def\noexpand\cc{\fam\ccfam\cmVIIIcc}% +\def\noexpand\bi{\noexpand\ifcmVIIIbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CM8. Will print italic font .}% +\noexpand\global\noexpand\cmVIIIbierrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsviii\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm86m.texmath b/macros/text1/macros/cm86m.texmath new file mode 100644 index 0000000000..9acea1b047 --- /dev/null +++ b/macros/text1/macros/cm86m.texmath @@ -0,0 +1,13 @@ +\font\cmVIIIrm=cmr8 \font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8 +\font\cmVIrm=cmr6 \font\cmVImi=cmmi6 +\font\cmVIsy=cmsy6 \font\cmVIex=cmex10 +\font\cmVIbd=cmbx6 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmVIIIrm \scriptfont1=\cmVIIImi + \scriptfont2=\cmVIIIsy \scriptfont3=\cmVIIIex + \scriptfont\bffam=\cmVIIIbd + \scriptscriptfont0=\cmVIrm \scriptscriptfont1=\cmVImi + \scriptscriptfont2=\cmVIsy \scriptscriptfont3=\cmVIex + \scriptscriptfont\bffam=\cmVIbd}% diff --git a/macros/text1/macros/cm87m.texmath b/macros/text1/macros/cm87m.texmath new file mode 100644 index 0000000000..5bc523025d --- /dev/null +++ b/macros/text1/macros/cm87m.texmath @@ -0,0 +1,10 @@ +\font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8\font\cmVIIIrm=cmr8 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmVIIIrm \scriptfont1=\cmVIIImi + \scriptfont2=\cmVIIIsy \scriptfont3=\cmVIIIex + \scriptfont\bffam=\cmVIIIbd + \scriptscriptfont0=\sevenrm \scriptscriptfont1=\seveni + \scriptscriptfont2=\sevensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\sevenbf}% diff --git a/macros/text1/macros/cm9.textext b/macros/text1/macros/cm9.textext new file mode 100644 index 0000000000..8602cb2d64 --- /dev/null +++ b/macros/text1/macros/cm9.textext @@ -0,0 +1,40 @@ +\global\newif\ifcmIXbierr +\font\cmIXcc=cmcsc9 +\font\cmIXrm=cmr9 \font\cmIXit=cmti9 +\font\cmIXbd=cmbx9 \font\cmIXmi=cmmi9 +\font\cmIXtt=cmtt9 +\expandafter\newdimen\csname\the\naMEtok ilsix\endcsname +\global\csname\the\naMEtok ilsix\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsix\endcsname=0pt +\csname\the\naMEtok ilsix\endcsname=11pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmIXrm}% +\def\noexpand\mi{\fam1\cmIXmi}% +\def\noexpand\sy{\fam2\tensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmIXrm \textfont1=\cmIXmi + \textfont2=\tensy \textfont3=\tenex + \textfont\itfam=\cmIXit + \textfont\ttfam=\cmIXtt \textfont\bffam=\cmIXbd + \textfont\ccfam=\cmIXcc +\def\noexpand\bd{\fam\bffam\cmIXbd}% +\def\noexpand\it{\fam\itfam\cmIXit}% +\def\noexpand\tt{\fam\ttfam\cmIXtt}% +\def\noexpand\cc{\fam\ccfam\cmIXcc}% +\def\noexpand\bi{\noexpand\ifcmIXbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CM9. Will print italic font .}% +\noexpand\global\noexpand\cmIXbierrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsix\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm97m.texmath b/macros/text1/macros/cm97m.texmath new file mode 100644 index 0000000000..612ddf3587 --- /dev/null +++ b/macros/text1/macros/cm97m.texmath @@ -0,0 +1,10 @@ +\font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9\font\cmIXrm=cmr9 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmIXrm \scriptfont1=\cmIXmi + \scriptfont2=\cmIXsy \scriptfont3=\cmIXex + \scriptfont\bffam=\cmIXbd + \scriptscriptfont0=\sevenrm \scriptscriptfont1=\seveni + \scriptscriptfont2=\sevensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\sevenbf}% diff --git a/macros/text1/macros/cm98m.texmath b/macros/text1/macros/cm98m.texmath new file mode 100644 index 0000000000..78e30ed089 --- /dev/null +++ b/macros/text1/macros/cm98m.texmath @@ -0,0 +1,13 @@ +\font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9\font\cmIXrm=cmr9 +\font\cmVIIIrm=cmr8 \font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmIXrm \scriptfont1=\cmIXmi + \scriptfont2=\cmIXsy \scriptfont3=\cmIXex + \scriptfont\bffam=\cmIXbd + \scriptscriptfont0=\cmVIIIrm \scriptscriptfont1=\cmVIIImi + \scriptscriptfont2=\cmVIIIsy \scriptscriptfont3=\cmVIIIex + \scriptscriptfont\bffam=\cmVIIIbd}% diff --git a/macros/text1/macros/cmsan10.textext b/macros/text1/macros/cmsan10.textext new file mode 100644 index 0000000000..cedf00fe5e --- /dev/null +++ b/macros/text1/macros/cmsan10.textext @@ -0,0 +1,46 @@ +\global\newif\ifXssbierr +\global\newif\ifXssccerr +\global\newif\ifXsstterr +\font\cmXssrm=cmss10 \font\cmXssit=cmssi10 +\font\cmXssbd=cmssbx10 \font\cmXssmi=cmmi10 +\font\cmXsssy=cmsy10 \font\cmXssex=cmex10 +\expandafter\newdimen\csname\the\naMEtok ilsxss\endcsname +\global\csname\the\naMEtok ilsxss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxss\endcsname=0pt +\csname\the\naMEtok ilsxss\endcsname=12pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXssrm}% +\def\noexpand\mi{\fam1\cmXssmi}% +\def\noexpand\sy{\fam2\cmXsssy}% +\def\noexpand\ex{\fam3\cmXssex}% + \textfont0=\cmXssrm \textfont1=\cmXssmi + \textfont2=\cmXsssy \textfont3=\cmXssex + \textfont\itfam=\cmXssit + \textfont\bffam=\cmXssbd +\def\noexpand\bd{\fam\bffam\cmXssbd}% +\def\noexpand\it{\fam\itfam\cmXssit}% +\def\noexpand\bi{\noexpand\ifXssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN10. Will print italic font .}% +\noexpand\global\noexpand\Xssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN10. Will print roman font .}% +\noexpand\global\noexpand\Xsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN10. Will print roman font .}% +\noexpand\global\noexpand\Xssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan11.textext b/macros/text1/macros/cmsan11.textext new file mode 100644 index 0000000000..e5da60857e --- /dev/null +++ b/macros/text1/macros/cmsan11.textext @@ -0,0 +1,46 @@ +\global\newif\ifXIssbierr +\global\newif\ifXIssccerr +\global\newif\ifXIsstterr +\font\cmXIssrm=cmss11 \font\cmXIssit=cmssi11 +\font\cmXIssbd=cmssbx11 \font\cmXIssmi=cmmi11 +\font\cmXIsssy=cmsy11 \font\cmXIssex=cmex11 +\expandafter\newdimen\csname\the\naMEtok ilsxiss\endcsname +\global\csname\the\naMEtok ilsxiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiss\endcsname=0pt +\csname\the\naMEtok ilsxiss\endcsname=13pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIssrm}% +\def\noexpand\mi{\fam1\cmXIssmi}% +\def\noexpand\sy{\fam2\cmXIsssy}% +\def\noexpand\ex{\fam3\cmXIssex}% + \textfont0=\cmXIssrm \textfont1=\cmXIssmi + \textfont2=\cmXIsssy \textfont3=\cmXIssex + \textfont\itfam=\cmXIssit + \textfont\bffam=\cmXIssbd +\def\noexpand\bd{\fam\bffam\cmXIssbd}% +\def\noexpand\it{\fam\itfam\cmXIssit}% +\def\noexpand\bi{\noexpand\ifXIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN11. Will print italic font .}% +\noexpand\global\noexpand\XIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN11. Will print roman font .}% +\noexpand\global\noexpand\XIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN11. Will print roman font .}% +\noexpand\global\noexpand\XIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan12.textext b/macros/text1/macros/cmsan12.textext new file mode 100644 index 0000000000..234dd3cbba --- /dev/null +++ b/macros/text1/macros/cmsan12.textext @@ -0,0 +1,46 @@ +\global\newif\ifXIIssbierr +\global\newif\ifXIIssccerr +\global\newif\ifXIIsstterr +\font\cmXIIssrm=cmss12 \font\cmXIIssit=cmssi12 +\font\cmXIIssbd=cmssbx12 \font\cmXIIssmi=cmmi12 +\font\cmXIIsssy=cmsy12 \font\cmXIIssex=cmex12 +\expandafter\newdimen\csname\the\naMEtok ilsxiiss\endcsname +\global\csname\the\naMEtok ilsxiiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiiss\endcsname=0pt +\csname\the\naMEtok ilsxiiss\endcsname=14pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIIssrm}% +\def\noexpand\mi{\fam1\cmXIIssmi}% +\def\noexpand\sy{\fam2\cmXIIsssy}% +\def\noexpand\ex{\fam3\cmXIIssex}% + \textfont0=\cmXIIssrm \textfont1=\cmXIIssmi + \textfont2=\cmXIIsssy \textfont3=\cmXIIssex + \textfont\itfam=\cmXIIssit + \textfont\bffam=\cmXIIssbd +\def\noexpand\bd{\fam\bffam\cmXIIssbd}% +\def\noexpand\it{\fam\itfam\cmXIIssit}% +\def\noexpand\bi{\noexpand\ifXIIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN12. Will print italic font .}% +\noexpand\global\noexpand\XIIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXIIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN12. Will print roman font .}% +\noexpand\global\noexpand\XIIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXIIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN12. Will print roman font .}% +\noexpand\global\noexpand\XIIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiiss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan14.textext b/macros/text1/macros/cmsan14.textext new file mode 100644 index 0000000000..23d2eb54a5 --- /dev/null +++ b/macros/text1/macros/cmsan14.textext @@ -0,0 +1,46 @@ +\global\newif\ifXIVssbierr +\global\newif\ifXIVssccerr +\global\newif\ifXIVsstterr +\font\cmXIVssrm=cmss14 \font\cmXIVssit=cmssi14 +\font\cmXIVssbd=cmssbx14 \font\cmXIVssmi=cmmi14 +\font\cmXIVsssy=cmsy14 \font\cmXIVssex=cmex14 +\expandafter\newdimen\csname\the\naMEtok ilsxivss\endcsname +\global\csname\the\naMEtok ilsxivss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxivss\endcsname=0pt +\csname\the\naMEtok ilsxivss\endcsname=16pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIVssrm}% +\def\noexpand\mi{\fam1\cmXIVssmi}% +\def\noexpand\sy{\fam2\cmXIVsssy}% +\def\noexpand\ex{\fam3\cmXIVssex}% + \textfont0=\cmXIVssrm \textfont1=\cmXIVssmi + \textfont2=\cmXIVsssy \textfont3=\cmXIVssex + \textfont\itfam=\cmXIVssit + \textfont\bffam=\cmXIVssbd +\def\noexpand\bd{\fam\bffam\cmXIVssbd}% +\def\noexpand\it{\fam\itfam\cmXIVssit}% +\def\noexpand\bi{\noexpand\ifXIVssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN14. Will print italic font .}% +\noexpand\global\noexpand\XIVssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXIVsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN14. Will print roman font .}% +\noexpand\global\noexpand\XIVsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXIVssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN14. Will print roman font .}% +\noexpand\global\noexpand\XIVssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxivss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan18.textext b/macros/text1/macros/cmsan18.textext new file mode 100644 index 0000000000..a1a581291e --- /dev/null +++ b/macros/text1/macros/cmsan18.textext @@ -0,0 +1,46 @@ +\global\newif\ifXVIIIssbierr +\global\newif\ifXVIIIssccerr +\global\newif\ifXVIIIsstterr +\font\cmXVIIIssrm=cmss18 \font\cmXVIIIssit=cmssi18 +\font\cmXVIIIssbd=cmssbx18 \font\cmXVIIIssmi=cmmi18 +\font\cmXVIIIsssy=cmsy18 \font\cmXVIIIssex=cmex18 +\expandafter\newdimen\csname\the\naMEtok ilsxviiiss\endcsname +\global\csname\the\naMEtok ilsxviiiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxviiiss\endcsname=0pt +\csname\the\naMEtok ilsxviiiss\endcsname=20pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXVIIIssrm}% +\def\noexpand\mi{\fam1\cmXVIIIssmi}% +\def\noexpand\sy{\fam2\cmXVIIIsssy}% +\def\noexpand\ex{\fam3\cmXVIIIssex}% + \textfont0=\cmXVIIIssrm \textfont1=\cmXVIIIssmi + \textfont2=\cmXVIIIsssy \textfont3=\cmXVIIIssex + \textfont\itfam=\cmXVIIIssit + \textfont\bffam=\cmXVIIIssbd +\def\noexpand\bd{\fam\bffam\cmXVIIIssbd}% +\def\noexpand\it{\fam\itfam\cmXVIIIssit}% +\def\noexpand\bi{\noexpand\ifXVIIIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN18. Will print italic font .}% +\noexpand\global\noexpand\XVIIIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXVIIIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN18. Will print roman font .}% +\noexpand\global\noexpand\XVIIIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXVIIIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN18. Will print roman font .}% +\noexpand\global\noexpand\XVIIIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxviiiss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan24.textext b/macros/text1/macros/cmsan24.textext new file mode 100644 index 0000000000..d035cc6ecd --- /dev/null +++ b/macros/text1/macros/cmsan24.textext @@ -0,0 +1,46 @@ +\global\newif\ifXXIVssbierr +\global\newif\ifXXIVssccerr +\global\newif\ifXXIVsstterr +\font\cmXXIVssrm=cmss24 \font\cmXXIVssit=cmssi24 +\font\cmXXIVssbd=cmssbx24 \font\cmXXIVssmi=cmmi24 +\font\cmXXIVsssy=cmsy24 \font\cmXXIVssex=cmex24 +\expandafter\newdimen\csname\the\naMEtok ilsxxivss\endcsname +\global\csname\the\naMEtok ilsxxivss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxivss\endcsname=0pt +\csname\the\naMEtok ilsxxivss\endcsname=26pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXIVssrm}% +\def\noexpand\mi{\fam1\cmXXIVssmi}% +\def\noexpand\sy{\fam2\cmXXIVsssy}% +\def\noexpand\ex{\fam3\cmXXIVssex}% + \textfont0=\cmXXIVssrm \textfont1=\cmXXIVssmi + \textfont2=\cmXXIVsssy \textfont3=\cmXXIVssex + \textfont\itfam=\cmXXIVssit + \textfont\bffam=\cmXXIVssbd +\def\noexpand\bd{\fam\bffam\cmXXIVssbd}% +\def\noexpand\it{\fam\itfam\cmXXIVssit}% +\def\noexpand\bi{\noexpand\ifXXIVssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN24. Will print italic font .}% +\noexpand\global\noexpand\XXIVssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXXIVsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN24. Will print roman font .}% +\noexpand\global\noexpand\XXIVsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXXIVssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN24. Will print roman font .}% +\noexpand\global\noexpand\XXIVssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxivss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan36.textext b/macros/text1/macros/cmsan36.textext new file mode 100644 index 0000000000..3a64c94a76 --- /dev/null +++ b/macros/text1/macros/cmsan36.textext @@ -0,0 +1,46 @@ +\global\newif\ifXXXVIssbierr +\global\newif\ifXXXVIssccerr +\global\newif\ifXXXVIsstterr +\font\cmXXXVIssrm=cmss36 \font\cmXXXVIssit=cmssi36 +\font\cmXXXVIssbd=cmssbx36 \font\cmXXXVIssmi=cmmi36 +\font\cmXXXVIsssy=cmsy36 \font\cmXXXVIssex=cmex24 +\expandafter\newdimen\csname\the\naMEtok ilsxxivss\endcsname +\global\csname\the\naMEtok ilsxxivss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxivss\endcsname=0pt +\csname\the\naMEtok ilsxxivss\endcsname=38pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXXVIssrm}% +\def\noexpand\mi{\fam1\cmXXXVIssmi}% +\def\noexpand\sy{\fam2\cmXXXVIsssy}% +\def\noexpand\ex{\fam3\cmXXXVIssex}% + \textfont0=\cmXXXVIssrm \textfont1=\cmXXXVIssmi + \textfont2=\cmXXXVIsssy \textfont3=\cmXXXVIssex + \textfont\itfam=\cmXXXVIssit + \textfont\bffam=\cmXXXVIssbd +\def\noexpand\bd{\fam\bffam\cmXXXVIssbd}% +\def\noexpand\it{\fam\itfam\cmXXXVIssit}% +\def\noexpand\bi{\noexpand\ifXXXVIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN36. Will print italic font .}% +\noexpand\global\noexpand\XXXVIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXXXVIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN36. Will print roman font .}% +\noexpand\global\noexpand\XXXVIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXXXVIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN36. Will print roman font .}% +\noexpand\global\noexpand\XXXVIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxivss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan8.textext b/macros/text1/macros/cmsan8.textext new file mode 100644 index 0000000000..710177059f --- /dev/null +++ b/macros/text1/macros/cmsan8.textext @@ -0,0 +1,49 @@ +\global\newif\ifcmVIIIssbierr +\global\newif\ifcmVIIIssccerr +\global\newif\ifcmVIIIsstterr +\global\newif\ifcmVIIIssbderr +\font\cmVIIIssit=cmssi8 +\font\cmVIIIssrm=cmss8 \font\cmVIIIssmi=cmmi8 +\font\cmVIIIsssy=cmsy8 \font\cmVIIIssex=cmex10 +\expandafter\newdimen\csname\the\naMEtok ilsviiiss\endcsname +\global\csname\the\naMEtok ilsviiiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsviiiss\endcsname=0pt +\csname\the\naMEtok ilsviiiss\endcsname=10pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmVIIIssrm}% +\def\noexpand\mi{\fam1\cmVIIIssmi}% +\def\noexpand\sy{\fam2\cmVIIIsssy}% +\def\noexpand\ex{\fam3\cmVIIIssex}% + \textfont0=\cmVIIIssrm \textfont1=\cmVIIIssmi + \textfont2=\cmVIIIsssy \textfont3=\cmVIIIssex + \textfont\itfam=\cmVIIIssit +\def\noexpand\it{\fam\itfam\cmVIIIssit}% +\def\noexpand\bd{\noexpand\ifcmVIIIssbderr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No bold font in CMSAN8. Will print roman font .}% +\noexpand\global\noexpand\cmVIIIssbderrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifcmVIIIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN8. Will print italic font .}% +\noexpand\global\noexpand\cmVIIIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifcmVIIIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN8. Will print roman font .}% +\noexpand\global\noexpand\cmVIIIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifcmVIIIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN8. Will print roman font .}% +\noexpand\global\noexpand\cmVIIIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsviiiss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan9.textext b/macros/text1/macros/cmsan9.textext new file mode 100644 index 0000000000..7309c82d45 --- /dev/null +++ b/macros/text1/macros/cmsan9.textext @@ -0,0 +1,46 @@ +\global\newif\ifIXssbierr +\global\newif\ifIXssccerr +\global\newif\ifIXsstterr +\font\cmIXssrm=cmss9 \font\cmIXssit=cmssi9 +\font\cmIXssbd=cmssbx9 \font\cmIXssmi=cmmi9 +\font\cmIXsssy=cmsy9 \font\cmIXssex=cmex10 +\expandafter\newdimen\csname\the\naMEtok ilsixss\endcsname +\global\csname\the\naMEtok ilsixss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsixss\endcsname=0pt +\csname\the\naMEtok ilsixss\endcsname=11pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmIXssrm}% +\def\noexpand\mi{\fam1\cmIXssmi}% +\def\noexpand\sy{\fam2\cmIXsssy}% +\def\noexpand\ex{\fam3\cmIXssex}% + \textfont0=\cmIXssrm \textfont1=\cmIXssmi + \textfont2=\cmIXsssy \textfont3=\cmIXssex + \textfont\itfam=\cmIXssit + \textfont\bffam=\cmIXssbd +\def\noexpand\bd{\fam\bffam\cmIXssbd}% +\def\noexpand\it{\fam\itfam\cmIXssit}% +\def\noexpand\bi{\noexpand\ifIXssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN9. Will print italic font .}% +\noexpand\global\noexpand\IXssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifIXsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN9. Will print roman font .}% +\noexpand\global\noexpand\IXsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifIXssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN9. Will print roman font .}% +\noexpand\global\noexpand\IXssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsixss\noexpand\endcsname}}% diff --git a/macros/text1/macros/fixcol.tex b/macros/text1/macros/fixcol.tex new file mode 100644 index 0000000000..02f3402583 --- /dev/null +++ b/macros/text1/macros/fixcol.tex @@ -0,0 +1,155 @@ +% FILE HAS BEEN CONVERTED TO 2.03 +% +% MULTIPLE COLUMN FORMATS FIXED MODE, two and three column +% Harvey 1/29/86 +% +\catcode`*=11 \catcode`@=11 +% +\global\let\newcolumn=\np % new column in fixed mode is the +\global\let\nc=\np % same as newpage in single column +% +\gdef\pagebody{\vbox to\vsize{\boxmaxdepth=\maxdepth + \pagecontents\vfill}}% redefine from plain.tex to add vfil + % prevents underfull vbox in last column +% +\gdef\flexibleformat{\write16{ Warning! You can't change to% + flexible format while in fixed format. }}% + +% +\gdef\full*pgw{\hbox to \the\*txtw}% Output box to full pagewidth +% +\gdef\*colbox{\leftline{\pagebody}}% TeXbook definition +% +\gdef\*page{% MAKEPAGE, *mkpg, ships out the complete page body + \*badj % check for binding offset + \if*title\shipout % titlepage, no headline + \vbox{\*pgmat % page template + \makefootline} + \notitlepage + \else\shipout\vbox{ % normal page with head and footlines + \makeheadline % + \*pgmat % page template + \makefootline} + \fi + \ifnum\*pcount>0 \*blkpg\fi % call for empty page, BLANK PAGE MACRO + \advancepageno}% END, makepage routine +% +\gdef\*fixtwc{% BEGIN TWO COLUMNS FIXED FORMAT---set-up + \if*plain \par\vfill\eject \fi % new page prevents mixed formats + \if*dbl\e*fixtwc\fi % end any active double columns + \if*tpl \par\vfill\eject \fi % new page prevents mixed multicolumn format + % vfil eject prevents mixing formats + \def\*fixout{% TWO COLUMN OUTPUT, Fixed method + \if L\lr % if column indicator is left + \global\setbox\*lftcol=\*colbox % first column page + \global\let\lr=R % switch to second column + \else % print page and reset column indicator + \*page % format actual double column page + \global\let\lr=L % switch to first column + \fi + \ifnum\outputpenalty>-20000 % do nothing if no insert material + \else\dosupereject\fi % flush any held over material + }% End, normal fixed mode two column output routine +% + \def\*pgmat{% PAGEMAT, formats columns and rules + \D=\the\*twcgut \D=.5\D % split gutter width in half + \full*pgw{\box\*lftcol % print left column + \hskip\D\vrule width\the\*clrw\hskip\D % gutter and rule + \*colbox\hfil} % print right column and fill + }% END, pagemat +% + \def\newpage{\par\supereject % fills remainder of page with white + \if R\lr \null\vfill\eject\fi}% space and goes to next page + \let\np=\newpage +% + \begingroup % BEGIN DOUBLE COLUMNS, fixed method + \tolerance=6400 % line breaking tolerance + \hbadness=6400 % message tolerance + \brokenpenalty=0 % setting these penalties to zero prevents + \clubpenalty=0 % strange page breaks that might otherwise + \widowpenalty=0 + \hyphenpenalty=0 + \exhyphenpenalty=0 + \hsize=\the\*twcw % set column width + \let\lr=L % set switch to left (L) % begin with left + \output={\*multout} % fixed format output rou tine + \global\*plainfalse % plainoutput indicator false + \global\*dbltrue}% END FIXED TWO COLUMN FORMAT---set-up +\global\let\twc=\*fixtwc +% +\gdef\e*fixtwc{\par\supereject % END FIXED TWO COLUMN FORMAT, called + \if R\lr \null\vfill\eject\fi % from onecolumn + \endgroup % two column fixed formatting ends + \global\*dblfalse % fixed double column indicator false + \global\*plaintrue}% plainoutput indicator true +% +\gdef\*fixthc{% BEGIN THREE COLUMNS FIXED FORMAT---set-up + \if*plain \par\vfill\eject\fi % new page prevents mixed formats + \if*tpl\e*fixthc\fi % end any active triple columns + \if*dbl \par\vfill\eject\fi % new page prevents mixed multicolumn formatting +% + \def\*fixout{% THREE COLUMN OUTPUT, Fixed method + \if L\lr % if column indicator is left + \global\setbox\*lftcol=\*colbox + \global\let\lr=M % switch to middle column + \else\if M\lr % if middle column indicator is true + \global\setbox\*midcol=\*colbox + \global\let\lr=R % switch column indicator to right + \else + \*page % make the page + \global\let\lr=L % reset column indicator to left + \fi\fi % + \ifnum\outputpenalty>-20000 % no held over material + \else\dosupereject\fi}% eject held over insertions +% + \def\*pgmat{% PAGEMAT, *pgmat, the page template routine + \D=\the\*thcgut \D=.5\D % half gutter width on each side of rule + \full*pgw{\box\*lftcol % print leftcolumn + \hskip\D\vrule width\the\*clrw\hskip\D % rule and gut. + \box\*midcol % print middle column + \if*norule \hskip2\D % supress rule on empty page call + \else % else set rules normally + \hskip\D\vrule width\the\*clrw\hskip\D\fi % rule and gut. + \*colbox\hfil} % print right column and fil + \global\*norulefalse + }% END, Pagemat +% + \def\newpage{\par\supereject + \if M\lr \null\vfill\eject + \null\vfill\eject\global\*noruletrue\fi % supress column rules + \if R\lr \null\vfill\eject\global\*noruletrue\fi} + \let\np=\newpage +% + \begingroup % BEGIN THREE COLUMNS, fixed method + \widowpenalty=0 + \clubpenalty=0 + \brokenpenalty=0 + \hyphenpenalty=0 + \exhyphenpenalty=0 + \tolerance=9400 + \hbadness=9400 + \hsize=\the\*thcw % column width = three column width tokens + \let\lr=L % set column switch to left column + \output={\*multout} % fixed format output routine + \global\*plainfalse % plainoutput indicator false + \global\*tpltrue} % end 3 col fixed format +\global\let\thc=\*fixthc % reset abbreviation for (thc) +% +\gdef\e*fixthc{\par\supereject % end 3 columns fixed mode + \if M\lr \null\vfill\eject \null\vfill\eject\fi % called from + \if R\lr \null\vfill\eject\fi % onecolumn + \endgroup % three column fixed formatting indicator f + \global\*tplfalse % end triple column indicator + \global\*plaintrue}% plainoutput indicator true +% +\gdef\*multout{\*badj + \*fixout + }% end fixed format output routine + +\gdef\onecolumn{\if*dbl\e*fixtwc\fi % end double column formatting + \if*tpl\e*fixthc\fi % end triple column formatting + \global\output={\*mkpg} % set single column output + }% end multiple column formatting +\global\let\oc=\onecolumn +% +\catcode`*=12 \catcode`@=3 diff --git a/macros/text1/macros/flexcol.tex b/macros/text1/macros/flexcol.tex new file mode 100644 index 0000000000..441066c681 --- /dev/null +++ b/macros/text1/macros/flexcol.tex @@ -0,0 +1,329 @@ +% This work is protected as an unpublished work under +% U.S. copyright laws. +% Copyright 1987, by Washington State University. +% All rights reserved. +% +% Last updated on 7/1/89 +% +% MULTIPLE COLUMN FORMATS FLEXIBLE MODE, two and three column +% +\catcode`*=11\catcode`@=11 +\global\output{\flex*ut{\unvbox255}} % FLEXCOL normal output routine +\gdef\flex*ut#1{% FLEXIBLE OUTPUT, flex*ut + \boxmaxdepth=\maxdepth + \shipout\vbox{ + \offinterlineskip % butt boxes together + \if*title % Do nothing if this is a title page + \else\makeheadline\fi % makeheadline redefined in TEXT1 + \vbox to\*txth{ % page height equals single column text height + \ifvoid\topins % no top insert present + \else\unvbox\topins\fi % place top insert before main text + #1 % insert the main information + \vfil % PREVENTS UNDERFULL BOX WHEN ONLY A FEW POINTS OFF + \ifvoid\footins % no foot insert present + \else\vskip\skip\footins % skip to footnote position + \footnoterule % print footnote rule + \unvbox\footins\fi % place foot insert after main text and rule + \makefootline} % end vbox to *txth + } % end vbox with running heads, if any + \if*title\notitlepage\fi % reset vsize for a normal page + \if\*pcount>0\*blkpg\fi % call for empty page macro, TEXT1 + \*ncfalse + \advancepageno} % End flex*ut, flexible output macro +% +\gdef\*adjp#1{% ADJUST PAGE MACRO, height of inserts lost during output call, this macro + \global\advance#1 by-\topskip % restores these values to the output routines + \ifvoid\topins % compensate for topskip + \else % if no insert present do nothing else + \global\advance#1 by-\ht\topins % routine restores those values + \global\advance#1 by-\dp\topins % to the new output routines. + \global\advance#1 by-\skip\topins + \global\advance#1 by\dp\strutbox % fine tune split + \fi + \ifvoid\footins % do nothing if no footinsert present + \else % else compensate for skips when footins present + \global\advance#1 by-\ht\footins % + \global\advance#1 by-\dp\footins % + \global\advance#1 by-\skip\footins % + \global\advance#1 by\dp\strutbox % fine tune split + \fi}% END *adjp, adjust page macro +% +% \*balctest is called whenever leaving 2 or 3 column formatting +% +\gdef\*balctest{% TEST REMAINING TEXT DEPTH text for more than one page of remaining text + \setbox0=\vbox{\unvbox255} % height box255 always=vsize + \dimen9=\ht0 % find height of material in box255 + \advance\dimen9 by\topskip % account for top of page topskip + \if*dbl \advance\dimen9 by\splittopskip % second column splittopskip + \else\advance\dimen9 by2\splittopskip % second and third columns + \fi % end accounting for topskips for splitting routines + \setbox255=\vbox{\unvbox0} + \ifdim\dimen9>\vsize % too much material for one page + \if*dbl\expandafter\global\output={\*balc}\*twcout % + \else\expandafter\global\output={\*balc}\*thcout % + \fi % use normal output before using balance columns routine + \else % less than one full page of text remaining + \*balc % use balance columns routine + \fi}% END, *balctest, test for output routine to balance columns +% +\gdef\*flextwc{\par% BEGIN FLEX METHOD OF TWO COLUMNS + \goodbreak + \if*dbl\e*flextwc\fi % end any active two column format + \if*tpl\e*flexthc\else % if previous material in threecolumns call + \vskip\the\*mskb\fi % end threecolumns, else skipbefore. +% + \def\*balc{% BALANCECOLUMNS, TWO COLUMNS---beginning + \*badj % check for binding adjust + \splittopskip=\topskip % splittopskip equals topskip + \setbox0=\vbox{\unvbox255} % release unbalanced page material + \dimen0=\ht0 % prepare to find equal height dimension + \divide\dimen0 by2 % split dimension for two columns + \advance\dimen0 by-\baselineskip % back up one line + \ifdim\dimen0<\baselineskip % check split depth + \dimen0=\topskip % account for the topskip + \advance\dimen0 by\baselineskip % account for one line + \fi + {\vbadness=10000 % prevents underfull box message during loop + \loop \global\setbox3=\copy0 % routine. + \global\setbox1=\vsplit3 to\dimen0 % + \ifdim\ht3>\dimen0 % if column longer... + \global\advance\dimen0 by1pt % + \repeat} % end balancing loop + \setbox0=\vbox to\dimen0{\unvbox1} % + \setbox2=\vbox to\dimen0{\dimen2=\dp3 % + \unvbox3 \kern-\dimen2 \vfill} % + \ifvoid2 \setbox2=\vbox to\dimen0{\null\vfill}\fi % + \*pgsofar % format text accummulated so far + \global\output={\*dbl-error} % error message if balance fails + \dimen@=\*txth % return vsize to single page size + \*adjp\dimen@ % adjust vsize for any remaining inserts + \global\vsize=\dimen@ % adjusted vsize + }% END, *balc, balancecolumns macro, twocolumns +% + \def\*pgsofar{% PAGESOFAR, format for two columns + \unvbox\*ppage % boxes two column material + \D=\the\*twcgut \D=.5\D % half gutter skip on either side of rule + \wd0=\hsize \wd2=\hsize % set text box width securely + \hbox to\*txtw{\box0\hskip\D\vrule width\the\*clrw + \hskip\D\box2\hfil} % set boxes and rules + }% END, *pgsofar, pagesofar output macro +% + \def\*twcout{% TWO COLUMN OUTPUT, normal output routine + \splittopskip=\topskip + \splitmaxdepth=\maxdepth + \*badj % check for binding adjust + \dimen@=\vsize % total text depth for two column out routine + \divide\dimen@ by2 % set splitting dimension + \*adjp\dimen@ % adjust page size for inserts + \setbox0=\vsplit255 to\dimen@ % split boxes to proper height + \setbox2=\vsplit255 to\dimen@ + \flex*ut\*pgsofar % output current page + \unvbox255 % release extra text material gathered + \*bigch=2\*txth % allow vsize changes from cpt*vsize + \global\vsize=\*bigch % reset vsize to two column format + \penalty\outputpenalty}% END *twcout, two columns output routine +% +% TWOCOLUMNS, NEW COLUMN ROUTINE +% Harvey 12/06/85 +% This method will fail if a topinsert or footinsert is added to +% the page after the new column call. The box and glue are set +% at the newcolumn call accounting for inserts active then only +% + \def\newcolumn{\par % NEWCOLUMN, Flexible method, two columns + \D=.5\vsize % depth of one column + \ifdim\pagetotal>\D % determine which column is current + \D=\pagegoal % second column, depth > .5\vsize + \advance\D by-\pagetotal + \advance\D by-\topskip % account for topskip of 1st column + \advance\D by-\splittopskip % splittopskip of 2d column + \advance\D by-\dp\strutbox % account for character depth + \else % first column, depth equals half the vsize + \advance\D by-\pagetotal % subtract current page depth + \advance\D by-\topskip % subtract topskip form page depth + \advance\D by-\dp\strutbox % account for character depth + \fi + \vbox to\D{\vfill} % blank box to fill column + \*nctrue + \goodbreak}% END, newcolumn macro for two columns + \let\nc=\newcolumn % set two column definition of newcolumn +% + \begingroup % BEGIN TWOCOLUMNS---set-up + \global\*dbltrue % double columns active + \brokenpenalty=0 % If these penalties are set to zero the text + \clubpenalty=0 % will be formatted properly. If the are in force + \widowpenalty=0 % uneven columns may result. The penalties will be + \hyphenpenalty=0 % honored in either page or vsplit modes. + \exhyphenpenalty=0 + \tolerance=6400 % raise tolerance for short column material + \hbadness=6400 % warning message given at 6400 + \*bigch=2\*txth % initialize two column page height + \dimen@=\*txth % set dimen@ to current page height + \advance\dimen@ by-\pagetotal % subtract current page depth + \*adjp\dimen@ % adjust page depth for inserts + \vsize=2\dimen@ % set vsize equal to twice the remaining depth + \output={\global\setbox\*ppage=\vbox{\unvbox255}}\eject + \output={\*twcout} % output partial page and set output + \hsize=\the\*twcw % to twocolumnout, set new hsize for column + \topskip=12pt plus4pt % glue for vsplitting mechanism + }% END, *flextwc, flexible two column---set-up +% +\gdef\e*flextwc{% TERMINATION MACRO FOR TWO COLUMNS FLEX METHOD + \if*nc \vfill\eject\fi % When we've done a \nc dump the page before balancing + \output={\*balctest}\eject % test for too much text for balancing + \global\output={\flex*ut{\unvbox255}} % output page + \global\*dblfalse % change two column indicator to false + \endgroup % END DOUBLE COLUMN FORMAT + \global\vsize=\*txth % reset page size to single column height + \global\hsize=\*txtw % reset page width to single column width + \dimen@=\vsize % prepare to include current inserts + \*adjp\dimen@ % adjust for topskip and inserts + \global\pagegoal=\dimen@ % adjust pagegoal for current inserts + \penalty-500 + \vskip\the\*mska + }% END e*flextwc, TWO COLUMNS termination routine +% +% +\gdef\*flexthc{\par% BEGIN FLEX METHOD OF THREE COLUMNS + \goodbreak + \if*tpl\e*flexthc\fi % end any active triple columns + \if*dbl\e*flextwc\else % if previous material is in twocolumns, end + \vskip\the\*mskb\fi % twocolumns, else skipbefore +% + \def\*balc{% BALANCECOLUMNS, THREECOLUMNS---beginning + \*badj % check for binding adjust + \splittopskip=\topskip % split dimension for 3col + \setbox0=\vbox{\unvbox255} + \dimen0=\ht0 % prepare to find equal height dimension + \divide\dimen0 by3 % split dimension for each column + \advance\dimen0 by-\baselineskip % back-up one baselineskip + \ifdim\dimen0<\baselineskip % check split depth + \dimen0=\topskip % account for the topskip + \advance\dimen0 by\baselineskip % account for one line + \fi + {\vbadness=10000 + \loop \global\setbox5=\copy0 % begin vsplit loop for balancing + \global\setbox3=\vsplit5 to\dimen0 + \global\setbox4=\vsplit5 to\dimen0 + \ifdim\ht5>\dimen0 \global\advance\dimen0 by1pt + \repeat} % end balancing loop + \setbox0=\vbox to\dimen0{\unvbox3} % first column + \setbox1=\vbox to\dimen0{\unvbox4} % second column + \ifvoid1 \setbox1=\vbox to\dimen0{\line{\hfil}\vfill}\fi + \setbox2=\vbox to\dimen0{\dimen2=\dp5\unvbox5\kern-\dimen2 \vfill} + \ifvoid2 \setbox2=\vbox to\dimen0{\line{\hfil}\vfill}\fi + \*pgsofar + \global\output={\*tpl-error} % error message if loop fails + \vsize=\*txth % reset page size to single column + \dimen@=\vsize % return vsize to single page vsize + \*adjp\dimen@ % adjust for topskip and inserts + \global\vsize=\dimen@ % new vsize accounts for current inserts + }% END, *balc, balance columns, threecolumns +% + \def\*pgsofar{\unvbox\*ppage % boxes three column material + \D=\the\*thcgut \D=.5\D % half gutter for each side of rule + \wd0=\hsize \wd1=\hsize \wd2=\hsize % set text box width securely + \hbox to\*txtw{\box0\hskip\D\vrule width\the\*clrw + \hskip\D\box1\hskip\D\vrule width\the\*clrw + \hskip\D\box2\hfil} % set boxes and rules + }% End *pgsofar, page-so-far macro +% + \def\*thcout{% THREE COLUMNS OUT, normal output routine for threecolumns + \splittopskip=\topskip + \splitmaxdepth=\maxdepth + \*badj % check for binding adjust + \dimen@=\vsize % total text depth for three column out routine + \divide\dimen@ by3 % set splitting dimension + \*adjp\dimen@ % adjust for topskip and inserts + \setbox0=\vsplit255 to\dimen@ % split boxes to proper height + \setbox1=\vsplit255 to\dimen@ % + \setbox2=\vsplit255 to\dimen@ % + \flex*ut\*pgsofar % send material to output routine + \unvbox255 % release any extra material gathered + \*bigch=3\*txth % allow vsize changes from cpt*vsize + \global\vsize=\*bigch % reset vsize for three column format + \penalty\outputpenalty}% END *thcout, normal output penalty set +% +% THREECOLUMNS, NEW COLUMN ROUTINE +% Harvey 12/19/85 +% This routine has no way to compensate for inserts following the +% new column call and will produce an overfull vbox message while +% output active. It may also produce and underfull vbox message +% if there is no stretchable glue in the column. + \def\newcolumn{\par % new column, three columns + \ifdim\pagetotal>.66666\vsize % you are in the third column + \D=\pagegoal % work from pagegoal for third column + \advance\D by-\topskip % account for topskip in 1st column + \advance\D by-2\splittopskip % splittopskip in columns 2 and 3 + \advance\D by-\pagetotal % subtract current pagetotal + \advance\D by-\dp\strutbox % account for character depth + \else\ifdim\pagetotal>.3\vsize % you are in the second column + \D=.66666\vsize % column goal is 2/3 vsize + \advance\D by-\topskip % account topskip in 1st column + \advance\D by-\splittopskip % splittopskip in column 2 + \advance\D by-\pagetotal % compensate for text + \advance\D by-\dp\strutbox % account for character depth + \else % you are in the first column + \D=.33333\vsize % goal is 1/3 vsize in first column + \advance\D by-\topskip % account for splittopskip + \advance\D by-\pagetotal % compensate for text + \advance\D by-\dp\strutbox % account for character depth + \fi\fi % end column determination and fil + \vbox to\D{\vfill} + \*nctrue + \goodbreak}% END, newcolumn for three columns +% + \let\nc=\newcolumn % set new column definition to three columns +% + \begingroup % BEGIN GROUP, THREE COLUMNS + \global\*tpltrue % set three column indicator on + \brokenpenalty=0 % These penalties should be zero in multicolumn + \clubpenalty=0 % modes that use the vsplit method of paging, + \widowpenalty=0 % the paging methods would honor the penalties. + \hyphenpenalty=0 % is erratic columns. + \exhyphenpenalty=0 % + \tolerance=9600 % raise tolerance for short columns + \hbadness=9600 % warnings issued at badness of 9600 + \*bigch=3\*txth % initialize three column height + \dimen@=\*txth % set dimen@ to current page height + \advance\dimen@ by-\pagetotal % subtract current page depth + \*adjp\dimen@ % adjust page for topskip and inserts + \vsize=3\dimen@ % set vsize to 3 times remaining single column depth + \output={\global\setbox\*ppage=\vbox{\unvbox255}}\eject + \output={\*thcout} % output partial page and set output + \hsize=\the\*thcw % to threecolumnout, set new hsize for column + \topskip=12pt plus4pt % glue for the vsplitting mechanism + }% END *flexthc, three columns set-up +% +\gdef\e*flexthc{% TERMINATION THREE COLUMNS FLEX METHOD + \if*nc \vfill\eject\fi % When we've done a \nc dump the page before balancing + \output={\*balctest}\eject % balance remaining three column material + \global\output={\flex*ut{\unvbox255}} % shipout page + \global\*tplfalse % end three column indicator + \endgroup % END GROUP THREE COLUMNS + \global\vsize=\*txth % reset vsize to single column height + \global\hsize=\*txtw % reset hsize to single column width + \dimen@=\vsize % prepare to include current inserts + \*adjp\dimen@ % adjust for topskip and inserts + \global\pagegoal=\dimen@ % reset pagegoal to include inserts + \penalty-500 + \vskip\the\*mska}% END E*flexthc, three columns termination macro +% +% +\gdef\onecolumn{\if*dbl\e*flextwc\fi % end double column formatting + \if*tpl\e*flexthc\fi + \global\output={\*mkpg} + }% end triple column formatting +\global\let\oc=\onecolumn +% +\gdef\*dbl-error{\errhelp=\balerrhelp + \errmessage{ Double columns can't be balanced on page \the\pageno . % + Please type h for help. }% + \flex*ut{\unvbox255}} +\gdef\*tpl-error{\errhelp=\balerrhelp + \errmessage{ Triple columns can't be balanced on page \the\pageno . % + Please type h for help. }% + \flex*ut{\unvbox255}}% +% +\catcode`*=12\catcode`@=3 + + diff --git a/macros/text1/macros/text1.tex b/macros/text1/macros/text1.tex new file mode 100644 index 0000000000..dd2fc1bdbb --- /dev/null +++ b/macros/text1/macros/text1.tex @@ -0,0 +1,3 @@ +\input plain.tex +\input txt1v409.tex +\dump diff --git a/macros/text1/macros/txt1v409.tex b/macros/text1/macros/txt1v409.tex new file mode 100644 index 0000000000..afc9acb6c2 --- /dev/null +++ b/macros/text1/macros/txt1v409.tex @@ -0,0 +1,3536 @@ +% MACROS FOR TEXT1 +% +% This work is protected as an unpublished work under +% U.S. copyright laws. +% Copyright 1987, by Washington State University. +% All rights reserved. +% +% Last updated on 7/24/95 (drg) +% +\everyjob{\immediate\write16{TEXT1 Version 4.09} + \titlepage\spn{1} +} +% +% The following variables are used for allowing conditional compilation +% of special code depending on which version of TeX you are using. +% See these special notes in the next paragarph +\catcode`* = 11 +\catcode`@ = 11 +% +\newif\if*MAC \*MACfalse % This is not a Macintosh +\newif\if*CMS \*CMSfalse % This is not on CMS +\newif\if*PC \*PCfalse % This is not a PC +\newif\if*CG \*CGfalse % This is not a Compugraphics 8600 typesetter +% +% Note that non CMS versions must be modified. Here are the changes +% necessary for the IBM PC/DOS version of TEXT1, Macintosh version, +% and other non-CMS versions. +% +% 1. The filetype (extension) can only be 3 characters at the most +% for the PC/DOS version. +% This requires the following changes: +% toc1 => tc1 +% toc2 => tc2 +% toc3 => tc3 +% endnotes => end +% textext => txt +% texmath => mth +% texmodel => mdl +% +% 2. The Compugraphics dependent stuff in \selectspecificfont must +% be omitted for all but CMS versions. +% +% 3. The routines \nonIBM and \IBM should be set to null for all but CMS +% versions +% +% 4. The Macintosh/Textures version uses a special \include +% + + +% Some temporary variables to be used throughout +% +\newbox\A +\newtoks\B +\newskip\C +\newdimen\D +\newdimen\*D +\newcount\E +\newcount\F +\newcount\G +\newcount\N +\newcount\Q +\newcount\R +% \T \U \V \W are used throughout TEXT1 as temp definitions +% \I \J \K \M \X \Y \Z are temporary too, be careful if you use these +% +% ragged rightindent on bq troublesome. +% titleleadskip works only with titlepage command in text. +% for doublecolumns, change hsize and line--refer to ccndbl +% for multiple right and centerline--refer to aztex +% +% IBM/NONIBM character definitions, added by Dean 7/11/86 +% +% Use this macro when not printing with IBM standard distribution fonts + + +\newif\if*IBM \*IBMfalse + +\if*CMS +\def\nonIBM{\if*IBM \*IBMfalse% + \def\aa{\accent23a}% + \def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex% + \rlap{\raise.67\dimen@\hbox{\char'27}}A}% + \def\c##1{\setbox\z@\hbox{##1}\ifdim\ht\z@=1ex\accent24 ##1% + \else{\ooalign{\hidewidth\char24\hidewidth\crcr\unhbox\z@}}\fi}% + \def\`##1{{\accent18 ##1}}% + \def\'##1{{\accent19 ##1}}% + \def\^##1{{\accent94 ##1}}\let\^^D=\|% + \def\~##1{{\accent"7E ##1}}% + \def\"##1{{\accent"7F ##1}}% + \chardef\i="10 % dummy dotless lowercase i + \def\dag{\mathhexbox279}% + \def\ddag{\mathhexbox27A}% + \def\S{\mathhexbox278}% + \def\P{\mathhexbox27B}% + \let\}=\rbrace% + \let\{=\lbrace% + \def\cents{\hbox{\rm\rlap/c}}\fi}% end non-IBM +% +% Use this macro when printing with the IBM standard distribution fonts +\def\IBM{\*IBMtrue + \chardef\aa="8A % a overcircle + \chardef\AA="8B % A overcircle + \chardef\c="18 % cedilla + \chardef\`="12 % grave + \chardef\'="13 % acute + \chardef\^="5E % circumflex + \chardef\~="7E % tilde + \chardef\"="7F % umlaut + \chardef\i="69 % dummy dotless lowercase i + \chardef\S="DC % section number sign + \chardef\P="DD % paragraph sign or pilcrow + \chardef\dag="DE % dagger or obelisk + \chardef\ddag="DF % double dagger or diesis + \chardef\{="AE % left brace + \chardef\}="AF % right brace + \chardef\cents="CD}% end IBM +\else +\def\nonIBM{} +\def\IBM{} +\fi +% +% Redefined from PLAIN.TEX to omit the at sign "@" +% @ symbol will be read as begin and end math mode otherwise +\message{redefining some plain commands, } +\newdimen\zZ \zZ=0pt % can be used both for 0pt and 0 +\mathchardef\zmz=1000 +\mathchardef\zMz=10000 +\mathchardef\zMMz=20000 +\def~{\penalty\zMz\ } % tie +\def\break{\penalty-\zMz} +\def\nobreak{\penalty \zMz} +\def\allowbreak{\penalty \zZ} +\def\supereject{\par\penalty-\zMMz} +\def\nopagenumbers{\rhf{\bothpages{}}\rff{\bothpages{}}} +% +% Redefined from PLAIN.TEX to \unskip last skip if in h mode +% +\message{redefining some plain commands, } +\def\removelastskip{\ifvmode\ifdim\lastskip=\z@\else\vskip-\lastskip\fi + \else\unskip\unskip\unskip\unskip\fi} +\let\rlsk=\removelastskip +% +% Redefined from PLAIN.TEX to 12 point topskip +\def\raggedbottom{\topskip 12\p@ plus60\p@ \r@ggedbottomtrue}% +\def\normalbottom{\topskip 12\p@ \r@ggedbottomfalse}% +% +% Redefined from PLAIN.TEX to omit extraneous skips and such surprises. +\def\endinsert{\egroup % finish the \vbox + \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ + \advance\dimen@12\p@ \advance\dimen@\pagetotal + \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi + \if@mid \box\z@\goodbreak + \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\fi}\fi\endgroup} +% +% Redefined from PLAIN.TEX to take mode into account +\mathchardef\*dda="227A +\mathchardef\*dag="2279 +\mathchardef\*neg="023A +\def\ddagger{\relax\ifmmode\*dda\else$\*dda$\fi}% +\def\dagger{\relax\ifmmode\*dag\else$\*dag$\fi}% +\def\neg{\relax\ifmmode\*neg\else$\*neg$\fi} +% +% Redefined from PLAIN.TEX to take present font size into account +% +\def\strut{\relax + \setbox\strutbox=\hbox{\vrule height 1.8ex depth .6ex width 0pt}% + \ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}% +% +% +% Starting TEXT1 Definitions +% +% Use this one for Textures +% +\if*MAC + \def\include#1{\special {picture #1}}% + \else + \def\include#1{\special {IPS #1}}% added by gap 1/27/87 +\fi +\let\incl=\include +% +\def\text#1{{\it\TeX T1}}% added by drg 9/26/86 +\def\bf{\bd}% added by jkw 6/30/86 +\def\cents{\hbox{\rm\rlap/c}}% added by jkw 6/30/86 +\def\fraction#1/#2 {% added by jkw 7/8/86 + \leavevmode\kern.1em \raise.6ex\hbox{\the\scriptfont0 #1}\kern-.1em + /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}} +\let\frac=\fraction +\message{bibliography, } +% Bibliography +% +\newtoks\bi*f \bi*f={\goodbreak\vs{1\bl}\hp\nin} % init bibentry +\newtoks\bi*t \bi*t={\dumpinsertseject\cl{\bd\bibtitle} + \vs{1\bl}}% init bibliography title format +\newtoks\bi*r \bi*r={width 3em height .6ex depth -.5ex} +\newcount\bi*n \bi*n=0 % counter for numbered bibliography +\newif\if*TC*bib \*TC*bibtrue +% +\long\def\bibliographyformat#1{{% definition of bibliographic format + \def\incontents##1{\global\*TC*bibtrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*bibfalse + \else \message{ Warning, argument to + incontents in bibliographyformat is not "yes" or "no". + "yes" will be assumed} + \fi\fi}% + \long\def\everybibentry##1{\global\bi*f={##1}}% +% Remove this some day + \let\bibentryformat=\everybibentry% + \long\def\titleformat##1{\global\bi*t={##1}}% replacement format for bibliography title + \def\sameauthorrulesize##1{\global\bi*r={##1}}% + #1}}% +\let\bif=\bibliographyformat +% +\def\bibtitle{} +\def\bibliography#1{% calls bibtitle format and passes title + \global\bi*n=0 % set bib counter to zero each call + \global\def\bibtitle{#1} % collect title tokens + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\bi*t + \egroup + \D=\lastskip + \removelastskip + \if*TC*bib \putincontents1{\the\*btf}\fi % call bib title format + \ignorespaces + \vs{\D} +}% end bibliography markup +\let\bib=\bibliography +% +\def\bibnumber{\the\bi*n}% +\def\bibentry{\par\global\advance\bi*n by1\the\bi*f}% +\let\bie=\bibentry % abbreviation for \bibentry +% +\def\sameauthor{\vrule\the\bi*r}% +\let\sau=\sameauthor +% +\message{misc, } +\def\underscore#1{$\underline{\smash{\hbox{#1}}}$}% +\let\us=\underscore +\def\leader{\leaders\hbox to 8pt{\hss.\hss}\hfill}% +% +\def\hyphenoff{\pretolerance=10000\hbadness=10000}% +\let\hof=\hyphenoff +\def\hyphenon{\pretolerance=100\hbadness=1000}% +\let\hon=\hyphenon +% +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day,\space\number\year}% +% +% +\def\tilde{\relax\ifmmode\mathaccent"707E % relax added to trigger math + \else{\sy\char'030}\fi}% mode in tabs 1/27/87 +% +\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}% +% +\def\}{\relax\ifmmode \rbrace % relax added to trigger math mode in tabs + \else $\rbrace$\fi}% +% +\def\{{\relax\ifmmode \lbrace % relax added to trigger math mode in tabs + \else $\lbrace$\fi}% +% +\def\\{\relax\ifmmode \delimiter"26E30F % relax added to trigger math + \else $\delimiter"26E30F$\fi}% mode in tabs +% +\let\leftsquarebracket=[ +\let\rightsquarebracket=] +\let\lsb=[ +\let\rsb=] +\def\~#1{{\relax\ifmmode\mathaccent"707E % relax added to trigger math + \else \accent"7E #1\fi}}% mode in tabs +% +% baselineskip = interlineskip +% +\newskip\*isk +\newskip\baseline +\let\bl=\baseline +\def\interlineskip#1{\baselineskip=#1% + \baseline=#1% + \*isk=#1\relax}% +\let\isk=\interlineskip +% +\message{selectfontset, } +\newfam\bifam \newfam\ccfam +% +% The \selectfontset macros are by JKW +% +\newtoks\naMEtok +\newtoks\maTHtok +\newskip\bAseSkip +\newtoks\*sfslbl +\if*PC + \*sfslbl={.txt} + \else + \*sfslbl={.textext} +\fi + +\def\selectfontset#1#2#3{\naMEtok={#2} + \edef\T{default}% + \edef\U{#3}% + \ifx\U\T \bAseSkip=0pt + \else \bAseSkip=#3\fi + \input #1\the\*sfslbl }% +\let\sfs=\selectfontset +\sfs{cm12}{twelvept}{default} +\sfs{cm10}{tenpt}{default} +\twelvept +% +\newtoks\*smslbl +\if*PC + \*smslbl={.mth} + \else + \*smslbl={.texmath} +\fi + +\def\selectmathset#1#2{\maTHtok={#2}\input #1\the\*smslbl}% +\let\sms=\selectmathset +\selectmathset{cm97m}{mathdefault} % +\mathdefault +% +% SELECT SPECIFIC FONT, jkw 8/26/86 +\newread\ckfnt +\newif\ifnotcfend +\newtoks\nUMtok +\newtoks\nmtok + +\if*CMS +\def\selectspecificfont#1#2#3{\naMEtok={#1}\nUMtok={#3} + \nmtok={#1\romannumeral #2} + \def\T{\uppercase{#1 }}% + \expandafter\xdef\csname I\the\nmtok\endcsname{\isk{\the\nUMtok}} + \openin\ckfnt=cgfonts.lclist + \loop\read\ckfnt to \W + \edef\U{\uppercase{\W}}% + \ifx\U\T + \expandafter\font\csname F\the\nmtok% + \endcsname=#1 at #2 pt \notcfendfalse + \else\ifeof\ckfnt + \expandafter\font\csname F\the\nmtok% + \endcsname=#1#2 \notcfendfalse + \else\notcfendtrue\fi\fi + \ifnotcfend \repeat + \closein\ckfnt + \expandafter\xdef\csname\the\naMEtok\endcsname ##1;{% + \noexpand\csname F\the\naMEtok + \noexpand\romannumeral\noexpand ##1\noexpand\endcsname + \noexpand\csname I\the\naMEtok + \noexpand\romannumeral\noexpand ##1\noexpand\endcsname}}% +\else +\def\selectspecificfont#1#2#3{\naMEtok={#1}\nUMtok={#3} + \nmtok={#1\romannumeral #2} + \def\T{\uppercase{#1 }}% + \expandafter\xdef\csname I\the\nmtok\endcsname{\isk{\the\nUMtok}} + \expandafter\xdef\csname\the\naMEtok\endcsname ##1;{% + \noexpand\csname F\the\naMEtok + \noexpand\romannumeral\noexpand ##1\noexpand\endcsname + \noexpand\csname I\the\naMEtok + \noexpand\romannumeral\noexpand ##1\noexpand\endcsname}}% +\fi + +\let\ssf=\selectspecificfont +% +\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177 +\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60 +% +\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left ( +% +% +\message{monospace, } +\newif\if*msp \*mspfalse +\if*CMS +\def\monospace{% + \global\*msptrue % changed to global 6/27/86 bth + \sfs{monofont}{defaultmono}{default} + \defaultmono + \gdef\underscore##1{{\italicfont ##1}}% + \global\let\us=\underscore + \special{fonts=10cpi} + \raggedbottom + \global\paragraphskip{0pt} + \global\paragraphindent{36pt} + \gdef\tilde{\ifmmode\mathaccent"707E% + \else \char'176{}\fi}% + \gdef\_{\char'137{}}% + \gdef\}{\ifmmode \rbrace + \else \char'175{}\fi}% + \gdef\{{\ifmmode \lbrace + \else\char'173{}\fi}% + \gdef\\{\ifmmode \delimiter"26E30F% + \else\char'134{}\fi}% + \gdef\neg{\char'136{}}% + \gdef\ellipsis##1{{\def\U{\message{ Error! Only 3 or 4 are valid for ellipsis. Command ignored.}} + \ifcase ##1\U\or\U\or\U% + \or .~.~. + \or .~.~.~. + \else\U\fi}}% + + \tableofcontentsformat{% added 1/26/87 Guenther + \toctitle{\centerline{\bd Table of Contents} + \vs{1\bl}} + \figuretoctitle{\newpage + \centerline{\bd List of Figures} + \line{Figure \rt{Page}}} + \tabletoctitle{\newpage + \centerline{\bd List of Tables} + \line{Table \rt{Page}}} + }% end table of contents format + + \global\let\el=\ellipsis + \asisformat{\skipbefore{1\bl}\everyasis{\leftindent{0pt}}\skipafter{1\bl}} + \blockquoteformat{\skipbefore{1\bl}\everyblockquote{\rm\leftindent{36pt}\rightindent{36pt}}\skipafter{1\bl}} + \figureformat{\titleformat{\bqb\bd\hp Figure \figurenumber. \figuretitle \bqe}} + \tableformat{\titleformat{\vs{\bl}\cl{\bd Table \tablenumber} + \cl{\rm\tabletitle}\vs{\bl}}} + \endnoteformat{\skipbefore{0\bl}\notereferencefont{\rm}\everyendnote{\rm\lin{0pt}}} + \footnoteformat{\textreferenceposition{down}\textreferencefont{\rm}\textreferencestyle{(1)} + \notereferencefont{\rm}\everyfootnote{\rm\pin{.5in}\psk{.5in}\lin{0pt}\rin{0pt}}} + + \partformat{\titleformat{\dumpinsertseject\titlepage + \hrule height0pt depth0pt \vfil + \cl{\bd Part \partnumber}\cl{\bd\parttitle}\np + \scn{0}\ssan{0}\ssbn{0}\sscn{0}\ssdn{0} + \sfn{0}\stn{0}\sfnn{0}\senn{0}}}% end part format + \indexformat1{\everyindex{\rm}} + \indexformat2{\everyindex{\rm}} + \indexformat3{\everyindex{\rm}} + \chapterformat{\titleformat{\dumpinsertseject\cl{\bd Chapter \chapternumber}\cl{\bd\chaptertitle}\vs{1\bl} + \ssan{0}\ssbn{0}\sscn{0}\ssdn{0}}}% end chapter format + \prefaceformat{\titleformat{\dumpinsertseject\cl{\bd\prefacetitle} + \vs{1\bl}\ssan{0}\ssbn{0}\sscn{0}\ssdn{0}}}% end preface format + \appendixformat{\titleformat{\dumpinsertseject + \cl{\bd Appendix \appendixnumber}\cl{\bd\appendixtitle}\vs{1\bl} + \scn{0}\ssan{0}\ssbn{0}\sscn{0}\ssdn{0}\sfn{0}\stn{0}}}% end appendix format + \subheadaformat{\titleformat{\removelastskip\goodbreak\vs{2\bl} + \bd\nin\subheadatitle\par\nobreak\vs{1\bl}\nobreak + \ssbn{0}\sscn{0}\ssdn{0}}}% end subheadaformat markup + \subheadbformat{\titleformat{\removelastskip\goodbreak\vs{2\bl} + \it\nin\subheadbtitle\par\nobreak\vs{1\bl}\nobreak + \sscn{0}\ssdn{0}}}% end subheadbformat markup + \subheadcformat{\titleformat{\removelastskip\goodbreak\vs{2\bl} + \nin\subheadctitle\par\nobreak\vs{1\bl}\nobreak\ssdn{0}}}% end subheadc format markup + \subheaddformat{\titleformat{\goodbreak{\it \subheaddtitle.}}}% end subheadd markup + \runningheadformat{\bothpages{\line{\rm\lft{}\ctr{}\rt{\pagenumber}} + \vs{1\bl}}}% end runningheadformat markup +}% END monospace markup definition +\else + \def\monospace{\message{ monospace fonts are not available. Use + typewritter fonts instead.}} +\fi +\let\msp=\monospace +% +\def\sl{\message{ Warning! The slanted font is not in font sets. Only tensl is used.}\tensl}% +\message{more misc, } +% +% Ellipsis command 10/22/85 +% +\def\ellipsis#1{{\def\U{\message{ Error! Only 3 or 4 are valid for ellipsis. Command ignored.}} + \ifcase #1\U\or\U\or\U% + \or \ifmmode\mathinner{\ldotp\ldotp\ldotp} + \else$\mathinner{\ldotp\ldotp\ldotp}$\fi + \or \ifmmode\mathinner{\ldotp\ldotp\ldotp\ldotp} + \else\removelastskip$\ldotp\ldotp\ldotp\ldotp$\fi + \else\U\fi}}% +\let\el=\ellipsis +% +% dumpinsertseject is plain.tex \dosupereject with and \else added +% +\def\dumpinsertseject{\ifnum\insertpenalties>\z@ % something is being held over + \line{}\kern-\topskip\nobreak\vfill\supereject + \else \newpage + \fi}% END dumpinsertseject markup definition +\let\die=\dumpinsertseject +\message{page format, } +% +\newif\if*tempif +% +% Pageformat command +% +\newdimen\pg*l \pg*l=11in % page length +\newdimen\pg*t \pg*t=0in % top margin set for 1in origin +\newdimen\pg*b \pg*b=2in % bottom margin set for 1in origin +\newdimen\pg*w \pg*w=8.5in % page width +\newdimen\pg*r \pg*r=2in % right margin set for 1in, +\newdimen\*lmar \*lmar=0.2in % left margin set for 1in +% Note: TEX origin at 1in,1in +\newif\if*cropmarks \*cropmarksfalse +\newdimen\pg*a \pg*a=0in +\hsize=6.3in \hoffset=0.2in +\vsize=9in \voffset=0in +% +\def\pageformat#1{{\par + \def\pagelength##1{\global\pg*l=##1 + \cpt*vs}% + \def\topmargin##1{\global\pg*t=##1 + \global\advance\pg*t by- 1in % set margin 1in,1in + \cpt*vs}% + \def\bottommargin##1{\global\pg*b=##1 + \global\advance\pg*b by 1in % set margin 1in,1in + \cpt*vs}% + \def\pagewidth##1{\global\pg*w=##1\cpt*hs}% + \def\rightmargin##1{\global\pg*r=##1 + \global\advance\pg*r by 1in % set margin 1in,1in + \cpt*hs}% + \def\leftmargin##1{\global\*lmar=##1 + \global\advance\*lmar by -1in % set margin 1in,1in + \cpt*hs}% + \def\bindingadjust##1{\global\pg*a=##1\cpt*hs}% + \def\galleywidth##1{\global\pg*w=##1 + \global\advance\pg*w by\*lmar + \global\advance\pg*w by\pg*r \cpt*hs}% + \def\cropmarks##1{\global\*cropmarksfalse + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U \global\*cropmarkstrue + \else \ifx \T\V \global\*cropmarksfalse + \else \message{ Warning, argument to cropmarks in + pageformat is not "yes" or "no". "no" will be assumed} + \*cropmarksfalse + \fi\fi}% + #1}}% End pageformat markup definition +\let\pf=\pageformat +% +% set page text size, compute hsize +% +\def\cpt*hs{% COMPUTE HORIZONTAL SIZE + \global\hoffset=\*lmar + \global\hsize=\pg*w % added global 11/11/86 bth + \global\advance\hsize by-\pg*r % "" + \global\advance\hsize by-\*lmar % "" + \global\*txtw=\hsize}% added for multi column routines +% +% set page text size, vsize +% +\def\cpt*vs{% COMPUTE VERTICAL SIZE + \global\voffset=\pg*t + \global\vsize=\pg*l + \global\advance\vsize by-\pg*t + \global\advance\vsize by-\pg*b + \if*title \global\advance \voffset by \tp*sk % lines from titlepage + \global\advance \vsize by -\tp*sk % from titlepage + \fi + \global\*txth=\vsize}% added for multi column routines +% +% left center right +% +\def\lft#1{#1\hfill} +\def\ctr#1{\hfill #1\hfill} +\def\rt#1{\hfill #1} +% +\message{running heads, } +% +% Page numbers +% +\def\setpagenumber#1{\global\pageno=#1}% +\let\spn=\setpagenumber +\def\pagenumber{\ifnum \pageno<0 \romannumeral-\pageno + \else \number\pageno\fi}% +\let\pn=\pagenumber +% +\def\rule{\vskip 1\baselineskip\hrule}% +% +% Running heads +% +\newif\if*title +% +\newtoks\rh*r \rh*r={\line{\twelvept\rt{\pagenumber}}\vs{\bl}} +\newtoks\rh*l \rh*l={\line{\twelvept\rt{\pagenumber}}\vs{\bl}} +\newtoks\rf*r \rf*r={} +\newtoks\rf*l \rf*l={} +% +\def\runningheadformat#1{{% + \def\*ttitle##1{\setbox\A=\vbox{##1}% + \D=\ht\A + \advance\D by -1in + \ifdim \D>\pg*t + \global\pg*t=\D + \global\advance\pg*t by 12pt + \advance\D by 1in + \message{ Warning, the top margin you + have specified is less than the + running top title. The top margin will + be changed to \the\D} + \cpt*vs + \fi + \if*tempif \global\rh*l={\hrule width\hsize + height0pt depth0pt ##1} + \else \global\rh*r={\hrule width\hsize + height0pt depth0pt ##1}\fi + }% end *ttitle definition + \def\evenpages##1{\*tempiftrue\*ttitle{##1}}% + \def\oddpages##1{\*tempiffalse\*ttitle{##1}}% + \def\bothpages##1{\*tempiftrue\*ttitle{##1} + \*tempiffalse\*ttitle{##1}}% + \relax + #1 + }}% END runningheadformat markup definition +\let \rhf = \runningheadformat +% +\def\runningfootformat#1{{% + \def\*btitle##1{\setbox\A=\vbox{##1}% + \D=\ht\A + \advance\D by 1in + \ifdim \D>\pg*b + \global\pg*b=\D + \global\advance\pg*b by 12pt + \advance\D by -1in + \message{ Warning, the bottom margin + you have specified is less than height of the + running bottom title. + The bottom margin will be + changed to \the\D} + \cpt*vs + \fi + \if*tempif \global\rf*l={##1} + \else \global\rf*r={##1}\fi + }% end of bottomline + \def\evenpages##1{\*tempiftrue\*btitle{##1}}% + \def\oddpages##1{\*tempiffalse\*btitle{##1}}% + \def\bothpages##1{\*tempiftrue\*btitle{##1} + \*tempiffalse\*btitle{##1}}% + \relax + #1}}% END runningfootformat markup definition +\let \rff = \runningfootformat +% +\newdimen\tp*sk \tp*sk=1in +\newtoks\tp*fl \tp*fl={} +\def\titlepageformat#1{{% + \def\titleleadskip##1{\global\tp*sk=##1}% + \def\titlefootline##1{\global\tp*fl={##1}}% + \relax + #1 + \titlepage}} %end of titlepageformat +\let \tpf = \titlepageformat +% +\def\titlepage{\global\*titletrue + \cpt*vs}% +\let\tp=\titlepage +\def\notitlepage{\global\*titlefalse + \cpt*vs}% +\let\ntp=\notitlepage +% +\message{output, } +% +% Output changed to permit binding adjust +% +\output={\*mkpg} +% +\def\*mkpg{\*badj + \plainoutput + \if*title \notitlepage\fi + \ifnum\*pcount>0 \*blkpg\fi}% insert blank page +% +\def\plainoutput{\shipout\vbox{\*setcrops{\vbox{% + \makeheadline + \pagebody + \makefootline}}} + \advancepageno + \ifnum\outputpenalty>-\@MM + \else\dosupereject\fi} +% +\def\*setcrops#1{\setbox\A=\vbox{#1} + \if*cropmarks + \D=\wd\A + \advance\D by 15pt + \vbox{\hsize=\the\D + \offinterlineskip\psk{0pt}\pin{0pt} + \hbox to \D{\vrule width 5pt height .1pt depth 0pt + \hfill + \vrule width 5pt height .1pt depth 0pt} + \hbox to \D{\vrule height 5pt width .1pt depth 0pt + \hfill + \vrule height 5pt width .1pt depth 0pt} + \vs{\the\pg*t} + \vs{3pt} + \hbox to \D{\hfill\box\A\hfill} + \vs{3pt} + \hbox to \D{\vrule width .1pt height 5pt depth 0pt + \hfill + \vrule width .1pt height 5pt depth 0pt} + \hbox to \D{\vrule width 5pt height .1pt depth 0pt + \hfill + \vrule width 5pt height .1pt depth 0pt}} + \else \box\A\fi} +% +\def\makeheadline{% headline set for multiple and single column modes + \if*title% Do nothing if its a title page + \else \setbox\A=\vbox{\hsize=\the\*txtw % hsize added to allow + \ifodd\pageno\the\rh*r % headline to print the + \else\the\rh*l\fi} % full width in multi + \vbox to 0pt{\vskip-\ht\A\box\A\vss} % column mode + \fi} % This could replace the TEXT1@@ definition +% +\def\makefootline{\if*title + \if*cropmarks \vbox{\hsize=\the\*txtw\the\tp*fl\vss} + \else\vbox to 0pt{\hsize=\the\*txtw\the\tp*fl\vss}\fi + \else\if*cropmarks \vbox{\hsize=\the\*txtw\ifodd\pageno\the\rf*r + \else\the\rf*l\fi\vss} + \else\vbox to 0pt{\hsize=\the\*txtw\ifodd\pageno\the\rf*r + \else\the\rf*l\fi\vss}\fi % hsize added for multi column mode + \fi} % This could replace the TEXT1@@ definition +% +\def\*badj{\ifdim\pg*a=\z@ % do nothing if binding adjust absent + \else + \ifodd\pageno % Binding adjust markup (revised 2/03/87 + \global\hoffset=\*lmar % offset equals left margin value + \global\advance\hoffset by\pg*a % plus binding adjust + \else + \global\hoffset=\*lmar % offset equals left margin value + \global\advance\hoffset by-\pg*a % plus binding adjust + \fi\fi}% end binding adjust markup +\message{more misc, } +% +% linebreak +% +\def\linebreak{\null\hfil\break} +\let\lbr=\linebreak +\let\toclinebreak=\linebreak +\let\toclbr=\linebreak +% +% Horizontal skip +% +\def\horizontalspace#1{\null\hskip#1\relax}% +\let\hs=\horizontalspace +% +% skip down +% +\def\verticalspace#1{\vskip #1\relax}% +\let\vs=\verticalspace +% +\def\verticalspacekeep#1{\par + \hbox{\vbox{\vskip #1\relax}}}% +\let\vsk=\verticalspacekeep +% +% raggedright (as TeX basic) +% +\newdimen\r*sk \r*sk=0pt % dimension to save right skip +\def\rightragged{\par \r*sk=\rightskip \*rrtrue + \if*msp \rightskip=\r*sk plus10em + \spaceskip=1em \xspaceskip=1em + \else \rightskip=\r*sk plus2em\relax + \spaceskip=.3333em \xspaceskip=.5em + \fi} +\let\rr=\rightragged +% +% leftragged +% +\newdimen\l*sk \l*sk=0pt % dimension to save left skip +\def\leftragged{\par % + \l*sk=\leftskip + \spaceskip=.35em + \xspaceskip=.55em + \parfillskip=0pt + \leftskip=\l*sk plus2em\relax} +\let\lr=\leftragged +% +\newif\if*rr \*rrfalse +\def\justify{\par + \rightskip=\r*sk + \*rrfalse + \leftskip=\l*sk + \spaceskip=0pt \xspaceskip=0pt + \parfillskip=0pt plus1fil\relax} +\let\ju=\justify +% +% spacing +% +\def\singlespace{\par\baselineskip=\*isk} +\let\ssp=\singlespace +\def\doublespace{\par\baselineskip=2\*isk} +\let\dsp=\doublespace +% +% paragraph +% +\let\paragraph=\par +\def\paragraphindent#1{\parindent=#1} +\let\pin=\paragraphindent +\def\paragraphskip#1{\parskip=#1} +\let\psk=\paragraphskip +% +% noindent +% +\let\nin=\noindent +% +% hanging paragraph macro +% +\newdimen\*hin \*hin=24pt +\def\hangingindent#1{\*hin=#1} +\let\hin=\hangingindent +% +\def\hangingparagraph{\par + \hangindent=\*hin + \hangafter=1 + \noindent} +\let\hp=\hangingparagraph +\newif\if*mnr \*mnrfalse % left/right margin note indicator +\newtoks\e*mn \e*mn={\tenpt\rr} % every margin note tokens +\newtoks\*mnw \*mnw={54pt} % margin note width tokens +\newtoks\*mngut \*mngut={6pt} % margin note gutter tokens +\message{margin note, } +% +% Margin Note markup +% +\def\marginnoteformat#1{% MARGINAL NOTE FORMAT + \def\position##1{% "left" or "right" margin note check + \edef\T{##1}% + \edef\U{left}% + \edef\V{right}% + \ifx \T\U \global\*mnrfalse % left margin notes true + \else\ifx \T\V \global\*mnrtrue % right margin notes true + \else\global\*mnrfalse % default, improper entry + \write16{ You must specify "left" or "right" in % + the marginnoteformat markup. Left is the default.}% + \fi\fi}% end margin note check + \def\notewidth##1{\global\*mnw={##1}}% note width variable + \def\notegutter##1{\global\*mngut={##1}}% gutter width variable + \def\everymarginnote##1{\global\e*mn={##1}}% token variable + #1}% insert arguments, END marginnoteformat +\let\mnf=\marginnoteformat % set marginnoteformat abbreviation +% +\long\def\marginnote#1{% BEGIN MARGIN NOTE MACRO + \if*CG + \special{MARGINNOTE=true} % added 6/30/87 jkw for 8600 line numbering + \fi + \ifvmode\leavevmode\fi % can't use vadjust in vertical mode + \bgroup % begin margin note routine + \def\rightragged{\r*sk=\rightskip \*rrtrue + \if*msp \rightskip=\r*sk plus10em % + \spaceskip=1em \xspaceskip=1em % + \else \advance\rightskip by 0pt plus1fil\relax % + \spaceskip=.35em \xspaceskip=.55em % + \fi}% par removed from TEXT1 version % + \let\rr=\rightragged % +% + \tolerance=6000 % increase line-breaking tolerance + \hbadness=6000 % increase warning tolerance + \strut % sets line depth for vadjust + \D=\dp\strutbox % capture depth of current line + \the\e*mn % every margin note tokens + \strut % sets strut to margin note font + \parskip=0pt % cancel any paragraph skip + \if*mnr % right margin notes true + \vadjust{ % make whats'it in text + \rlap{\smash{ % rightlap, make note depth zero + \hskip\hsize % skip to right margin + \hskip\the\*mngut % make gutter + \vtop{\hsize=\the\*mnw % set reference point, new hsize + \kern-\D % kern depth of current text line + \kern-\ht\strutbox % kern height of margin note text + \nin#1}}}}% % input margin note text + \else % left margin notes true + \vadjust{ % make whats'it in text + \llap{\smash{ % leftlap, make note depth zero + \vtop{\hsize=\the\*mnw % gather vertical material with + \kern-\D % kern depth of current text line + \kern-\ht\strutbox % kern height of margin note text + \nin#1}% reference point at the top + \hskip\the\*mngut}}}% make margin note gutter + \fi % + \egroup % end margin notes routine + \ignorespaces}% END margin note macro +\let\mn=\marginnote +% +\message{labels, } +% +% labeled definition macro +% +\newdimen\la*w \la*w=1in % Label width +\newtoks\la*g \la*g={1em} % Label gutter +\newtoks\la*s \la*s={1\bl} % Skip before label +\newtoks\la*f \la*f={\rm} % Label font +% +\long\def\label#1{\par\vskip\the\la*s + \setbox\A=\vtop{\hsize=\la*w + \leftskip=0pt + \rightskip=0pt plus2em + \tolerance=1600 + \noindent + \the\la*f + #1}% + \hangindent=\la*w + \advance \hangindent by \the\la*g + \hangafter=1 + \noindent + \setbox0=\hbox{\rlap{\box\A}}\ht0=0pt\dp0=0pt\box0% + \hskip\la*w + \hskip\the\la*g + \ignorespaces} +\let\la=\label +% +\def\labelformat#1{{\def\skipbefore##1{\global\la*s={##1}}% + \def\labelwidth##1{\global\la*w=##1}% + \def\gutter##1{\global\la*g={##1}}% + \def\everylabel##1{\global\la*f={##1}}% + #1}}% End labelformat +\let\laf=\labelformat +% +\message{indents, } +% +% leftindent +% +\newif\if*ok +\newif\if*zero +\def\leftindent#1{\par + \*zerofalse + \*okfalse + \e*p#1\end% + \if*zero \leftskip 0pt \fi + \advance \leftskip by #1 + \l*sk=\leftskip % l*sk used in justify reset + }% +\let\lin=\leftindent +% +\def\rightindent#1{\par + \*zerofalse \*okfalse + \e*p#1\end% + \if*zero \rightskip 0pt \fi + \advance \rightskip by #1 + \if*rr\rr\fi + \r*sk=\rightskip}% r*sk used in justify reset +\let\rin=\rightindent +% +% \e*p will determine if the parm value passed to \leftindent +% or \rightindent is to be relative to the previous indent, which means a +% "+" or "-" will appear in front of the indent value. If no "+" or "-", +% then the indent is to be absolute from the original left margin. +% +\def\e*p#1{\ifx #1\end \let \next = \relax% e*p => Evaluate Parameter + \else \if*ok \let \next = \e*p + \else \global\*oktrue + \ifx #1+ \let \next = \e*p + \else \ifx #1- \let \next = \e*p + \else \*zerotrue + \let \next = \e*p + \fi\fi\fi\fi \next} +% +\message{block quotes, } +% +% Blockquote +% +\newskip\bq*sb \bq*sb = 6pt % Default skip before +\newskip\bq*sa \bq*sa = 6pt % Default skip after +\newtoks\bq*f \bq*f={\tenpt\leftindent{24pt}\rightindent{24pt}} +% +\def\blockquoteformat#1{{% + \def\everyblockquote##1{\global\bq*f={##1}}% + \def\skipbefore##1{\global\bq*sb=##1\relax}% + \def\skipafter##1{\global\bq*sa=##1\relax}% + #1}} %end of blockquoteformat +\let\bqf=\blockquoteformat +% +\def\blockquotebegin{\par\vskip\bq*sb\relax\begingroup + \the\bq*f } +\let\bqb=\blockquotebegin +\def\blockquoteend{\par\endgroup\vskip\bq*sa\relax} +\let\bqe=\blockquoteend +% +\message{footnotes, } +% +% +% +% Footnote +% +% The "tfn" prefixed values are for the reference in the text of +% the document. +% +\newif\if*tfn*dnum \*tfn*dnumfalse %"1." style +\newif\if*tfn*unum \*tfn*unumtrue %"1" style +\newif\if*tfn*pnum \*tfn*pnumfalse %"(1)" style +\newif\if*tfn*dlet \*tfn*dletfalse % "a." style +\newif\if*tfn*ulet \*tfn*uletfalse % "a" style +\newif\if*tfn*plet \*tfn*pletfalse % "(a)" style +\newif\if*tfn*rbe \*tfn*rbefalse % reference after word +\newif\if*tfnupchar \*tfnupchartrue % +\newtoks\*tfn*rfont \*tfn*rfont={\tenpt\rm} +% +% The "nfn" prefixed values are for the reference as it is formatted +% at the bottom of the page. +% +\newif\if*nfn*dnum \*nfn*dnumtrue %"1." style +\newif\if*nfn*unum \*nfn*unumfalse %"1" style +\newif\if*nfn*pnum \*nfn*pnumfalse %"(1)" style +\newif\if*nfn*dlet \*nfn*dletfalse % "a." style +\newif\if*nfn*ulet \*nfn*uletfalse % "a" style +\newif\if*nfn*plet \*nfn*pletfalse % "(1)" style +\newif\if*nfnupchar \*nfnupcharfalse % reference is not superscript +\newtoks\*nfn*rfont \*nfn*rfont={\tenpt\rm} +\newtoks\*nfng \*nfng={1em} +% +\newif\if*fn*llap \*fn*llaptrue +\newtoks\fn*f +\newcount\fn*num +\newdimen\fn*div \fn*div=2in +\newskip\fn*sadiv \fn*sadiv=2.6pt %default skip after divider +\newskip\fn*sbdiv \fn*sbdiv=6pt %default skip before divider +% +\def\footnotenumber{{\if*tfn*dnum \the\fn*num % "1." style + \else\if*tfn*unum \the\fn*num % "1" style + \else\if*tfn*pnum \the\fn*num % "(1)" style + \else\l*alphatrue \a*c{\fn*num} % "a.", "a", and "(a)" + \fi\fi\fi + \removelastskip}} +% +\def\setfootnotenumber#1{\fn*num=#1} +\let\sfnn=\setfootnotenumber +% +\skip\footins=15pt plus 3pt minus 2pt +\fn*f={\tenpt\pin{20pt}\lin{0in}} +% +\def\footnoteformat#1{{% + \def\everyfootnote##1{\global\fn*f{##1}}% + \def\textreferencestyle##1{% + \global\*tfn*dnumfalse + \global\*tfn*unumfalse + \global\*tfn*pnumfalse + \global\*tfn*dletfalse + \global\*tfn*uletfalse + \global\*tfn*pletfalse + \edef\T{##1}% + \edef\U{(1)}% + \edef\V{1}% + \edef\Y{1.}% + \edef\W{(a)}% + \edef\X{a}% + \edef\Z{a.}% + \ifx\T\U \global\*tfn*pnumtrue + \else\ifx\T\V \global\*tfn*unumtrue + \else\ifx\T\Y \global\*tfn*dnumtrue + \else\ifx\T\W \global\*tfn*plettrue + \else\ifx\T\X \global\*tfn*ulettrue + \else\ifx\T\Z \global\*tfn*dlettrue + \else \message{ Error! textreferencestyle ##1 + is not a valid style. Statement ignored.} + \fi\fi\fi\fi\fi\fi}% end reference style + \def\textreferencefont##1{\global\*tfn*rfont{##1}}% + \def\textreferenceplacement##1{\global\*tfn*rbefalse + \edef\T{##1}% + \edef\U{before}% + \edef\V{after}% + \ifx\T\U \global\*tfn*rbetrue + \else\ifx\T\V \global\*tfn*rbefalse + \else \message{ Error! textreferenceplacement ##1 + is invalid. Statement ignored.} + \fi\fi} + \def\textreferenceposition##1{\global\*tfnupcharfalse + \edef\T{##1}% + \edef\U{up}% + \edef\V{down}% + \ifx\T\U \global\*tfnupchartrue + \else\ifx\T\V \global\*tfnupcharfalse + \else \message{ Error! textreferenceposition ##1 + has an invalid parameter. Statement ignored.} + \fi\fi} + \def\notereferencestyle##1{ + \global\*nfn*dnumfalse + \global\*nfn*unumfalse + \global\*nfn*pnumfalse + \global\*nfn*dletfalse + \global\*nfn*uletfalse + \global\*nfn*pletfalse + \edef\T{##1}% + \edef\U{(1)}% + \edef\V{1}% + \edef\Y{1.}% + \edef\W{(a)}% + \edef\X{a}% + \edef\Z{a.}% + \ifx\T\Y \global\*nfn*dnumtrue + \else\ifx\T\U \global\*nfn*pnumtrue + \else\ifx\T\V \global\*nfn*unumtrue + \else\ifx\T\W \global\*nfn*plettrue + \else\ifx\T\X \global\*nfn*ulettrue + \else\ifx\T\Z \global\*nfn*dlettrue + \else \message{ Error! notereferencestyle ##1 + is not a valid style. Statement ignored.} + \fi\fi\fi\fi\fi\fi}% end reference style + \def\notereferencefont##1{\global\*nfn*rfont{##1}}% + \def\notereferenceposition##1{\global\*nfnupcharfalse + \edef\T{##1}% + \edef\U{up}% + \edef\V{down}% + \ifx\T\U \global\*nfnupchartrue + \else\ifx\T\V \global\*nfnupcharfalse + \else \message{ Error! notereferenceposition ##1 + has an invalid parameter. Statement ignored.} + \fi\fi}% + \def\skipbeforedivider##1{\global\fn*sbdiv=##1\relax}% + \def\footnotedivider##1{\global\fn*div=##1\relax}% + \def\notereferencegutter##1{\global\*nfng={##1}}% + \def\skipafterdivider##1{\global\fn*sadiv=##1\relax}% + #1 + \relax + \skip\footins=0pt plus 3pt minus 2pt + \global\advance\skip\footins by \fn*sbdiv\relax% + \global\advance\skip\footins by \fn*sadiv\relax% +}} % end of footnoteformat +\let\fnf=\footnoteformat +% +\def\autofootnote{\global\advance\fn*num by 1 + \l*alphatrue + \xdef\I{% + \if*tfn*unum \the\fn*num% + \else \if*tfn*ulet \a*c{\the\fn*num}% + \else \if*tfn*plet (\a*c{\the\fn*num})% + \else \if*tfn*pnum (\the\fn*num)% + \else \if*tfn*dlet \a*c{\the\fn*num}.% + \else \if*tfn*dnum \the\fn*num.% + \fi\fi\fi\fi\fi\fi}% + \def\K{% + \if*nfn*unum \the\fn*num% + \else \if*nfn*ulet \a*c{\the\fn*num}% + \else \if*nfn*plet (\a*c{\the\fn*num})% + \else \if*nfn*pnum (\the\fn*num)% + \else \if*nfn*dlet \a*c{\the\fn*num}.% + \else \if*nfn*dnum \the\fn*num.% + \fi\fi\fi\fi\fi\fi}% +% + \let\@sf=\empty + \ifhmode\edef\@sf{\spacefactor=\the\spacefactor}\fi + \def\J{{\the\*tfn*rfont + \if*tfnupchar \raise.7ex\hbox{\the\*tfn*rfont\I}% + \else {\I}\fi}}% + \if*tfn*rbe \@sf\J\ignorespaces% + \else\unskip\unskip\unskip\unskip\J\@sf\fi + \def\M{{\the\*nfn*rfont + \if*nfnupchar \raise.7ex\hbox{\K}% + \else {\K}\fi}}% + \vfootnote{\M}} +\let\afn=\autofootnote +% +% vfootnote redefined to include fn*f features +% The addition of hsize=txtw in vfootnote for flexibleformat allows the +% +% footnote to print across the full text width at the page bottom. +% +% Footstrut redefined to baselineskip for consistent spacing in footnote +% +% +\def\footnoterule{\vskip-\fn*sadiv\hrule width\fn*div\vskip\fn*sadiv\relax} +% +% redefined from PLAIN TEX to baselineskip. PLAIN TEX +% used the height of a ten point strutbox +% +\def\vfootnote#1{% Vfootnote revised 11/6/86 + \insert\footins\bgroup + \if*fix % if fixed mode do nothing to footnote + \else\hsize=\*txtw\fi % else print footnote across full width of page + \interlinepenalty\interfootnotelinepenalty + \setbox\strutbox=\hbox{\vrule height 1.8ex depth .6ex width 0pt}% + \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 + \the\fn*f + \def\T{\parindent}% For some odd and unknown reason this def is needed + \ifdim\the\parindent>0pt \global\*fn*llaptrue + \else \ifdim\the\leftskip>0pt \global\*fn*llaptrue + \else \global\*fn*llapfalse\fi\fi + \leavevmode + \if*fn*llap \hbox to 0pt{\hss{#1\hskip\the\*nfng}}% + \else \hbox{#1\hskip\the\*nfng}\fi% + \ignorespaces + \footstrut\futurelet\next\fo@t}% END vfootnote markup definition +% +\def\footstrut{\vbox to\baselineskip{}} +% +\message{endnotes, } +% +% Endnote +% +% The "ten" prefixed values are for the reference in the text of +% the document. +% +\newif\if*ten*num \*ten*numtrue % "[1]", "1" and "(1)" styles +\newif\if*ten*let \*ten*letfalse % "a" and "(a)" styles +\newif\if*ten*paren \*ten*parenfalse % "(1)" and "(a)" styles +\newif\if*ten*sb \*ten*sbtrue % "[1]" style +\newif\if*tenupchar \*tenupcharfalse % reference is not superscripted by +\newtoks\*tenrfont \*tenrfont={\tenpt\rm} +% +% The "nen" prefixed values are for the reference as it is formatted +% at the end of a chapter or the end of the document. +% +\newif\if*nen*num \*nen*numtrue % "[1]", "1", "1." and "(1)" styles +\newif\if*nen*let \*nen*letfalse % "a" and "(a)" styles +\newif\if*nenll*per \*nenll*pertrue % "1." style +\newif\if*nen*paren \*nen*parenfalse % "(1)" and "(a)" styles +\newif\if*nen*sb \*nen*sbfalse % "[1]" style +\newif\if*nenupchar \*nenupcharfalse % reference isn't superscripted +\newtoks\*nenrfont \*nenrfont={\tenpt\rm} +\newdimen\*neng \*neng=1em +% +\newtoks\*enpar +\newcount\en*n +\newskip\en*s \en*s=4pt +% +% +\def\endnotenumber{{\if*ten*num \the\en*n % all numeric styles + \else\l*alphatrue \a*c{\en*n} % all alpha styles + \fi + \removelastskip}} +% +\def\setendnotenumber#1{\en*n=#1} +\let\senn=\setendnotenumber +% +\*enpar={\tenpt\pin{0in}\lin{1.2em}} +% +\def\endnoteformat#1{% + {\def\everyendnote##1{\global\*enpar{##1}}% + \def\textreferencestyle##1{% + \global\*ten*numfalse + \global\*ten*letfalse + \global\*ten*parenfalse + \global\*ten*sbfalse + \edef\T{##1}% + \edef\U{[1]}% + \edef\V{(1)}% + \edef\W{1}% + \edef\X{(a)}% + \edef\Y{a}% + \ifx\T\U \global\*ten*numtrue \global\*ten*sbtrue % st + \else\ifx\T\V \global\*ten*numtrue \global\*ten*parentrue % st + \else\ifx\T\W \global\*ten*numtrue % st + \else\ifx\T\X \global\*ten*lettrue \global\*ten*parentrue % st + \else\ifx\T\Y \global\*ten*lettrue % st + \else \message{ Error! textreferencestyle ##1 + is not a valid style. Statement ignored.} + \fi\fi\fi\fi\fi}% end reference style + \def\textreferencefont##1{\global\*tenrfont{##1}}% + \def\textreferenceposition##1{\global\*tenupcharfalse + \edef\T{##1}% + \edef\U{up}% + \edef\V{down}% + \ifx\T\U \global\*tenupchartrue + \else\ifx\T\V \global\*tenupcharfalse + \else \message{ Error! textreferenceposition ##1 + has an invalid parameter. Statement ignored.} + \fi\fi} + \def\notereferencestyle##1{ + \global\*nen*numfalse + \global\*nen*letfalse + \global\*nen*parenfalse + \global\*nenll*perfalse + \global\*nen*sbfalse + \edef\T{##1}% + \edef\U{[1]}% + \edef\V{(1)}% + \edef\W{1}% + \edef\X{(a)}% + \edef\Y{a}% + \edef\Z{1.}% + \ifx\T\Z \global\*nen*numtrue \global\*nenll*pertrue % style + \else\ifx\T\U \global\*nen*numtrue \global\*nen*sbtrue % st + \else\ifx\T\V \global\*nen*numtrue \global\*nen*parentrue % st + \else\ifx\T\W \global\*nen*numtrue % st + \else\ifx\T\X \global\*nen*lettrue \global\*nen*parentrue % st + \else\ifx\T\Y \global\*nen*lettrue % st + \else \message{ Error! notereferencestyle ##1 + is not a valid style. Statement ignored.} + \fi\fi\fi\fi\fi\fi}% end reference style + \def\notereferencefont##1{\global\*nenrfont{##1}}% + \def\notereferenceposition##1{\global\*nenupcharfalse + \edef\T{##1}% + \edef\U{up}% + \edef\V{down}% + \ifx\T\U \global\*nenupchartrue + \else\ifx\T\V \global\*nenupcharfalse + \else \message{ Error! notereferenceposition ##1 + has an invalid parameter. Statement ignored.} + \fi\fi}% + \def\notereferencegutter##1{\global\*neng=##1}% + \def\skipbefore##1{\global\en*s=##1}% + \relax + #1}} % end of footnoteformat +\let\enf=\endnoteformat +% +\newlinechar=`\^^J +\newhelp\aenhelp{relax + You may continue if you wish, but I'd be surprised + if your job^^J + finished without any errors when you print the endnotes. } +% +\def\err@#1{\errmessage{TEXT1 error: #1}} +\def\*aenerr{\errhelp=\aenhelp + \catcode`@=11 + \errmessage{Results are unpredictable + when you use autoendnote with asisbegin. + Type h for more help}}% +\def\autoendnote{\global\advance\en*n by 1 + \if*aib \*aenerr \fi + \l*alphatrue + \edef\I{% + \if*ten*paren (\unskip\fi + \if*ten*sb [\unskip\fi + \if*ten*num \the\en*n\fi + \if*ten*let \a*c{\the\en*n}\fi + \if*ten*paren \unskip)\fi + \if*ten*sb \unskip]\fi}% + \let\@sf=\empty + \ifhmode \edef\@sf{\spacefactor=\the\spacefactor}% + \else \let\@sf=\empty\fi + \unskip\unskip + \if*tenupchar \raise.7ex\hbox{\the\*tenrfont\I}\@sf% + \else {\the\*tenrfont\I}\@sf\fi% + \edef\J{% + \if*nen*paren (\unskip\fi + \if*nen*sb [\unskip\fi + \if*nen*num \the\en*n\fi + \if*nen*let \a*c{\the\en*n}\fi + \if*nenll*per \unskip.\fi + \if*nen*paren \unskip)\fi + \if*nen*sb \unskip]\fi}% + \en*o + \immediate\write\en*f{\par% + \the\*enpar% + \noexpand\ENP{\the\*nenrfont\J}}% + \en*w} +\let\aen=\autoendnote +% +% +\def\ENP#1{\indent\en*i{% + \if*nenupchar \raise.7ex\hbox{\the\*nenrfont#1}% + \else {\the\*nenrfont#1}\fi}}% +% +\def\en*i#1{\hbox to 0pt{\hss{#1}\hskip\*neng}\ignorespaces} +% +\newwrite\en*f +\newtoks\*endlbl +\if*PC + \*endlbl={text1xx.end} + \else + \*endlbl={text1xx.endnotes} +\fi + +\def\en*o{\immediate\openout\en*f=\the\*endlbl + \immediate\write\en*f{\the\*enpar}% + \edef\T{\par\vskip\the\en*s\relax}% + \immediate\write\en*f{\T}% + \global\def\en*o{}% + } +% +\long\def\en*w#1{{\def\rm{\noexpand\rm}\def\it{\noexpand\it}% + \def\underscore{\noexpand\us}\let\us=\underscore% + \def\bd{\noexpand\bd}\def\cc{\noexpand\cc}\def\tt{\noexpand\tt}% + \def\c{\noexpand\c}\def\L{\noexpand\L}\def\AA{\noexpand\AA}% + \def\d{\noexpand\d}\def\O{\noexpand\O}\def\t{\noexpand\t}% + \def\b{\noexpand\b}% + \immediate\write\en*f{#1}}% +}% end definition of en*w +% +\def\printendnotes{\immediate\closeout\en*f% + \begingroup% + \input text1xx.endnotes% + \par% + \endgroup% + \global\def\en*o{\immediate\openout\en*f=text1xx.endnotes% + \immediate\write\en*f{\the\*enpar}% + \edef\T{\par\vskip\the\en*s\relax}% + \immediate\write\en*f{\T}% + \global\def\en*o{}}% + \setendnotenumber{0}}% +\let \pen=\printendnotes +% +\message{set command, } +% +% +\def\set#1#2{\l*alphafalse +\ifx#2\appendixnumber + \edef\T{\the\*ap*num}% + \E=\*ap*st% + \else\ifx#2\chapternumber + \edef\T{\the\*ch*num}% + \E=\*ch*st% + \else\ifx#2\endnotenumber + \edef\T{\the\en*n}% + \if*ten*num \E=1% % all numeric styles + \else\l*alphatrue \E=2% % all alpha styles + \fi% + \else\ifx#2\figurenumber + \edef\T{\the\fi*n}% + \E=1% + \else\ifx#2\footnotenumber + \edef\T{\the\fn*num}% + \if*tfn*dnum \E=1% % "1." style + \else\if*tfn*unum \E=1% % "1" style + \else\if*tfn*pnum \E=1% % "(1)" style + \else\l*alphatrue \E=2% % "a.", "a", and "(a)" + \fi\fi\fi% + \else\ifx#2\partnumber + \edef\T{\the\*pt*num}% + \E=\*pt*st% + \else\ifx#2\pagenumber + \ifnum \pageno<0 \edef\T{\romannumeral-\pageno}% + \else \edef\T{\number\pageno}\fi% + \E=1% + \else\ifx#2\subheadanumber + \edef\T{\the\*sa*num}% + \E=\sa*st% + \else\ifx#2\subheadbnumber + \edef\T{\the\*sb*num}% + \E=\sb*st% + \else\ifx#2\subheadcnumber + \edef\T{\the\*sc*num}% + \E=\sc*st% + \else\ifx#2\subheaddnumber + \edef\T{\the\*sd*num}% + \E=\sd*st% + \else\ifx#2\tablenumber + \edef\T{\the\ta*n}% + \E=1% + \else\message{ Error! You've entered a number I know nothing + about. I'm going to ignore it and try to proceed.}% + \E=0% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% +\null % So, why is this needed?? +\ifcase\E % NOP + \or % set to a digit or lower case roman + \expandafter\xdef\csname#1\endcsname{\T}% + \or % set to a letter (upper or lower) + \expandafter\xdef\csname#1\endcsname{{\a*c{\T}}}% + \or % set to an uppercase roman numeral + \expandafter\xdef\csname#1\endcsname{% + \uppercase\expandafter{\romannumeral\T}}% + \fi}% +% +\message{centering, } +% +% CENTERLINE Rev. 9/6/88 drg +% +% Centerline with single and multiple line capabilities +\newif\if*afn*cl +\def\centerline#1{\par % Begin centerline markup + \*afn*clfalse + \B={} + \N=0 + \bgroup + \parindent=\z@ \relax % zero indent + \parfillskip=0pt plus1fil \relax % infinite stretch + \everypar{\null\hskip0pt plus1fil\relax} % add infinite glue + \def\linebreak{\hskip0pt plus1fil\relax\break + \null\hskip0pt plus1fil\relax}% + \let\lbr=\linebreak + \let\toclinebreak=\space + \let\toclbr=\space + \justify + \let\*vfn=\vfootnote + \let\*afn=\autofootnote + \def\vfootnote##1##2{\edef\T{\the\B\noexpand\vfootnote{##1}{##2}} + \global\B=\expandafter{\T}} + \def\autofootnote{\global\*afn*cltrue + \global\advance\N by 1 % count the notes done + \*afn} + \let\afn=\autofootnote + \let\*fn=\footnote + \def\footnote##1{\global\*afn*cltrue \*fn{##1}} + \setbox\A=\vbox{#1\par % added to make skip with multiple lines + \global\C=\baselineskip + \setbox0=\hbox{(} + \global\advance\C by-\ht0}% end vbox + \global\advance\fn*num by -\N %subtract the number of notes done + \let\autofootnote=\*afn \let\afn=\autofootnote + \let\footnote=\*fn + \let\vfootnote=\*vfn + \ifdim\ht\A>\baselineskip \else \C=\z@ \fi + \line{\hss\vbox{\vskip\C#1\par}\hss}% print centered lines + \egroup + \if*afn*cl % then there were footnotes in the \cl + \the\B + \fi + }% End centerline markup +\let\cl=\centerline +% +% CENTER MULTIPLE LINES +% +\newif\if*ctrl % centerline indicator +\*ctrlfalse +\def\centerlinesbegin{\par\global\*ctrltrue + \begingroup\pin{0pt}\psk{0pt}\leftskip=0pt plus1fil + \parfillskip=0pt \rightskip=0pt plus1fil\obeylines\ignorespaces}% +\let\clb=\centerlinesbegin +\def\centerlinesend{\endgroup\par} +\let\cle=\centerlinesend +% +% rightline par added to PLAIN TEX macro +% +\long\def\rightline#1{\par\line{\hss#1}} +\let\rl=\rightline +% +% right align multiple lines +% +\def\rightlinesbegin{\par\begingroup\parskip=0pt\parfillskip=0pt + \leftskip=0pt plus1fil\obeylines}% +\let\rlb=\rightlinesbegin +\def\rightlinesend{\endgroup\par}% +\let\rle=\rightlinesend +% +\message{asis, } +% +% As is or format off +% +\newskip\*aisb \*aisb = 6pt % Default skip before +\newskip\*aisa \*aisa = 6pt % Default skip after +\newtoks\*aif \*aif={\leftindent{0in}} +\newif\if*aib \*aibfalse % centerline indicator +% +\def\asisformat#1{{% + \def\everyasis##1{\global\*aif{##1}}% + \def\skipbefore##1{\global\*aisb=##1\relax}% + \def\skipafter##1{\global\*aisa=##1\relax}% + \relax + #1}} % end of asisformat +\let\aif=\asisformat +% +% As is or format off +\def\asisbegin{\par\*aibtrue\vskip\*aisb\relax\nointerlineskip + \begingroup + \let\*afn=\autofootnote % save definition of autofootnote + \def\leftindent##1{% + \*zerofalse \*okfalse + \e*p##1\end% + \if*zero \leftskip 0pt \fi + \advance \leftskip by ##1}% + \let\lin=\leftindent +% + \def\autofootnote{\endgroup % end asis format + \futurelet\next\ck*chr}% pick next character, then check the pick + \let\afn=\autofootnote % reset abbreviation for autofootnote + \def\ck*chr{\ifcat\bgroup % if left brace + \noexpand\next % do nothing + \let\next\gather % next equals gather + \else % no brace present + \let\next\re*group\fi % stop if no brace encountered + \next}% + \def\gather{\*afn % call normal autofootnote + \bgroup % furnish left brace, read group + \aftergroup\re*group % reset asis format + \let\next}% eat curly brace in text + % group ends at text right curly brace + \def\re*group{\*asisb}% restore asis group +% + \def\*asisb{\begingroup + \def\singlespace{\baselineskip=\*isk}% + \let\ssp=\singlespace + \def\doublespace{\baselineskip=2\*isk}% + \let\dsp=\doublespace + \def\par{\leavevmode\endgraf}% + \parskip0pt\parindent0pt + \the\*aif + \setupverbatim}\*asisb} + {\obeyspaces\gdef {\ }} +\def\obeyspaces{\@vobeyspaces} +{\catcode`\ =\active\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}} +\def\@xobeysp{\leavevmode\penalty10000\ } +\def\setupverbatim{\obeylines + \obeyspaces } +\let\aib=\asisbegin +\def\asisend{\endgroup\endgroup\vskip\*aisa\relax\*aibfalse} +\let\aie=\asisend +% +\message{box macros, } +% +% Start of boxes +% +\font\dtscr=dt +% +% Draw boxes +% +\newdimen\db*m \db*m=3pt % drawbox mat size +\newdimen\db*s \db*s=.4pt % drawbox rule size +\newdimen\db*sh \db*sh=0pt % drawbox shadow size +\newdimen\db*om \db*om=0pt % drawbox outer mat size +\newdimen\db*os \db*os=0pt % drawbox outer rule size +\newcount\db*ps \db*ps=0 % drawbox percent of screen +% +\long\def\drawbox#1{\*box{\db*m}{\db*s}{\db*sh}{\db*om}{\db*os}{\db*ps}{#1}} +\let\db=\drawbox +% +\def\drawboxformat#1{{% + \def\boxmat##1{\global\db*m=##1\relax}% + \def\boxrule##1{\global\db*s=##1\relax}% + \def\boxshadow##1{\global\db*sh=##1\relax}% + \def\outerboxmat##1{\global\db*om=##1\relax}% + \def\outerboxrule##1{\global\db*os=##1\relax}% + \def\screen##1{\ifnum##1>64 + \message{ Error. Screen can only be 0 through 64} + \global\db*ps=0 + \else\ifnum##1<0 + \message{ Error. Screen can only be 0 through 64} + \global\db*ps=0 + \else \global\db*ps=##1\relax\fi\fi}% + #1}} % end of drawboxformat +\let\dbf=\drawboxformat +% +\def\drawboxrulesize#1{\dbf{\boxrule{#1}} + \message{ Warning: Use drawboxformat instead of drawboxrulesize}} +\let\dbrs=\drawboxrulesize +\def\drawboxmat#1{\dbf{\boxmat{#1}} + \message{ Warning: Use drawboxformat instead of drawboxmat}} +\let\dbm=\drawboxmat +% +% Paragraph boxes +% +\newdimen\pb*m \pb*m=3pt % paragraphbox mat size +\newdimen\pb*s \pb*s=.4pt % paragraphbox rule size +\newdimen\pb*sh \pb*sh=0pt % paragraphbox shadow size +\newdimen\pb*om \pb*om=0pt % paragraphbox outer mat size +\newdimen\pb*os \pb*os=0pt % paragraphbox outer rule size +\newcount\pb*ps \pb*ps=0 % paragraphbox percent of screen +% +\long\def\paragraphbox#1{\par\hbox{% + \*box{\pb*m}{\pb*s}{\pb*sh}{\pb*om}{\pb*os}{\pb*ps}{\vbox{% + \advance \hsize by -2\pb*m% + \advance \hsize by -2\pb*s% + \advance \hsize by -2\pb*om% + \advance \hsize by -2\pb*os% + \hrule width \hsize height 0pt depth 0pt% + #1}}}} +\let\pb=\paragraphbox +% +\def\paragraphboxformat#1{{% + \def\boxmat##1{\global\pb*m=##1\relax}% + \def\boxrule##1{\global\pb*s=##1\relax}% + \def\boxshadow##1{\global\pb*sh=##1\relax}% + \def\outerboxmat##1{\global\pb*om=##1\relax}% + \def\outerboxrule##1{\global\pb*os=##1\relax}% + \def\screen##1{\ifnum##1>64 + \message{ Error. Screen can only be 0 through 64} + \global\pb*ps=0 + \else\ifnum##1<0 + \message{ Error. Screen can only be 0 through 64} + \global\pb*ps=0 + \else \global\pb*ps=##1\relax\fi\fi}% + #1}} % end of paragraphboxformat +\let\pbf=\paragraphboxformat + +% parameter list for *box: +% #1 = boxmat size #5 = outer boxrule +% #2 = boxrule size #6 = screen percent +% #3 = box shadow size #7 = value to be boxed +% #4 = outer boxmat +% +% Uncoment these 2 lines if using the boxes outside of TEXT1 +% \newbox\A +% \newdimen\D +% \newcount\E +% +\long\def\*box#1#2#3#4#5#6#7{% +\ifdim #5>0pt % only if doing a "framed" box + \setbox\A=\vbox{\*box{#1}{#2}{#3}{0pt}{0pt}{#6}{#7}}% + \*box{#4}{#5}{#3}{0pt}{0pt}{#6}{\box\A}% + \else% + \setbox\A=\vbox{\hrule height#2 % draw left side + \hbox{\vrule width#2\hskip#1 % draw the top + \vbox{\vskip#1 + \hbox{#7} + \vskip#1}\hskip#1\vrule width#2} % draw the bottom + \hrule height#2} % draw the right side + \ifdim #3=0pt \*scr{#6}{\box\A} % print if not a shadow + \else \D=\ht\A + \advance \D by -#3 + \vbox{\hbox{\vrule width #3 height \D depth 0pt + \*scr{#6}{\copy\A}} + \hrule width \wd\A height #3 depth 0pt} + \fi + \fi} + +% #1 = Screen percent +% #2 = box to be printed + +\def\*scr#1#2{\ifnum#1=0 #2 + \else \setbox\A=\vbox{#2} + \D=\ht\A + \advance \D by \dp\A + \E=#1% + \advance \E by 48% + \hbox{\vbox{\vbox to \D{\leaders + \hbox to \wd\A{\leaders\hbox{\dtscr\char\E}\hfill} + \vfill} + \vskip -\D + \box\A}} + \fi +} +% +% End of boxes +% +\message{more misc, } +% +% page skip +% +\def\newpage{\vfil\break}% changed from vfill to vfil 11/4/86 bth +\let\np=\newpage +% +% emptypage +% +\def\emptypage{\global\advance\*pcount by1}% produces empty pages +\let\ep=\emptypage +% +\def\*blkpg{ % BLANK PAGE MACRO, produces the empty page + \loop % checks the number of empty pages + \*badj % check for binding adjust + \shipout\vbox{\*setcrops{\vbox{ + \makeheadline % shipout page with headline + \vbox to\*txth{\vfil} % and fooline only + \makefootline}}} + \global\advance\*pcount by\m@ne % decrement empty page counter + \advancepageno % advance the page number + \ifnum\*pcount>0 % check for empty pages + \repeat}% END, empty page macro +% +\message{enumeration macros, } +% +% List Level Macros +% +\newcount\ll*n % Current list level number +\newcount\*toklimit +\newcount\*countlimit +\newcount\ll*stb % list style start +\newcount\ll*cs % list*enum*value*start +\newcount\ll*cmps % list compare start +\newcount\ll*cmpe +\newcount\ll*lc % Last level called +\*toklimit = 188 % Positions 224-253 are used for the 30 table column justification + % Positions 199-223 are used for the 25 different list level styles + % Tokens below 199 are available for \newtoks use. + % Token 190 is the build token + % 191-197 is the list level formats, level 1-7 + % 198 is the bullet format +% +\*countlimit = 236 % Counters 244-250 are the styles for the 7 list levels + % Counters 237-243 are the enum counters for the 7 list levels + % Counters below 237 are available for \newcount use. +% +\ll*stb = 244 % Counters 244-250 correspond to the 7 list level styles, + % value is index into tokens 199-223 +\ll*cs = 237 % Counters 237-243 correspond to the 7 list level enum values. +\ll*cmps = 199 % Where to start in the \toks values for the 25 different list level styles +\ll*cmpe = 223 % Where to stop in the \toks values for the 25 different list level styles +% +\count244 = 1 % style "1." +\count245 = 4 % style "a." +\count246 = 7 % style "i." +\count247 = 2 % style "1)" +\count248 = 5 % style "a)" +\count249 = 8 % style "i)" +\count250 = 3 % style "(1)" +% +\newskip\ll*sb \ll*sb = 0pt % Default is no \vskip +\newskip\ll*sa \ll*sa = 0pt % Default is no \vskip +% +\toks191={\rm\leftindent{.5in}\gutter{1em}} % level 1 indent is 5 characters initially +\toks192={\rm\leftindent{.8in}\gutter{1em}} % level 2 indent +\toks193={\rm\leftindent{1.1in}\gutter{1em}} % level 3 indent +\toks194={\rm\leftindent{1.4in}\gutter{1em}} % level 4 indent +\toks195={\rm\leftindent{1.7in}\gutter{1em}} % level 5 indent +\toks196={\rm\leftindent{2in}\gutter{1em}} % level 6 indent +\toks197={\rm\leftindent{2.3in}\gutter{1em}} % level 7 indent +\toks198={\rm\leftindent{+.5in}\gutter{1em}} % bullets +% + % The 25 different List level styles: +\toks199 = {1.} % Style 1 +\toks200 = {1)} % 2 +\toks201 = {(1)} % 3 +\toks202 = {a.} % 4 +\toks203 = {a)} % 5 +\toks204 = {(a)} % 6 +\toks205 = {i.} % 7 +\toks206 = {i)} % 8 +\toks207 = {(i)} % 9 +\toks208 = {I.} % 10 +\toks209 = {I)} % 11 +\toks210 = {(I)} % 12 +\toks211 = {A.} % 13 +\toks212 = {A)} % 14 +\toks213 = {(A)} % 15 +\toks214 = {1]} % 16 +\toks215 = {[1]} % 17 +\toks216 = {a]} % 18 +\toks217 = {[a]} % 19 +\toks218 = {i]} % 20 +\toks219 = {[i]} % 21 +\toks220 = {I]} % 22 +\toks221 = {[I]} % 23 +\toks222 = {A]} % 24 +\toks223 = {[A]} % 25 +% +\newif\if*check % True unless done parsing \listformat +\newif\ifll*lp +\newif\ifll*rp +\newif\if*lsqb +\newif\if*rsqb +\newif\ifll*per +\newif\ifll*dig +\newif\ifl*alpha +\newif\if*u*alpha +\newif\if*l*roman +\newif\if*u*roman +\newif\ifll*nil +% +\ll*niltrue +% +\outer\def\newtoks{\alloc@5\toks\toksdef\*toklimit} +\outer\def\newcount{\alloc@0\count\countdef\*countlimit} +% +% +% Macros for producing enumerated list levels. +% +% +\def\listformat#1{{\begingroup% + \def\liststyle##1{\par\N = 1 + \toks190 = {} + \Z##1\end}% + \def\Z##1{\ifx ##1\end \Y + \let \next = \relax + \else \ifnum \N > 7 + \message{ Error! Too many list levels specified, 7 is max. + Statement ignored.} + \let \next = \Z + \else \ifx ##1, \Y + \advance \N by 1 + \toks190 = {} + \let \next = \Z + \else \toks190 = \expandafter{\the\toks190 ##1} + \let \next = \Z + \fi\fi\fi\next}% + \def\Y{\*tempiffalse + \*checktrue + \E = \ll*cmps + \loop \ifnum \E > \ll*cmpe + \*checkfalse + \*tempiftrue + \else \edef\T{\the\toks190}% + \edef\U{\the\toks\E}% + \ifx\T\U + \*checkfalse + \F = \ll*stb + \advance \F by -1 + \advance \F by \N + \count\F = \E + \advance \count\F by -\ll*cmps + \global\advance \count\F by 1 + \fi\fi + \if*check% Then + \advance \E by 1 + \repeat + \if*tempif \message{ Error! \the\toks190 is an invalid list + level style. It will be ignored} + \fi}% + \def\skipbefore##1{\global\ll*sb = ##1\relax}% + \def\skipafter##1{\global\ll*sa = ##1\relax}% + \def\everylistlevel##1##2{\ifcase ##1 + \or \global\toks191 = {##2} + \or \global\toks192 = {##2} + \or \global\toks193 = {##2} + \or \global\toks194 = {##2} + \or \global\toks195 = {##2} + \or \global\toks196 = {##2} + \or \global\toks197 = {##2} + \fi}% + \def\everybullet##1{\global\toks198 = {##1}}% + \relax + #1 + \endgroup}} +% +\let \lif = \listformat +% +\def\listbegin{\vskip\ll*sb\relax + \ll*nilfalse + \begingroup + \global\ll*lc = 0 + \ll*ini1 + } +\let\lib=\listbegin +% +\def\listend{\vskip\ll*sa\relax + \endgroup + \ll*niltrue +} +\let\lie=\listend +% +\def\listlevel#1{\par + \ifll*nil \message{ Warning, listbegin was not + specified. The left margin indent will be set to zero.} + \else \if*dbl \else \if*tpl + % If in multiple columns, don't end the group. Do so otherwise + \else \endgroup + \begingroup + \fi\fi + \fi + \*tempiftrue % Usually not quite so pessimistic + \ifcat 1#1 \ifnum #1 < 8 \*tempiffalse % OK if \listlevel1-\listlevel7 + \fi\fi + \if*tempif \message{ Warning, invalid list level "#1", + listlevel1 will be used instead.} + \listlevel1 + \else \E = #1 + \global\ll*n = \E + \advance \E by 1 + \ll*ini\E + \par + \ll*fmt + \noindent + \txt*in{\ll*p{#1}} + \fi +} +\let \lil = \listlevel +% +\def\txt*in#1{\hbox to 0pt{\hss{#1}\hskip\*gut}\ignorespaces} +% +\def\ll*fmt{\*gut=1em + \ifcase \the\ll*n + \or \the\toks191 + \or \the\toks192 + \or \the\toks193 + \or \the\toks194 + \or \the\toks195 + \or \the\toks196 + \or \the\toks197 + \fi} +% +\def\listresume{% rev. 7/6/87 + \if*start*bul\global\advance\ll*n by 1\global\*start*bulfalse\fi + % account for bulleted list ffems + \ifnum \ll*n < 2 \lin{0pt} + \global\ll*n = 1 + \else \global\advance \ll*n by -1 + \ll*fmt + \fi + \noindent\ignorespaces} +% +\let\lir=\listresume +% Evaluate Style +\def\e*s{% + \global\ll*lpfalse + \global\ll*rpfalse + \global\*lsqbfalse + \global\*rsqbfalse + \global\ll*perfalse + \global\ll*digfalse + \global\l*alphafalse + \global\*u*alphafalse + \global\*l*romanfalse + \global\*u*romanfalse + \ifcase \count\F + \or \global\ll*digtrue \global\ll*pertrue % Style 1 + \or \global\ll*digtrue \global\ll*rptrue % 2 + \or \global\ll*digtrue \global\ll*rptrue \global\ll*lptrue % 3 + \or \global\l*alphatrue \global\ll*pertrue % 4 + \or \global\l*alphatrue \global\ll*rptrue % 5 + \or \global\l*alphatrue \global\ll*rptrue \global\ll*lptrue % 6 + \or \global\*l*romantrue \global\ll*pertrue % 7 + \or \global\*l*romantrue \global\ll*rptrue % 8 + \or \global\*l*romantrue \global\ll*rptrue \global\ll*lptrue % 9 + \or \global\*u*romantrue \global\ll*pertrue % 10 + \or \global\*u*romantrue \global\ll*rptrue % 11 + \or \global\*u*romantrue \global\ll*rptrue \global\ll*lptrue % 12 + \or \global\*u*alphatrue \global\ll*pertrue % 13 + \or \global\*u*alphatrue \global\ll*rptrue % 14 + \or \global\*u*alphatrue \global\ll*rptrue \global\ll*lptrue % 15 + \or \global\ll*digtrue \global\*rsqbtrue % 16 + \or \global\ll*digtrue \global\*rsqbtrue \global\*lsqbtrue % 17 + \or \global\l*alphatrue \global\*rsqbtrue % 18 + \or \global\l*alphatrue \global\*rsqbtrue \global\*lsqbtrue % 19 + \or \global\*l*romantrue \global\*rsqbtrue % 20 + \or \global\*l*romantrue \global\*rsqbtrue \global\*lsqbtrue % 21 + \or \global\*u*romantrue \global\*rsqbtrue % 22 + \or \global\*u*romantrue \global\*rsqbtrue \global\*lsqbtrue % 23 + \or \global\*u*alphatrue \global\*rsqbtrue % 24 + \or \global\*u*alphatrue \global\*rsqbtrue \global\*lsqbtrue % 25 + \fi} + +% +\def\ll*ini#1{\*start*bulfalse + \ifnum #1 < 7 \N = #1 + \advance \N by -1 + \loop \ifnum \N < 7 % Loop max of 7 times + \E = \N + \advance \E by \ll*cs + \global\count\E = 0 + \advance \N by 1 + \repeat + \fi} % else don't initialize when \lil7 +% +\def\ll*p#1{% + \E = #1 + \advance \E by \ll*cs + \advance \E by -1 % \E is the listlevel value counter + \F = \E + \advance \F by 7 + \global\advance \count\E by 1 % Increment the list level counter + % + % If this level is same as previous level, no need to re-evaluate + % the style to be used. + % + \ifnum \ll*lc = #1 + \else \e*s + \global\ll*lc = #1 + \fi + % + % Print the prefix punctuation + % + \ifll*lp (\unskip % Styles 3, 6, 9, 12, 15 + \else \if*lsqb [\unskip % Styles 17, 19, 21, 23, 25 + \fi\fi + % + % Print the listlevel value, i.e. "1", "a", "A", "I", or "i". + % + \ifll*dig % Then its a style using digits + \number\count\E % Print the number + \unskip % To get rid of any following extra spaces + \else \ifl*alpha % Then its a style with lower case letters + \a*c{\count\E} % Print the lower case letters + \unskip % To get rid of any following extra spaces + \else \if*u*alpha % Then its a style with upper case letters + \a*c{\count\E} % Print uppercase alpha + \unskip % To get rid of any following extra spaces + \else \if*l*roman % Then its a style with lower case roman numerals + \romannumeral\count\E % Print the lower case roman numeral + \unskip % To get rid of any following extra spaces + \else \if*u*roman % Print upper case roman numeral + \uppercase\expandafter{\romannumeral\count\E} + \unskip % To get rid of any following extra spaces + \else \message{ Error! Something is awry in the listlevel style. Call a consultant.} + \fi\fi\fi\fi\fi + % + % Print the suffix punctuation + % + \ifll*per .\unskip % Styles 1, 4, 7, 10, 13 + \else \ifll*rp )\unskip % Styles 2, 3, 5, 6, 8, 9, 11, 12, 14, 15 + \else \if*rsqb ]\unskip % Styles 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 + \fi\fi\fi +} + % + % This macro will convert an integer into a letter. In Appendix F of the + % TeXbook you will see that octal character '141 is the small letter "a". + % Octal 141=Decimal 97, Therefore, add 96 to value of listlevel counter. + % For example, 1="a", 2="b", etc. The macro will also change 27="aa", 28="ab", etc. + % +\def\a*c#1{% + \ifnum #1 < 27 \G = #1% % Then its a single letter a-z + \advance \G by 96% % See the font table in App. F + \ifl*alpha% % Then its a lower case style + \char\G% % Print the character a-z + \else \advance \G by -32% + \char\G% % Print the character A-Z + \fi% + \else \G = #1% % else its "AA" or greater + \divide \G by 26% % This holds the first character + \Q = #1% % Get ready to compute second letter + \R = #1% + \divide \R by 26% + \multiply \R by 26% + \ifnum #1 = \R% + \advance \G by -1% + \Q = 26% + \else \advance \Q by -\R% + \fi% + \a*c{\G}% % Get the first character a-z + \unskip% + \a*c{\Q}% % Get the second letter + \fi} % End of \a*c +% +% for setting the list level number other than sequential +% +\def\slln#1#2{{\E=#1 + \advance \E by -1 + \advance \E by \ll*cs + \global\count\E = #2}} +\let\setlistlevelnumber=\slln +% +% Bullets +% +\newif\if*start*bul +\newdimen\*bul*dim +\mathchardef\*bullet="220F +\def\bullet{% bullet defined for both math and text modes, rev. 6/25/87 + \ifmmode \*bullet % math mode bullet + \else % text or list bullet + \ifll*nil % no list in progress, text bullet + \leftskip = 0pt + {\if*msp{*}\else\sy\char"0F\fi} + \else % list in progress, list bullet + \the\toks198 + \if*start*bul \lin{\*bul*dim} + \else \*bul*dim = \leftskip + \*start*bultrue \fi % end starting bullet + \par\noindent + \txt*in{{\if*msp{*}\else\sy\char"0F\fi}} + \fi % end list in progress check + \fi % end math mode bullet check +}% end bullet +\let \bul=\bullet +% +% +% The \gutter macro is actually used for several macros, \bul, \lil, etc. +% +\newdimen\*gut +\def\gutter#1{\*gut=#1} +\message{end of enumeration macros, } +\message{TOC, } +% +% Macros for doing Table of Contents, Heads, Subheads, Tables, and Figures +% +\newtoks\*TCt \*TCt={\cl{\twelvept\bd Table of Contents}\vs{1\bl}} +\newtoks\*ptf \*ptf={\vs{1\bl}\cl{Part \partnumber}\cl{\parttitle}% + \vs{1\bl}\nin Part \partnumber \leader \pagenumber} +\newtoks\*ctf \*ctf={\hangingchapternumber \chaptertitle \leader \pagenumber} +\newtoks\*atf \*atf={\hangingappendixnumber \appendixtitle \leader \pagenumber} +\newtoks\*prtf \*prtf={\nin \prefacetitle \leader \pagenumber} +\newtoks\*satf \*satf={\leftindent{.5in}\nin \subheadatitle \leader \pagenumber} +\newtoks\*sbtf \*sbtf={\leftindent{1in}\nin \subheadbtitle \leader \pagenumber} +\newtoks\*sctf \*sctf={\leftindent{1.5in}\nin \subheadctitle \leader \pagenumber} +\newtoks\*sdtf \*sdtf={\leftindent{2in}\nin \subheaddtitle \leader \pagenumber} +\newtoks\*btf \*btf={\nin\bibtitle \leader \pagenumber} +\newtoks\*ftf \*ftf={\hangingnumber{\figurenumber.} \figuretitle \leader \pagenumber} +\newtoks\*ftt \*ftt={\newpage\cl{\twelvept\bd List of Figures}\line{Figure\hfill Page}} +\newtoks\*ttf \*ttf={\hangingnumber{\tablenumber.} \tabletitle\leader \pagenumber} +\newtoks\*ttt \*ttt={\newpage\cl{\twelvept\bd List of Tables}\line{Table\hfill Page}} +\newtoks\*figt \*figt={\bqb\tenpt\bd\hp Figure \figurenumber. \rm\figuretitle \bqe} +\newtoks\*tabt \*tabt={\vs{\bl}\cl{\twelvept\bd Table \tablenumber}% + \cl{\twelvept\tabletitle}\vs{\bl}} +\newtoks\*partt \*partt={\dumpinsertseject\titlepage + \hrule height 0pt depth 0pt\vfil + \cl{\twelvept\bd Part \partnumber} + \cl{\twelvept\bd\parttitle} + \vs{.5\tp*sk} + \np + \scn{0}\ssan{0}\ssbn{0}\sscn{0}\ssdn{0} + \sfn{0}\stn{0}\sfnn{0}\senn{0} + }% +\newtoks\*chapt \*chapt={\dumpinsertseject + \cl{\twelvept\bd Chapter \chapternumber}% + \cl{\twelvept\bd\chaptertitle} + \vs{1\bl} + \ssan{0}\ssbn{0}\sscn{0}\ssdn{0} + } +\newtoks\*appt \*appt={\dumpinsertseject % + \cl{\twelvept\bd Appendix \appendixnumber} + \cl{\twelvept\bd\appendixtitle} + \vs{1\bl} + \scn{0}\ssan{0}\ssbn{0}\sscn{0} + \ssdn{0}\sfn{0}\stn{0} + } +\newtoks\*pret \*pret={\dumpinsertseject % + \cl{\twelvept\bd\prefacetitle} + \vs{1\bl} + \ssan{0}\ssbn{0}\sscn{0}\ssdn{0} + }% +\newtoks\*subat \*subat={\removelastskip\goodbreak + \vs{2\bl} + \nin\twelvept\bd\subheadatitle\par\nobreak + \vs{1\bl}\nobreak + \ssbn{0}\sscn{0}\ssdn{0} + } +\newtoks\*subbt \*subbt={\removelastskip\goodbreak + \vs{2\bl} + \nin\twelvept\it\subheadbtitle\par\nobreak + \vs{1\bl}\nobreak + \sscn{0}\ssdn{0} + } +\newtoks\*subct \*subct={\removelastskip\goodbreak + \vs{2\bl} + \nin\twelvept\subheadctitle\par\nobreak + \vs{1\bl}\nobreak + \ssdn{0} + } +\newtoks\*subdt \*subdt={\goodbreak\twelvept\it\subheaddtitle.} +% +\newif\if*cont*chap \*cont*chapfalse +\newif\if*TC*fig \*TC*figtrue +\newif\if*TC*tab \*TC*tabtrue +\newif\if*TC*prt \*TC*prttrue +\newif\if*TC*chp \*TC*chptrue +\newif\if*TC*app \*TC*apptrue +\newif\if*TC*pre \*TC*pretrue +\newif\if*TC*sha \*TC*shatrue +\newif\if*TC*shb \*TC*shbtrue +\newif\if*TC*shc \*TC*shcfalse +\newif\if*TC*shd \*TC*shdfalse +\newif\if*TCaopen \*TCaopenfalse +\newif\if*TCbopen \*TCbopenfalse +\newif\if*TCcopen \*TCcopenfalse +% +\newdimen\*ch*hi \*ch*hi=.25in +\newdimen\*ap*hi \*ap*hi=.25in +\newdimen\fi*hi \fi*hi=.25in +\newdimen\ta*hi \ta*hi=.25in +% +\newcount\fi*n \fi*n=0 +\newcount\ta*n \ta*n=0 +\newcount\*pt*num \*pt*num=0 +\newcount\*pt*st \*pt*st=1 +\newcount\*ch*num \*ch*num=0 +\newcount\*ch*st \*ch*st=1 +\newcount\*ap*num \*ap*num=0 +\newcount\*ap*st \*ap*st=2 +\newcount\*sa*num \*sa*num=0 +\newcount\sa*st \sa*st=1 +\newcount\*sb*num \*sb*num=0 +\newcount\sb*st \sb*st=1 +\newcount\*sc*num \*sc*num=0 +\newcount\sc*st \sc*st=1 +\newcount\*sd*num \*sd*num=0 +\newcount\sd*st \sd*st=1 +% +\newwrite\TC*fa +\newwrite\TC*fb +\newwrite\TC*fc +% putincontents last modified 12/6/91 +\def\notintoc#1{#1} +\newtoks\*toclbla +\newtoks\*toclblb +\newtoks\*toclblc +\if*PC + \*toclbla={text1xx.tc1} + \*toclblb={text1xx.tc2} + \*toclblc={text1xx.tc3} +\else + \*toclbla={text1xx.toc1} + \*toclblb={text1xx.toc2} + \*toclblc={text1xx.toc3} +\fi + +\long\def\putincontents#1#2{\begingroup\ifcase #1 % Putincontents markup + \message{ Warning, request for Contents entry other than + 1, 2, or 3. Contents 1 will be assumed.} + \putincontents1{#2} + \or \if*TCaopen % Do nothing if open, else open it + \else \immediate\openout\TC*fa=\the\*toclbla + \immediate\write\TC*fa{\the\*TCt}% + \global\*TCaopentrue + \fi + \*defnoexpands + \edef\T{\leftskip=0pt #2}% + \edef\next{\write\TC*fa{\T\par}}% + \next\relax + \or \if*TCbopen % Do nothing if open, else open it + \else \immediate\openout\TC*fb=\the\*toclblb + \immediate\write\TC*fb{\the\*ftt}% + \global\*TCbopentrue\fi + \*defnoexpands + \edef\T{#2}% + \edef\next{\write\TC*fb{\T\par}}% + \next\relax + \or \if*TCcopen % Do nothing if open, else open it + \else \immediate\openout\TC*fc=\the\*toclblc + \immediate\write\TC*fc{\the\*ttt}% + \global\*TCcopentrue\fi + \*defnoexpands + \edef\T{#2}% + \edef\next{\write\TC*fc{\T\par}}% + \next\relax + \else \message{ Warning, request for Contents entry other than + 1, 2, or 3. Contents 1 will be assumed.} + \putincontents1{#2} + \fi\endgroup}% End putincontents markup +\let\pic=\putincontents + +\def\*defnoexpands{% + \def\AA{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\AA}% + \def\aa{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\aa}% + \def\appendixnumber{\noexpand\noexpand\noexpand\san{\the\*ap*num}% + \noexpand\noexpand\noexpand\appendixnumber}% + \def\autoendnote##1{}% + \let\aen=\autoendnote% + \def\autofootnote##1{}% + \let\afn=\autofootnote% + \def\bullet{\noexpand\noexpand\noexpand\bullet}% + \let\bul=\bullet% + \def\centerline##1{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\centerline{##1}}% + \let\cl=\centerline% + \def\chapternumber{\noexpand\noexpand\noexpand\scn{\the\*ch*num}% + \noexpand\noexpand\noexpand\chapternumber}% + \def\dag{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\dag}% + \def\ddag{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\ddag}% + \def\eightteenpt{\noexpand\noexpand\noexpand\eightteenpt}% + \def\fourteenpt{\noexpand\noexpand\noexpand\fourteenpt}% + \def\hangingappendixnumber{\noexpand\noexpand\noexpand% + \hangingappendixnumber{\the\*ap*num}}% + \def\hangingchapternumber{\noexpand\noexpand\noexpand% + \hangingchapternumber{\the\*ch*num}}% + \def\hangingindent##1{\noexpand\noexpand\noexpand% + \hangingindent{##1}}% + \let\hin=\hangingparagraph% + \def\hangingnumber##1{\noexpand\noexpand\noexpand\HFN{##1}}% + \def\hangingparagraph{\noexpand\noexpand\noexpand\hangingparagraph}% + \let\hp=\hangingparagraph% + \def\justify{\noexpand\noexpand\noexpand\noexpand\noexpand\justify}% + \let\ju=\justify% + \def\leavevmode{\noexpand\noexpand\noexpand\leavevmode}% + \def\leftindent##1{\leftskip=##1}% + \let\lin=\leftindent% + \let\linebreak=\space% + \let\lbr=\space% + \def\neg{\noexpand\noexpand\noexpand\noexpand\noexpand\neg}% + \def\notintoc##1{}% + \def\pagenumber{\noexpand\pagenumber}% + \def\pn{\noexpand\pagenumber}% + \def\par{\endgraf}% + \def\paragraph{\endgraf}% + \def\partnumber{\noexpand\noexpand\noexpand\sptn{\the\*pt*num}% + \noexpand\noexpand\noexpand\partnumber}% + \def\subheadanumber{\noexpand\noexpand\noexpand\ssan{\the\*sa*num}% + \noexpand\noexpand\noexpand\subheadanumber}% + \def\subheadbnumber{\noexpand\noexpand\noexpand\ssbn{\the\*sb*num}% + \noexpand\noexpand\noexpand\subheadbnumber}% + \def\subheadcnumber{\noexpand\noexpand\noexpand\sscn{\the\*sc*num}% + \noexpand\noexpand\noexpand\subheadcnumber}% + \def\subheaddnumber{\noexpand\noexpand\noexpand\ssdn{\the\*sd*num}% + \noexpand\noexpand\noexpand\subheaddnumber}% + \def\tenpt{\noexpand\noexpand\noexpand\tenpt}% + \def\tilde{\noexpand\noexpand\noexpand\noexpand\noexpand\tilde}% + \def\toclinebreak{\noexpand\noexpand\noexpand\toclinebreak}% + \def\toclbr{\noexpand\noexpand\noexpand\toclinebreak}% + \def\twelvept{\noexpand\noexpand\noexpand\twelvept}% + \def\underscore##1{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\underscore{##1}}% + \let\us=\underscore% + \def\\{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\\}% + \def\{{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\{}% + \def\}{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\}}% + \def\_{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\_}% +} +% +\def\tableofcontentsformat#1{{% + \def\continuechapter##1{\global\*cont*chapfalse + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U \global\*cont*chaptrue + \else \ifx \T\V % Not continue chapter + \else \message{ Warning, argument to + continuechapter is not "yes" or "no". + "no" will be assumed} + \fi\fi}% + \def\toctitle##1{\global\*TCt={##1}}% + \def\parttocformat##1{\global\*ptf={##1}}% + \def\chaptertocformat##1{\global\*ctf={##1}}% + \def\hangingchapterindent##1{\global\*ch*hi=##1}% + \def\appendixtocformat##1{\global\*atf={##1}}% + \def\hangingappendixindent##1{\global\*ap*hi=##1}% + \def\prefacetocformat##1{\global\*prtf={##1}}% + \def\subheadatocformat##1{\global\*satf={##1}}% + \def\subheadbtocformat##1{\global\*sbtf={##1}}% + \def\subheadctocformat##1{\global\*sctf={##1}}% + \def\subheaddtocformat##1{\global\*sdtf={##1}}% + \def\bibliographytocformat##1{\global\*btf={##1}}% + \def\figuretoctitle##1{\global\*ftt={##1}}% + \def\figuretocformat##1{\global\*ftf={##1}}% + \def\hangingfigureindent##1{\global\fi*hi=##1}% + \def\tabletoctitle##1{\global\*ttt={##1}}% + \def\tabletocformat##1{\global\*ttf={##1}}% + \def\hangingtableindent##1{\global\ta*hi=##1}% + #1}} +\let\tocf=\tableofcontentsformat +% tableofcontents last modified on 12/6/91 +\def\tableofcontents#1{% + \edef\T{}\edef\U{#1}\ifx\T\U\E=-3\else\E=#1\fi + \dumpinsertseject + \setpagenumber{\E} + \immediate\closeout\TC*fa + \begingroup + \def\noexpand{} + \def\centerline##1{\par % Begin centerline markup + \bgroup + \parindent=0pt \relax % zero indent + \parfillskip=0pt plus1fil \relax + \everypar{\null\hskip0pt plus1fil\relax} % add infinite glue + \def\linebreak{\hskip0pt plus1fil\relax\break + \null\hskip0pt plus1fil\relax}% + \let\toclinebreak=\linebreak % linebreak is a space in text1xx. + \let\toclbr=\linebreak % toc1, toclbr available in toc + \justify + \setbox\A=\vbox{##1\par % figure skip for multiple centerline + \global\C=\baselineskip + \setbox0=\hbox{(} + \global\advance\C by-\ht0}% end vbox + \line{\hss\vbox{\vskip\C##1\par}\hss} % + \egroup + }% End centerline markup + \let\cl=\centerline + \justify + \parfillskip=0pt + \rightskip=0pt plus 5em + \input \the\*toclbla + \endgraf + \leftskip=0pt + \if*TCbopen % True only if figures were used. + \immediate\closeout\TC*fb + \input \the\*toclblb + \fi + \if*TCcopen % True only if tables were used. + \immediate\closeout\TC*fc + \input \the\*toclblc + \fi + \endgroup} +\let\toc=\tableofcontents +% +\message{part, } +% +\long\def\partformat#1{{% + \def\numberingstyle##1{\global\*pt*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\*pt*st=2 + \else \ifx \T\W \global\*pt*st=3 + \else \message{ Warning, numbering style + in the partformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*partt={##1}}% + \def\incontents##1{\global\*TC*prttrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*prtfalse + \else \message{ Warning, argument to + incontents in partformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\paf=\partformat +% +\def\parttitle{} +\def\part#1{\par % Part revised 11/5/86 + \global\def\parttitle{#1}% + \global\advance \*pt*num by 1 + \bgroup + \let\toclinebreak=\space % prevent linebreak in title + \let\toclbr=\space % break in contents only + \the\*partt % This prints the title in the text + \egroup + \par + \D=\lastskip + \removelastskip + \if*TC*prt \putincontents1{\the\*ptf}\fi + \ignorespaces + \vs{\D} +}% END +% +\def\partnumber{{\ifcase \*pt*st + \or \the\*pt*num + \or \l*alphafalse + \a*c{\*pt*num} + \or \uppercase\expandafter{\romannumeral\the\*pt*num} + \fi}} +% +\def\setpartnumber#1{\global\*pt*num=#1}% +% \spn is setpagenumber +\let\sptn=\setpartnumber +% +\message{chapter, } +% +\long\def\chapterformat#1{{% + \def\numberingstyle##1{\global\*ch*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\*ch*st=2 + \else \ifx \T\W \global\*ch*st=3 + \else \message{ Warning, numbering style + in the chapterformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*chapt={##1}}% + \def\incontents##1{\global\*TC*chptrue% + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*chpfalse + \else \message{ Warning, argument to + incontents in chapterformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\chf=\chapterformat +% +\def\chaptertitle{} +\def\chapter#1{\par + \global\def\chaptertitle{#1}% + \global\advance \*ch*num by 1 + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*chapt % prints the title in the text + \egroup + \D=\lastskip + \removelastskip + \if*TC*chp \putincontents1{\the\*ctf}\fi + \ignorespaces + \vs{\D} +}% END chapter markup definition +% +\def\chapternumber{{\ifcase \*ch*st + \or \the\*ch*num + \or \l*alphafalse + \a*c{\*ch*num} + \or \uppercase\expandafter{\romannumeral\the\*ch*num} + \fi + \removelastskip}} +\let\chap=\chapter +% +\def\hangingchapternumber#1{\*ch*num=#1\laf{\labelwidth{\*ch*hi}} + \label{\hskip\*ch*hi\llap{\chapternumber.}}} +% +\def\setchapternumber#1{\global\*ch*num=#1}% +\let\scn=\setchapternumber +% +\message{appendix,} +% +\long\def\appendixformat#1{{% + \def\numberingstyle##1{\global\*ap*st=2 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U \global\*ap*st=1 + \else \ifx \T\V \global\*ap*st=2 + \else \ifx \T\W \global\*ap*st=3 + \else \message{ Warning, numbering style + in the appendixformat command is + invalid. Style 2 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*appt={##1}}% + \def\incontents##1{\global\*TC*apptrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*appfalse + \else \message{ Warning, argument to + incontents in appendixformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\apf=\appendixformat +% +\def\appendixtitle{} +\def\appendix#1{% Appendix revised 11/3/86 (added toclinebreak) + \global\def\appendixtitle{#1}% + \global\advance \*ap*num by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*appt % prints the appendix title + \egroup + \D=\lastskip + \removelastskip + \if*TC*app \putincontents1{\the\*atf}\fi + \ignorespaces + \vs{\D} +}% END appendix markup definition +% +\def\appendixnumber{{\ifcase \*ap*st + \or \the\*ap*num + \or \l*alphafalse + \a*c{\*ap*num} + \or \uppercase\expandafter{\romannumeral\the\*ap*num} + \fi + \removelastskip}} +\let\app=\appendix +% +\def\hangingappendixnumber#1{\*ap*num=#1\laf{\labelwidth{\*ap*hi}} + \label{\hskip\*ap*hi\llap{\appendixnumber.}}} +% +\def\setappendixnumber#1{\global\*ap*num=#1}% +\let\san=\setappendixnumber +% +\message{preface,} +% +\long\def\prefaceformat#1{{% + \long\def\titleformat##1{\global\*pret={##1}}% + \def\incontents##1{\global\*TC*pretrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*prefalse + \else \message{ Warning, argument to + incontents in prefaceformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\prf=\prefaceformat +% +\def\prefacetitle{} +\def\preface#1{% Preface revised 11/3/86 (added toclinebreak) + \global\def\prefacetitle{#1}% + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*pret % prints the title in the text + \egroup + \D=\lastskip + \removelastskip + \if*TC*pre \putincontents1{\the\*prtf}\fi + \ignorespaces + \vs{\D} +}% END preface markup definition +\let\pre=\preface +% +\message{subheads,} +% +\long\def\subheadaformat#1{{% + \def\numberingstyle##1{\global\sa*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\sa*st=2 + \else \ifx \T\W \global\sa*st=3 + \else \message{ Warning, numbering style + in the subheadaformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*subat={##1}}% + \def\incontents##1{\global\*TC*shatrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*shafalse + \else \message{ Warning, argument to + incontents in subheadaformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\shaf=\subheadaformat +% +\def\subheadatitle{} +\def\subheada#1{% + \global\def\subheadatitle{#1}% + \global\advance \*sa*num by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*subat % prints the title in the text + \egroup + \ifvmode \D=\lastskip \removelastskip + \else \D=0pt\fi + \if*TC*sha \putincontents1{\the\*satf}\fi + \ifdim\D>0pt\vs{\D}\else\ignorespaces\fi% +}% END subheada markup definition +% +\def\subheadanumber{{\ifcase \sa*st + \or \the\*sa*num + \or \l*alphafalse + \a*c{\*sa*num} + \or \uppercase\expandafter{\romannumeral\the\*sa*num} + \fi + \removelastskip}} +\let\sha=\subheada +% +\def\setsubheadanumber#1{\global\*sa*num=#1}% +\let\ssan=\setsubheadanumber +% +\long\def\subheadbformat#1{{% + \def\numberingstyle##1{\global\sb*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\sb*st=2 + \else \ifx \T\W \global\sb*st=3 + \else \message{ Warning, numbering style + in the subheadbformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*subbt={##1}}% + \def\incontents##1{\global\*TC*shbtrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*shbfalse + \else \message{ Warning, argument to + incontents in subheadbformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\shbf=\subheadbformat +% +\def\subheadbtitle{} +\def\subheadb#1{% + \global\def\subheadbtitle{#1}% + \global\advance \*sb*num by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*subbt % This prints the title in the text + \egroup + \ifvmode \D=\lastskip \removelastskip + \else \D=0pt\fi + \if*TC*shb \putincontents1{\the\*sbtf}\fi + \ignorespaces + \ifdim\D>0pt\vs{\D}\else\ignorespaces\fi +}% END subheadb markup definition +% +\def\subheadbnumber{{\ifcase \sb*st + \or \the\*sb*num + \or \l*alphafalse + \a*c{\*sb*num} + \or \uppercase\expandafter{\romannumeral\the\*sb*num} + \fi + \removelastskip}} +\let\shb=\subheadb +% +\def\setsubheadbnumber#1{\global\*sb*num=#1}% +\let\ssbn=\setsubheadbnumber +% +\long\def\subheadcformat#1{{% + \def\numberingstyle##1{\global\sc*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\sc*st=2 + \else \ifx \T\W \global\sc*st=3 + \else \message{ Warning, numbering style + in the subheadcformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*subct={##1}} + \def\incontents##1{\global\*TC*shcfalse + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U \global\*TC*shctrue + \else \ifx \T\V \global\*TC*shcfalse + \else \message{ Warning, argument to + incontents in subheadcformat is not "yes" or "no". + "no" will be assumed.} + \fi\fi}% + #1}} +\let\shcf=\subheadcformat +% +\def\subheadctitle{} +\def\subheadc#1{% + \global\def\subheadctitle{#1}% + \global\advance \*sc*num by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*subct % prints the title in the text + \egroup + \ifvmode \D=\lastskip \removelastskip + \else \D=0pt\fi + \if*TC*shc \putincontents1{\the\*sctf}\fi + \ignorespaces + \ifdim\D>0pt\vs{\D}\else\ignorespaces\fi +}% END subheadc markup +% +\def\subheadcnumber{{\ifcase \sc*st + \or \the\*sc*num + \or \l*alphafalse + \a*c{\*sc*num} + \or \uppercase\expandafter{\romannumeral\the\*sc*num} + \fi + \removelastskip}} +\let\shc=\subheadc +% +\def\setsubheadcnumber#1{\global\*sc*num=#1}% +\let\sscn=\setsubheadcnumber +% +\long\def\subheaddformat#1{{% + \def\numberingstyle##1{\global\sd*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\sd*st=2 + \else \ifx \T\W \global\sd*st=3 + \else \message{ Warning, numbering style + in the subheaddformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*subdt={##1}}% + \def\incontents##1{\global\*TC*shdfalse + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U \global\*TC*shdtrue + \else \ifx \T\V \global\*TC*shdfalse + \else \message{ Warning, argument to + incontents in subheaddformat is not "yes" or "no". + "no" will be assumed.} + \fi\fi}% + #1}} +\let\shdf=\subheaddformat +% +\def\subheaddtitle{} +\def\subheadd#1{% + \global\def\subheaddtitle{#1}% + \global\advance \*sd*num by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*subdt % This prints the title in the text + \egroup + \ifvmode \D=\lastskip \removelastskip + \else \D=0pt\fi + \if*TC*shd \putincontents1{\the\*sdtf}\fi + \ignorespaces + \ifdim\D>0pt\vs{\D}\else\ignorespaces\fi +}% END subheadd markup definition +% +\def\subheaddnumber{{\ifcase \sd*st + \or \the\*sd*num + \or \l*alphafalse + \a*c{\*sd*num} + \or \uppercase\expandafter{\romannumeral\the\*sd*num} + \fi + \removelastskip}} +\let\shd=\subheadd +% +\def\setsubheaddnumber#1{\global\*sd*num=#1}% +\let\ssdn=\setsubheaddnumber +% +\message{figures,} +% +% FIGURE MARKUP, bth 8/25/86 +% Figure altered to allow alignments and other text markups within the +% arguments of figure and allow the immediate print feature (nofloat). +% Footnoting and multiple columns allowed in nofloat format only. +% Floating figures use top insert which uses a vbox that cancels any +% footnoting or multiple column setting. When \fullpage or \halfpage +% are used they must be the only argument in position one. +% +% +% Figureformat revised on 4/5/88, drg +% +\catcode`* = 11 +\catcode`@ = 11 +\newif\if*fp \*fpfalse % fullpage, used in figure +\newif\if*hp \*hpfalse % halfpage, " " +\newcount\fi*pos \fi*pos=1 % 1=\float,2=\nofloat,3=\midfloat,4=\keep +\newtoks\fi*sb \fi*sb={1\bl} +\newtoks\fi*sa \fi*sa={1\bl} +\def\figureformat#1{{% + \def\skipbefore##1{\global\fi*sb={##1}}% + \def\position{% printing position of figure, floating or nonfloating + \def\nofloat{\global\fi*pos=2} % prints immediate + \def\keep{\global\fi*pos=4} % prints immediate, but on same pg + \def\midfloat{\global\fi*pos=3}% uses midinsert + \def\float{\global\fi*pos=1}} % uses topinsert, the default + \long\def\titleformat##1{\global\*figt={##1}}% + \def\incontents##1{\global\*TC*figtrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*figfalse + \else \message{ Warning, argument to + incontents in figureformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + \def\skipafter##1{\global\fi*sa={##1}}% + #1}}% End figure format markup +\let\fif=\figureformat +% +\newif\if*tpreset % titlepage reset for figure markup +\*tpresetfalse % no reset necessary +% +% Figure revised on 10/4/89, drg +% +\def\figuretitle{} +\def\figure{\futurelet\next\*fga} +\def\*fga{\ifcat\bgroup\noexpand\next \let\next\*fgb + \else\let\next\*fgc\fi \next} +\def\*fgb{\global\setbox\A=\vbox\bgroup\aftergroup\*fgd\let\next} +\def\*fgc#1{\*fge{#1}} +\def\*fgd{\*fge{\box\A}} +\long\def\*fge#1#2{\par % Begin figure markup definition + \gdef\figuretitle{#2}% + \global\advance \fi*n by 1 % figure number + \begingroup % trap null setting for lets + \let\fullpage=\null % make fullpage non-printable + \let\halfpage=\null % make halfpage non-printable + \let\toclinebreak=\space % prevent break in title + \let\toclbr=\space % prevent break in title +% for value of \fi*pos: 1=\float,2=\nofloat,3=\midfloat,4=\keep + \ifcase\fi*pos + \or % BEGIN TOPINSERT FIGURES + \if*fp % full page topinsert figure + \if*title\*tpresettrue\notitlepage\fi % account for titlepage + \topinsert % floating figures are topinserts + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vbox to\vsize{\vrule width0pt\relax + \vfil#1\the\*figt} + \endinsert + \if*tpreset\titlepage\*tpresetfalse\fi % reset titlepage + \else\if*hp % half page topinsert figure + \topinsert + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vbox to.5\vsize{\vrule width0pt \relax + \vskip\the\fi*sb\relax + \vfil#1\the\*figt + \vskip\the\fi*sa\relax} + \endinsert + \else % variable size floating figure + \topinsert + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vskip\the\fi*sb\relax + #1\the\*figt + \vskip\the\fi*sa\relax + \endinsert + \fi\fi % end float full and half page check + \or % BEGIN IMMEDIATE FIGURES + \if*fp % FULL PAGE IMMEDIATE FIGURE + \np % figure won't fit on current page + \if*TC*fig \putincontents2{\the\*ftf}\fi % send to contents + \vrule width0pt \relax % prevent fil from going away + \vfill\the\*figt % fill to figure title + \break % insures break at end of insert + \else + \if*hp % HALF PAGE IMMEDIATE FIGURE + \dimen\D=.5\vsize % depth check for half page figure + \advance\dimen\D by\topskip % add topskip to .5 vsize + \ifdim\pagetotal>\dimen\D\np\fi % won't fit on current page + \vbox to.49\vsize{\vrule width0pt % keep skip + \vfil\relax % skip all but title height to + #1\the\*figt % print figure title + \vskip\the\fi*sa\relax} % print half page figure title + \if*TC*fig \putincontents2{\the\*ftf}\fi + \else % VARIABLE SIZE IMMEDIATE FIGURE + \vrule width0pt \relax % prevent skip from going away + \vskip\the\fi*sb\relax + #1\the\*figt + \vskip\the\fi*sa\relax + \if*TC*fig \putincontents2{\the\*ftf}\fi + \fi% End of check at half page + \fi % End of check at full page + \or % BEGIN MIDINSERT FIGURES + \if*fp % full page midinsert figure + \if*title\*tpresettrue\notitlepage\fi % account for titlepage + \topinsert % use topinsert for full page only + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vbox to\vsize{\vrule width0pt\relax + \vfil#1\the\*figt} + \endinsert + \if*tpreset\titlepage\*tpresetfalse\fi % reset titlepage + \else\if*hp % half page midinsert figure + \midinsert + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vbox to.5\vsize{\vrule width0pt \relax + \vskip\the\fi*sb\relax + \vfil#1\the\*figt + \vskip\the\fi*sa\relax} + \endinsert + \else % variable size floating figure + \midinsert + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vskip\the\fi*sb\relax + #1\the\*figt + \vskip\the\fi*sa\relax + \endinsert + \fi\fi % end float full and half page check + \or % BEGIN IMMEDIATE KEEP FIGURES + \if*fp % FULL PAGE IMMEDIATE FIGURE + \np % figure won't fit on current page + \if*TC*fig \putincontents2{\the\*ftf}\fi % send to contents + \vrule width0pt \relax % prevent fil from going away + \vfill\the\*figt % fill to figure title + \break % insures break at end of insert + \else + \if*hp % HALF PAGE IMMEDIATE FIGURE + \dimen\D=.5\vsize % depth check for half page figure + \advance\dimen\D by\topskip % add topskip to .5 vsize + \ifdim\pagetotal>\dimen\D\np\fi % won't fit on current page + \vbox to.49\vsize{\vrule width0pt % keep skip + \vfil\relax % skip all but title height to + #1\the\*figt % print figure title + \vskip\the\fi*sa\relax} % print half page figure title + \if*TC*fig \putincontents2{\the\*ftf}\fi + \else % VARIABLE SIZE IMMEDIATE FIGURE + \vrule width0pt \relax % prevent skip from going away + \vskip\the\fi*sb\relax + \vbox{#1\the\*figt + \vskip\the\fi*sa\relax} + \if*TC*fig \putincontents2{\the\*ftf}\fi + \fi% End of check at half page + \fi % End of check at full page + \fi % End of case statement + \endgroup % end trap for null settings + \global\*fpfalse % reset full page + \global\*hpfalse % reset half page +}% End figure markup +\let\fig=\figure % abbreviation for figure markup +% +\def\fullpage{\global\*fptrue}% used in figure markup +\def\halfpage{\global\*hptrue}% used in figure markup +% +\def\figurenumber{\the\fi*n}% +% +\def\HFN#1{\laf{\labelwidth{\fi*hi}}\label{#1}}% +% +\def\setfigurenumber#1{\global\fi*n=#1}% +\let\sfn=\setfigurenumber +% +% Redefined from PLAIN TEX +% +\def\topinsert{\@midfalse\p@gefalse\t*ptrue\@ins} +% +\def\midinsert{% redefine from plain tex + \@midtrue + \if*fix % don't change meaning in fixed mode + \else % change midinsert to topinsert in flex mode + \if*dbl\global\@midfalse\fi % leave old meaning in single column mode + \if*tpl\global\@midfalse\fi % + \fi\@ins} % +% +\def\@ins{\par\begingroup + \if*fix % do nothing in fixed mode + \else\ift*p\hsize=\*txtw\fi\fi % ift*p hsize of insert set + \setbox0=\vbox\bgroup} % insert set to full page width +% +% Tables +% +\def\tableformat#1{{% + \long\def\titleformat##1{\global\*tabt={##1}}% + \def\incontents##1{\global\*TC*tabtrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*tabfalse + \else \message{ Warning, argument to + incontents in tableformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\taf=\tableformat +% +\def\tabletitle#1{{% Tabletitle revised 11/3/86 (added toclinebreak) + \def\tabletitle{#1}% + \global\advance \ta*n by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*tabt % prints the title in the text + \egroup + \par + \D=\lastskip + \removelastskip + \if*TC*tab \putincontents3{\the\*ttf}\fi + \ignorespaces + \vs{\D} +}}% END tabletitle markup definition +\let\tat=\tabletitle +% +\def\tablenumber{\the\ta*n} +\def\HTN#1{\laf{\labelwidth{\ta*hi}}\label{#1}} +% +\def\settablenumber#1{\global\ta*n=#1}% +\let\stn=\settablenumber +% +\message{8600 macros,} +% +% Macros specific for the 8600 (JKW) revision 11/25/86 +% +\newskip\evenmar +\newskip\oddmar +\evenmar=0pt +\oddmar=0pt +\def\evenpagemargin#1{{\setbox0=\hbox{\global\evenmar=#1 pt}} + \special{even_page_margin=\the\evenmar}}% +\let\epm=\evenpagemargin +\def\oddpagemargin#1{{\setbox0=\hbox{\global\oddmar=#1 pt}} + \special{odd_page_margin=\the\oddmar}}% +\let\opm=\oddpagemargin +\def\linenumberfont#1{\B={#1} + \special{line_number_font=\the\B}}% +\let\lnf=\linenumberfont +\def\poplevel#1{\B={#1} + \special{pop_level=\the\B}}% +\let\ppl=\poplevel +\def\lineinterval#1{\B={#1} + \special{line_interval=\the\B}}% +\let\lint=\lineinterval +\def\numberinglines#1{\special{numbering_lines=#1}}% +\let\numl=\numberinglines +\def\countinglines#1{\special{counting_lines=#1}}% +\let\coul=\countinglines +\def\printingnumbers#1{\special{printing_numbers=#1}}% +\let\prin=\printingnumbers +\def\linefootnotereference{\special{line_footnote_reference}}% +\let\lfnr=\linefootnotereference +% +\message{ more misc,} +% +% To be able to use PLAIN.TEX math code +% +\def\plaintexmathon{% + \catcode`\$=3\relax + \catcode`@=12\relax} +\let\dollarmathon=\plaintexmathon +\def\atmathon{% + \catcode`\$=12\relax + \catcode`@=3\par} +% +\message{multiple columns,} +% +\outer\def\bye{\par\onecolumn\vfill\supereject\end} % redefined from PLAIN.TEX +% to close multiple column routines +% +% MULTIPLE COLUMNS +% Brian Harvey 1/20/85 +% +% Macros to be imbedded into TEXT1 to drive the multiple column +% routines FLEXCOL and FIXCOL. +% +\newbox\*lftcol % left column box, fixed column mode, TeXbook name +\newbox\*midcol % center column, fixed column mode, TeXbook name +\newbox\*ppage % page accummulated before multicolumn, partialpage, flex +\newcount\*pcount % counter for empty page macro, keeps track of the +\*pcount=0 % number of empty page calls +\newdimen\*bigch % Twc=2vise, Thc=3vsize---bigcolumnheight +\newdimen\*txtw % textwidth, stores full hsize for multicolumn mode +\let\galleywidth=\*txtw % create galleywidth = text width +\newdimen\*txth % textheight, stores page height for multicolumn mode +\*txtw=\hsize % initialize full page text width for multicolumn mode +\*txth=\vsize % initialize full text height for multicolumn mode +\newif\ift*p % ift*p required to check for midinsert in flex mode +\newif\if*dbl % double column indicator +\*dblfalse % set double column format indicator false +\newif\if*tpl % triple column indicator +\*tplfalse % set triple column format indicator false +\newif\if*fix % format indicator (fixed if true, otherwise flexible) +\newif\if*norule % used to suppress rules in output routines +\newif\if*plain % check for plain.tex, plainoutput +\*plaintrue % set plain format indicator true +\newtoks\*twcw % width for twocolumns +\newtoks\*thcw % width for threecolumns +\newtoks\*twcgut % gutter for twocolumns +\newtoks\*thcgut % gutter for threecolumns +\newtoks\*clrw % rule width between multiple columns +\newtoks\*mskb % skip before multicolumn format +\newtoks\*mska % skip after multicolumn format +\*twcw={.48\*txtw} % initialize column and gutter default widths +\*thcw={.31\*txtw} +\*twcgut={.04\*txtw} +\*thcgut={.035\*txtw} +\*clrw={0.0pt} % initialize between column rule width +\*mskb={6pt plus 3pt minus 2pt} % initialize skips before and after multiple columns: +\*mska={6pt plus 3pt minus 2pt} % used in multiple column flex mode only + +\def\fixedformat{\global\*fixtrue} % calls fixed format file +\let\fixf=\fixedformat +\global\*fixfalse % sets up flex format +% +\def\multicolumnformat#1{% format macro for both fixed and flexible, texblock is multicol + \def\twocolumnwidth##1{\global\*twcw={##1}}% + \def\threecolumnwidth##1{\global\*thcw={##1}}% + \def\twocolumngutter##1{\global\*twcgut={##1}}% + \def\threecolumngutter##1{\global\*thcgut={##1}}% + \def\columnrulewidth##1{\global\*clrw={##1}}% + \def\skipbefore##1{\global\*mskb={##1}}% flex mode only + \def\skipafter##1{\global\*mska={##1}}% flex mode only + #1\*txtwck}% END, multicol format +\let\mcf=\multicolumnformat +% +% COLUMN WIDTH CHECK FOR MULTIPLE COLUMN ROUTINES +% +\def\*txtwck{% check column width and gutters against hsize + \dimen@=\the\*twcw + \dimen@=2\dimen@ + \dimen1=\the\*twcgut + \advance\dimen@ by\dimen1 + \ifdim\dimen@ > \*txtw % if greater than current pagewidth + \dimen1=\dimen@ + \advance\dimen1 by-\*txtw + \advance\dimen@ by -\*txtw + \ifdim\dimen@ > 1pt % only warn if over 1pt + \immediate\write16{% + Warning! The column and gutter widths specified% + for two columns are wider than the current pagewidth by% + \the\dimen1 . } + \fi + \else\ifdim\dimen@ < \*txtw % if less than current pagewidth + \dimen1=\*txtw + \advance\dimen1 by-\dimen@ + \advance\dimen@ by -\*txtw + \multiply\dimen@ by -1 + \ifdim\dimen@ > 1pt % Only warn if over 1pt difference + \immediate\write16{% + Warning! The column and gutter widths specified% + for two columns are shorter than the current pagewidth by% + \the\dimen1 . } + \fi + \fi\fi +% + \dimen@=\the\*thcw % width of each column, three columns + \dimen@=3\dimen@ % three columns + \dimen1=\the\*thcgut % width of the gutters + \dimen1=2\dimen1 % two gutters in three columns + \advance\dimen@ by\dimen1 % add columns and gutters together + \ifdim\dimen@ > \*txtw % if greater than current pagewidth + \dimen1=\dimen@ + \advance\dimen1 by-\*txtw + \advance\dimen@ by -\*txtw + \ifdim\dimen@ > 1pt % only warn if over 1pt + \immediate\write16{% + Warning! The column and gutter widths specified% + for three columns are wider than the current pagewidth by% + \the\dimen1 . } + \fi + \else\ifdim\dimen@ < \*txtw % if less than current pagewidth + \dimen1=\*txtw + \advance\dimen1 by-\dimen@ + \advance\dimen@ by -\*txtw + \multiply\dimen@ by -1 + \ifdim\dimen@ > 1pt % Only warn if over 1pt difference + \immediate\write16{% + Warning! The column and gutter widths specified% + for three columns are shorter than the current pagewidth by% + \the\dimen1 . } + \fi + \fi\fi + } % END, widthcheck +% +\newif\if*start*mc \*start*mcfalse +\def\twocolumns{% TWOCOLUMNS set-up macro + \if*fix \input fixcol % input fixed format file + \immediate\write-16{% write to log file only + Fixed format for multiple columns in effect. } + \gdef\twocolumns{\*fixtwc}% redefine twocolumns, fixed mode + \gdef\threecolumns{\*fixthc}% redefine threecolumns, fixed mode + \else \input flexcol % input flex format file + \immediate\write-16{% write to log file only + Flexible format for multiple columns in effect. } + \gdef\twocolumns{\*flextwc}% redefine twocolumns, flex mode + \gdef\threecolumns{\*flexthc}\fi% redefine threecolumns, flex mode + \twocolumns + \global\let\twc=\twocolumns % to current meaning of twocolumns + \global\let\thc=\threecolumns % to current meaning of threecolumns +}% END twocolumns markup +% +\let\twc=\twocolumns +% +\def\threecolumns{% THREECOLUMNS set-up macro + \*start*mctrue + \if*fix \input fixcol % input fixed format file + \immediate\write-16{% write to log file only + Fixed format for multiple columns active. } + \gdef\twocolumns{\*fixtwc}% redefine twocolumns, fixed mode + \gdef\threecolumns{\*fixthc}% redefine threecolumns, fixed mode + \else \input flexcol % input flex format file + \immediate\write-16{% write to log file only + Flexible format for multiple columns active. } + \gdef\twocolumns{\*flextwc}% redefine twocolumns, flex mode + \gdef\threecolumns{\*flexthc}\fi% redefine threecolumns, flex mode + \threecolumns + \global\let\twc=\twocolumns % to current meaning of twocolumns + \global\let\thc=\threecolumns % to current meaning of threecolumns +}% End threecolumns markup +% +\let\thc=\threecolumns +% +\let\onecolumn=\null % Empty definition for single format +\let\oc=\onecolumn +% +\let\newcolumn=\newpage +\let\nc=\newpage +\newif\if*nc \*ncfalse % true if \nc was used in mult cols +% +\global +\newhelp\balerrhelp{onecolumn The best approach to solve this problem + is to shorten the text by a line. You could also add or delete a + paragraph or change the column size. }% +% +\message{index macros,} +% +% Here are the macros necessary for doing an index +% +\newtoks\*ixarc \*ixarc={case=no} % IndeX A Respect Case +\newcount\*ixpn % Page number type: 0,2,4,6, or 9 +\newtoks\*ixast \*ixast={style=3} % IndeX A STyle +\newtoks\*ixald \*ixald={leadering=no} % IndeX A LeaDering +\newtoks\*ixabr \*ixabr={\vs{1\bl}} % IndeX A BReak +\newtoks\*ixasea \*ixasea={1em} % IndeX A SubEntry 1 +\newtoks\*ixaseb \*ixaseb={2em} % IndeX A SubEntry 2 +\newtoks\*ixaev \*ixaev={\tenpt} % Index A every time +\newtoks\*ixahp \*ixahp={1.5em} % Index A hang indent +\newtoks\*ixbrc \*ixbrc={case=no} % IndeX B Respect Case +\newtoks\*ixbst \*ixbst={style=3} % IndeX B STyle +\newtoks\*ixbld \*ixbld={leadering=no} % IndeX B LeaDering +\newtoks\*ixbbr \*ixbbr={\vs{1\bl}} % IndeX B BReak +\newtoks\*ixbsea \*ixbsea={1em} % IndeX B SubEntry 1 +\newtoks\*ixbseb \*ixbseb={2em} % IndeX B SubEntry 2 +\newtoks\*ixbev \*ixbev={\tenpt} % Index B every time +\newtoks\*ixbhp \*ixbhp={1.5em} % Index B hang indent +\newtoks\*ixcrc \*ixcrc={case=no} % IndeX C Respect Case +\newtoks\*ixcst \*ixcst={style=3} % IndeX C STyle +\newtoks\*ixcld \*ixcld={leadering=no} % IndeX C LeaDering +\newtoks\*ixcbr \*ixcbr={\rule\vs{1\bl}} % IndeX C BReak +\newtoks\*ixcsea \*ixcsea={1em} % IndeX C SubEntry 1 +\newtoks\*ixcseb \*ixcseb={2em} % IndeX C SubEntry 2 +\newtoks\*ixcev \*ixcev={\tenpt} % Index C every time +\newtoks\*ixchp \*ixchp={1.5em} % Index C hang indent +% +\newcount\*ixlvl \*ixlvl=1 % IndeX LeVeL +% +\long\def\indexformat#1#2{{\ifnum #1>3 \message{ Error! Only three indices + allowed. Level 1 will be used.} + \*ixlvl=1 + \else \*ixlvl=#1\fi + \def\respectcase##1{\edef\T{yes} + \edef\U{no} + \edef\V{##1} + \ifx \T\V \B={case=yes} + \else \B={case=no} + \ifx \U\V % Already set + \else\message{ Error!! Case respect not "yes" + or "no" in indexformat. "no" will be used.} + \fi\fi + \ifcase \*ixlvl \or \global\*ixarc=\B + \or \global\*ixbrc=\B + \or \global\*ixcrc=\B + \fi} + \def\style##1{\edef\T{paragraph} + \edef\U{dash} + \edef\V{indent} + \edef\W{##1} + \ifx \T\W \B={style=1} % paragraph style + \else \ifx \U\W \B={style=2} % dash style + \else \B={style=3} % indented style + \ifx \V\W % Already done + \else \message{ Error!! Style invalid in indexformat. + "indented" will be used.} + \fi\fi\fi + \ifcase \*ixlvl \or \global\*ixast=\B + \or \global\*ixbst=\B + \or \global\*ixcst=\B + \fi} + \def\leadering##1{\edef\T{yes} + \edef\U{no} + \edef\V{##1} + \ifx\T\V \B={leadering=yes} + \else \B={leadering=no} + \ifx\U\V + \else \message{ Error!! Only "yes" and "no" can + be used in the indexformat. "no" will be assumed.} + \fi\fi + \ifcase \*ixlvl \or \global\*ixald=\B + \or \global\*ixbld=\B + \or \global\*ixcld=\B + \fi + } + \long\def\everyletterbreak##1{\ifcase \*ixlvl \or \global\*ixabr={##1} + \or \global\*ixbbr={##1} + \or \global\*ixcbr={##1} + \fi} + \def\everyindex##1{\ifcase \*ixlvl \or \global\*ixaev={##1} + \or \global\*ixbev={##1} + \or \global\*ixcev={##1} + \fi} + \def\everyhang##1{\ifcase \*ixlvl \or \global\*ixahp={##1} + \or \global\*ixbhp={##1} + \or \global\*ixchp={##1} + \fi} + \def\indentsubentry##1##2{\R = ##1 + \ifnum ##1<1 \message{ Error!! Subentry level number in indexformat + may only be 1 or 2. 1 will be used.} + \R = 1 + \else \ifnum ##1>2 \message{ Error!! Subentry level number in indexformat + may only be 1 or 2. 1 will be used.} + \R = 1 + \fi\fi + \ifcase \R \or \ifcase \*ixlvl \or \global\*ixasea={##2} + \or \global\*ixbsea={##2} + \or \global\*ixcsea={##2} + \fi + \or \ifcase \*ixlvl \or \global\*ixaseb={##2} + \or \global\*ixbseb={##2} + \or \global\*ixcseb={##2} + \fi + \fi} + #2}} +\let\ixf=\indexformat +\newwrite\*ixfilea % IndeX FILE A +\newwrite\*ixfileb % IndeX FILE B +\newwrite\*ixfilec % IndeX FILE C +\newif\if*ixaopen \*ixaopenfalse % IndeX file A OPEN? +\newif\if*ixbopen \*ixbopenfalse % IndeX file B OPEN? +\newif\if*ixcopen \*ixcopenfalse % IndeX file C OPEN? +\def\*openixfile#1{\ifcase #1 \or + \immediate\openout\*ixfilea=text1xx.ix1% + \global\*ixaopentrue + \immediate\write\*ixfilea{\the\*ixarc}% + \immediate\write\*ixfilea{\the\*ixast}% + \immediate\write\*ixfilea{\the\*ixald}% + \or \immediate\openout\*ixfileb=text1xx.ix2% + \global\*ixbopentrue + \immediate\write\*ixfileb{\the\*ixbrc}% + \immediate\write\*ixfileb{\the\*ixbst}% + \immediate\write\*ixfileb{\the\*ixbld}% + \or \immediate\openout\*ixfilec=text1xx.ix3% + \global\*ixcopentrue + \immediate\write\*ixfilec{\the\*ixcrc}% + \immediate\write\*ixfilec{\the\*ixcst}% + \immediate\write\*ixfilec{\the\*ixcld}% + \fi} +{\catcode`\$=12 +\global\def\index#1#2{{\global\*ixpn = 2 + \def\subentry##1##2{${$}se##1##2{$}}% + \def\bdpn{\global\*ixpn = 0}% + \def\uspn{\global\*ixpn = 4}% + \def\itpn{\global\*ixpn = 6}% + \def\blindentry##1{\global\*ixpn = 9}% + \def\sortas##1{${$}sa##1{$}}% + \def\dagger{ \noexpand\dagger}% + \def\ddagger{ \noexpand\ddagger}% + \def\\{\noexpand\\}% + \def\{{\noexpand\{}% + \def\}{\noexpand\}}% + \def\_{\noexpand\_}% + \def\@{\noexpand\@}% + \def\S{\noexpand\S}% + \def\P{\noexpand\P}% + \def\L{\noexpand\L}% + \def\AA{\noexpand\AA}% + \def\neg{\noexpand\neg}% + \def\tilde{\noexpand\tilde}% + \def\vbar{\noexpand\vbar}% + \def\roman{\noexpand\rm}\let\rm=\roman% + \def\bold{\noexpand\bd}\let\bd=\bold% + \def\italic{\noexpand\it}\let\it=\italic% + \def\typewriter{\noexpand\tt}\let\tt=\typewriter% + \def\caps{\noexpand\cc}\let\cc=\caps% + \def\mathitalic{\noexpand\mi}\let\mi=\mathitalic% + \def\symbol{\noexpand\sy}\let\sy=\symbol% + \def\extension{\noexpand\ex}\let\ex=\extension% + \def\bolditalic{\noexpand\bi}\let\bi=\bolditalic% + \setbox0=\vbox{\hsize=100in#2}% + \def\bdpn{}% + \def\uspn{}% + \def\itpn{}% + \def\blindentry##1{${$}be##1{$}}% + \*ixlvl = #1 + \ifcase #1 \message{ Error!! You can only have index level 1, 2, or 3. + Index level 1 will be used.} + \*ixlvl = 1 + \or\or\or% % These levels are ok + \else \message{ Error!! You can only have index level 1, 2, or 3. + Index level 1 will be used.} + \*ixlvl = 1 + \fi% + \edef\*ixtoken{#2}% + \edef\temp{\*ixtoken}% + \ifcase \*ixlvl \or\if*ixaopen\else\*openixfile1\fi% Open the file if not done yet + \immediate\write\*ixfilea{{\the\*ixpn}{\the\pageno}{\pagenumber}\*ixtoken}% + \or \if*ixbopen \else \*openixfile2 \fi % Open the file if not done yet + \immediate\write\*ixfileb{{\the\*ixpn}{\the\pageno}{\pagenumber}\*ixtoken}% + \or \if*ixcopen \else \*openixfile3 \fi % Open the file if not done yet + \immediate\write\*ixfilec{{\the\*ixpn}{\the\pageno}{\pagenumber}\*ixtoken}% + \fi}\ignorespaces} +}% End math cat code change +\def\everyletterbreak#1#2{\def\nextletter{#2} + \ifcase #1 \or \the\*ixabr + \or \the\*ixbbr + \or \the\*ixcbr + \fi} +\def\everyindex#1{\ifcase \*ixlvl \or \the\*ixaev + \or \the\*ixbev + \or \the\*ixcev + \fi} +\def\indentsubentry#1#2{\par\penalty5000\hp + \ifcase #2 \or \ifcase #1 \or \hs{\the\*ixasea} + \or \hs{\the\*ixbsea} + \or \hs{\the\*ixcsea} + \fi + \or \ifcase #1 \or \hs{\the\*ixaseb} + \or \hs{\the\*ixbseb} + \or \hs{\the\*ixcseb} + \fi + \fi} +\let\ix=\index +\let\*ix=\printindex +\def\printindex#1{%\*ix#1 used only when printindex is a hardcoded command + \ifcase #1 \or \input text1xx.ix1 + \or \input text1xx.ix2 + \or \input text1xx.ix3 + \fi} +% +\message{wrap it up...} +% +\def\@{\char'100{}}% +% +% and set default values +% +\hfuzz=1pt +\parindent=24pt \parskip=0pt plus 3pt minus 0pt +\normalbottom +\pageno=0 +\catcode`* = 12 +% The END diff --git a/macros/text1/models/letter.texinput b/macros/text1/models/letter.texinput new file mode 100644 index 0000000000..4cac048afa --- /dev/null +++ b/macros/text1/models/letter.texinput @@ -0,0 +1,51 @@ +% LETTER FORMAT FILE bth 4/1/87 +\catcode`*=11 +\raggedbottom % text height may vary from page to page +\if*msp\defaultmono + \let\titlefont=\defaultmono + \let\twelvept=\defaultmono + \let\tenpt=\defaultmono + \let\rm=\defaultmono + \fi % monospace check +\newtoks\departmentname % department name for letterhead +\newtoks\campuszip % zip code for letterhead +\newtoks\campusphone % phone number for letterhead +\newtoks\date % date token list +\newif\if*postscript +\*postscriptfalse +% +\def\STOP{\endgroup\par}% ends obeylines grouping +% +\def\BEGINADDRESS{\begingroup\parskip=0pt\parindent=0pt\obeylines}% +\let\SALUTATION=\null +\let\BODY=\STOP +\def\CLOSING{\par\vs{\bl}\begingroup\parskip=0pt\parindent=0pt + \obeylines}% +\def\COPIES{\par\vs{\bl} + \setbox0=\hbox{Copies:\quad}\parindent=\wd0 \nin Copies:\quad}% +\def\ENCLOSURES#1{\par Enclosures:\quad #1}% sets enclosures text line +\def\ENDLETTER{\par\endgroup}% stop any obeylines grouping +% Default for the title (first) page +\titlepageformat{\titleleadskip{0in} + \titlefootline{} +}% end title page format +\def\letterhead{{\parskip=0pt + \if*msp + \cl{\titlefont Washington State University} + \vs{\bl}\hrule\vs{\bl} + \cl{\the\departmentname} + \cl{Pullman, Washington\ \the\campuszip} + \cl{\the\campusphone} + \vs{1\bl} % number of blank lines inserted + \nin\the\date % + \else + \cl{\titlefont Washington State University} + \vs{4pt}\hrule\vs{6pt} + \cl{\twelvept \the\departmentname} + \cl{\tenpt Pullman, Washington\ \the\campuszip} + \cl{\tenpt \the\campusphone} + \vs{1\bl} % number of blank lines inserted + \nin\the\date % + \fi +}}% end letterhead markup +\catcode`*=12 diff --git a/macros/text1/models/letter.texmodel b/macros/text1/models/letter.texmodel new file mode 100644 index 0000000000..0983cee198 --- /dev/null +++ b/macros/text1/models/letter.texmodel @@ -0,0 +1,45 @@ +% LETTER MARKUP (style, full block) APRIL 1, 1986 +% To print on monospace printers (line printers, daisy-wheel printers) +%\monospace % delete the "%" symbol at the beginning of this line +\paragraphskip{12pt} % distance between paragraphs +\paragraphindent{0pt} % first line word indent +\sfs{cm18}{titlefont}{24pt}% large font selected for letterhead +\input letter.texinput % places the format file into your text file +% LETTERHEAD INFORMATION +% Type the name of your department, the campus zip code, +% the campus telephone number, and date (if not today's +% date) between the curly braces of the samples shown +% below. This information will be added to the letterhead. +%........................................................................ +\departmentname{name of your department or organization} +\campuszip{99164-????} +\campusphone{(509) 335-????} +\date{\today} +% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +\letterhead % +\vs{2\bl} % +% LETTER ADDRESS +\BEGINADDRESS % . . . . insert address below this line . . . . . . . . . +\SALUTATION % . . . replace the salutation on the next line . . . . . . . +Dear ???? +\BODY % LETTER BODY +% . . . . . . insert the text of the letter below this line . . . . . . . +% . . . . . . . . . . . . and above this line . . . . . . . . . . . . . . +% LETTER CLOSING +\CLOSING % . . . . replace closing line, if desired . . . . . . . . . . . +Sincerely yours, +\vs{3\bl} +% SIGNATURE LINE +% . . . . . . . . . replace signature line . . . . . . . . . . . . . . . +John Doe +\vs{\bl} +% ENCLOSURES AND COPIES +% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +% Use \ENCLOSURES markup for an enclosure number, % +% for example: \ENCLOSURES{3} % +% Use \COPIES markup for a copy list, % +% for example: \COPIES first name % +% second name % +% third name, etc. % +% . . . . . . . enter enclosures and copies below this line . . . . . . . +\ENDLETTER %------------- and above this line --------------------------- diff --git a/macros/text1/models/memo.texinput b/macros/text1/models/memo.texinput new file mode 100644 index 0000000000..bbf6aa632e --- /dev/null +++ b/macros/text1/models/memo.texinput @@ -0,0 +1,48 @@ +% MEMO TEXINPUT FORMAT FILE +% dlw 8/15/86 +\catcode`*=11 +\if*msp \let\titlefont=\defaultmono + \let\twelvept=\defaultmono + \let\tenpt=\defaultmono + \let\rm=\defaultmono + \fi % change all fonts to defaultmono for the monospace option +\rightragged +\newif\if*copies +\*copiesfalse +\newtoks\*lfthead \*lfthead = { } +\newtoks\*ctrhead \*ctrhead = { } +\newtoks\*rthead \*rthead = { } +\rightragged +% Default for the title (first) page +\titlepageformat{\titleleadskip{0in} + \titlefootline{} +} +\def\memopageheadingformat#1{% setup for memo running head + \def\*left##1{\global\*lfthead={##1}}% + \def\*center##1{\global\*ctrhead={##1}}% + \def\*right##1{\global\*rthead={##1}}% +#1}% end memoheading format +\let\mhf=\memopageheadingformat +\memopageheadingformat{\*left{}\*center{\pagenumber}\*right{}} +\runningheadformat{\bothpages{\twelvept + \line{\hbox to.33333\hsize{\the\*lfthead\hss}\hfil + \hbox to.33333\hsize{\hss\the\*ctrhead\hss}\hfil + \hbox to.33333\hsize{\hss\the\*rthead}} + \vs{28pt}} % 28pt = .4in +}% end runningheadformat +\def\MEMO{\begingroup\obeylines\parskip=0pt\parindent=60pt}% +\def\TEXT{\endgroup\if*msp\defaultmono\ssp\else\twelvept\fi % + \vs{\bl}\hrule\vs{2\bl}}% +% +\cl{{\titlefont M E M O R A N D U M}} +\if*msp\par\vs{\bl}\ssp + \else\par\vs{.4in}\isk{18pt}\fi +\def\TO{\nin To:\par\vs{-\bl}}% +\def\FROM{\if*msp\vs{\bl}\fi\nin From:\par\vs{-\bl}}% +\def\DATE#1{\if*msp\vs{\bl}\fi\nin Date:\par\vs{-\bl}#1}% +\def\SUBJECT{\if*msp\vs{\bl}\fi\nin Subject:\par\vs{-\bl}}% +\def\COPIES{\global\*copiestrue\vs{\bl}\nin Copies:\par\vs{-\bl} % + \begingroup\obeylines\singlespace % + \parskip=0pt\parindent=60pt}% +\def\ENDMEMO{\if*copies\par\endgroup\global\*copiesfalse\else\par\fi}% +\catcode`*=12 diff --git a/macros/text1/models/memo.texmodel b/macros/text1/models/memo.texmodel new file mode 100644 index 0000000000..8e16ff97be --- /dev/null +++ b/macros/text1/models/memo.texmodel @@ -0,0 +1,21 @@ +% MEMO TEXMODEL +% August 15, 1986 +% To print on monospace printers delete the % symbol before \monospace +%\monospace +\sfs{cm18}{titlefont}{24pt}% Font selected for heading +\input memo.texinput % Loads memorandum format file +\MEMO % Prints memorandum heading +%--------Enter the text after each markup on the following lines--------- +%------------------multiple line entries may be used--------------------- +\TO +\FROM +\DATE {\today} +\SUBJECT +\TEXT %----- Insert the memo below this line----------------------------- + +%--------------For a list of copies use the \COPIES: markup------------- +% for example: \COPIES first name +% second name +% third name, etc. +%------------enter the copies markup and names below this line----------- +\ENDMEMO % ----------------and before this line-------------------------- diff --git a/macros/text1/models/mergelet.texmodel b/macros/text1/models/mergelet.texmodel new file mode 100644 index 0000000000..de4e4fa4b2 --- /dev/null +++ b/macros/text1/models/mergelet.texmodel @@ -0,0 +1,77 @@ +% Sample Letter for Merge File Model +% +% TEXT1 Letterhead description, change to suit your letter +% +% +\begingroup +\paragraphskip{0pt} +\centerline{{\titlefont Washington State University}} +\vs{4pt}\hrule\vs{4pt} +\centerline{{\twelvept\bd Academic Computing Service}} +\vs{-2pt} +\centerline{{\tenpt Pullman, Washington 99164-1220\lbr 509/335-0411}} +\vs{1\bl} % number of blank lines inserted +\endgroup +\vs{\bl} +\tenpt +\nin{\today} +\vs{\bl} +\asisbegin +\noemptyspace\title\ \firstname\ \lastname +\noemptyspace\company +\address +\city, \state\ \zipcode +\phone + +Dear \firstname: + +\asisend +This letter is a sample for the merge file facility of \text1. Ten +data fields were created with DBASE~III on a PC and transferred to +CMS. The fields were delimited with double quotations marks +({\tt "}) and a comma placed between data fields by DBASE. Any data +base program that allows data fields to be delimited with quotation +marks could be used. A data file may also be created +directly on CMS by entering the data in the following manner:\lbr +\hs{2in}{\tt "}field one{\tt "},{\tt "}field two{\tt "},\ellipsis3,{\tt +"}last field{\tt "}\lbr +or written as \lbr +\hs{2in}{\tt "}field one{\tt ""}field two{\tt "\ellipsis3\ "}last +field{\tt "}\lbr +the commas between data fields are optional. + +Quotation marks must be placed on either side of each field +(delimit the field) and the {\it each data field must come in the same +sequence as the data names specified in the {\tt \\fieldnames} markup}. +{\bd No \it field may be omitted}, however, a field may be empty +({\it i.e.}, {\tt "}first field{\tt ","","}third field{\tt "} +\ellipsis3 ). + +The data markup (field names immediately preceded by a {\tt \\} ) +may be used to place text anywhere in the letter, but +each field should be followed by a control space markup (\\ \ , a +backslash followed by a blank space) or \text1 +will drop the space after the field. For example, the \\firstname\\ +\\lastname and \\amount markup have been used to add the +recipients name and a dollar amount in the following line. + +\cl{The \firstname\ \lastname\ account has been charged \amount\ for +printing services.} + +The {\tt \\noemptyspace} markup may be used to prevent a blank line +if an address line is empty. Place the data field markup between the +{\tt \\noemptyspace} markup and the linebreak ({\tt \\lbr}) markup +({\it i.e.}, {\tt \\noemptyspace\\company\\lbr} would prevent a blank +line if the company data field were empty). The {\tt\\noemptyspace} +markup prevents an extra space after an empty data field. Place +it in the following manner: {\tt \\noemptyspace\\title\\ +\\firstname\\ \\lastname\\lbr} The {\tt \\noemptyspace} markup will +remove the following control space ({\tt \\ }) or control line break +({\tt \\lbr}) if the specified data field +is empty. +\vs{\bl} +\noindent +Sincerely yours, +\vs{3\bl} +\noindent +John Doe diff --git a/macros/text1/models/mergelst.texmodel b/macros/text1/models/mergelst.texmodel new file mode 100644 index 0000000000..0d15914892 --- /dev/null +++ b/macros/text1/models/mergelst.texmodel @@ -0,0 +1,17 @@ +% Sample data base Merge File address list, created with dBASE III +% data field names are as follows: +% title, firstname, lastname, company, address, +% city, state, zipcode, phone, amount +% All data fields must be present for each entry, although the data +% field itself may be empty (i.e., "" is an empty or null data field). +% +"Ms.","Claire","Buckman","ABC Distributing Director","8307 Santa Anita +Blvd","Oxnard","CA","93034","(555)456-9059","$5.00" +"Mr.","Rick","Lisbonn","Vice-President for Marketing","1550 Keystone +St.","Glendale","CA","91206","(555)455-3344","$15.00" +"Dr.","Hank","Bicksby","Research Institute, Manager","4101 Peonia +Rd","Flagstaff","AZ","86001","(555)966-1278","$25.00" +"","Lena","Garnett","","520 S. 8th St.","Reno","NV","89504", +"(555)766-9121","$3.00" +"Mrs.","Lisa","Kafmanan","Sales Support Staff Manager","1960 Lindley +Ave.","Reseda","CA","91355","(555)860-0300","$8.00" diff --git a/macros/text1/models/mergetxt.texinput b/macros/text1/models/mergetxt.texinput new file mode 100644 index 0000000000..a25e9617e5 --- /dev/null +++ b/macros/text1/models/mergetxt.texinput @@ -0,0 +1,184 @@ +% Merge File Model Macro Definition File +\catcode`*=11 +\catcode`"=\active +\catcode`,=\active +\catcode`@=\active +\newbox\FirstUp +\newbox\SecondUp +\newbox\ThirdUp +\newcount\*first \*first=0 % first token field +\newcount\*index \*index=0 % field index +\newcount\*lastentry \*lastentry=0 % last token filed +\newcount\*letternumber \*letternumber=0 % letter number from start +\newcount\LblsUp \LblsUp=1 % number of labels per line +\newcount\LblsAcross \LblsAcross=0 % counter for labels accross +\newdimen\LblMat \LblMat=0pt % left and right label margins +\newdimen\LblHt \LblHt=0in % vertical label size +\newdimen\LblWd \LblWd=0in % horozontal label size +\newif\if*check \*checkfalse % datacheck for manual entry +\newif\if*lbfopen \*lbfopenfalse % check for open label file +\newtoks\*csnametoks \*csnametoks={} % tokens for field names +\newtoks\*maillblfmt \*maillblfmt={} % label sheet format code +\newtoks\*addrlbl \*addrlbl={} % address label tokens +\newwrite\*labels % create label filee + +\gdef,{\char'54{}}% +% Datacheck forces a print letter after each set of fields +\def\datacheck{\global\*checktrue}% +\def@{\ifnum\*index>0 + \global\*index=\*first % reset index + \if*check + \global\advance\*letternumber by1 + \immediate\write16{Letter number \the\*letternumber. + First Data Field: (\the\toks\*first) . . . + Last Data Field: (\the\toks\*lastentry ). } + \fi % write to log file for data check + \*prnletter % print current data + \fi +} % end of @ definition + +% Take user defined names to build control sequences +\def\fieldnames#1{\par + \global\advance\count15 by 1 % new token register + \global\*first=\count15 % first new token register + \parsenames#1\end}% end fieldnames markup + +% Separate name fields into individual entries +\def\parsenames#1{\ifx#1\end + \createfield + \let\next=\relax + \global\*lastentry=\count15 + \global\*index=\*first + \*csnametoks={} + \else + \ifx#1, + \createfield + \global\advance\count15 by 1 + \*csnametoks={} + \let\next=\parsenames + \else \*csnametoks=\expandafter{\the\*csnametoks#1} + \let\next=\parsenames + \fi\fi + \next}% end parsenames markup + +% CREATEFIELD create control sequence names from name field entries +\def\createfield{\expandafter\xdef\csname\the\*csnametoks\endcsname + {\noexpand\the\toks\the\count15 }}% end createfield markup + +% DEFINE " as name of merge command +\def"#1"{% set quote marks as active macro and delimiter + \ifnum\*index=0 \global\*index=\*first\fi + \global\toks\*index={#1} % gather argument in token variable + \ifnum\*index<\*lastentry % continue gathering process + \gdef,{\gdef,{\char'54{}}}% % drop , in data but not in text + \global\advance\*index by1 % index by 1 + \ignorespaces % eliminate spurious spaces + \else % end process + \global\*index=0 + \if*check + \global\advance\*letternumber by1 + \immediate\write16{Letter number \the\*letternumber. + First Data Field: (\the\toks\*first) . . . + Last Data Field: (\the\toks\*lastentry ). } + \fi % write to log file for data check + \*prnletter % print current data + \fi}% end define " as macro name + +% Merge letter text file merged for each data record +\def\*prnletter{% Print the letter text with current name/address fields + \catcode`"=12\catcode`@=3 % set " and @ to normal catcodes + \newpage % start new page for each letter + \setpagenumber{1} % reset page number + \inputletter % new page then get letter text file + \*savelabels{\*setlabel} % save address label information + \catcode`"=\active\catcode`@=\active % reset catcodes for markup defs + \relax}% end prnletter markup + +% Give filename for letter text +\def\documentfilename#1{\gdef\inputletter{\input #1 }}% + +% Give maillist data filename +\def\datafilename#1{\input #1 }% + +% Print no empty lines with the line break markup +\def\noemptyspace#1#2{\edef\V{#1}\edef\W{\empty}% + \ifx\V\W% do nothing if empty argument + \else #1#2\fi% if not empty replace argument with the line break +}% end no emptyspace +\let\nes=\noemptyspace % set abbreviation + + +% SAVELABELS ships information for labels to the label file +\def\*savelabels#1{% Write Mail Label Information to TEXT1$$.LABEL + \if*lbfopen % do nothing if file TEXT1$$.LABEL already open + \else \immediate\openout\*labels=text1$$.label % open TEXT1$$.LABEL + \immediate\write\*labels{\the\*maillblfmt} % write format + \global\*lbfopentrue\fi % set open flag + \global\advance\LblsAcross by1 % set label postion pointer + \ifnum\LblsAcross>\LblsUp \global\LblsAcross=1 \fi + \edef\T{% create labels + \ifnum\LblsAcross=1 \setbox\FirstUp=\fi % left label + \ifnum\LblsAcross=2 \setbox\SecondUp=\fi% center label + \ifnum\LblsAcross=3 \setbox\ThirdUp=\fi % right label + \vtop to\LblHt{\hsize=\LblWd \leftskip=\LblMat \rightskip=\LblMat + \parindent=0pt #1\par\vfil} % make label to label size and width + \ifnum\LblsAcross=\LblsUp % print labels + \ifcase\LblsUp% case 0, no labels specified + \or\setbox\SecondUp=\null \setbox\ThirdUp=\null % one label + \or \setbox\ThirdUp=\null % two labels + \fi% end case % three label default + \line{\box\FirstUp\box\SecondUp\box\ThirdUp\hfil} + \fi}% end definition of T + \immediate\write\*labels{\T} % write information to file +}% end save labels definition + +% Flushlabels prints any unprinted labels remaining in the markup +\def\*flushlabels{% print any remaining boxed labels + \ifcase\LblsUp % case ), no labels specified + \or \setbox\SecondUp=\null \setbox\ThirdUp=\null % one label + \or \setbox\ThirdUp=\null % two labels + \fi% end case % three label default + \immediate\write\*labels{\line{\box\FirstUp\box\SecondUp\box\ThirdUp + \hfil}}% +}% end flush any remaining labels + +% Print the label file TEXT1$$.LABEL +\def\printlabels{\newpage % end last letter + \*flushlabels % print any remaining labels + \immediate\closeout\*labels % close data file + \setpagenumber{99} % labels begin on page 99 + \input text1$$.label % input the address label data file +}% end print mailing labels + +\def\addresslabelformat#1{\global\*addrlbl={#1}}% +\*addrlbl={} + +\def\*setlabel{\the\*addrlbl}% + +% Set format for the mailing labels +\def\maillabelformat#1{% Sets dimensions and margins of each label + \def\labelsetup##1{\global\*maillblfmt={##1}}% + \def\numberoflabelsperline##1{\global\LblsUp=##1}% + \def\labelheight##1{\global\LblHt=##1}% + \def\labelwidth##1{\global\LblWd=##1}% + \def\labelmat##1{\global\LblMat=##1}% + #1}% end mail label format +\let\mlfmt=\maillabelformat % set abbreviation +\catcode`*=12 + +% Set defaults for the mailing labels +% Maillabelformat sets the page and label information for mailing labels +\maillabelformat{\labelsetup{% Sets page and margin settings + \raggedbottom + \parskip=0pt plus0pt minus0pt + \runningheadformat{\bothpages{\line{}}} + \pageformat{\topmargin{1in} + \bottommargin{0pt} + \leftmargin{0pt} + \rightmargin{0pt}}% end page format + }% end labelsetup + \numberoflabelsperline{3}% three labels max + \labelheight{1in} + \labelwidth{2.75in} + \labelmat{.25in} +}% end mail label format diff --git a/macros/text1/models/mergetxt.texmodel b/macros/text1/models/mergetxt.texmodel new file mode 100644 index 0000000000..f2a6f50724 --- /dev/null +++ b/macros/text1/models/mergetxt.texmodel @@ -0,0 +1,96 @@ +% MERGE LETTER MODEL, merges address list with letter +\input mergetxt.texinput % READ TEXT1 merge file format instructions +% +% Select special fonts and setting markup used +% in the merge process here: +% +\selectfontset{cm18}{titlefont}{default} % special letter heading font +\titlepageformat{\titleleadskip{0in}} % no initial skip for letters +% +% Run TEXT1 against a file on your disk that includes +% this model. A set of five sample letters will be printed. The +% sample letter describes the mail merge setup. Once you have +% run the model and read the letter, make the necessary +% modifications to your file. Set the address field names of +% your address file in the "\fieldnames{name, name, ...}" +% markup with the data field names of your data base file. +% Create the "shell letter," your letter, which includes the +% address field names of your data file, preceded by a "\", +% i.e., \namea, \nameb, etc. You need use only those data +% fields necessary in the document and address label, but all +% fields in your data base file must be given in the field +% names markup. Specify the name of your letter file +% "shell letter" with the "\documentfilename{fn.ft}" markup; +% specify the address data file with the "\addressfile{...}" +% markup; and then PRINT the file containing your letter merge +% model to merge the address file with the shell letter and +% print the label sheet. +% +% NOTE: If you create an address file by hand remove the percent sign +% before the datacheck MARKUP. The number of the letter from the +% beginning of the merge file data base and the first and last +% data fields will be listed on the screen and in the log file +% when data check is active. This will aid you in finding any +% errors in your data file. +% +%\datacheck % SET DATACHECK by removing the "%" symbol +% +% Give all data field names in sequence of occurrence +% (address list names) +% +% Format: \fieldnames{name1, name2, name3, ..., namelast} + +\fieldnames{title, firstname, lastname, company, address, city, + state, zipcode, phone, amount} + +% Give file name for document text (letter file that includes +% the field names for the replaceable text in the document) +% +% Format: \documentfilename{filename.filetype} + +\documentfilename{mergelet.texmodel} + +% WARNING! +% If you want to modify the address label format, then the +% \addresslabelformat markup MUST come prior to the +% \datafilename markup. +% +% Format: \addresslabelformat{all fields and markup to create label} + +\addresslabelformat{\noindent\title\ \firstname\ \lastname\lbr + \company\lbr + \address\lbr + \city, \state\quad\zipcode} + +% Now specify where the address data file is located with +% the \datafilename markup. +% +% Format: \datafilename{filename.filetype} + +\datafilename{mergelst.texmodel} + +% PRINTING A MAILING LABEL SHEET +% +% You may use the "\maillabelformat{}" markup to change +% the default label format markup. The default label format +% prints three inch-high labels across the page which can be +% copied onto a label sheet with an appropriate copy machine. +% +% WARNING! +% The \maillabelformat{} markup must be placed BEFORE the +% \printlabels markup to change the system defaults. +% +% Select the font setto be used in printing the labels. + +\tenpt % prints labels with computer modern ten point + +\printlabels % print address label sheet for Xerox label sheet + +% Labels will be printed beginning on page 99. +% +% WARNING! +% If you have an empty data field occurs in the data being +% processed within the \addresslabelformat, the field will +% be printed as a blank space or as a blank line if the +% field is by itself on the line. + diff --git a/macros/text1/models/paper.texinput b/macros/text1/models/paper.texinput new file mode 100644 index 0000000000..b0baec1743 --- /dev/null +++ b/macros/text1/models/paper.texinput @@ -0,0 +1,10 @@ +% Student Paper Layout -- Monospace +\footnoteformat{\everyfootnote{\rm\pin{.5in}\psk{1\bl} + \frenchspacing\singlespace} +} +\bibliographyformat{\bibentryformat{\goodbreak\vs{1\bl} + \frenchspacing\singlespace\hp\nin} + \titleformat{\np\cl{\us\bibtitle} + \vs{\bl} + } +} diff --git a/macros/text1/models/paper.texmodel b/macros/text1/models/paper.texmodel new file mode 100644 index 0000000000..b5e7907d75 --- /dev/null +++ b/macros/text1/models/paper.texmodel @@ -0,0 +1,28 @@ +% Student Paper Layout +% Last updated on = 10/16/86 +\monospace +\doublespace +\input paper.texinput % get paper format +% Cover Page + \vsk{1in plus 2fil minus 1in} % space at top of page + \centerlinesbegin % all lines centered on cover page + \frenchspacing % no double spaces after periods on cover page +%%%% insert title (using one or more lines) between dashed lines +%-------------------------------------------------------------------- +%-------------------------------------------------------------------- +\vs{2in} % space between title and author +%%%% insert author(s) (using one or more lines) between dashed lines +%-------------------------------------------------------------------- +%-------------------------------------------------------------------- +\vs{2in} % space between author and course +%%%% insert course (using one or more lines) between dashed lines +%-------------------------------------------------------------------- +%-------------------------------------------------------------------- +\vs{.5in} % space between course and date +%%%% Date follows; \today = current date or type over with desired date +\today + \centerlinesend + \vs{2in plus 1 fil minus 1in} %space at bottom of page + \newpage %end of title page + \setpagenumber{1}\titlepage %no page number on first page of text +%%%% BEGINNING OF PAPER diff --git a/macros/text1/models/resume.texinput b/macros/text1/models/resume.texinput new file mode 100644 index 0000000000..5370817b18 --- /dev/null +++ b/macros/text1/models/resume.texinput @@ -0,0 +1,62 @@ +% +\catcode`*=11 +\if*msp +\pageformat{\pagelength{11in} + \pagewidth{8.5in} % 792pt = 11in; 612pt = 8.5in + \topmargin{1in} + \bottommargin{1.2in} % 58pt = .8in; 72pt = 1in + \leftmargin{1.2in} + \rightmargin{1in} % 86pt = 1.2in + \bindingadjust{0pt} +} +\titlepageformat{\titleleadskip{.15in} + \titlefootline{} +} +\paragraphskip{1\bl} \paragraphindent{0pt} +\def\name#1{\par\hfill#1\hfill\gdef\headname{#1}} +\name{} +\runningheadformat{\bothpages{\line{ + \lft{\headname}\ctr{{\it Curriculum Vitae}} + \rt{\bd\pagenumber}} \vs{\bl}} + } +\runningfootformat{\bothpages{ + \vs{\bl}\line{\lft{}\ctr{}\rt{\today}}} + } +% Defaults for the \label markup +\labelformat{\skipbefore{1\bl} + \labelwidth{72pt} + \gutter{28pt} + \everylabel{\defaultmono\bd} + } +% +\else +\pageformat{\pagelength{792pt} + \pagewidth{612pt} % 792pt = 11in; 612pt = 8.5in + \topmargin{68pt} + \bottommargin{52pt} % 58pt = .8in; 72pt = 1in + \leftmargin{72pt} + \rightmargin{74pt} % 86pt = 1.2in +} +\titlepageformat{\titleleadskip{.15in} + \titlefootline{} +} +\paragraphskip{6pt} \paragraphindent{0pt} +\def\name#1{\par\hfill#1\hfill\gdef\headname{#1}} +\name{} +\runningheadformat{\bothpages{ + \line{\lft{\headname}\ctr{\it Curriculum Vitae} + \rt{\bd\pagenumber}} \vs{\bl}} + } +\runningfootformat{\bothpages{ + \vs{\bl}\line{\lft{}\ctr{}\rt{\today}}} + } +% Defaults for the \label markup +\labelformat{\skipbefore{1\bl} + \labelwidth{72pt} + \gutter{28pt} + \everylabel{\bd} + } +\fi +% +\catcode`*=12 +% diff --git a/macros/text1/models/resume.texmodel b/macros/text1/models/resume.texmodel new file mode 100644 index 0000000000..54588fefed --- /dev/null +++ b/macros/text1/models/resume.texmodel @@ -0,0 +1,69 @@ +% Functional style; titled, justified resume +% +%********************* ***RESUME TEXMODEL*** ************************** +%* This TEXMODEL shows a sample resume. To get a copy of this sample, * +%* simply run this file through TeX as it is. * +%* When entering your own resume be sure to replace or delete all * +%* sample text. DO NOT use this model on a printer that only can * +%* print with \monospace. * +%************************************************************************ +% RESUME START +\input resume.texinput +\cl{\bd RESUME} +\par +\name{Orville T. Game} +\cl{\it 9987 NE Oak St., Arbor Bay, CK 58924} +\vs{1\bl} +\label{Objective} +Seeking position with manufacturing firm which will provide +oportunity for advancement into personel-related position. +\label{Education} +\it Doctor of Hagiology, \rm Medical subterfuge\rt{1983.}\lbr +Beasley College of Performing Arts, Pullman, CA + +\label{ }Completed courses in economic manipulation, +John\-ny Carson analysis, and unpadded scrimmage. +Special courses in radar sabotage, misspelling, and +stream of consciousness reporting of news. +Completed graduate courses in anthropology, anthrometry, anthrosophy, +anthromorphism, and camp counselling. +Committee: Michael Farnberger, Casper Weinberger, Bill Cheeseburger, +and Warren Burgher. +GPA: 1.75. 40\%\ financed by drug sales; 60\%\ by gambling. + +\label{}\it Master of Arts, \rm Philosophy\rt{1983.}\lbr +University of Idaho, Moscow, ID + +\label{}Completed courses in philosophy, filo-making, fillerupedness, +filling station technology, and filler. +Completed graduate courses in philosophy, philology, +philo\-lo\-gram\-matry, phylogeny, filliness, and phil\-i\-stines. +Special Committee: Phil Marquette, Phillip Petroleum, Philo Bellows, +and Phyllus Diller. +GPA: 0.63. 50\%\ financed by bribes, 50\%\ by unpaid loans. +\label{Related Experience} +\it Consultant, \rm Computing Service Center\rt{1985-}\lbr +Washington State University, Pullman, WA 99164-1220 +\par +\label{}Direct acquisition of antique typesetting machinery and old +metal sculptings for garden area. +In charge of coffee for management. +Qualified to exterminate bugs in really awkward and tiresome +programs. +Training to collect and recycle aluminum cans for distribution +to East coast distilleries. +\label{Other Experience} +\it Research Associate-Biowarfare, \rm Mars Institute\rt{1984-}\lbr +P.O. Box 9, Pullman, WA 99163 +\par +\label{}Participate in studies on neutralizing liberal demo\-crats with +nuclear warheads (low radiation, high neutron count). +Analyze patterns of ideological disarray for potential weakness. +Write articles on normative aspects of unethical behavior. +Keep memoirs of same for distribution to publishers. +\label{Awards} + Special award for boot-licking, 1982. +Outstanding Stand Out, 1983. +\label{Activities} + Drama Club, 1980--82; Alpha Kappa Kappa Fraternity +\label{References} On request. diff --git a/macros/text1/models/thesis.texinput b/macros/text1/models/thesis.texinput new file mode 100644 index 0000000000..2dfd40e5c0 --- /dev/null +++ b/macros/text1/models/thesis.texinput @@ -0,0 +1,159 @@ +% WSU graduate school thesis requirements. +\paragraphindent{36pt} +\paragraphskip{12pt plus 2pt minus 1pt} +\raggedbottom +% +% +\catcode`*=11 +\if*msp +\pageformat{\pagelength{11in} + \pagewidth{8.5in} + \topmargin{1.2in} + \bottommargin{1.2in} + \leftmargin{1.2in} + \rightmargin{1in} + \bindingadjust{0in} +} +\titlepageformat{\titleleadskip{1.25in} + \titlefootline{} +} +% Default values for the \chapter markup +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \centerline{\bd Chapter \chapternumber} + \centerline{\bd\chaptertitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end chapter format +% Default values for the \subheada markup +\subheadaformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\bd\nin\subheadatitle\par\nobreak + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadaformat markup +% Default values for the \subheadb markup +\subheadbformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\it\nin\subheadbtitle\par\nobreak + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadbformat markup +% Default values for the \preface markup +\prefaceformat{% + \titleformat{\dumpinsertseject + \centerline{\bd\prefacetitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +} +\paragraphskip{12pt} +\asisformat{\skipbefore{0pt} + \everyasis{\rm\ssp\leftindent{36pt}} + \skipafter{0pt}} +% +\blockquoteformat{\skipbefore{0pt} + \everyblockquote{\rm\ssp\pin{.3in}\psk{12pt} + \leftindent{36pt} \rightindent{36pt}} + \skipafter{0pt}} +% +\else +\pageformat{\pagelength{11in} + \pagewidth{8.5in} + \topmargin{1.2in} + \bottommargin{1in} + \leftmargin{1.3in} + \rightmargin{1in} + \bindingadjust{0in} +} +\titlepageformat{\titleleadskip{1.25in} + \titlefootline{} +} +% Default values for the \subheada markup +\subheadaformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\bd\nin\subheadatitle\par\nobreak + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadaformat markup +% Default values for the \subheadb markup +\subheadbformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\it\nin\subheadbtitle\par\nobreak + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadbformat markup +\asisformat{\skipbefore{0pt} + \everyasis{\tenpt\ssp\leftindent{36pt}} + \skipafter{0pt}} +% +\blockquoteformat{\skipbefore{0pt} + \everyblockquote{\rm\ssp\pin{24pt}\psk{6pt} + \leftindent{36pt} \rightindent{36pt}} + \skipafter{0pt}} +% +\footnoteformat{\footnotedivider{144pt} % 144pt = 2in + \skipafterdivider{2.6pt} + \textreferenceposition{up} + \textreferenceplacement{after} + \textreferencefont{\tenpt} + \textreferencestyle{1} + \notereferenceposition{down} + \notereferencefont{\tenpt} + \notereferencestyle{1.} + \notereferencegutter{1em} + \everyfootnote{\tenpt\ssp\pin{12pt}\psk{6pt}\lin{6pt}} +} +% +\endnoteformat{\skipbefore{4pt} + \textreferenceposition{down} + \textreferencefont{\rm} + \textreferencestyle{[1]} + \notereferenceposition{down} + \notereferencefont{\rm} + \notereferencestyle{1.} + \notereferencegutter{1em} % 1em = 12pt in a 12pt font + \everyendnote{\rm\pin{12pt}\psk{6pt}\lin{0pt}} +} +\fi +% +\def\copyrt{\if*msp{}\else + {{$\copyright$}}\fi} +% +\newcount\P +\def\signatures#1#2{\par\vs{54pt}\P=#1 + \ifnum\P>50 \P=50 + \message{Number of signature lines will be limited to 50}\fi + \advance\P by-1 + \hbox{\hs{3in}\vrule width3in height.4pt} + \hbox{\hs{3in}\hbox to 3in{\hfill #2 \hfill}} + \vs{36pt} + \loop\ifnum\P>0 + \hbox{\hs{3in}\vrule width 3in height.4pt} + \vs{48pt} + \advance\P by-1\repeat + }% +% +\tableofcontentsformat{% + \toctitle{\ssp\centerline{\bd Table of Contents} + \vs{\bl}}} +\catcode`*=12 diff --git a/macros/text1/models/thesis.texmodel b/macros/text1/models/thesis.texmodel new file mode 100644 index 0000000000..59fc7c241f --- /dev/null +++ b/macros/text1/models/thesis.texmodel @@ -0,0 +1,139 @@ +% WSU Graduate School Thesis Requirements +% Last updated on = 6/15/87 +%********************* ***THESIS TEXMODEL*** ************************** +%* This TEXMODEL shows some sections of a sample thesis. For a printout * +%* of a sample thesis, simply run this file through TeX as it is. * +%* When entering your own thesis, be sure to replace or delete all * +%* sample text. If you are printing your thesis on a monospaced printer,* +%* the \monospace command must be activated by removing the percent * +%* sign preceding it. * +%************************************************************************ +% THESIS START + +% ***TITLE PAGE*** + +%\monospace +\input thesis.texinput +\justify \singlespace +\setpagenumber{-1} +\centerlinesbegin +\bd +A PHENOMENOLOGICAL THEORY OF +\vs{12pt} +CROSS-CULTURAL AESTHETICS +\vs{1.25in} +\rm +By +\vs{12pt} +GEORG MACQUET +\vs{1.25in} +A thesis submitted in partial fulfillment of +the requirements for the degree of +\vs{12pt} +MASTER OF ARTS IN ANTHROPOLOGY +\vs{24pt} +WASHINGTON STATE UNIVERSITY +Department of Anthropology +\vs{12pt} +December 1986 +\vs{.8in} +\copyrt Copyright by GEORG MACQUET, 1986 +All Rights Reserved +\centerlinesend %DO NOT DELETE THIS LINE UNLESS LINE 19 IS DELETED +% ***COPYRIGHT PAGE*** +\np +\titlepage +\vsk{7in} +\centerlinesbegin +\copyrt Copyright by GEORG MACQUET, 1986 +All Rights Reserved +\centerlinesend %DO NOT DELETE THIS LINE UNLESS LINE 47 IS DELETED +% ***SIGNATURE PAGE*** +\newpage +\setpagenumber{-2} +\rightragged +\vsk{2.8in} +\doublespace +\nin To the Faculty of Washington State University: +\par +The members of the Committee appointed to examine the thesis of +GEORG MACQUET find it satisfactory and recommend that it be +accepted. +% +%****************************************************************** +%* The \signatures command draws the number of lines specified * +%* in the first parameter for the committee members' signatures. * +%* The first parameter may be any number, but if it is larger * +%* than 5, spacing must be changed to make it fit on one page. * +%* The second parameter of the \signatures command will be * +%* centered as a title under the first line. * +%****************************************************************** +% +\singlespace +\signatures{4}{Chairperson} +\doublespace +% ***ACKNOWLEDGE*** +\newpage +\justify +\preface{Acknowledgements} +I would like to thank Clarke Moustakos and Helen Burdeman +for their help in advising me to study Anthropology at ... +% ***ABSTRACT PAGE*** +\newpage +\vsk{.6in} +\centerlinesbegin +\bd +A PHENOMENOLOGICAL THEORY OF +\bd +CROSS-CULTURAL AESTHETICS +\rm +ABSTRACT +\putincontents1{\nin Abstract\leader\pagenumber} +\vs{12pt} +\singlespace +by Georg Macquet, M.A. +Washington State University +December 1986 +\centerlinesend %DO NOT DELETE THIS LINE UNLESS LINE 84 IS DELETED +\doublespace +\noindent Chairperson: V.~L.~Nabokov +\par +Aesthetic phenomena can be defined from an anthropological perspective. +Anthropology is empirical; therefore, aesthetic phenomena must also be +defined empirically to be identified by the techniques of... +\par +%********************** MAIN TEXT OF THESIS ************************* +%* This ends the preliminary pages of the thesis and begins the main * +%* text. The remaining sections of the thesis may be entered using any * +%* or all standard TeXT1 markup commands, including \autofootnote, * +%* \bibliography, \autoendnote, \subheada, etc. For more information * +%* on the standard TeXT1 markup commands see the "TeXT1 Users Guide * +%* (S-522)," or the "TeXT1 Reference Manual (S-523)." * +%************************************************************************ +\chapter{Introduction} +\setpagenumber{1} +The original perspective of anthropology can contribute to a comprehension of +art. Observational criteria are needed to identify aesthetic phenomena +uniquely, and anthropology \el3 +\sha{Art as Product} +In the past, the arts have been studied primarily as products in anthropology. +But the product must be created by human beings who behave in certain ways. In +Merriam's words: + +\bqb Through the humanistic elements of his culture, man seems to be making +pointed commentary on how he lives; his social life in itself seems to bring +about conditions under which he is unable to restrain himself from commenting +upon himself\el3 +\bqe + +\sha{Styles of Representation} +Representations are images that refer to the visual appearance of a thing. +Gombrich's theory\afn{wherin a representation is not a symbol} is not +appropriate in this context. Indeed, A.P. Meriam (1971)\aen{This is the only +edition with the full analysis of semantic theories applied to oriental +cultures.} states that\el3 +\newpage +\cl{\bd Notes} +\printendnotes +\toc{-5} +\bye diff --git a/macros/text1/pc/blocks/appendix.blk b/macros/text1/pc/blocks/appendix.blk new file mode 100644 index 0000000000..0000bd5a39 --- /dev/null +++ b/macros/text1/pc/blocks/appendix.blk @@ -0,0 +1,16 @@ +% Default values for the \appendix markup +\appendixformat{\numberingstyle{A} + \titleformat{\dumpinsertseject + \centerline{\twelvept\bold Appendix \appendixnumber} + \centerline{\twelvept\bold\appendixtitle} + \vs{1\bl} + \setchapternumber{0} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + \setfigurenumber{0} + \settablenumber{0} + }% end titleformat + \incontents{yes} +}% end appendix format diff --git a/macros/text1/pc/blocks/asism.blk b/macros/text1/pc/blocks/asism.blk new file mode 100644 index 0000000000..c5ea6006c4 --- /dev/null +++ b/macros/text1/pc/blocks/asism.blk @@ -0,0 +1,5 @@ +% Default values for \asisbegin in \monospace +\asisformat{\skipbefore{1\bl} + \everyasis{\leftindent{0pt}} + \skipafter{1\bl} +}% end as is format diff --git a/macros/text1/pc/blocks/asisp.blk b/macros/text1/pc/blocks/asisp.blk new file mode 100644 index 0000000000..c9a65c3860 --- /dev/null +++ b/macros/text1/pc/blocks/asisp.blk @@ -0,0 +1,5 @@ +% Default values for the \asisbegin markup +\asisformat{\skipbefore{6pt} + \everyasis{\leftindent{0pt}} + \skipafter{6pt} +}% end as is format diff --git a/macros/text1/pc/blocks/bibliog.blk b/macros/text1/pc/blocks/bibliog.blk new file mode 100644 index 0000000000..691cee2263 --- /dev/null +++ b/macros/text1/pc/blocks/bibliog.blk @@ -0,0 +1,10 @@ +% Default values for the \bibliography markup +\bibliographyformat{% + \titleformat{\dumpinsertseject + \centerline{\twelvept\bd\bibtitle} + \vs{\bl} + }% end titleformat + \everybibentry{\vs{1\bl}\goodbreak\hp\nin} + \sameauthorrulesize{width 3em height .6ex depth -.5ex} + \incontents{yes} +}% end bibliographyformat markup diff --git a/macros/text1/pc/blocks/bquotem.blk b/macros/text1/pc/blocks/bquotem.blk new file mode 100644 index 0000000000..87d2605a8a --- /dev/null +++ b/macros/text1/pc/blocks/bquotem.blk @@ -0,0 +1,7 @@ +% Defaults for \blockquotebegin in \monospace +\blockquoteformat{\skipbefore{1\bl} + \everyblockquote{\rm\leftindent{36pt} % 36pt = .5in + \rightindent{36pt} + } + \skipafter{1\bl} +}% end monospace block quote begin format diff --git a/macros/text1/pc/blocks/bquotep.blk b/macros/text1/pc/blocks/bquotep.blk new file mode 100644 index 0000000000..4fdf50b4c9 --- /dev/null +++ b/macros/text1/pc/blocks/bquotep.blk @@ -0,0 +1,7 @@ +% Defaults for the \blockquotebegin markup +\blockquoteformat{\skipbefore{6pt} + \everyblockquote{\tenpt\leftindent{24pt} % 24pt = .3in + \rightindent{24pt} + } + \skipafter{6pt} +}% end block quote begin format diff --git a/macros/text1/pc/blocks/chapter.blk b/macros/text1/pc/blocks/chapter.blk new file mode 100644 index 0000000000..9796e18beb --- /dev/null +++ b/macros/text1/pc/blocks/chapter.blk @@ -0,0 +1,13 @@ +% Default values for the \chapter markup +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \centerline{\twelvept\bd Chapter \chapternumber} + \centerline{\twelvept\bd\chaptertitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end chapter format diff --git a/macros/text1/pc/blocks/contents.blk b/macros/text1/pc/blocks/contents.blk new file mode 100644 index 0000000000..45fa4e571d --- /dev/null +++ b/macros/text1/pc/blocks/contents.blk @@ -0,0 +1,35 @@ +% Defaults when using the \tableofcontents markup +\tableofcontentsformat{% + \toctitle{\centerline{\bd Table of Contents} + \vs{1\bl}} + \prefacetocformat{\nin\prefacetitle\leader\pagenumber} + \parttocformat{\vs{1\bl} + \centerline{Part \partnumber} + \centerline{\parttitle} + \vs{1\bl} + \nin Part \partnumber \leader \pagenumber} + \continuechapter{no} + \chaptertocformat{\hangingchapternumber \chaptertitle \leader \pagenumber} + \hangingchapterindent{.25in} + \appendixtocformat{\hangingappendixnumber \appendixtitle \leader \pn} + \hangingappendixindent{.25in} + \subheadatocformat{\leftindent{.5in}\nin + \subheadatitle \leader \pagenumber} + \subheadbtocformat{\leftindent{1in}\nin + \subheadbtitle \leader \pagenumber} + \subheadctocformat{\leftindent{1.5in}\nin + \subheadctitle \leader \pagenumber} + \subheaddtocformat{\leftindent{2in}\nin + \subheaddtitle \leader \pagenumber} + \bibliographytocformat{\nin\bibtitle \leader \pagenumber} + \figuretoctitle{\newpage + \centerline{\bd List of Figures} + \line{Figure \rt{Page}}} + \figuretocformat{\hangingnumber{\figurenumber.}\figuretitle\leader\pagenumber} + \hangingfigureindent{.25in} + \tabletoctitle{\newpage + \centerline{\bd List of Tables} + \line{Table \rt{Page}}} + \tabletocformat{\hangingnumber{\tablenumber.}\tabletitle\leader\pagenumber} + \hangingtableindent{.25in} +} diff --git a/macros/text1/pc/blocks/enotem.blk b/macros/text1/pc/blocks/enotem.blk new file mode 100644 index 0000000000..2716defe7a --- /dev/null +++ b/macros/text1/pc/blocks/enotem.blk @@ -0,0 +1,11 @@ +% Defaults for \autoendnote with \monospace +\endnoteformat{\skipbefore{0\bl} + \textreferenceposition{down} + \textreferencefont{\rm} + \textreferencestyle{[1]} + \notereferenceposition{down} + \notereferencefont{\rm} + \notereferencestyle{1.} + \notereferencegutter{1em} % 1em = 12pt in a 12pt font + \everyendnote{\rm\pin{0pt}\lin{1.2em}} +} diff --git a/macros/text1/pc/blocks/enotep.blk b/macros/text1/pc/blocks/enotep.blk new file mode 100644 index 0000000000..4f2b55d4e1 --- /dev/null +++ b/macros/text1/pc/blocks/enotep.blk @@ -0,0 +1,11 @@ +% Default values for the \autoendnote markup +\endnoteformat{\skipbefore{4pt} + \textreferenceposition{down} + \textreferencefont{\tenpt} + \textreferencestyle{[1]} + \notereferenceposition{down} + \notereferencefont{\tenpt} + \notereferencestyle{1.} + \notereferencegutter{1em} % 1em = 12pt in a 12pt font + \everyendnote{\tenpt\pin{0pt}\lin{1.2em}} +}% end endnoteformat markup diff --git a/macros/text1/pc/blocks/figurem.blk b/macros/text1/pc/blocks/figurem.blk new file mode 100644 index 0000000000..9d7263c218 --- /dev/null +++ b/macros/text1/pc/blocks/figurem.blk @@ -0,0 +1,8 @@ +% Defaults for \figure with \monospace +\figureformat{\skipbefore{1\bl} + \position{\float} + \titleformat{\bqb\hp + \bd Figure \figurenumber. \rm\figuretitle\bqe} + \incontents{yes} + \skipafter{1\bl} +}% End figure format markup diff --git a/macros/text1/pc/blocks/figurep.blk b/macros/text1/pc/blocks/figurep.blk new file mode 100644 index 0000000000..e2131696ef --- /dev/null +++ b/macros/text1/pc/blocks/figurep.blk @@ -0,0 +1,8 @@ +% Defaults for the \figure markup +\figureformat{\skipbefore{1\bl} + \position{\float} + \titleformat{\bqb\hp\tenpt + \bd Figure \figurenumber. \rm\figuretitle\bqe} + \incontents{yes} + \skipafter{1\bl} +}% End figure format markup diff --git a/macros/text1/pc/blocks/fnotem.blk b/macros/text1/pc/blocks/fnotem.blk new file mode 100644 index 0000000000..a3d5840598 --- /dev/null +++ b/macros/text1/pc/blocks/fnotem.blk @@ -0,0 +1,14 @@ +% Defaults for \autofootnote with \monospace +\footnoteformat{\skipbeforedivider{12pt} + \skipafterdivider{2.6pt} + \footnotedivider{144pt} % 144pt = 2in + \textreferenceposition{down} + \textreferenceplacement{after} + \textreferencefont{\rm} + \textreferencestyle{(1)} + \notereferenceposition{down} + \notereferencefont{\rm} + \notereferencestyle{1.} + \notereferencegutter{1em} + \everyfootnote{\rm\pin{.5in}\psk{.5in}\lin{0pt}\rin{0pt}} +} diff --git a/macros/text1/pc/blocks/fnotep.blk b/macros/text1/pc/blocks/fnotep.blk new file mode 100644 index 0000000000..97fb1ddf0c --- /dev/null +++ b/macros/text1/pc/blocks/fnotep.blk @@ -0,0 +1,14 @@ +% Defaults for the \autofootnote markup +\footnoteformat{\skipbeforedivider{12pt} + \skipafterdivider{2.6pt} + \footnotedivider{144pt} % 144pt = 2in + \textreferenceposition{up} + \textreferenceplacement{after} + \textreferencefont{\tenpt} + \textreferencestyle{1} + \notereferenceposition{down} + \notereferencefont{\tenpt} + \notereferencestyle{1.} + \notereferencegutter{1em} + \everyfootnote{\tenpt\pin{20pt}\lin{0pt}} +} diff --git a/macros/text1/pc/blocks/fontm.blk b/macros/text1/pc/blocks/fontm.blk new file mode 100644 index 0000000000..5f8455a998 --- /dev/null +++ b/macros/text1/pc/blocks/fontm.blk @@ -0,0 +1,6 @@ +% Default values for the \monospace markup +\monospace + % You may change the default monspace fonts by removing the % symbol + % from the \selectfontset and \defaultmono\rm markups below. +% \selectfontset{monofont}{defaultmono}{default} % +% \defaultmono\rm diff --git a/macros/text1/pc/blocks/fontp.blk b/macros/text1/pc/blocks/fontp.blk new file mode 100644 index 0000000000..5393d563eb --- /dev/null +++ b/macros/text1/pc/blocks/fontp.blk @@ -0,0 +1,6 @@ +% Default values for the proportional space fonts +\selectfontset{cm12}{twelvept}{default} % default twelve point set +\selectfontset{cm10}{tenpt}{default} % alternate ten point set +\twelvept % default font specification +\selectmathset{cm97m}{mathdefault} % default math font set +\mathdefault % default math specification diff --git a/macros/text1/pc/blocks/index.blk b/macros/text1/pc/blocks/index.blk new file mode 100644 index 0000000000..684c4407d1 --- /dev/null +++ b/macros/text1/pc/blocks/index.blk @@ -0,0 +1,8 @@ +\indexformat1{\respectcase{no} + \style{indent} + \leadering{no} + \everyletterbreak{\vs{1\bl}} + \indentsubentry1{1em} + \indentsubentry2{2em} + \everyhang{1.5em} + \everyindex{\tenpt}} diff --git a/macros/text1/pc/blocks/label.blk b/macros/text1/pc/blocks/label.blk new file mode 100644 index 0000000000..d4da9e3063 --- /dev/null +++ b/macros/text1/pc/blocks/label.blk @@ -0,0 +1,6 @@ +% Defaults for the \label markup +\labelformat{\skipbefore{1\bl} + \labelwidth{72pt} + \gutter{1em} + \everylabel{\rm} + } diff --git a/macros/text1/pc/blocks/lists.blk b/macros/text1/pc/blocks/lists.blk new file mode 100644 index 0000000000..874be36899 --- /dev/null +++ b/macros/text1/pc/blocks/lists.blk @@ -0,0 +1,13 @@ +% Defaults for \listbegin, \listlevel, and \bullet +\listformat{\skipbefore{0\bl} + \liststyle{1.,a.,i.,1),a),i),(1)} + \everylistlevel1{\rm\lin{36pt}\gutter{1em}} % 36pt = .5in + \everylistlevel2{\rm\lin{58pt}\gutter{1em}} % 58pt = .8in + \everylistlevel3{\rm\lin{79pt}\gutter{1em}} % 79pt = 1.1in + \everylistlevel4{\rm\lin{101pt}\gutter{1em}} % 101pt = 1.4in + \everylistlevel5{\rm\lin{122pt}\gutter{1em}} % 122pt = 1.7in + \everylistlevel6{\rm\lin{144pt}\gutter{1em}} % 144pt = 2.0in + \everylistlevel7{\rm\lin{166pt}\gutter{1em}} % 166pt = 2.3in + \everybullet{\rm\lin{+36pt}\gutter{1em}} % 36pt = .5in + \skipafter{0\bl} +} diff --git a/macros/text1/pc/blocks/maillbls.blk b/macros/text1/pc/blocks/maillbls.blk new file mode 100644 index 0000000000..145fd0667f --- /dev/null +++ b/macros/text1/pc/blocks/maillbls.blk @@ -0,0 +1,17 @@ +% Set format for mail labels with the MERGE LETTER MODEL + +% Maillabelformat sets the page and label information for mailing labels +\maillabelformat{\labelsetup{% Sets page and margin settings + \newpage % start labels on a new page + \notitlepage % labels not started on a title page + \runningheadformat{\bothpages{\line{}}} % no page #s + \pageformat{\topmargin{1in} % new page dimensions + \bottommargin{0pt} + \leftmargin{0pt} + \rightmargin{0pt}}% end page format + }% end labelsetup + \numberoflabelsperline{3} % three labels per line max + \labelheight{1in} % each label 1 inch high + \labelwidth{2.75in} % each label 2.75 inches wide + \labelmat{.25in} % margin to text is .25 inches +}% end mail label format diff --git a/macros/text1/pc/blocks/marnote.blk b/macros/text1/pc/blocks/marnote.blk new file mode 100644 index 0000000000..ded8cac18a --- /dev/null +++ b/macros/text1/pc/blocks/marnote.blk @@ -0,0 +1,6 @@ +% Default values for the \marginnote markup +\marginnoteformat{\position{left} + \notewidth{54pt} + \notegutter{6pt} + \everymarginnote{\tenpt\rr} +}% end margin note format diff --git a/macros/text1/pc/blocks/multicol.blk b/macros/text1/pc/blocks/multicol.blk new file mode 100644 index 0000000000..81b2522cdb --- /dev/null +++ b/macros/text1/pc/blocks/multicol.blk @@ -0,0 +1,10 @@ +% Default multiple column formats +\multicolumnformat{ + \twocolumnwidth{.48\galleywidth} % approximately 3 inches + \threecolumnwidth{.31\galleywidth} % approximately 2 inches + \twocolumngutter{.04\galleywidth} % approximately .2 inches + \threecolumngutter{.035\galleywidth} + \columnrulewidth{0.0pt} + \skipbefore{6pt plus3pt minus2pt} % flexible format only + \skipafter{6pt plus3pt minus2pt} % flexible format only + } diff --git a/macros/text1/pc/blocks/pagem.blk b/macros/text1/pc/blocks/pagem.blk new file mode 100644 index 0000000000..99694f4721 --- /dev/null +++ b/macros/text1/pc/blocks/pagem.blk @@ -0,0 +1,11 @@ +% Default page dimensions and margins +\pageformat{\pagelength{11in} % 792pt = 11in + \pagewidth{8.5in} % 612pt = 8.5in + \topmargin{1in} % 72pt = 1in + \bottommargin{1in} + \leftmargin{1.2in} % 86pt = 1.2in + \rightmargin{1in} + \bindingadjust{0in} % none +}% end page format +\raggedbottom % allows the bottom line to fluctuate up + % and down a couple lines diff --git a/macros/text1/pc/blocks/pagep.blk b/macros/text1/pc/blocks/pagep.blk new file mode 100644 index 0000000000..1c521e133d --- /dev/null +++ b/macros/text1/pc/blocks/pagep.blk @@ -0,0 +1,11 @@ +% Default page dimensions and margins +\pageformat{\pagelength{11in} % 792pt = 11in + \pagewidth{8.5in} % 612pt = 8.5in + \topmargin{1in} % 72pt = 1in + \bottommargin{1in} + \leftmargin{1.2in} % 86pt = 1.2in + \rightmargin{1in} + \bindingadjust{0in} +}% end pageformat +\normalbottom % text height will be the same for each + % page. Bottom lines will be even. diff --git a/macros/text1/pc/blocks/parm.blk b/macros/text1/pc/blocks/parm.blk new file mode 100644 index 0000000000..2d9c676951 --- /dev/null +++ b/macros/text1/pc/blocks/parm.blk @@ -0,0 +1,6 @@ +% Default paragraph specifications for monospace fonts +\paragraphindent{36pt} % indent for the first line of a paragraph +\paragraphskip{0pt} % distance between paragraphs +\justify +\hyphenon % hyphenation either on (\hyphenon) + % or off (\hyphenoff) diff --git a/macros/text1/pc/blocks/parp.blk b/macros/text1/pc/blocks/parp.blk new file mode 100644 index 0000000000..b31df93253 --- /dev/null +++ b/macros/text1/pc/blocks/parp.blk @@ -0,0 +1,11 @@ +% Default paragraph specifications for proportional fonts +\paragraphindent{24pt} % indent for first line of text +\paragraphskip{0pt plus 3pt minus 0pt} % Distance skipped between + % paragraphs. Plus and minus refer to space + % that may be added or subtracted from the + % initial setting (0pt) to make the lines + % even at the bottom of the page. + +\justify % all text will be justified +\hyphenon % hyphenation either on (\hyphenon) + % or off (\hyphenoff) diff --git a/macros/text1/pc/blocks/part.blk b/macros/text1/pc/blocks/part.blk new file mode 100644 index 0000000000..68545f85ba --- /dev/null +++ b/macros/text1/pc/blocks/part.blk @@ -0,0 +1,20 @@ +% Default values for the \part markup +\partformat{\numberingstyle{1} + \titleformat{\dumpinsertseject\titlepage + \hrule height 0pt depth 0pt + \vfil % Produces a half title page + \centerline{\twelvept\bold Part \partnumber} + \centerline{\twelvept\bold \parttitle} + \newpage + \setchapternumber{0} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + \setfootnotenumber{0} + \setendnotenumber{0} + \setfigurenumber{0} + \settablenumber{0} + }% end titleformat + \incontents{yes} +}% end part format diff --git a/macros/text1/pc/blocks/preface.blk b/macros/text1/pc/blocks/preface.blk new file mode 100644 index 0000000000..3c44e37a02 --- /dev/null +++ b/macros/text1/pc/blocks/preface.blk @@ -0,0 +1,12 @@ +% Default values for the \preface markup +\prefaceformat{% + \titleformat{\dumpinsertseject + \centerline{\twelvept\bd\prefacetitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end preface format diff --git a/macros/text1/pc/blocks/runfoot.blk b/macros/text1/pc/blocks/runfoot.blk new file mode 100644 index 0000000000..8aecd0311a --- /dev/null +++ b/macros/text1/pc/blocks/runfoot.blk @@ -0,0 +1,6 @@ +% Default values for the running foot title +\runningfootformat{% + \bothpages{\vs{1\bl} + \line{\twelvept\lft{}\ctr{}\rt{}} + }% end bothpages +}% end runningfootformat markup diff --git a/macros/text1/pc/blocks/runhead.blk b/macros/text1/pc/blocks/runhead.blk new file mode 100644 index 0000000000..c88e8758cb --- /dev/null +++ b/macros/text1/pc/blocks/runhead.blk @@ -0,0 +1,6 @@ +% Default values for the running head title +\runningheadformat{% + \bothpages{\line{\twelvept\lft{}\ctr{}\rt{\pagenumber}} + \vs{1\bl} + }% end bothpages +}% end runningheadformat markup diff --git a/macros/text1/pc/blocks/subheada.blk b/macros/text1/pc/blocks/subheada.blk new file mode 100644 index 0000000000..ce0c4ab5fd --- /dev/null +++ b/macros/text1/pc/blocks/subheada.blk @@ -0,0 +1,11 @@ +% Default values for the \subheada markup +\subheadaformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\bd\nin\subheadatitle\par\nobreak + \vs{1\bl}\nobreak + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadaformat markup diff --git a/macros/text1/pc/blocks/subheadb.blk b/macros/text1/pc/blocks/subheadb.blk new file mode 100644 index 0000000000..e3089ad1c4 --- /dev/null +++ b/macros/text1/pc/blocks/subheadb.blk @@ -0,0 +1,10 @@ +% Default values for the \subheadb markup +\subheadbformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\it\nin\subheadbtitle\par\nobreak + \vs{1\bl}\nobreak + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadbformat markup diff --git a/macros/text1/pc/blocks/subheadc.blk b/macros/text1/pc/blocks/subheadc.blk new file mode 100644 index 0000000000..be70a69692 --- /dev/null +++ b/macros/text1/pc/blocks/subheadc.blk @@ -0,0 +1,9 @@ +% Default values for the \subheadc markup +\subheadcformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\nin\subheadctitle\par\nobreak + \vs{1\bl}\nobreak + \setsubheaddnumber{0} + }% end titleformat + \incontents{no} +}% end subheadcformat markup diff --git a/macros/text1/pc/blocks/subheadd.blk b/macros/text1/pc/blocks/subheadd.blk new file mode 100644 index 0000000000..8b1cd8b6f3 --- /dev/null +++ b/macros/text1/pc/blocks/subheadd.blk @@ -0,0 +1,7 @@ +% Default values for the \subheadd markup +\subheaddformat{\numberingstyle{1} + \titleformat{\goodbreak + {\twelvept\it \subheaddtitle.} + }% end titleformat + \incontents{no} +}% end subheadd markup diff --git a/macros/text1/pc/blocks/tablem.blk b/macros/text1/pc/blocks/tablem.blk new file mode 100644 index 0000000000..3ab57a8d73 --- /dev/null +++ b/macros/text1/pc/blocks/tablem.blk @@ -0,0 +1,8 @@ +% Default \tabletitle when using \monospace +\tableformat{\titleformat{\vs{\bl} + \cl{\bd Table \tablenumber} + \cl{\rm\tabletitle} + \vs{\bl} + } + \incontents{yes} +} diff --git a/macros/text1/pc/blocks/tablep.blk b/macros/text1/pc/blocks/tablep.blk new file mode 100644 index 0000000000..1b1f0c4162 --- /dev/null +++ b/macros/text1/pc/blocks/tablep.blk @@ -0,0 +1,9 @@ +% Default values for the \tabletitle markup +\tableformat{% + \titleformat{\vs{\bl} + \cl{\twelvept\bd Table \tablenumber} + \cl{\twelvept\tabletitle} + \vs{\bl} + }% end titleformat + \incontents{yes} +}% end tableformat markup diff --git a/macros/text1/pc/blocks/talaris.blk b/macros/text1/pc/blocks/talaris.blk new file mode 100644 index 0000000000..0d908cc87f --- /dev/null +++ b/macros/text1/pc/blocks/talaris.blk @@ -0,0 +1,6 @@ +% Default values for the Talaris fonts +\selectfontset{amrom12}{twelvept}{default} % default twelve point set +\selectfontset{amrom10}{tenpt}{default} % alternate ten point set +\twelvept % default font specification +\selectmathset{am97m}{mathdefault} % default math font set +\mathdefault % default math specification diff --git a/macros/text1/pc/blocks/titlepg.blk b/macros/text1/pc/blocks/titlepg.blk new file mode 100644 index 0000000000..e53cfb4bdb --- /dev/null +++ b/macros/text1/pc/blocks/titlepg.blk @@ -0,0 +1,4 @@ +% Default for the title (first) page +\titlepageformat{\titleleadskip{1in} + \titlefootline{} +}% end titlepage markup diff --git a/macros/text1/pc/fonts/dt.pk b/macros/text1/pc/fonts/dt.pk new file mode 100644 index 0000000000..137d069175 Binary files /dev/null and b/macros/text1/pc/fonts/dt.pk differ diff --git a/macros/text1/pc/misc/cm10.txt b/macros/text1/pc/misc/cm10.txt new file mode 100644 index 0000000000..aa431de13e --- /dev/null +++ b/macros/text1/pc/misc/cm10.txt @@ -0,0 +1,34 @@ +\font\cmXbi=cmbxti10 +\font\cmXcc=cmcsc10 +\expandafter\newdimen\csname\the\naMEtok ilsx\endcsname +\global\csname\the\naMEtok ilsx\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsx\endcsname=0pt +\csname\the\naMEtok ilsx\endcsname=12pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\tenrm}% +\def\noexpand\mi{\fam1\teni}% +\def\noexpand\sy{\fam2\tensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\tenrm \textfont1=\teni + \textfont2=\tensy \textfont3=\tenex + \textfont\itfam=\tenit + \textfont\ttfam=\tentt \textfont\bffam=\tenbf + \textfont\ccfam=\cmXcc +\def\noexpand\bd{\fam\bffam\tenbf}% +\def\noexpand\it{\fam\itfam\tenit}% +\def\noexpand\tt{\fam\ttfam\tentt}% +\def\noexpand\cc{\fam\ccfam\cmXcc}% +\def\noexpand\bi{\fam\bifam\cmXbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsx\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm108m.mth b/macros/text1/pc/misc/cm108m.mth new file mode 100644 index 0000000000..2410c5b3d7 --- /dev/null +++ b/macros/text1/pc/misc/cm108m.mth @@ -0,0 +1,10 @@ +\font\cmVIIIrm=cmr8 \font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\tenrm \scriptfont1=\teni + \scriptfont2=\tensy \scriptfont3=\tenex + \scriptfont\bffam=\tenbf + \scriptscriptfont0=\cmVIIIrm \scriptscriptfont1=\cmVIIImi + \scriptscriptfont2=\cmVIIIsy \scriptscriptfont3=\cmVIIIex + \scriptscriptfont\bffam=\cmVIIIbd}% diff --git a/macros/text1/pc/misc/cm109m.mth b/macros/text1/pc/misc/cm109m.mth new file mode 100644 index 0000000000..7b5104aaf7 --- /dev/null +++ b/macros/text1/pc/misc/cm109m.mth @@ -0,0 +1,10 @@ +\font\cmIXrm=cmr9 \font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\tenrm \scriptfont1=\teni + \scriptfont2=\tensy \scriptfont3=\tenex + \scriptfont\bffam=\tenbf + \scriptscriptfont0=\cmIXrm \scriptscriptfont1=\cmIXmi + \scriptscriptfont2=\cmIXsy \scriptscriptfont3=\cmIXex + \scriptscriptfont\bffam=\cmIXbd}% diff --git a/macros/text1/pc/misc/cm11.txt b/macros/text1/pc/misc/cm11.txt new file mode 100644 index 0000000000..aa9300ae37 --- /dev/null +++ b/macros/text1/pc/misc/cm11.txt @@ -0,0 +1,40 @@ +\global\newif\ifcmXIbierr +\font\cmXIcc=cmcsc11 +\font\cmXIrm=cmr11 \font\cmXIit=cmti11 +\font\cmXIbd=cmbx11 \font\cmXImi=cmmi11 +\font\cmXItt=cmtt11\font\cmXIsy=cmsy11 +\expandafter\newdimen\csname\the\naMEtok ilsxi\endcsname +\global\csname\the\naMEtok ilsxi\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxi\endcsname=0pt +\csname\the\naMEtok ilsxi\endcsname=13pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIrm}% +\def\noexpand\mi{\fam1\cmXImi}% +\def\noexpand\sy{\fam2\cmXIsy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmXIrm \textfont1=\cmXImi + \textfont2=\cmXIsy\textfont3=\tenex + \textfont\itfam=\cmXIit + \textfont\ttfam=\cmXItt \textfont\bffam=\cmXIbd + \textfont\ccfam=\cmXIcc +\def\noexpand\bd{\fam\bffam\cmXIbd}% +\def\noexpand\it{\fam\itfam\cmXIit}% +\def\noexpand\tt{\fam\ttfam\cmXItt}% +\def\noexpand\cc{\fam\ccfam\cmXIcc}% +\def\noexpand\bi{\noexpand\ifcmXIbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CM11. Will print italic font .}% +\noexpand\global\noexpand\cmXIbierrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxi\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm1110m.mth b/macros/text1/pc/misc/cm1110m.mth new file mode 100644 index 0000000000..09cc8fb54e --- /dev/null +++ b/macros/text1/pc/misc/cm1110m.mth @@ -0,0 +1,10 @@ +\font\cmXImi=cmmi11 +\font\cmXIsy=cmsy11 \font\cmXIex=cmex11 +\font\cmXIbd=cmbx11\font\cmXIrm=cmr11 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIrm \scriptfont1=\cmXImi + \scriptfont2=\cmXIsy \scriptfont3=\cmXIex + \scriptfont\bffam=\cmXIbd + \scriptscriptfont0=\tenrm \scriptscriptfont1=\teni + \scriptscriptfont2=\tensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\tenbf}% diff --git a/macros/text1/pc/misc/cm119m.mth b/macros/text1/pc/misc/cm119m.mth new file mode 100644 index 0000000000..13eca0aebf --- /dev/null +++ b/macros/text1/pc/misc/cm119m.mth @@ -0,0 +1,13 @@ +\font\cmXImi=cmmi11 +\font\cmXIsy=cmsy11 \font\cmXIex=cmex11 +\font\cmXIbd=cmbx11 \font\cmXIrm=cmr11 +\font\cmIXrm=cmr9 \font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIrm \scriptfont1=\cmXImi + \scriptfont2=\cmXIsy \scriptfont3=\cmXIex + \scriptfont\bffam=\cmXIbd + \scriptscriptfont0=\cmIXrm \scriptscriptfont1=\cmIXmi + \scriptscriptfont2=\cmIXsy \scriptscriptfont3=\cmIXex + \scriptscriptfont\bffam=\cmIXbd}% diff --git a/macros/text1/pc/misc/cm12.txt b/macros/text1/pc/misc/cm12.txt new file mode 100644 index 0000000000..a505abed9c --- /dev/null +++ b/macros/text1/pc/misc/cm12.txt @@ -0,0 +1,37 @@ +\font\cmXIIbi=cmbxti12 +\font\cmXIIcc=cmcsc12 \font\cmXIIex=cmex12 +\font\cmXIIrm=cmr12 \font\cmXIIit=cmti12 +\font\cmXIIbd=cmbx12 \font\cmXIImi=cmmi12 +\font\cmXIItt=cmtt12 \font\cmXIIsy=cmsy12 +\expandafter\newdimen\csname\the\naMEtok ilsxii\endcsname +\global\csname\the\naMEtok ilsxii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxii\endcsname=0pt +\csname\the\naMEtok ilsxii\endcsname=14pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIIrm}% +\def\noexpand\mi{\fam1\cmXIImi}% +\def\noexpand\sy{\fam2\cmXIIsy}% +\def\noexpand\ex{\fam3\cmXIIex}% + \textfont0=\cmXIIrm \textfont1=\cmXIImi + \textfont2=\cmXIIsy \textfont3=\cmXIIex + \textfont\itfam=\cmXIIit + \textfont\ttfam=\cmXIItt \textfont\bffam=\cmXIIbd + \textfont\ccfam=\cmXIIcc +\def\noexpand\bd{\fam\bffam\cmXIIbd}% +\def\noexpand\it{\fam\itfam\cmXIIit}% +\def\noexpand\tt{\fam\ttfam\cmXIItt}% +\def\noexpand\cc{\fam\ccfam\cmXIIcc}% +\def\noexpand\bi{\fam\bifam\cmXIIbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxii\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm1210m.mth b/macros/text1/pc/misc/cm1210m.mth new file mode 100644 index 0000000000..e1ccb4c7fc --- /dev/null +++ b/macros/text1/pc/misc/cm1210m.mth @@ -0,0 +1,10 @@ +\font\cmXIImi=cmmi12 +\font\cmXIIsy=cmsy12 \font\cmXIIex=cmex12 +\font\cmXIIbd=cmbx12\font\cmXIIrm=cmr12 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIIrm \scriptfont1=\cmXIImi + \scriptfont2=\cmXIIsy \scriptfont3=\cmXIIex + \scriptfont\bffam=\cmXIIbd + \scriptscriptfont0=\tenrm \scriptscriptfont1=\teni + \scriptscriptfont2=\tensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\tenbf}% diff --git a/macros/text1/pc/misc/cm1211m.mth b/macros/text1/pc/misc/cm1211m.mth new file mode 100644 index 0000000000..d9c4e13c45 --- /dev/null +++ b/macros/text1/pc/misc/cm1211m.mth @@ -0,0 +1,13 @@ +\font\cmXIImi=cmmi12 +\font\cmXIIsy=cmsy12 \font\cmXIIex=cmex12 +\font\cmXIIbd=cmbx12\font\cmXIIrm=cmr12 +\font\cmXIrm=cmr11 \font\cmXImi=cmmi11 +\font\cmXIsy=cmsy11 \font\cmXIex=cmex11 +\font\cmXIbd=cmbx11 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIIrm \scriptfont1=\cmXIImi + \scriptfont2=\cmXIIsy \scriptfont3=\cmXIIex + \scriptfont\bffam=\cmXIIbd + \scriptscriptfont0=\cmXIrm \scriptscriptfont1=\cmXImi + \scriptscriptfont2=\cmXIsy \scriptscriptfont3=\cmXIex + \scriptscriptfont\bffam=\cmXIbd}% diff --git a/macros/text1/pc/misc/cm14.txt b/macros/text1/pc/misc/cm14.txt new file mode 100644 index 0000000000..f302bf6a12 --- /dev/null +++ b/macros/text1/pc/misc/cm14.txt @@ -0,0 +1,37 @@ +\font\cmXIVbi=cmbxti14 +\font\cmXIVcc=cmcsc14 \font\cmXIVex=cmex14 +\font\cmXIVrm=cmr14 \font\cmXIVit=cmti14 +\font\cmXIVbd=cmbx14 \font\cmXIVmi=cmmi14 +\font\cmXIVtt=cmtt14 \font\cmXIVsy=cmsy14 +\expandafter\newdimen\csname\the\naMEtok ilsxiv\endcsname +\global\csname\the\naMEtok ilsxiv\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiv\endcsname=0pt +\csname\the\naMEtok ilsxiv\endcsname=16pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIVrm}% +\def\noexpand\mi{\fam1\cmXIVmi}% +\def\noexpand\sy{\fam2\cmXIVsy}% +\def\noexpand\ex{\fam3\cmXIVex}% + \textfont0=\cmXIVrm \textfont1=\cmXIVmi + \textfont2=\cmXIVsy \textfont3=\cmXIVex + \textfont\itfam=\cmXIVit + \textfont\ttfam=\cmXIVtt \textfont\bffam=\cmXIVbd + \textfont\ccfam=\cmXIVcc +\def\noexpand\bd{\fam\bffam\cmXIVbd}% +\def\noexpand\it{\fam\itfam\cmXIVit}% +\def\noexpand\tt{\fam\ttfam\cmXIVtt}% +\def\noexpand\cc{\fam\ccfam\cmXIVcc}% +\def\noexpand\bi{\fam\bifam\cmXIVbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiv\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm1412m.mth b/macros/text1/pc/misc/cm1412m.mth new file mode 100644 index 0000000000..fc933ca00f --- /dev/null +++ b/macros/text1/pc/misc/cm1412m.mth @@ -0,0 +1,13 @@ +\font\cmXIVmi=cmmi14 +\font\cmXIVsy=cmsy14 \font\cmXIVex=cmex14 +\font\cmXIVbd=cmbx14\font\cmXIVrm=cmr14 +\font\cmXIIrm=cmr12 \font\cmXIImi=cmmi12 +\font\cmXIIsy=cmsy12 \font\cmXIIex=cmex12 +\font\cmXIIbd=cmbx12 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIVrm \scriptfont1=\cmXIVmi + \scriptfont2=\cmXIVsy \scriptfont3=\cmXIVex + \scriptfont\bffam=\cmXIVbd + \scriptscriptfont0=\cmXIIrm \scriptscriptfont1=\cmXIImi + \scriptscriptfont2=\cmXIIsy \scriptscriptfont3=\cmXIIex + \scriptscriptfont\bffam=\cmXIIbd}% diff --git a/macros/text1/pc/misc/cm18.txt b/macros/text1/pc/misc/cm18.txt new file mode 100644 index 0000000000..c4c9f52d87 --- /dev/null +++ b/macros/text1/pc/misc/cm18.txt @@ -0,0 +1,37 @@ +\font\cmXVIIIbi=cmbxti18 +\font\cmXVIIIcc=cmcsc18 \font\cmXVIIIex=cmex18 +\font\cmXVIIIrm=cmr18 \font\cmXVIIIit=cmti18 +\font\cmXVIIIbd=cmbx18 \font\cmXVIIImi=cmmi18 +\font\cmXVIIItt=cmtt18 \font\cmXVIIIsy=cmsy18 +\expandafter\newdimen\csname\the\naMEtok ilsxviii\endcsname +\global\csname\the\naMEtok ilsxviii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxviii\endcsname=0pt +\csname\the\naMEtok ilsxviii\endcsname=20pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXVIIIrm}% +\def\noexpand\mi{\fam1\cmXVIIImi}% +\def\noexpand\sy{\fam2\cmXVIIIsy}% +\def\noexpand\ex{\fam3\cmXVIIIex}% + \textfont0=\cmXVIIIrm \textfont1=\cmXVIIImi + \textfont2=\cmXVIIIsy \textfont3=\cmXVIIIex + \textfont\itfam=\cmXVIIIit + \textfont\ttfam=\cmXVIIItt \textfont\bffam=\cmXVIIIbd + \textfont\ccfam=\cmXVIIIcc +\def\noexpand\bd{\fam\bffam\cmXVIIIbd}% +\def\noexpand\it{\fam\itfam\cmXVIIIit}% +\def\noexpand\tt{\fam\ttfam\cmXVIIItt}% +\def\noexpand\cc{\fam\ccfam\cmXVIIIcc}% +\def\noexpand\bi{\fam\bifam\cmXVIIIbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxviii\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm1814m.mth b/macros/text1/pc/misc/cm1814m.mth new file mode 100644 index 0000000000..c3c34b0f02 --- /dev/null +++ b/macros/text1/pc/misc/cm1814m.mth @@ -0,0 +1,13 @@ +\font\cmXVIIImi=cmmi18 +\font\cmXVIIIsy=cmsy18 \font\cmXVIIIex=cmex18 +\font\cmXVIIIbd=cmbx18\font\cmXVIIIrm=cmr18 +\font\cmXIVrm=cmr14 \font\cmXIVmi=cmmi14 +\font\cmXIVsy=cmsy14 \font\cmXIVex=cmex14 +\font\cmXIVbd=cmbx14 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXVIIIrm \scriptfont1=\cmXVIIImi + \scriptfont2=\cmXVIIIsy \scriptfont3=\cmXVIIIex + \scriptfont\bffam=\cmXVIIIbd + \scriptscriptfont0=\cmXIVrm \scriptscriptfont1=\cmXIVmi + \scriptscriptfont2=\cmXIVsy \scriptscriptfont3=\cmXIVex + \scriptscriptfont\bffam=\cmXIVbd}% diff --git a/macros/text1/pc/misc/cm24.txt b/macros/text1/pc/misc/cm24.txt new file mode 100644 index 0000000000..83dc4387be --- /dev/null +++ b/macros/text1/pc/misc/cm24.txt @@ -0,0 +1,37 @@ +\font\cmXXIVbi=cmbxti24 +\font\cmXXIVcc=cmcsc24 \font\cmXXIVex=cmex24 +\font\cmXXIVrm=cmr24 \font\cmXXIVit=cmti24 +\font\cmXXIVbd=cmbx24 \font\cmXXIVmi=cmmi24 +\font\cmXXIVtt=cmtt24\font\cmXXIVsy=cmsy24 +\expandafter\newdimen\csname\the\naMEtok ilsxxiv\endcsname +\global\csname\the\naMEtok ilsxxiv\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxiv\endcsname=0pt +\csname\the\naMEtok ilsxxiv\endcsname=26pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXIVrm}% +\def\noexpand\mi{\fam1\cmXXIVmi}% +\def\noexpand\sy{\fam2\cmXXIVsy}% +\def\noexpand\ex{\fam3\cmXXIVex}% + \textfont0=\cmXXIVrm \textfont1=\cmXXIVmi + \textfont2=\cmXXIVsy \textfont3=\cmXXIVex + \textfont\itfam=\cmXXIVit + \textfont\ttfam=\cmXXIVtt \textfont\bffam=\cmXXIVbd + \textfont\ccfam=\cmXXIVcc +\def\noexpand\bd{\fam\bffam\cmXXIVbd}% +\def\noexpand\it{\fam\itfam\cmXXIVit}% +\def\noexpand\tt{\fam\ttfam\cmXXIVtt}% +\def\noexpand\cc{\fam\ccfam\cmXXIVcc}% +\def\noexpand\bi{\fam\bifam\cmXXIVbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxiv\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm2418m.mth b/macros/text1/pc/misc/cm2418m.mth new file mode 100644 index 0000000000..41222e47d0 --- /dev/null +++ b/macros/text1/pc/misc/cm2418m.mth @@ -0,0 +1,13 @@ +\font\cmXXIVmi=cmmi24 +\font\cmXXIVsy=cmsy24 \font\cmXXIVex=cmex24 +\font\cmXXIVbd=cmbx24\font\cmXXIVrm=cmr24 +\font\cmXVIIIrm=cmr18 \font\cmXVIIImi=cmmi18 +\font\cmXVIIIsy=cmsy18 \font\cmXVIIIex=cmex18 +\font\cmXVIIIbd=cmbx18 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXXIVrm \scriptfont1=\cmXXIVmi + \scriptfont2=\cmXXIVsy \scriptfont3=\cmXXIVex + \scriptfont\bffam=\cmXXIVbd + \scriptscriptfont0=\cmXVIIIrm \scriptscriptfont1=\cmXVIIImi + \scriptscriptfont2=\cmXVIIIsy \scriptscriptfont3=\cmXVIIIex + \scriptscriptfont\bffam=\cmXVIIIbd}% diff --git a/macros/text1/pc/misc/cm36.txt b/macros/text1/pc/misc/cm36.txt new file mode 100644 index 0000000000..9a6f9ce578 --- /dev/null +++ b/macros/text1/pc/misc/cm36.txt @@ -0,0 +1,37 @@ +\font\cmXXXVIbi=cmbxti36 +\font\cmXXXVIcc=cmcsc36\font\cmXXXVIex=cmex36 +\font\cmXXXVIrm=cmr36 \font\cmXXXVIit=cmti36 +\font\cmXXXVIbd=cmbx36 \font\cmXXXVImi=cmmi36 +\font\cmXXXVItt=cmtt36 \font\cmXXXVIsy=cmsy36 +\expandafter\newdimen\csname\the\naMEtok ilsxxxvi\endcsname +\global\csname\the\naMEtok ilsxxxvi\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxxvi\endcsname=0pt +\csname\the\naMEtok ilsxxxvi\endcsname=38pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXXVIrm}% +\def\noexpand\mi{\fam1\cmXXXVImi}% +\def\noexpand\sy{\fam2\cmXXXVIsy}% +\def\noexpand\ex{\fam3\cmXXXVIex}% + \textfont0=\cmXXXVIrm \textfont1=\cmXXXVImi + \textfont2=\cmXXXVIsy \textfont3=\cmXXXVIex + \textfont\itfam=\cmXXXVIit + \textfont\ttfam=\cmXXXVItt \textfont\bffam=\cmXXXVIbd + \textfont\ccfam=\cmXXXVIcc +\def\noexpand\bd{\fam\bffam\cmXXXVIbd}% +\def\noexpand\it{\fam\itfam\cmXXXVIit}% +\def\noexpand\tt{\fam\ttfam\cmXXXVItt}% +\def\noexpand\cc{\fam\ccfam\cmXXXVIcc}% +\def\noexpand\bi{\fam\bifam\cmXXXVIbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxxvi\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm5.txt b/macros/text1/pc/misc/cm5.txt new file mode 100644 index 0000000000..3cdb0205e3 --- /dev/null +++ b/macros/text1/pc/misc/cm5.txt @@ -0,0 +1,51 @@ +\global\newif\ifVbierr +\global\newif\ifVccerr +\global\newif\ifVtterr +\global\newif\ifViterr +\global\newif\ifVbderr +\expandafter\newdimen\csname\the\naMEtok ilsv\endcsname +\global\csname\the\naMEtok ilsv\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsv\endcsname=0pt +\csname\the\naMEtok ilsv\endcsname=8pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\fiverm}% +\def\noexpand\mi{\fam1\fivei}% +\def\noexpand\sy{\fam2\fivesy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\fiverm\textfont1=\fivei + \textfont2=\fivesy\textfont3=\tenex + \textfont\bffam=\fivebf +\def\noexpand\bd{\noexpand\ifVbderr\noexpand\fam\bffam\fivebf% +\noexpand\else\noexpand\fam\bffam\fivebf% +\noexpand\message{ Warning. % +No bold font in CM5. Will print bold extended font .}% +\noexpand\global\noexpand\Vbderrtrue \noexpand\fi}% +\def\noexpand\it{\noexpand\ifViterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No italic font in CM5. Will print roman font .}% +\noexpand\global\noexpand\Viterrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifVtterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CM5. Will print roman font .}% +\noexpand\global\noexpand\Vtterrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifVbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CM5. Will print italic font .}% +\noexpand\global\noexpand\Vbierrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifVccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CM5. Will print roman font .}% +\noexpand\global\noexpand\Vccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsv\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm6.txt b/macros/text1/pc/misc/cm6.txt new file mode 100644 index 0000000000..5a3a735d8c --- /dev/null +++ b/macros/text1/pc/misc/cm6.txt @@ -0,0 +1,49 @@ +\global\newif\ifcmVIbierr +\global\newif\ifcmVIccerr +\global\newif\ifcmVIiterr +\global\newif\ifcmVItterr +\font\cmVIrm=cmr6 +\font\cmVIbd=cmbx6 \font\cmVImi=cmmi6 +\font\sixsy=cmsy6 +\expandafter\newdimen\csname\the\naMEtok ilsvi\endcsname +\global\csname\the\naMEtok ilsvi\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsvi\endcsname=0pt +\csname\the\naMEtok ilsvi\endcsname=8pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmVIrm}% +\def\noexpand\mi{\fam1\cmVImi}% +\def\noexpand\sy{\fam2\sixsy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmVIrm \textfont1=\cmVImi + \textfont2=\tensy \textfont3=\tenex + \textfont\bffam=\cmVIbd +\def\noexpand\bd{\fam\bffam\cmVIbd}% +\def\noexpand\it{\noexpand\ifcmVIiterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No italic font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVIiterrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifcmVIbierr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No bold italic font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVIbierrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifcmVIccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVIccerrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifcmVItterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVItterrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsvi\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm65m.mth b/macros/text1/pc/misc/cm65m.mth new file mode 100644 index 0000000000..d1c44223de --- /dev/null +++ b/macros/text1/pc/misc/cm65m.mth @@ -0,0 +1,10 @@ +\font\cmVImi=cmmi6 +\font\cmVIsy=cmsy6 \font\cmVIex=cmex10 +\font\cmVIbd=cmbx6\font\cmVIrm=cmr6 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmVIrm \scriptfont1=\cmVImi + \scriptfont2=\cmVIsy \scriptfont3=\cmVIex + \scriptfont\bffam=\cmVIbd + \scriptscriptfont0=\fiverm \scriptscriptfont1=\fivei + \scriptscriptfont2=\fivesy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\fivebf}% diff --git a/macros/text1/pc/misc/cm7.txt b/macros/text1/pc/misc/cm7.txt new file mode 100644 index 0000000000..894bff8b2c --- /dev/null +++ b/macros/text1/pc/misc/cm7.txt @@ -0,0 +1,45 @@ +\global\newif\ifVIIbierr +\global\newif\ifVIIbderr +\global\newif\ifVIItterr +\global\newif\ifVIIccerr +\font\cmVIIit=cmti7 +\expandafter\newdimen\csname\the\naMEtok ilsvii\endcsname +\global\csname\the\naMEtok ilsvii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsvii\endcsname=0pt +\csname\the\naMEtok ilsvii\endcsname=9pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\sevenrm}% +\def\noexpand\mi{\fam1\seveni}% +\def\noexpand\sy{\fam2\sevensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\sevenrm \textfont1=\seveni + \textfont2=\sevensy \textfont3=\tenex + \textfont\itfam=\cmVIIit + \textfont\bffam=\sevenbf +\def\noexpand\it{\fam\itfam\cmVIIit}% +\def\noexpand\bd{\fam\bffam\sevenbf}% +\def\noexpand\tt{\noexpand\ifVIItterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CM7. Will print roman font .}% +\noexpand\global\noexpand\VIItterrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifVIIbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CM7. Will print italic font .}% +\noexpand\global\noexpand\VIIbierrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifVIIccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CM7. Will print roman font .}% +\noexpand\global\noexpand\VIIccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsvii\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm75m.mth b/macros/text1/pc/misc/cm75m.mth new file mode 100644 index 0000000000..2acd4dc1f4 --- /dev/null +++ b/macros/text1/pc/misc/cm75m.mth @@ -0,0 +1,7 @@ + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\sevenrm \scriptfont1=\seveni + \scriptfont2=\sevensy \scriptfont3=\tenex + \scriptfont\bffam=\sevenbf + \scriptscriptfont0=\fiverm \scriptscriptfont1=\fivei + \scriptscriptfont2=\fivesy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\fivebf}% diff --git a/macros/text1/pc/misc/cm76m.mth b/macros/text1/pc/misc/cm76m.mth new file mode 100644 index 0000000000..796813490d --- /dev/null +++ b/macros/text1/pc/misc/cm76m.mth @@ -0,0 +1,10 @@ +\font\cmVIrm=cmr6 \font\cmVImi=cmmi6 +\font\cmVIsy=cmsy6 \font\cmVIex=cmex10 +\font\cmVIbd=cmbx6 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\sevenrm \scriptfont1=\seveni + \scriptfont2=\sevensy \scriptfont3=\tenex + \scriptfont\bffam=\sevenbf + \scriptscriptfont0=\cmVIrm \scriptscriptfont1=\cmVImi + \scriptscriptfont2=\cmVIsy \scriptscriptfont3=\cmVIex + \scriptscriptfont\bffam=\cmVIbd}% diff --git a/macros/text1/pc/misc/cm8.txt b/macros/text1/pc/misc/cm8.txt new file mode 100644 index 0000000000..ea69af7705 --- /dev/null +++ b/macros/text1/pc/misc/cm8.txt @@ -0,0 +1,40 @@ +\global\newif\ifcmVIIIbierr +\font\cmVIIIcc=cmcsc8 +\font\cmVIIIrm=cmr8 \font\cmVIIIit=cmti8 +\font\cmVIIIbd=cmbx8 \font\cmVIIImi=cmmi8 +\font\cmVIIItt=cmtt8 +\expandafter\newdimen\csname\the\naMEtok ilsviii\endcsname +\global\csname\the\naMEtok ilsviii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsviii\endcsname=0pt +\csname\the\naMEtok ilsviii\endcsname=10pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmVIIIrm}% +\def\noexpand\mi{\fam1\cmVIIImi}% +\def\noexpand\sy{\fam2\tensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmVIIIrm \textfont1=\cmVIIImi + \textfont2=\tensy \textfont3=\tenex + \textfont\itfam=\cmVIIIit + \textfont\ttfam=\cmVIIItt \textfont\bffam=\cmVIIIbd + \textfont\ccfam=\cmVIIIcc +\def\noexpand\bd{\fam\bffam\cmVIIIbd}% +\def\noexpand\it{\fam\itfam\cmVIIIit}% +\def\noexpand\tt{\fam\ttfam\cmVIIItt}% +\def\noexpand\cc{\fam\ccfam\cmVIIIcc}% +\def\noexpand\bi{\noexpand\ifcmVIIIbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CM8. Will print italic font .}% +\noexpand\global\noexpand\cmVIIIbierrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsviii\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm86m.mth b/macros/text1/pc/misc/cm86m.mth new file mode 100644 index 0000000000..9acea1b047 --- /dev/null +++ b/macros/text1/pc/misc/cm86m.mth @@ -0,0 +1,13 @@ +\font\cmVIIIrm=cmr8 \font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8 +\font\cmVIrm=cmr6 \font\cmVImi=cmmi6 +\font\cmVIsy=cmsy6 \font\cmVIex=cmex10 +\font\cmVIbd=cmbx6 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmVIIIrm \scriptfont1=\cmVIIImi + \scriptfont2=\cmVIIIsy \scriptfont3=\cmVIIIex + \scriptfont\bffam=\cmVIIIbd + \scriptscriptfont0=\cmVIrm \scriptscriptfont1=\cmVImi + \scriptscriptfont2=\cmVIsy \scriptscriptfont3=\cmVIex + \scriptscriptfont\bffam=\cmVIbd}% diff --git a/macros/text1/pc/misc/cm87m.mth b/macros/text1/pc/misc/cm87m.mth new file mode 100644 index 0000000000..5bc523025d --- /dev/null +++ b/macros/text1/pc/misc/cm87m.mth @@ -0,0 +1,10 @@ +\font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8\font\cmVIIIrm=cmr8 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmVIIIrm \scriptfont1=\cmVIIImi + \scriptfont2=\cmVIIIsy \scriptfont3=\cmVIIIex + \scriptfont\bffam=\cmVIIIbd + \scriptscriptfont0=\sevenrm \scriptscriptfont1=\seveni + \scriptscriptfont2=\sevensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\sevenbf}% diff --git a/macros/text1/pc/misc/cm9.txt b/macros/text1/pc/misc/cm9.txt new file mode 100644 index 0000000000..8602cb2d64 --- /dev/null +++ b/macros/text1/pc/misc/cm9.txt @@ -0,0 +1,40 @@ +\global\newif\ifcmIXbierr +\font\cmIXcc=cmcsc9 +\font\cmIXrm=cmr9 \font\cmIXit=cmti9 +\font\cmIXbd=cmbx9 \font\cmIXmi=cmmi9 +\font\cmIXtt=cmtt9 +\expandafter\newdimen\csname\the\naMEtok ilsix\endcsname +\global\csname\the\naMEtok ilsix\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsix\endcsname=0pt +\csname\the\naMEtok ilsix\endcsname=11pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmIXrm}% +\def\noexpand\mi{\fam1\cmIXmi}% +\def\noexpand\sy{\fam2\tensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmIXrm \textfont1=\cmIXmi + \textfont2=\tensy \textfont3=\tenex + \textfont\itfam=\cmIXit + \textfont\ttfam=\cmIXtt \textfont\bffam=\cmIXbd + \textfont\ccfam=\cmIXcc +\def\noexpand\bd{\fam\bffam\cmIXbd}% +\def\noexpand\it{\fam\itfam\cmIXit}% +\def\noexpand\tt{\fam\ttfam\cmIXtt}% +\def\noexpand\cc{\fam\ccfam\cmIXcc}% +\def\noexpand\bi{\noexpand\ifcmIXbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CM9. Will print italic font .}% +\noexpand\global\noexpand\cmIXbierrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsix\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cm97m.mth b/macros/text1/pc/misc/cm97m.mth new file mode 100644 index 0000000000..612ddf3587 --- /dev/null +++ b/macros/text1/pc/misc/cm97m.mth @@ -0,0 +1,10 @@ +\font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9\font\cmIXrm=cmr9 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmIXrm \scriptfont1=\cmIXmi + \scriptfont2=\cmIXsy \scriptfont3=\cmIXex + \scriptfont\bffam=\cmIXbd + \scriptscriptfont0=\sevenrm \scriptscriptfont1=\seveni + \scriptscriptfont2=\sevensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\sevenbf}% diff --git a/macros/text1/pc/misc/cm98m.mth b/macros/text1/pc/misc/cm98m.mth new file mode 100644 index 0000000000..78e30ed089 --- /dev/null +++ b/macros/text1/pc/misc/cm98m.mth @@ -0,0 +1,13 @@ +\font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9\font\cmIXrm=cmr9 +\font\cmVIIIrm=cmr8 \font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmIXrm \scriptfont1=\cmIXmi + \scriptfont2=\cmIXsy \scriptfont3=\cmIXex + \scriptfont\bffam=\cmIXbd + \scriptscriptfont0=\cmVIIIrm \scriptscriptfont1=\cmVIIImi + \scriptscriptfont2=\cmVIIIsy \scriptscriptfont3=\cmVIIIex + \scriptscriptfont\bffam=\cmVIIIbd}% diff --git a/macros/text1/pc/misc/cmsan10.txt b/macros/text1/pc/misc/cmsan10.txt new file mode 100644 index 0000000000..cedf00fe5e --- /dev/null +++ b/macros/text1/pc/misc/cmsan10.txt @@ -0,0 +1,46 @@ +\global\newif\ifXssbierr +\global\newif\ifXssccerr +\global\newif\ifXsstterr +\font\cmXssrm=cmss10 \font\cmXssit=cmssi10 +\font\cmXssbd=cmssbx10 \font\cmXssmi=cmmi10 +\font\cmXsssy=cmsy10 \font\cmXssex=cmex10 +\expandafter\newdimen\csname\the\naMEtok ilsxss\endcsname +\global\csname\the\naMEtok ilsxss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxss\endcsname=0pt +\csname\the\naMEtok ilsxss\endcsname=12pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXssrm}% +\def\noexpand\mi{\fam1\cmXssmi}% +\def\noexpand\sy{\fam2\cmXsssy}% +\def\noexpand\ex{\fam3\cmXssex}% + \textfont0=\cmXssrm \textfont1=\cmXssmi + \textfont2=\cmXsssy \textfont3=\cmXssex + \textfont\itfam=\cmXssit + \textfont\bffam=\cmXssbd +\def\noexpand\bd{\fam\bffam\cmXssbd}% +\def\noexpand\it{\fam\itfam\cmXssit}% +\def\noexpand\bi{\noexpand\ifXssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN10. Will print italic font .}% +\noexpand\global\noexpand\Xssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN10. Will print roman font .}% +\noexpand\global\noexpand\Xsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN10. Will print roman font .}% +\noexpand\global\noexpand\Xssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxss\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cmsan11.txt b/macros/text1/pc/misc/cmsan11.txt new file mode 100644 index 0000000000..e5da60857e --- /dev/null +++ b/macros/text1/pc/misc/cmsan11.txt @@ -0,0 +1,46 @@ +\global\newif\ifXIssbierr +\global\newif\ifXIssccerr +\global\newif\ifXIsstterr +\font\cmXIssrm=cmss11 \font\cmXIssit=cmssi11 +\font\cmXIssbd=cmssbx11 \font\cmXIssmi=cmmi11 +\font\cmXIsssy=cmsy11 \font\cmXIssex=cmex11 +\expandafter\newdimen\csname\the\naMEtok ilsxiss\endcsname +\global\csname\the\naMEtok ilsxiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiss\endcsname=0pt +\csname\the\naMEtok ilsxiss\endcsname=13pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIssrm}% +\def\noexpand\mi{\fam1\cmXIssmi}% +\def\noexpand\sy{\fam2\cmXIsssy}% +\def\noexpand\ex{\fam3\cmXIssex}% + \textfont0=\cmXIssrm \textfont1=\cmXIssmi + \textfont2=\cmXIsssy \textfont3=\cmXIssex + \textfont\itfam=\cmXIssit + \textfont\bffam=\cmXIssbd +\def\noexpand\bd{\fam\bffam\cmXIssbd}% +\def\noexpand\it{\fam\itfam\cmXIssit}% +\def\noexpand\bi{\noexpand\ifXIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN11. Will print italic font .}% +\noexpand\global\noexpand\XIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN11. Will print roman font .}% +\noexpand\global\noexpand\XIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN11. Will print roman font .}% +\noexpand\global\noexpand\XIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiss\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cmsan12.txt b/macros/text1/pc/misc/cmsan12.txt new file mode 100644 index 0000000000..234dd3cbba --- /dev/null +++ b/macros/text1/pc/misc/cmsan12.txt @@ -0,0 +1,46 @@ +\global\newif\ifXIIssbierr +\global\newif\ifXIIssccerr +\global\newif\ifXIIsstterr +\font\cmXIIssrm=cmss12 \font\cmXIIssit=cmssi12 +\font\cmXIIssbd=cmssbx12 \font\cmXIIssmi=cmmi12 +\font\cmXIIsssy=cmsy12 \font\cmXIIssex=cmex12 +\expandafter\newdimen\csname\the\naMEtok ilsxiiss\endcsname +\global\csname\the\naMEtok ilsxiiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiiss\endcsname=0pt +\csname\the\naMEtok ilsxiiss\endcsname=14pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIIssrm}% +\def\noexpand\mi{\fam1\cmXIIssmi}% +\def\noexpand\sy{\fam2\cmXIIsssy}% +\def\noexpand\ex{\fam3\cmXIIssex}% + \textfont0=\cmXIIssrm \textfont1=\cmXIIssmi + \textfont2=\cmXIIsssy \textfont3=\cmXIIssex + \textfont\itfam=\cmXIIssit + \textfont\bffam=\cmXIIssbd +\def\noexpand\bd{\fam\bffam\cmXIIssbd}% +\def\noexpand\it{\fam\itfam\cmXIIssit}% +\def\noexpand\bi{\noexpand\ifXIIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN12. Will print italic font .}% +\noexpand\global\noexpand\XIIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXIIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN12. Will print roman font .}% +\noexpand\global\noexpand\XIIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXIIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN12. Will print roman font .}% +\noexpand\global\noexpand\XIIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiiss\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cmsan14.txt b/macros/text1/pc/misc/cmsan14.txt new file mode 100644 index 0000000000..23d2eb54a5 --- /dev/null +++ b/macros/text1/pc/misc/cmsan14.txt @@ -0,0 +1,46 @@ +\global\newif\ifXIVssbierr +\global\newif\ifXIVssccerr +\global\newif\ifXIVsstterr +\font\cmXIVssrm=cmss14 \font\cmXIVssit=cmssi14 +\font\cmXIVssbd=cmssbx14 \font\cmXIVssmi=cmmi14 +\font\cmXIVsssy=cmsy14 \font\cmXIVssex=cmex14 +\expandafter\newdimen\csname\the\naMEtok ilsxivss\endcsname +\global\csname\the\naMEtok ilsxivss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxivss\endcsname=0pt +\csname\the\naMEtok ilsxivss\endcsname=16pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIVssrm}% +\def\noexpand\mi{\fam1\cmXIVssmi}% +\def\noexpand\sy{\fam2\cmXIVsssy}% +\def\noexpand\ex{\fam3\cmXIVssex}% + \textfont0=\cmXIVssrm \textfont1=\cmXIVssmi + \textfont2=\cmXIVsssy \textfont3=\cmXIVssex + \textfont\itfam=\cmXIVssit + \textfont\bffam=\cmXIVssbd +\def\noexpand\bd{\fam\bffam\cmXIVssbd}% +\def\noexpand\it{\fam\itfam\cmXIVssit}% +\def\noexpand\bi{\noexpand\ifXIVssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN14. Will print italic font .}% +\noexpand\global\noexpand\XIVssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXIVsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN14. Will print roman font .}% +\noexpand\global\noexpand\XIVsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXIVssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN14. Will print roman font .}% +\noexpand\global\noexpand\XIVssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxivss\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cmsan18.txt b/macros/text1/pc/misc/cmsan18.txt new file mode 100644 index 0000000000..a1a581291e --- /dev/null +++ b/macros/text1/pc/misc/cmsan18.txt @@ -0,0 +1,46 @@ +\global\newif\ifXVIIIssbierr +\global\newif\ifXVIIIssccerr +\global\newif\ifXVIIIsstterr +\font\cmXVIIIssrm=cmss18 \font\cmXVIIIssit=cmssi18 +\font\cmXVIIIssbd=cmssbx18 \font\cmXVIIIssmi=cmmi18 +\font\cmXVIIIsssy=cmsy18 \font\cmXVIIIssex=cmex18 +\expandafter\newdimen\csname\the\naMEtok ilsxviiiss\endcsname +\global\csname\the\naMEtok ilsxviiiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxviiiss\endcsname=0pt +\csname\the\naMEtok ilsxviiiss\endcsname=20pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXVIIIssrm}% +\def\noexpand\mi{\fam1\cmXVIIIssmi}% +\def\noexpand\sy{\fam2\cmXVIIIsssy}% +\def\noexpand\ex{\fam3\cmXVIIIssex}% + \textfont0=\cmXVIIIssrm \textfont1=\cmXVIIIssmi + \textfont2=\cmXVIIIsssy \textfont3=\cmXVIIIssex + \textfont\itfam=\cmXVIIIssit + \textfont\bffam=\cmXVIIIssbd +\def\noexpand\bd{\fam\bffam\cmXVIIIssbd}% +\def\noexpand\it{\fam\itfam\cmXVIIIssit}% +\def\noexpand\bi{\noexpand\ifXVIIIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN18. Will print italic font .}% +\noexpand\global\noexpand\XVIIIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXVIIIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN18. Will print roman font .}% +\noexpand\global\noexpand\XVIIIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXVIIIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN18. Will print roman font .}% +\noexpand\global\noexpand\XVIIIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxviiiss\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cmsan24.txt b/macros/text1/pc/misc/cmsan24.txt new file mode 100644 index 0000000000..d035cc6ecd --- /dev/null +++ b/macros/text1/pc/misc/cmsan24.txt @@ -0,0 +1,46 @@ +\global\newif\ifXXIVssbierr +\global\newif\ifXXIVssccerr +\global\newif\ifXXIVsstterr +\font\cmXXIVssrm=cmss24 \font\cmXXIVssit=cmssi24 +\font\cmXXIVssbd=cmssbx24 \font\cmXXIVssmi=cmmi24 +\font\cmXXIVsssy=cmsy24 \font\cmXXIVssex=cmex24 +\expandafter\newdimen\csname\the\naMEtok ilsxxivss\endcsname +\global\csname\the\naMEtok ilsxxivss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxivss\endcsname=0pt +\csname\the\naMEtok ilsxxivss\endcsname=26pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXIVssrm}% +\def\noexpand\mi{\fam1\cmXXIVssmi}% +\def\noexpand\sy{\fam2\cmXXIVsssy}% +\def\noexpand\ex{\fam3\cmXXIVssex}% + \textfont0=\cmXXIVssrm \textfont1=\cmXXIVssmi + \textfont2=\cmXXIVsssy \textfont3=\cmXXIVssex + \textfont\itfam=\cmXXIVssit + \textfont\bffam=\cmXXIVssbd +\def\noexpand\bd{\fam\bffam\cmXXIVssbd}% +\def\noexpand\it{\fam\itfam\cmXXIVssit}% +\def\noexpand\bi{\noexpand\ifXXIVssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN24. Will print italic font .}% +\noexpand\global\noexpand\XXIVssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXXIVsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN24. Will print roman font .}% +\noexpand\global\noexpand\XXIVsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXXIVssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN24. Will print roman font .}% +\noexpand\global\noexpand\XXIVssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxivss\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cmsan36.txt b/macros/text1/pc/misc/cmsan36.txt new file mode 100644 index 0000000000..3a64c94a76 --- /dev/null +++ b/macros/text1/pc/misc/cmsan36.txt @@ -0,0 +1,46 @@ +\global\newif\ifXXXVIssbierr +\global\newif\ifXXXVIssccerr +\global\newif\ifXXXVIsstterr +\font\cmXXXVIssrm=cmss36 \font\cmXXXVIssit=cmssi36 +\font\cmXXXVIssbd=cmssbx36 \font\cmXXXVIssmi=cmmi36 +\font\cmXXXVIsssy=cmsy36 \font\cmXXXVIssex=cmex24 +\expandafter\newdimen\csname\the\naMEtok ilsxxivss\endcsname +\global\csname\the\naMEtok ilsxxivss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxivss\endcsname=0pt +\csname\the\naMEtok ilsxxivss\endcsname=38pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXXVIssrm}% +\def\noexpand\mi{\fam1\cmXXXVIssmi}% +\def\noexpand\sy{\fam2\cmXXXVIsssy}% +\def\noexpand\ex{\fam3\cmXXXVIssex}% + \textfont0=\cmXXXVIssrm \textfont1=\cmXXXVIssmi + \textfont2=\cmXXXVIsssy \textfont3=\cmXXXVIssex + \textfont\itfam=\cmXXXVIssit + \textfont\bffam=\cmXXXVIssbd +\def\noexpand\bd{\fam\bffam\cmXXXVIssbd}% +\def\noexpand\it{\fam\itfam\cmXXXVIssit}% +\def\noexpand\bi{\noexpand\ifXXXVIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN36. Will print italic font .}% +\noexpand\global\noexpand\XXXVIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXXXVIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN36. Will print roman font .}% +\noexpand\global\noexpand\XXXVIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXXXVIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN36. Will print roman font .}% +\noexpand\global\noexpand\XXXVIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxivss\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cmsan8.txt b/macros/text1/pc/misc/cmsan8.txt new file mode 100644 index 0000000000..710177059f --- /dev/null +++ b/macros/text1/pc/misc/cmsan8.txt @@ -0,0 +1,49 @@ +\global\newif\ifcmVIIIssbierr +\global\newif\ifcmVIIIssccerr +\global\newif\ifcmVIIIsstterr +\global\newif\ifcmVIIIssbderr +\font\cmVIIIssit=cmssi8 +\font\cmVIIIssrm=cmss8 \font\cmVIIIssmi=cmmi8 +\font\cmVIIIsssy=cmsy8 \font\cmVIIIssex=cmex10 +\expandafter\newdimen\csname\the\naMEtok ilsviiiss\endcsname +\global\csname\the\naMEtok ilsviiiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsviiiss\endcsname=0pt +\csname\the\naMEtok ilsviiiss\endcsname=10pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmVIIIssrm}% +\def\noexpand\mi{\fam1\cmVIIIssmi}% +\def\noexpand\sy{\fam2\cmVIIIsssy}% +\def\noexpand\ex{\fam3\cmVIIIssex}% + \textfont0=\cmVIIIssrm \textfont1=\cmVIIIssmi + \textfont2=\cmVIIIsssy \textfont3=\cmVIIIssex + \textfont\itfam=\cmVIIIssit +\def\noexpand\it{\fam\itfam\cmVIIIssit}% +\def\noexpand\bd{\noexpand\ifcmVIIIssbderr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No bold font in CMSAN8. Will print roman font .}% +\noexpand\global\noexpand\cmVIIIssbderrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifcmVIIIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN8. Will print italic font .}% +\noexpand\global\noexpand\cmVIIIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifcmVIIIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN8. Will print roman font .}% +\noexpand\global\noexpand\cmVIIIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifcmVIIIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN8. Will print roman font .}% +\noexpand\global\noexpand\cmVIIIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsviiiss\noexpand\endcsname}}% diff --git a/macros/text1/pc/misc/cmsan9.txt b/macros/text1/pc/misc/cmsan9.txt new file mode 100644 index 0000000000..7309c82d45 --- /dev/null +++ b/macros/text1/pc/misc/cmsan9.txt @@ -0,0 +1,46 @@ +\global\newif\ifIXssbierr +\global\newif\ifIXssccerr +\global\newif\ifIXsstterr +\font\cmIXssrm=cmss9 \font\cmIXssit=cmssi9 +\font\cmIXssbd=cmssbx9 \font\cmIXssmi=cmmi9 +\font\cmIXsssy=cmsy9 \font\cmIXssex=cmex10 +\expandafter\newdimen\csname\the\naMEtok ilsixss\endcsname +\global\csname\the\naMEtok ilsixss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsixss\endcsname=0pt +\csname\the\naMEtok ilsixss\endcsname=11pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmIXssrm}% +\def\noexpand\mi{\fam1\cmIXssmi}% +\def\noexpand\sy{\fam2\cmIXsssy}% +\def\noexpand\ex{\fam3\cmIXssex}% + \textfont0=\cmIXssrm \textfont1=\cmIXssmi + \textfont2=\cmIXsssy \textfont3=\cmIXssex + \textfont\itfam=\cmIXssit + \textfont\bffam=\cmIXssbd +\def\noexpand\bd{\fam\bffam\cmIXssbd}% +\def\noexpand\it{\fam\itfam\cmIXssit}% +\def\noexpand\bi{\noexpand\ifIXssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{ Warning. % +No bold italic font in CMSAN9. Will print italic font .}% +\noexpand\global\noexpand\IXssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifIXsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No typewriter font in CMSAN9. Will print roman font .}% +\noexpand\global\noexpand\IXsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifIXssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{ Warning. % +No small caps font in CMSAN9. Will print roman font .}% +\noexpand\global\noexpand\IXssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsixss\noexpand\endcsname}}% diff --git a/macros/text1/pc/models/letter.inp b/macros/text1/pc/models/letter.inp new file mode 100644 index 0000000000..4cac048afa --- /dev/null +++ b/macros/text1/pc/models/letter.inp @@ -0,0 +1,51 @@ +% LETTER FORMAT FILE bth 4/1/87 +\catcode`*=11 +\raggedbottom % text height may vary from page to page +\if*msp\defaultmono + \let\titlefont=\defaultmono + \let\twelvept=\defaultmono + \let\tenpt=\defaultmono + \let\rm=\defaultmono + \fi % monospace check +\newtoks\departmentname % department name for letterhead +\newtoks\campuszip % zip code for letterhead +\newtoks\campusphone % phone number for letterhead +\newtoks\date % date token list +\newif\if*postscript +\*postscriptfalse +% +\def\STOP{\endgroup\par}% ends obeylines grouping +% +\def\BEGINADDRESS{\begingroup\parskip=0pt\parindent=0pt\obeylines}% +\let\SALUTATION=\null +\let\BODY=\STOP +\def\CLOSING{\par\vs{\bl}\begingroup\parskip=0pt\parindent=0pt + \obeylines}% +\def\COPIES{\par\vs{\bl} + \setbox0=\hbox{Copies:\quad}\parindent=\wd0 \nin Copies:\quad}% +\def\ENCLOSURES#1{\par Enclosures:\quad #1}% sets enclosures text line +\def\ENDLETTER{\par\endgroup}% stop any obeylines grouping +% Default for the title (first) page +\titlepageformat{\titleleadskip{0in} + \titlefootline{} +}% end title page format +\def\letterhead{{\parskip=0pt + \if*msp + \cl{\titlefont Washington State University} + \vs{\bl}\hrule\vs{\bl} + \cl{\the\departmentname} + \cl{Pullman, Washington\ \the\campuszip} + \cl{\the\campusphone} + \vs{1\bl} % number of blank lines inserted + \nin\the\date % + \else + \cl{\titlefont Washington State University} + \vs{4pt}\hrule\vs{6pt} + \cl{\twelvept \the\departmentname} + \cl{\tenpt Pullman, Washington\ \the\campuszip} + \cl{\tenpt \the\campusphone} + \vs{1\bl} % number of blank lines inserted + \nin\the\date % + \fi +}}% end letterhead markup +\catcode`*=12 diff --git a/macros/text1/pc/models/letter.mdl b/macros/text1/pc/models/letter.mdl new file mode 100644 index 0000000000..432fffbdfe --- /dev/null +++ b/macros/text1/pc/models/letter.mdl @@ -0,0 +1,45 @@ +% LETTER MARKUP (style, full block) APRIL 1, 1986 +% To print on monospace printers (line printers, daisy-wheel printers) +%\monospace % delete the "%" symbol at the beginning of this line +\paragraphskip{12pt} % distance between paragraphs +\paragraphindent{0pt} % first line word indent +\sfs{cm18}{titlefont}{24pt}% large font selected for letterhead +\input letter.inp % places the format file into your text file +% LETTERHEAD INFORMATION +% Type the name of your department, the campus zip code, +% the campus telephone number, and date (if not today's +% date) between the curly braces of the samples shown +% below. This information will be added to the letterhead. +%........................................................................ +\departmentname{name of your department or organization} +\campuszip{99164-????} +\campusphone{(509) 335-????} +\date{\today} +% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +\letterhead % +\vs{2\bl} % +% LETTER ADDRESS +\BEGINADDRESS % . . . . insert address below this line . . . . . . . . . +\SALUTATION % . . . replace the salutation on the next line . . . . . . . +Dear ???? +\BODY % LETTER BODY +% . . . . . . insert the text of the letter below this line . . . . . . . +% . . . . . . . . . . . . and above this line . . . . . . . . . . . . . . +% LETTER CLOSING +\CLOSING % . . . . replace closing line, if desired . . . . . . . . . . . +Sincerely yours, +\vs{3\bl} +% SIGNATURE LINE +% . . . . . . . . . replace signature line . . . . . . . . . . . . . . . +John Doe +\vs{\bl} +% ENCLOSURES AND COPIES +% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +% Use \ENCLOSURES markup for an enclosure number, % +% for example: \ENCLOSURES{3} % +% Use \COPIES markup for a copy list, % +% for example: \COPIES first name % +% second name % +% third name, etc. % +% . . . . . . . enter enclosures and copies below this line . . . . . . . +\ENDLETTER %------------- and above this line --------------------------- diff --git a/macros/text1/pc/models/memo.inp b/macros/text1/pc/models/memo.inp new file mode 100644 index 0000000000..bbf6aa632e --- /dev/null +++ b/macros/text1/pc/models/memo.inp @@ -0,0 +1,48 @@ +% MEMO TEXINPUT FORMAT FILE +% dlw 8/15/86 +\catcode`*=11 +\if*msp \let\titlefont=\defaultmono + \let\twelvept=\defaultmono + \let\tenpt=\defaultmono + \let\rm=\defaultmono + \fi % change all fonts to defaultmono for the monospace option +\rightragged +\newif\if*copies +\*copiesfalse +\newtoks\*lfthead \*lfthead = { } +\newtoks\*ctrhead \*ctrhead = { } +\newtoks\*rthead \*rthead = { } +\rightragged +% Default for the title (first) page +\titlepageformat{\titleleadskip{0in} + \titlefootline{} +} +\def\memopageheadingformat#1{% setup for memo running head + \def\*left##1{\global\*lfthead={##1}}% + \def\*center##1{\global\*ctrhead={##1}}% + \def\*right##1{\global\*rthead={##1}}% +#1}% end memoheading format +\let\mhf=\memopageheadingformat +\memopageheadingformat{\*left{}\*center{\pagenumber}\*right{}} +\runningheadformat{\bothpages{\twelvept + \line{\hbox to.33333\hsize{\the\*lfthead\hss}\hfil + \hbox to.33333\hsize{\hss\the\*ctrhead\hss}\hfil + \hbox to.33333\hsize{\hss\the\*rthead}} + \vs{28pt}} % 28pt = .4in +}% end runningheadformat +\def\MEMO{\begingroup\obeylines\parskip=0pt\parindent=60pt}% +\def\TEXT{\endgroup\if*msp\defaultmono\ssp\else\twelvept\fi % + \vs{\bl}\hrule\vs{2\bl}}% +% +\cl{{\titlefont M E M O R A N D U M}} +\if*msp\par\vs{\bl}\ssp + \else\par\vs{.4in}\isk{18pt}\fi +\def\TO{\nin To:\par\vs{-\bl}}% +\def\FROM{\if*msp\vs{\bl}\fi\nin From:\par\vs{-\bl}}% +\def\DATE#1{\if*msp\vs{\bl}\fi\nin Date:\par\vs{-\bl}#1}% +\def\SUBJECT{\if*msp\vs{\bl}\fi\nin Subject:\par\vs{-\bl}}% +\def\COPIES{\global\*copiestrue\vs{\bl}\nin Copies:\par\vs{-\bl} % + \begingroup\obeylines\singlespace % + \parskip=0pt\parindent=60pt}% +\def\ENDMEMO{\if*copies\par\endgroup\global\*copiesfalse\else\par\fi}% +\catcode`*=12 diff --git a/macros/text1/pc/models/memo.mdl b/macros/text1/pc/models/memo.mdl new file mode 100644 index 0000000000..42d03e93be --- /dev/null +++ b/macros/text1/pc/models/memo.mdl @@ -0,0 +1,21 @@ +% MEMO TEXMODEL +% August 15, 1986 +% To print on monospace printers delete the % symbol before \monospace +%\monospace +\sfs{cm18}{titlefont}{24pt}% Font selected for heading +\input memo.inp % Loads memorandum format file +\MEMO % Prints memorandum heading +%--------Enter the text after each markup on the following lines--------- +%------------------multiple line entries may be used--------------------- +\TO +\FROM +\DATE {\today} +\SUBJECT +\TEXT %----- Insert the memo below this line----------------------------- + +%--------------For a list of copies use the \COPIES: markup------------- +% for example: \COPIES first name +% second name +% third name, etc. +%------------enter the copies markup and names below this line----------- +\ENDMEMO % ----------------and before this line-------------------------- diff --git a/macros/text1/pc/models/mergelet.mdl b/macros/text1/pc/models/mergelet.mdl new file mode 100644 index 0000000000..de4e4fa4b2 --- /dev/null +++ b/macros/text1/pc/models/mergelet.mdl @@ -0,0 +1,77 @@ +% Sample Letter for Merge File Model +% +% TEXT1 Letterhead description, change to suit your letter +% +% +\begingroup +\paragraphskip{0pt} +\centerline{{\titlefont Washington State University}} +\vs{4pt}\hrule\vs{4pt} +\centerline{{\twelvept\bd Academic Computing Service}} +\vs{-2pt} +\centerline{{\tenpt Pullman, Washington 99164-1220\lbr 509/335-0411}} +\vs{1\bl} % number of blank lines inserted +\endgroup +\vs{\bl} +\tenpt +\nin{\today} +\vs{\bl} +\asisbegin +\noemptyspace\title\ \firstname\ \lastname +\noemptyspace\company +\address +\city, \state\ \zipcode +\phone + +Dear \firstname: + +\asisend +This letter is a sample for the merge file facility of \text1. Ten +data fields were created with DBASE~III on a PC and transferred to +CMS. The fields were delimited with double quotations marks +({\tt "}) and a comma placed between data fields by DBASE. Any data +base program that allows data fields to be delimited with quotation +marks could be used. A data file may also be created +directly on CMS by entering the data in the following manner:\lbr +\hs{2in}{\tt "}field one{\tt "},{\tt "}field two{\tt "},\ellipsis3,{\tt +"}last field{\tt "}\lbr +or written as \lbr +\hs{2in}{\tt "}field one{\tt ""}field two{\tt "\ellipsis3\ "}last +field{\tt "}\lbr +the commas between data fields are optional. + +Quotation marks must be placed on either side of each field +(delimit the field) and the {\it each data field must come in the same +sequence as the data names specified in the {\tt \\fieldnames} markup}. +{\bd No \it field may be omitted}, however, a field may be empty +({\it i.e.}, {\tt "}first field{\tt ","","}third field{\tt "} +\ellipsis3 ). + +The data markup (field names immediately preceded by a {\tt \\} ) +may be used to place text anywhere in the letter, but +each field should be followed by a control space markup (\\ \ , a +backslash followed by a blank space) or \text1 +will drop the space after the field. For example, the \\firstname\\ +\\lastname and \\amount markup have been used to add the +recipients name and a dollar amount in the following line. + +\cl{The \firstname\ \lastname\ account has been charged \amount\ for +printing services.} + +The {\tt \\noemptyspace} markup may be used to prevent a blank line +if an address line is empty. Place the data field markup between the +{\tt \\noemptyspace} markup and the linebreak ({\tt \\lbr}) markup +({\it i.e.}, {\tt \\noemptyspace\\company\\lbr} would prevent a blank +line if the company data field were empty). The {\tt\\noemptyspace} +markup prevents an extra space after an empty data field. Place +it in the following manner: {\tt \\noemptyspace\\title\\ +\\firstname\\ \\lastname\\lbr} The {\tt \\noemptyspace} markup will +remove the following control space ({\tt \\ }) or control line break +({\tt \\lbr}) if the specified data field +is empty. +\vs{\bl} +\noindent +Sincerely yours, +\vs{3\bl} +\noindent +John Doe diff --git a/macros/text1/pc/models/mergelst.mdl b/macros/text1/pc/models/mergelst.mdl new file mode 100644 index 0000000000..0d15914892 --- /dev/null +++ b/macros/text1/pc/models/mergelst.mdl @@ -0,0 +1,17 @@ +% Sample data base Merge File address list, created with dBASE III +% data field names are as follows: +% title, firstname, lastname, company, address, +% city, state, zipcode, phone, amount +% All data fields must be present for each entry, although the data +% field itself may be empty (i.e., "" is an empty or null data field). +% +"Ms.","Claire","Buckman","ABC Distributing Director","8307 Santa Anita +Blvd","Oxnard","CA","93034","(555)456-9059","$5.00" +"Mr.","Rick","Lisbonn","Vice-President for Marketing","1550 Keystone +St.","Glendale","CA","91206","(555)455-3344","$15.00" +"Dr.","Hank","Bicksby","Research Institute, Manager","4101 Peonia +Rd","Flagstaff","AZ","86001","(555)966-1278","$25.00" +"","Lena","Garnett","","520 S. 8th St.","Reno","NV","89504", +"(555)766-9121","$3.00" +"Mrs.","Lisa","Kafmanan","Sales Support Staff Manager","1960 Lindley +Ave.","Reseda","CA","91355","(555)860-0300","$8.00" diff --git a/macros/text1/pc/models/mergetxt.inp b/macros/text1/pc/models/mergetxt.inp new file mode 100644 index 0000000000..a25e9617e5 --- /dev/null +++ b/macros/text1/pc/models/mergetxt.inp @@ -0,0 +1,184 @@ +% Merge File Model Macro Definition File +\catcode`*=11 +\catcode`"=\active +\catcode`,=\active +\catcode`@=\active +\newbox\FirstUp +\newbox\SecondUp +\newbox\ThirdUp +\newcount\*first \*first=0 % first token field +\newcount\*index \*index=0 % field index +\newcount\*lastentry \*lastentry=0 % last token filed +\newcount\*letternumber \*letternumber=0 % letter number from start +\newcount\LblsUp \LblsUp=1 % number of labels per line +\newcount\LblsAcross \LblsAcross=0 % counter for labels accross +\newdimen\LblMat \LblMat=0pt % left and right label margins +\newdimen\LblHt \LblHt=0in % vertical label size +\newdimen\LblWd \LblWd=0in % horozontal label size +\newif\if*check \*checkfalse % datacheck for manual entry +\newif\if*lbfopen \*lbfopenfalse % check for open label file +\newtoks\*csnametoks \*csnametoks={} % tokens for field names +\newtoks\*maillblfmt \*maillblfmt={} % label sheet format code +\newtoks\*addrlbl \*addrlbl={} % address label tokens +\newwrite\*labels % create label filee + +\gdef,{\char'54{}}% +% Datacheck forces a print letter after each set of fields +\def\datacheck{\global\*checktrue}% +\def@{\ifnum\*index>0 + \global\*index=\*first % reset index + \if*check + \global\advance\*letternumber by1 + \immediate\write16{Letter number \the\*letternumber. + First Data Field: (\the\toks\*first) . . . + Last Data Field: (\the\toks\*lastentry ). } + \fi % write to log file for data check + \*prnletter % print current data + \fi +} % end of @ definition + +% Take user defined names to build control sequences +\def\fieldnames#1{\par + \global\advance\count15 by 1 % new token register + \global\*first=\count15 % first new token register + \parsenames#1\end}% end fieldnames markup + +% Separate name fields into individual entries +\def\parsenames#1{\ifx#1\end + \createfield + \let\next=\relax + \global\*lastentry=\count15 + \global\*index=\*first + \*csnametoks={} + \else + \ifx#1, + \createfield + \global\advance\count15 by 1 + \*csnametoks={} + \let\next=\parsenames + \else \*csnametoks=\expandafter{\the\*csnametoks#1} + \let\next=\parsenames + \fi\fi + \next}% end parsenames markup + +% CREATEFIELD create control sequence names from name field entries +\def\createfield{\expandafter\xdef\csname\the\*csnametoks\endcsname + {\noexpand\the\toks\the\count15 }}% end createfield markup + +% DEFINE " as name of merge command +\def"#1"{% set quote marks as active macro and delimiter + \ifnum\*index=0 \global\*index=\*first\fi + \global\toks\*index={#1} % gather argument in token variable + \ifnum\*index<\*lastentry % continue gathering process + \gdef,{\gdef,{\char'54{}}}% % drop , in data but not in text + \global\advance\*index by1 % index by 1 + \ignorespaces % eliminate spurious spaces + \else % end process + \global\*index=0 + \if*check + \global\advance\*letternumber by1 + \immediate\write16{Letter number \the\*letternumber. + First Data Field: (\the\toks\*first) . . . + Last Data Field: (\the\toks\*lastentry ). } + \fi % write to log file for data check + \*prnletter % print current data + \fi}% end define " as macro name + +% Merge letter text file merged for each data record +\def\*prnletter{% Print the letter text with current name/address fields + \catcode`"=12\catcode`@=3 % set " and @ to normal catcodes + \newpage % start new page for each letter + \setpagenumber{1} % reset page number + \inputletter % new page then get letter text file + \*savelabels{\*setlabel} % save address label information + \catcode`"=\active\catcode`@=\active % reset catcodes for markup defs + \relax}% end prnletter markup + +% Give filename for letter text +\def\documentfilename#1{\gdef\inputletter{\input #1 }}% + +% Give maillist data filename +\def\datafilename#1{\input #1 }% + +% Print no empty lines with the line break markup +\def\noemptyspace#1#2{\edef\V{#1}\edef\W{\empty}% + \ifx\V\W% do nothing if empty argument + \else #1#2\fi% if not empty replace argument with the line break +}% end no emptyspace +\let\nes=\noemptyspace % set abbreviation + + +% SAVELABELS ships information for labels to the label file +\def\*savelabels#1{% Write Mail Label Information to TEXT1$$.LABEL + \if*lbfopen % do nothing if file TEXT1$$.LABEL already open + \else \immediate\openout\*labels=text1$$.label % open TEXT1$$.LABEL + \immediate\write\*labels{\the\*maillblfmt} % write format + \global\*lbfopentrue\fi % set open flag + \global\advance\LblsAcross by1 % set label postion pointer + \ifnum\LblsAcross>\LblsUp \global\LblsAcross=1 \fi + \edef\T{% create labels + \ifnum\LblsAcross=1 \setbox\FirstUp=\fi % left label + \ifnum\LblsAcross=2 \setbox\SecondUp=\fi% center label + \ifnum\LblsAcross=3 \setbox\ThirdUp=\fi % right label + \vtop to\LblHt{\hsize=\LblWd \leftskip=\LblMat \rightskip=\LblMat + \parindent=0pt #1\par\vfil} % make label to label size and width + \ifnum\LblsAcross=\LblsUp % print labels + \ifcase\LblsUp% case 0, no labels specified + \or\setbox\SecondUp=\null \setbox\ThirdUp=\null % one label + \or \setbox\ThirdUp=\null % two labels + \fi% end case % three label default + \line{\box\FirstUp\box\SecondUp\box\ThirdUp\hfil} + \fi}% end definition of T + \immediate\write\*labels{\T} % write information to file +}% end save labels definition + +% Flushlabels prints any unprinted labels remaining in the markup +\def\*flushlabels{% print any remaining boxed labels + \ifcase\LblsUp % case ), no labels specified + \or \setbox\SecondUp=\null \setbox\ThirdUp=\null % one label + \or \setbox\ThirdUp=\null % two labels + \fi% end case % three label default + \immediate\write\*labels{\line{\box\FirstUp\box\SecondUp\box\ThirdUp + \hfil}}% +}% end flush any remaining labels + +% Print the label file TEXT1$$.LABEL +\def\printlabels{\newpage % end last letter + \*flushlabels % print any remaining labels + \immediate\closeout\*labels % close data file + \setpagenumber{99} % labels begin on page 99 + \input text1$$.label % input the address label data file +}% end print mailing labels + +\def\addresslabelformat#1{\global\*addrlbl={#1}}% +\*addrlbl={} + +\def\*setlabel{\the\*addrlbl}% + +% Set format for the mailing labels +\def\maillabelformat#1{% Sets dimensions and margins of each label + \def\labelsetup##1{\global\*maillblfmt={##1}}% + \def\numberoflabelsperline##1{\global\LblsUp=##1}% + \def\labelheight##1{\global\LblHt=##1}% + \def\labelwidth##1{\global\LblWd=##1}% + \def\labelmat##1{\global\LblMat=##1}% + #1}% end mail label format +\let\mlfmt=\maillabelformat % set abbreviation +\catcode`*=12 + +% Set defaults for the mailing labels +% Maillabelformat sets the page and label information for mailing labels +\maillabelformat{\labelsetup{% Sets page and margin settings + \raggedbottom + \parskip=0pt plus0pt minus0pt + \runningheadformat{\bothpages{\line{}}} + \pageformat{\topmargin{1in} + \bottommargin{0pt} + \leftmargin{0pt} + \rightmargin{0pt}}% end page format + }% end labelsetup + \numberoflabelsperline{3}% three labels max + \labelheight{1in} + \labelwidth{2.75in} + \labelmat{.25in} +}% end mail label format diff --git a/macros/text1/pc/models/mergetxt.mdl b/macros/text1/pc/models/mergetxt.mdl new file mode 100644 index 0000000000..9b5c9ac534 --- /dev/null +++ b/macros/text1/pc/models/mergetxt.mdl @@ -0,0 +1,96 @@ +% MERGE LETTER MODEL, merges address list with letter +\input mergetxt.inp % READ TEXT1 merge file format instructions +% +% Select special fonts and setting markup used +% in the merge process here: +% +\selectfontset{cm18}{titlefont}{default} % special letter heading font +\titlepageformat{\titleleadskip{0in}} % no initial skip for letters +% +% Run TEXT1 against a file on your disk that includes +% this model. A set of five sample letters will be printed. The +% sample letter describes the mail merge setup. Once you have +% run the model and read the letter, make the necessary +% modifications to your file. Set the address field names of +% your address file in the "\fieldnames{name, name, ...}" +% markup with the data field names of your data base file. +% Create the "shell letter," your letter, which includes the +% address field names of your data file, preceded by a "\", +% i.e., \namea, \nameb, etc. You need use only those data +% fields necessary in the document and address label, but all +% fields in your data base file must be given in the field +% names markup. Specify the name of your letter file +% "shell letter" with the "\documentfilename{fn.ft}" markup; +% specify the address data file with the "\addressfile{...}" +% markup; and then PRINT the file containing your letter merge +% model to merge the address file with the shell letter and +% print the label sheet. +% +% NOTE: If you create an address file by hand remove the percent sign +% before the datacheck MARKUP. The number of the letter from the +% beginning of the merge file data base and the first and last +% data fields will be listed on the screen and in the log file +% when data check is active. This will aid you in finding any +% errors in your data file. +% +%\datacheck % SET DATACHECK by removing the "%" symbol +% +% Give all data field names in sequence of occurrence +% (address list names) +% +% Format: \fieldnames{name1, name2, name3, ..., namelast} + +\fieldnames{title, firstname, lastname, company, address, city, + state, zipcode, phone, amount} + +% Give file name for document text (letter file that includes +% the field names for the replaceable text in the document) +% +% Format: \documentfilename{filename.filetype} + +\documentfilename{mergelet.mdl} + +% WARNING! +% If you want to modify the address label format, then the +% \addresslabelformat markup MUST come prior to the +% \datafilename markup. +% +% Format: \addresslabelformat{all fields and markup to create label} + +\addresslabelformat{\noindent\title\ \firstname\ \lastname\lbr + \company\lbr + \address\lbr + \city, \state\quad\zipcode} + +% Now specify where the address data file is located with +% the \datafilename markup. +% +% Format: \datafilename{filename.filetype} + +\datafilename{mergelst.mdl} + +% PRINTING A MAILING LABEL SHEET +% +% You may use the "\maillabelformat{}" markup to change +% the default label format markup. The default label format +% prints three inch-high labels across the page which can be +% copied onto a label sheet with an appropriate copy machine. +% +% WARNING! +% The \maillabelformat{} markup must be placed BEFORE the +% \printlabels markup to change the system defaults. +% +% Select the font setto be used in printing the labels. + +\tenpt % prints labels with computer modern ten point + +\printlabels % print address label sheet for Xerox label sheet + +% Labels will be printed beginning on page 99. +% +% WARNING! +% If you have an empty data field occurs in the data being +% processed within the \addresslabelformat, the field will +% be printed as a blank space or as a blank line if the +% field is by itself on the line. + diff --git a/macros/text1/pc/models/paper.inp b/macros/text1/pc/models/paper.inp new file mode 100644 index 0000000000..b0baec1743 --- /dev/null +++ b/macros/text1/pc/models/paper.inp @@ -0,0 +1,10 @@ +% Student Paper Layout -- Monospace +\footnoteformat{\everyfootnote{\rm\pin{.5in}\psk{1\bl} + \frenchspacing\singlespace} +} +\bibliographyformat{\bibentryformat{\goodbreak\vs{1\bl} + \frenchspacing\singlespace\hp\nin} + \titleformat{\np\cl{\us\bibtitle} + \vs{\bl} + } +} diff --git a/macros/text1/pc/models/paper.mdl b/macros/text1/pc/models/paper.mdl new file mode 100644 index 0000000000..1ebf653335 --- /dev/null +++ b/macros/text1/pc/models/paper.mdl @@ -0,0 +1,28 @@ +% Student Paper Layout +% Last updated on = 10/16/86 +\monospace +\doublespace +\input paper.inp % get paper format +% Cover Page + \vsk{1in plus 2fil minus 1in} % space at top of page + \centerlinesbegin % all lines centered on cover page + \frenchspacing % no double spaces after periods on cover page +%%%% insert title (using one or more lines) between dashed lines +%-------------------------------------------------------------------- +%-------------------------------------------------------------------- +\vs{2in} % space between title and author +%%%% insert author(s) (using one or more lines) between dashed lines +%-------------------------------------------------------------------- +%-------------------------------------------------------------------- +\vs{2in} % space between author and course +%%%% insert course (using one or more lines) between dashed lines +%-------------------------------------------------------------------- +%-------------------------------------------------------------------- +\vs{.5in} % space between course and date +%%%% Date follows; \today = current date or type over with desired date +\today + \centerlinesend + \vs{2in plus 1 fil minus 1in} %space at bottom of page + \newpage %end of title page + \setpagenumber{1}\titlepage %no page number on first page of text +%%%% BEGINNING OF PAPER diff --git a/macros/text1/pc/models/resume.inp b/macros/text1/pc/models/resume.inp new file mode 100644 index 0000000000..5370817b18 --- /dev/null +++ b/macros/text1/pc/models/resume.inp @@ -0,0 +1,62 @@ +% +\catcode`*=11 +\if*msp +\pageformat{\pagelength{11in} + \pagewidth{8.5in} % 792pt = 11in; 612pt = 8.5in + \topmargin{1in} + \bottommargin{1.2in} % 58pt = .8in; 72pt = 1in + \leftmargin{1.2in} + \rightmargin{1in} % 86pt = 1.2in + \bindingadjust{0pt} +} +\titlepageformat{\titleleadskip{.15in} + \titlefootline{} +} +\paragraphskip{1\bl} \paragraphindent{0pt} +\def\name#1{\par\hfill#1\hfill\gdef\headname{#1}} +\name{} +\runningheadformat{\bothpages{\line{ + \lft{\headname}\ctr{{\it Curriculum Vitae}} + \rt{\bd\pagenumber}} \vs{\bl}} + } +\runningfootformat{\bothpages{ + \vs{\bl}\line{\lft{}\ctr{}\rt{\today}}} + } +% Defaults for the \label markup +\labelformat{\skipbefore{1\bl} + \labelwidth{72pt} + \gutter{28pt} + \everylabel{\defaultmono\bd} + } +% +\else +\pageformat{\pagelength{792pt} + \pagewidth{612pt} % 792pt = 11in; 612pt = 8.5in + \topmargin{68pt} + \bottommargin{52pt} % 58pt = .8in; 72pt = 1in + \leftmargin{72pt} + \rightmargin{74pt} % 86pt = 1.2in +} +\titlepageformat{\titleleadskip{.15in} + \titlefootline{} +} +\paragraphskip{6pt} \paragraphindent{0pt} +\def\name#1{\par\hfill#1\hfill\gdef\headname{#1}} +\name{} +\runningheadformat{\bothpages{ + \line{\lft{\headname}\ctr{\it Curriculum Vitae} + \rt{\bd\pagenumber}} \vs{\bl}} + } +\runningfootformat{\bothpages{ + \vs{\bl}\line{\lft{}\ctr{}\rt{\today}}} + } +% Defaults for the \label markup +\labelformat{\skipbefore{1\bl} + \labelwidth{72pt} + \gutter{28pt} + \everylabel{\bd} + } +\fi +% +\catcode`*=12 +% diff --git a/macros/text1/pc/models/resume.mdl b/macros/text1/pc/models/resume.mdl new file mode 100644 index 0000000000..ce5e0e1bcf --- /dev/null +++ b/macros/text1/pc/models/resume.mdl @@ -0,0 +1,69 @@ +% Functional style; titled, justified resume +% +%********************* ***RESUME TEXMODEL*** ************************** +%* This TEXMODEL shows a sample resume. To get a copy of this sample, * +%* simply run this file through TeX as it is. * +%* When entering your own resume be sure to replace or delete all * +%* sample text. DO NOT use this model on a printer that only can * +%* print with \monospace. * +%************************************************************************ +% RESUME START +\input resume.inp +\cl{\bd RESUME} +\par +\name{Orville T. Game} +\cl{\it 9987 NE Oak St., Arbor Bay, CK 58924} +\vs{1\bl} +\label{Objective} +Seeking position with manufacturing firm which will provide +oportunity for advancement into personel-related position. +\label{Education} +\it Doctor of Hagiology, \rm Medical subterfuge\rt{1983.}\lbr +Beasley College of Performing Arts, Pullman, CA + +\label{ }Completed courses in economic manipulation, +John\-ny Carson analysis, and unpadded scrimmage. +Special courses in radar sabotage, misspelling, and +stream of consciousness reporting of news. +Completed graduate courses in anthropology, anthrometry, anthrosophy, +anthromorphism, and camp counselling. +Committee: Michael Farnberger, Casper Weinberger, Bill Cheeseburger, +and Warren Burgher. +GPA: 1.75. 40\%\ financed by drug sales; 60\%\ by gambling. + +\label{}\it Master of Arts, \rm Philosophy\rt{1983.}\lbr +University of Idaho, Moscow, ID + +\label{}Completed courses in philosophy, filo-making, fillerupedness, +filling station technology, and filler. +Completed graduate courses in philosophy, philology, +philo\-lo\-gram\-matry, phylogeny, filliness, and phil\-i\-stines. +Special Committee: Phil Marquette, Phillip Petroleum, Philo Bellows, +and Phyllus Diller. +GPA: 0.63. 50\%\ financed by bribes, 50\%\ by unpaid loans. +\label{Related Experience} +\it Consultant, \rm Computing Service Center\rt{1985-}\lbr +Washington State University, Pullman, WA 99164-1220 +\par +\label{}Direct acquisition of antique typesetting machinery and old +metal sculptings for garden area. +In charge of coffee for management. +Qualified to exterminate bugs in really awkward and tiresome +programs. +Training to collect and recycle aluminum cans for distribution +to East coast distilleries. +\label{Other Experience} +\it Research Associate-Biowarfare, \rm Mars Institute\rt{1984-}\lbr +P.O. Box 9, Pullman, WA 99163 +\par +\label{}Participate in studies on neutralizing liberal demo\-crats with +nuclear warheads (low radiation, high neutron count). +Analyze patterns of ideological disarray for potential weakness. +Write articles on normative aspects of unethical behavior. +Keep memoirs of same for distribution to publishers. +\label{Awards} + Special award for boot-licking, 1982. +Outstanding Stand Out, 1983. +\label{Activities} + Drama Club, 1980--82; Alpha Kappa Kappa Fraternity +\label{References} On request. diff --git a/macros/text1/pc/models/thesis.inp b/macros/text1/pc/models/thesis.inp new file mode 100644 index 0000000000..2dfd40e5c0 --- /dev/null +++ b/macros/text1/pc/models/thesis.inp @@ -0,0 +1,159 @@ +% WSU graduate school thesis requirements. +\paragraphindent{36pt} +\paragraphskip{12pt plus 2pt minus 1pt} +\raggedbottom +% +% +\catcode`*=11 +\if*msp +\pageformat{\pagelength{11in} + \pagewidth{8.5in} + \topmargin{1.2in} + \bottommargin{1.2in} + \leftmargin{1.2in} + \rightmargin{1in} + \bindingadjust{0in} +} +\titlepageformat{\titleleadskip{1.25in} + \titlefootline{} +} +% Default values for the \chapter markup +\chapterformat{\numberingstyle{1} + \titleformat{\dumpinsertseject + \centerline{\bd Chapter \chapternumber} + \centerline{\bd\chaptertitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end chapter format +% Default values for the \subheada markup +\subheadaformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\bd\nin\subheadatitle\par\nobreak + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadaformat markup +% Default values for the \subheadb markup +\subheadbformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\it\nin\subheadbtitle\par\nobreak + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadbformat markup +% Default values for the \preface markup +\prefaceformat{% + \titleformat{\dumpinsertseject + \centerline{\bd\prefacetitle} + \vs{1\bl} + \setsubheadanumber{0} + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +} +\paragraphskip{12pt} +\asisformat{\skipbefore{0pt} + \everyasis{\rm\ssp\leftindent{36pt}} + \skipafter{0pt}} +% +\blockquoteformat{\skipbefore{0pt} + \everyblockquote{\rm\ssp\pin{.3in}\psk{12pt} + \leftindent{36pt} \rightindent{36pt}} + \skipafter{0pt}} +% +\else +\pageformat{\pagelength{11in} + \pagewidth{8.5in} + \topmargin{1.2in} + \bottommargin{1in} + \leftmargin{1.3in} + \rightmargin{1in} + \bindingadjust{0in} +} +\titlepageformat{\titleleadskip{1.25in} + \titlefootline{} +} +% Default values for the \subheada markup +\subheadaformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\bd\nin\subheadatitle\par\nobreak + \setsubheadbnumber{0} + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadaformat markup +% Default values for the \subheadb markup +\subheadbformat{\numberingstyle{1} + \titleformat{\removelastskip\goodbreak\vs{2\bl} + \twelvept\it\nin\subheadbtitle\par\nobreak + \setsubheadcnumber{0} + \setsubheaddnumber{0} + }% end titleformat + \incontents{yes} +}% end subheadbformat markup +\asisformat{\skipbefore{0pt} + \everyasis{\tenpt\ssp\leftindent{36pt}} + \skipafter{0pt}} +% +\blockquoteformat{\skipbefore{0pt} + \everyblockquote{\rm\ssp\pin{24pt}\psk{6pt} + \leftindent{36pt} \rightindent{36pt}} + \skipafter{0pt}} +% +\footnoteformat{\footnotedivider{144pt} % 144pt = 2in + \skipafterdivider{2.6pt} + \textreferenceposition{up} + \textreferenceplacement{after} + \textreferencefont{\tenpt} + \textreferencestyle{1} + \notereferenceposition{down} + \notereferencefont{\tenpt} + \notereferencestyle{1.} + \notereferencegutter{1em} + \everyfootnote{\tenpt\ssp\pin{12pt}\psk{6pt}\lin{6pt}} +} +% +\endnoteformat{\skipbefore{4pt} + \textreferenceposition{down} + \textreferencefont{\rm} + \textreferencestyle{[1]} + \notereferenceposition{down} + \notereferencefont{\rm} + \notereferencestyle{1.} + \notereferencegutter{1em} % 1em = 12pt in a 12pt font + \everyendnote{\rm\pin{12pt}\psk{6pt}\lin{0pt}} +} +\fi +% +\def\copyrt{\if*msp{}\else + {{$\copyright$}}\fi} +% +\newcount\P +\def\signatures#1#2{\par\vs{54pt}\P=#1 + \ifnum\P>50 \P=50 + \message{Number of signature lines will be limited to 50}\fi + \advance\P by-1 + \hbox{\hs{3in}\vrule width3in height.4pt} + \hbox{\hs{3in}\hbox to 3in{\hfill #2 \hfill}} + \vs{36pt} + \loop\ifnum\P>0 + \hbox{\hs{3in}\vrule width 3in height.4pt} + \vs{48pt} + \advance\P by-1\repeat + }% +% +\tableofcontentsformat{% + \toctitle{\ssp\centerline{\bd Table of Contents} + \vs{\bl}}} +\catcode`*=12 diff --git a/macros/text1/pc/models/thesis.mdl b/macros/text1/pc/models/thesis.mdl new file mode 100644 index 0000000000..bbfde6b140 --- /dev/null +++ b/macros/text1/pc/models/thesis.mdl @@ -0,0 +1,139 @@ +% WSU Graduate School Thesis Requirements +% Last updated on = 6/15/87 +%********************* ***THESIS TEXMODEL*** ************************** +%* This TEXMODEL shows some sections of a sample thesis. For a printout * +%* of a sample thesis, simply run this file through TeX as it is. * +%* When entering your own thesis, be sure to replace or delete all * +%* sample text. If you are printing your thesis on a monospaced printer,* +%* the \monospace command must be activated by removing the percent * +%* sign preceding it. * +%************************************************************************ +% THESIS START + +% ***TITLE PAGE*** + +%\monospace +\input thesis.inp +\justify \singlespace +\setpagenumber{-1} +\centerlinesbegin +\bd +A PHENOMENOLOGICAL THEORY OF +\vs{12pt} +CROSS-CULTURAL AESTHETICS +\vs{1.25in} +\rm +By +\vs{12pt} +GEORG MACQUET +\vs{1.25in} +A thesis submitted in partial fulfillment of +the requirements for the degree of +\vs{12pt} +MASTER OF ARTS IN ANTHROPOLOGY +\vs{24pt} +WASHINGTON STATE UNIVERSITY +Department of Anthropology +\vs{12pt} +December 1986 +\vs{.8in} +\copyrt Copyright by GEORG MACQUET, 1986 +All Rights Reserved +\centerlinesend %DO NOT DELETE THIS LINE UNLESS LINE 19 IS DELETED +% ***COPYRIGHT PAGE*** +\np +\titlepage +\vsk{7in} +\centerlinesbegin +\copyrt Copyright by GEORG MACQUET, 1986 +All Rights Reserved +\centerlinesend %DO NOT DELETE THIS LINE UNLESS LINE 47 IS DELETED +% ***SIGNATURE PAGE*** +\newpage +\setpagenumber{-2} +\rightragged +\vsk{2.8in} +\doublespace +\nin To the Faculty of Washington State University: +\par +The members of the Committee appointed to examine the thesis of +GEORG MACQUET find it satisfactory and recommend that it be +accepted. +% +%****************************************************************** +%* The \signatures command draws the number of lines specified * +%* in the first parameter for the committee members' signatures. * +%* The first parameter may be any number, but if it is larger * +%* than 5, spacing must be changed to make it fit on one page. * +%* The second parameter of the \signatures command will be * +%* centered as a title under the first line. * +%****************************************************************** +% +\singlespace +\signatures{4}{Chairperson} +\doublespace +% ***ACKNOWLEDGE*** +\newpage +\justify +\preface{Acknowledgements} +I would like to thank Clarke Moustakos and Helen Burdeman +for their help in advising me to study Anthropology at ... +% ***ABSTRACT PAGE*** +\newpage +\vsk{.6in} +\centerlinesbegin +\bd +A PHENOMENOLOGICAL THEORY OF +\bd +CROSS-CULTURAL AESTHETICS +\rm +ABSTRACT +\putincontents1{\nin Abstract\leader\pagenumber} +\vs{12pt} +\singlespace +by Georg Macquet, M.A. +Washington State University +December 1986 +\centerlinesend %DO NOT DELETE THIS LINE UNLESS LINE 84 IS DELETED +\doublespace +\noindent Chairperson: V.~L.~Nabokov +\par +Aesthetic phenomena can be defined from an anthropological perspective. +Anthropology is empirical; therefore, aesthetic phenomena must also be +defined empirically to be identified by the techniques of... +\par +%********************** MAIN TEXT OF THESIS ************************* +%* This ends the preliminary pages of the thesis and begins the main * +%* text. The remaining sections of the thesis may be entered using any * +%* or all standard TeXT1 markup commands, including \autofootnote, * +%* \bibliography, \autoendnote, \subheada, etc. For more information * +%* on the standard TeXT1 markup commands see the "TeXT1 Users Guide * +%* (S-522)," or the "TeXT1 Reference Manual (S-523)." * +%************************************************************************ +\chapter{Introduction} +\setpagenumber{1} +The original perspective of anthropology can contribute to a comprehension of +art. Observational criteria are needed to identify aesthetic phenomena +uniquely, and anthropology \el3 +\sha{Art as Product} +In the past, the arts have been studied primarily as products in anthropology. +But the product must be created by human beings who behave in certain ways. In +Merriam's words: + +\bqb Through the humanistic elements of his culture, man seems to be making +pointed commentary on how he lives; his social life in itself seems to bring +about conditions under which he is unable to restrain himself from commenting +upon himself\el3 +\bqe + +\sha{Styles of Representation} +Representations are images that refer to the visual appearance of a thing. +Gombrich's theory\afn{wherin a representation is not a symbol} is not +appropriate in this context. Indeed, A.P. Meriam (1971)\aen{This is the only +edition with the full analysis of semantic theories applied to oriental +cultures.} states that\el3 +\newpage +\cl{\bd Notes} +\printendnotes +\toc{-5} +\bye diff --git a/macros/text1/pc/readme.tex b/macros/text1/pc/readme.tex new file mode 100644 index 0000000000..53922654ce --- /dev/null +++ b/macros/text1/pc/readme.tex @@ -0,0 +1,38 @@ +The files in this directory are specifically for PCs. In the [.fonts] directory +are the fonts not included with standard TeX but which are used in TEXT1. Down +load these PK files in binary. + + cd [anonymous.text1.pc.fonts] + bin + mget *.pk + +You will also need to get the TFM files in the [anonymous.text1.fonts] +directory to go with these PK files. + + cd [anonymous.text1.fonts] + bin + mget *.tfm + +In addition to the fonts, you will need to get the TEX files in the +[anonymous.text1.macros] directory. + + cd [anonymous.text1.macros] + mget *.tex + +These should be placed in the TeX input path on your PC. +And then modify the TXT1*.TEX file so that near the top of the file it says +"true" that this is for a PC. + +Next get the font sets + + cd [anonymous.text1.pc.misc] + mget *.* + +they go in your TeX input path on the PC. + +Finally, you may optionally retrieve the models and blocks for a PC: + + cd [anonymous.text1.pc.models] + mget *.* + cd [anonymous.text1.pc.blocks] + mget *.* diff --git a/macros/text1/texix/plsort.pliopt b/macros/text1/texix/plsort.pliopt new file mode 100644 index 0000000000..b644a4206c --- /dev/null +++ b/macros/text1/texix/plsort.pliopt @@ -0,0 +1,9 @@ + PLSORT: PROC(TEMP) OPTIONS(FORTRAN); + DCL TEMP FIXED BIN(31,0); + CALL PLISRTA( + ' SORT FIELDS=(38,256,CH,A,293,44,CH,A,342,256,CH,A,'|| + '597,44,CH,A,646,256,CH,A,901,44,CH,A,10,4,BI,D,6,4,BI,A)', + ' RECORD TYPE=V,LENGTH=(1857) ', + 95000,TEMP); + RETURN; + END; diff --git a/macros/text1/texix/texix.cmschan b/macros/text1/texix/texix.cmschan new file mode 100644 index 0000000000..9c767000c6 --- /dev/null +++ b/macros/text1/texix/texix.cmschan @@ -0,0 +1,3 @@ +% Version 1.0; Dean Guenther; 4/1/86 +% Version 1.1; Dean Guenther; 12/87 +% Version 1.2; Dean Guenther; 6/28/88 diff --git a/macros/text1/texix/texix.cmsinfo b/macros/text1/texix/texix.cmsinfo new file mode 100644 index 0000000000..72b6ab4e65 --- /dev/null +++ b/macros/text1/texix/texix.cmsinfo @@ -0,0 +1,5 @@ +TEXIX.WEB is the TEXT1 sorted index program. The TXT1V293.CMSCHAN can be used +to create a TXT1V293 MODULE on CMS which has the sorted index program imbedded +into TEX itself as an extended primative. PLSORT must be compiled to get a CMS +TEXT files, and TEXIX WEB must be compiled with TEXIX CMSCHAN to get its TEXT +file before compiling and linking TXT1V293 with TEX (version 2.93). diff --git a/macros/text1/texix/texix.readme b/macros/text1/texix/texix.readme new file mode 100644 index 0000000000..e2f9e3a8ec --- /dev/null +++ b/macros/text1/texix/texix.readme @@ -0,0 +1,4 @@ +TEXIX is a program which is used in conjunction with TEXT1 macros to create a +sorted index for TeX. In the text1.texix directory is the TEXIX source, along +with a changes file for CMS. If you are using VMS, look in the text1.vax_vms +directory for the VMS version. There is a Mac version in text1.macintosh. diff --git a/macros/text1/texix/texix.web b/macros/text1/texix/texix.web new file mode 100644 index 0000000000..bbf577633e --- /dev/null +++ b/macros/text1/texix/texix.web @@ -0,0 +1,1577 @@ +% Version 1.3 makes it easier to create other changes files (6/89) +\font\twelvept=cmbx12 +\font\tentex=cmr10 +\def\topofcontents{\null\vfill\eject + \def\titlepage{T} + \centerline{{\twelvept The \TeX IX Index Program}} + \centerline{{\twelvept For IBM VM/CMS Pascal/VS}} + \vskip15pt + \centerline{Version 1.3, June 1989} + \hbox{\vbox{\hsize\the\hsize This work is + protected as an unpublished work under U.S. copyright laws. + Copyright $\copyright$ 1988 by WSUCSC. All rights Reserved.}} + \vskip18pt + \hbox{\vbox{\hsize\the\hsize This software is furnished under a + license for + use only on a single computer system and may be copied only + with the inclusion of the above copyright notice. + This software, or any other copies + thereof, may not be provided or otherwise made available to any + other person except for use on such system and to one who agrees to + these license terms. Title to and ownership of the software shall + at all times remain in WSUCSC.}} + \vfill} +\let\tentex=\tt +\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}% +% +\def\}{\ifmmode \rbrace + \else $\rbrace$\fi}% +% +\def\{{\ifmmode \lbrace + \else $\lbrace$\fi}% +% +\def\us#1{$\underline{\smash{\hbox{#1}}}$}% +\def\lin#1{\par + \leftskip 0pt + \advance \leftskip by #1 + }% +\def\vs#1{\vskip #1\relax} +\catcode`*=11 +% labeled definition macro +% +\newdimen\la*w \la*w=1in % Label width +\newtoks\la*g \la*g={1em} % Label gutter +\newtoks\la*s \la*s={12pt} % Skip before label +\newtoks\la*f \la*f={\rm} % Label font +\newbox\tempbox +% +\long\def\label#1{\par\vskip\the\la*s + \setbox\tempbox=\vtop{\hsize=\la*w + \leftskip=0pt + \rightskip=0pt plus2em + \tolerance=1600 + \noindent + \the\la*f + #1}% + \hangindent=\la*w + \advance \hangindent by \the\la*g + \hangafter=1 + \noindent + \setbox0=\hbox{\rlap{\box\tempbox}}\ht0=0pt\dp0=0pt\box0% + \hskip\la*w + \hskip\the\la*g + \ignorespaces} +\let\la=\label +\catcode`*=12 +\let\nin=\noindent +\def\lbr{\null\hfil\break} +\def\PASCAL{{\sc PASCAL/VS}} +\def\hs#1{\hskip#1} +\def\text#1{{\it \TeX T#1}} +\def\9{\it} +\def\bs{$\backslash$} +% Version 1.0; Dean Guenther; 4/1/86 +% +@* Introduction. +This procedure was created to give \text1\ the ability to produce a sorted +index in the same one pass, instead of creating the index, sorting it, and +printing the index out in three separate steps. + +To accomplish this feat, a new control sequence, \bs{}sortindex, was added to +the basic \TeX\ program which gives the \text1\ user up to three sorted +index files per run. The format of this new control sequence is +\par{\tt\indent\bs{}sortindex\it n} +\par +\nin where {\it n} is the index file number: 1, 2, or 3. + +@ The @^TEXIX@> +program is written entirely in WEB, except for an external +procedure, {\it plsort}, which is written in @^PL/1@> PL/1. +This was necessary since +\PASCAL\ cannot call +@:plsort@> +Syncsort @^SYNCSORT@> +to do an internal sort, and PL/1 can. + +@ +Also, it should be pointed out early that I made use of \PASCAL' +nifty string handling capability, in particular, the |string|, +|index| and |substr| functions. If needed, these should not be too +difficult to translate into another \PASCAL\ +compiler (famous last words). + +@p +segment texix; +procedure texix(ix:char); external; +procedure texix; +const @ +type @ +var @! m,k,i,j :integer;@/ +@ + +@ The file {\it ix\_file} +is the file opened for output in the \text1\ session +itself. It will be closed in TEXIX, opened for input, closed again, and +finally opened for output where the final sorted index file will be +written to, complete with all \text1\ markup necessary for printing +the index. + +@= +sysprint:text; +@!ix_file :text; + +@ The {\it sort\_file} is used for the internal sort only. The \text1\ user +never has access to it. + +@= +@!sort_file :file of sort_type; + +@* Macros and definitions. +Here are some macros and definitions used throughout. + +@d incr(#) == # := # + 1 +@d decr(#) == # := # - 1 + +@d othercases == otherwise +@d endcases == end; + +@d dosubstr == substr +@d doindex == index + +@f othercases == else +@f endcases == end + +@d getout == return +@d messages == sysprint + +@d max_field = 300 +@d max_levels = 3 +@d max_lrecl = 2048 + +@d remove_characters(#) == if length(in_record) > # then +in_record := dosubstr(in_record,1 + #) +else in_record := '' + +@d do_nothing == begin end + +@d do_sort_as == begin remove_characters(6); +i := doindex(in_record,'{$}'); +write_sort_chars(i-1); +remove_characters(3); +end + +@d check_case == begin +if not respect_case then for j:= 1 to +sort_part[i].field_lngth do sort_part[i].field_level[j] := +upper_case(sort_part[i].field_level[j]); end + +@d string_type(#) == string(#) + +@d ccat_temp == @t\hs{2em}@>@=||@>@t\hs{2em}@> + + +@d add_comma(#) == # := ccat(#,',') +@d add_cmma_blnk(#) == # := ccat(#,', ') + +@d do_when_bold == begin +if length(bold_string) > 0 then add_comma(bold_string); +bold_string:= +ccat(ccat(ccat(bold_string,'{\bd '),curr_str_page),'}'); +@.\bs{}bd@> +end + +@d do_when_underscore == begin +if length(us_string) > 0 then add_comma(us_string); +us_string:= +ccat(ccat(ccat(us_string,'\us{'),curr_str_page),'}'); +@.\bs{}us@> +end + +@d do_when_italic == begin +if length(rm_string) > 0 then add_comma(rm_string); +rm_string:= +ccat(ccat(ccat(rm_string,'{\it '),curr_str_page),'}'); +@.\bs{}it@> +end + +@d do_when_roman == begin +if length(rm_string) > 0 then add_comma(rm_string); +rm_string:=ccat(rm_string,curr_str_page); +end + +@d do_write(#)==write(#) + +@d do_lnwrite(#)==writeln(#) + +@ This is arbitrary, but +there should never be more than 8 indicies. + +@d s_file_number == '9' + +@ This is used to print the subentry1 header if there are no page +numbers under its subentry and there are under subentry2. + +@d id2_missing_check== +curr_level:=2; +if sort_record.sort_part[3].field_lngth=0 +then do_nothing else begin +id2_is_missing:=true; +write_header(sort_record.print[2].field_lngth, +sort_record.print[2].field_level); +id2_is_missing:=false; +curr_level:=3;end + +@ This is used to print the primary header if there are no page +numbers under the primary header, and there are page numbers under +either subentry1 or subentry2. + +@d id1_missing_check==if sort_record.sort_part[2].field_lngth = 0 +then begin curr_level:=1; +if sort_record.sort_part[3].field_lngth = 0 +then do_nothing else begin +id1_is_missing:=true; +write_header(sort_record.print[1].field_lngth, +sort_record.print[1].field_level); +id1_is_missing:=false; +curr_level:=3;end;end +else begin curr_level:=1; +id1_is_missing:=true; +write_header(sort_record.print[1].field_lngth, +sort_record.print[1].field_level); +id1_is_missing:=false; +id2_missing_check; +end + +@ This is a little macro used to access {\it write\_header}. + +@d write_prev_header== +begin case curr_level of +1: write_header(prev_ln1,prev_pn1); +2: write_header(prev_ln2,prev_pn2); +3: write_header(prev_ln3,prev_pn3); +othercases do_nothing +endcases +end; + +@ The function ccat will concatenate two strings together. + +@^System dependent code@> +@p function ccat(x,y:string_pass):string_pass; +begin + ccat := x ccat_temp y; +end; + +@* Opening and Closing the files. +This is all very dependent on \PASCAL. + +@ The {\it reset\_file} procedure is used to open all files. +One time this is done when first entering TEXIX. +Note that the file name is ``{\tt IX\it n}'' where ``{\it n}'' is +1--3. This can easily be extended to 4--8 by chaning the \bs{}index +markup in TEXT1@@. +The other time the open is done is when opening the sort file, after it +has already been sorted. +This is system dependent. The following will work for \PASCAL. + +@^System dependent code@> +@p procedure reset_file(file_number:char); +begin +if file_number = '9' then reset(sort_file, +'NAME=TEXT1$$.OUTSORT.A,LRECL=1857,RECFM=V') +else reset(ix_file, +ccat(ccat('NAME=TEXT1$$.IX',str(file_number)),'.A')); +end; + +@ +The {\it sort\_file} is opened for output to write the sort records to. +The {\it ix\_file} is opened for output after the sort records have +been sorted and processed again. +This is system dependent. The following will work for \PASCAL. + +@^System dependent code@> +@p procedure file_rewrite(file_number:char); +begin +if file_number = '9' +then +rewrite(sort_file,'NAME=TEXT1$$.INSORT.A,LRECL=1857,RECFM=V') +else +rewrite(ix_file, +ccat(ccat('NAME=TEXT1$$.IX',str(file_number)), +'.A,LRECL=2048,RECFM=V')); +end; + +@* The Sort Record Description. The record type called +{\it sort\_type} is the record written to the {\it sort\_file}. +If consists of the following: +\la{\bf Bytes} +\la{1} +A one byte {\it record\_type} (0={\bf bold page number}; +2= roman page number (the default); 4=\us{underscored} \us{page} +\us{number}; +6={\it italic page number}; 9=blind entry). +\la{2--5} +The integer page number. If the page +number is in the preface part of the document, then the page number will +be negative. +\la{6--9} +Used in sorting decending. That means that -1 will be at the top. +If the page number is plus to begin with, then this is set to zero +for sorting, so it will be at the bottom of the list. +\la{10-29} This is the same as page number, unless the page number is +negative, in which case this field is a roman numeral. +\la{30--33\lbr34--333\lbr334--337\lbr338--637\lbr638--641\lbr642--941} +The sort field. There are three arrays in this field. Each array +consists of a 4 byte length, followed by the {\it field\_array} which is +the length of the sort entry or subentry. +It is these fields which will get sorted by @^Syncsort@> Syncsort. +If there was a {\it sort\_as} +used for a sort entry or subentry, that value passed in the {\it sort\_as} +is placed here. +\vs{24pt} +\la{942--945\lbr946--1245\lbr1246--1249\lbr +1250--1549\lbr1550--1553\lbr1554--1853} +The print field. +The description is the same as the sort field. +This is the way the index entry will print, but not necessarily how +it will sort. +\vs{96pt} + +@ @= +@!max_pn_alpha=20; +@!max_pnum=9; + +@ @= +@!string_pass=string_type(max_lrecl); +@!pass_pn_alpha=string_type(max_pn_alpha); +@!pn_type=packed array[1..max_pnum] of char; +@!pn_alpha_type=packed array[1..max_pn_alpha] of char; +@!field_array = packed array[1..max_field] of char; +@!field_type = packed record@| +@!field_lngth :integer; +@!field_level :field_array; +end; +@!sort_type = packed record@/ +@!record_type :char; +@!page_number :integer; +@!abs_page_number :integer; +@!page_string :pn_alpha_type; +@!sort_part :packed array[1..3] of field_type; +@!print :packed array[1..3] of field_type; +end; + +@* Subroutines. For many of the following subroutines, the following +global variable, {\it current\_level} is needed to indicate what +index level we are presently processing. +0 = the primary index; 1 = subentry 1, and +2 = subentry 2. +{\it on\_a\_roll} is `true' if we have a series of consecutive page +numbers going. `false' otherwise. +In other places, {\it print\_style}=1 for the paragraph style; it is +2 for the dash style; and it is 3 for the indent style. + +@= +@!curr_level :integer; +@!on_a_roll:boolean; + +@ The {\it write\_header} procedure will write out the primary and +subentry level titles from {\it sort\_record.print}. + +@p procedure write_header(print_length:integer;print_field:field_array); +var i:integer; +begin +case curr_level of +1: begin + do_write(ix_file,'\goodbreak\hp '); +@.\bs{}leavevmode@> +@.\bs{}goodbreak@> +@.\bs{}hp@> + for i:=1 to print_length do do_write(ix_file,print_field[i]); + case print_style of + '1':begin + do_write(ix_file,', '); + end; + '2','3':begin + if id1_is_missing or dot_leadering + then do_lnwrite(ix_file,' ') + else do_lnwrite(ix_file,', '); + end; + othercases do_nothing + endcases; end; +2: begin case print_style of + '1':do_nothing; + '2':begin + do_write(ix_file,'\indentsubentry',ix,'1---'); +@.\bs{}indentsubentry@> + end; + '3':begin + do_write(ix_file,'\indentsubentry',ix,'1'); + end; + othercases do_nothing + endcases; + for i:=1 to print_length do do_write(ix_file,print_field[i]); + if (print_style <> '1') or id2_is_missing or dot_leadering + then do_lnwrite(ix_file,' ') + else do_lnwrite(ix_file,', '); + end; +3: begin case print_style of + '1':do_nothing; + '2':begin + do_write(ix_file,'\indentsubentry',ix,'2---'); + end; + '3':begin + do_write(ix_file,'\indentsubentry',ix,'2'); + end; + othercases do_nothing + endcases; + for i:=1 to print_length do do_write(ix_file,print_field[i]); + if dot_leadering + then do_lnwrite(ix_file,' ') + else do_lnwrite(ix_file,', '); + end; +othercases do_nothing +endcases +end; + +@ The {\it numeric} function will take a packed array of length +max\_pnum and convert +that array (which is really the page number) into an integer. + +@p function numeric(simple_array:pn_type):integer; +var @!i,j_mult,pn:integer; +begin pn := 0; +i := max_pnum;j_mult:=1; +repeat +if i = 1 then if simple_array[1] = '-' +then pn := -1 * pn +else pn := pn + ((ord(simple_array[1])-ord('0')) * j_mult) +else pn := pn + ((ord(simple_array[i])-ord('0')) * j_mult); +j_mult := j_mult * 10; +decr(i); +until i < 1; +numeric:=pn; +end; + +@ The {\it get\_numeric} +function will take a packed array of length max\_pn\_alpha and convert +that array (which is really the page number) into an integer. + +@p function get_numeric(x_string:string_type(max_pn_alpha)):integer; +var @!i:integer; +begin +readstr(x_string,i); +get_numeric:=i; +end; + +@ The {\it strvalue} function takes an integer and converts it into +a string. + +@^System dependent code@> +@p procedure strvalue(x:integer; var results:pass_pn_alpha); +var +temp:string_type(max_pn_alpha); +begin +writestr(temp,x); +results:=ltrim(temp); +end; + +@ The {\it strconv} function takes an array and converts it into +a string. + +@p function strconv(x:pn_alpha_type):string_type(max_pn_alpha); +var i:integer; +temp:string_type(max_pn_alpha); +begin +temp:='';i := 1; +with sort_record do begin +repeat +if x[i] <> ' ' then +temp := ccat(temp,str(x[i])); +incr(i); +until (i > max_pn_alpha) or (x[i] = ' '); +end; +strconv:=temp; +end; + +@ The procedure {\it write\_print\_chars} will write the number of +characters indicated +in the parm field to the appropriate print field. There are three levels of +print fields. Level 0 is the primary index, level 1 is the subentry 1 index, +and level 2 is the subentry 2 index. After writing the number of characters +to the print field, that number of characters is removed from the input record. +You might notice that this procedure is very similar to the +write\_sort\_chars +procedure. The only difference in the two is that this procedure deals +with how the index is +to be printed after sorting. The former deals with how the +index is to be sorted. +Also, this procedure is called by {\it write\_sort\_chars}. + +@^System dependent code@> +@p procedure write_print_chars(number_of_characters:integer); +var m:integer; +begin with sort_record.print[curr_level+1] do +for m := 1 to number_of_characters do begin +incr(field_lngth); +field_level[field_lngth] := in_record[m]; +end; +remove_characters(number_of_characters); +end; + +@ The procedure {\it write\_sort\_chars} +will write the number of characters indicated +in the parm field to the appropriate sort field. There are three levels of +sort fields. Level 0 is the primary index, level 1 is the subentry 1 index, +and level 2 is the subentry 2 index. After writing the characters to +the sort fields, they will be removed from the input string. + +@^System dependent code@> +@p procedure write_sort_chars(number_of_characters:integer); +var m:integer; +begin with sort_record.sort_part[curr_level+1] do +for m := 1 to number_of_characters do begin +incr(field_lngth); +field_level[field_lngth] := in_record[m]; +end; +remove_characters(number_of_characters); +end; + +@ +This procedure processes subentries within the \bs{}index command. For example, +the phrase ``Mt. St. Helens'' would be processed here for the entry created +by the markup: +\vs{12pt} +{\lin{.5in} +{\tt\bs{}index\{volcanos\bs{}subentry1\{Mt. St. Helens\}\}}\par} +\vs{12pt} +\nin Note +that there are two levels of subentries, \bs{}subentry1 and \bs{}subentry2. +You can +use \bs{}sortas within a \bs{}subentry. But you cannot use \bs{}subentry2 within +\bs{}subentry1 and vise versa. If you think it should be permitted, don't. +Also, \bs{}blindentry is not permitted within \bs{}subentry. +(I can't be flexible {\bf everywhere}.) + +@ First save the current level, then set the current level to the +subentry level. Process until the subentry is completely digested. + +@^System dependent code@> +@p procedure process_subentry(@!entry_level:integer); +var temp_level :integer; +digest :boolean; +begin remove_characters(1);{Throw away the `1' or `2'}@/ +temp_level := curr_level; +curr_level := entry_level; +digest := true; +repeat +@ +until not digest; +curr_level := temp_level; +end; + +@ If the next character is a dollar sign, then we {\bf might} have a \bs{}sortas +If the next character is a left curly brace, then check to see if we've +reached the end of this subentry. If the character is not `\$' or `\{', +then write the character to the print file. + +@= +if in_record[1] = '$' +then @ +else if in_record[1] = '{' +then @ +else write_print_chars(1); + +@ If the next two characters are `\$\}' then we are are the end of +the subentry. + +@= +begin +if (in_record[2] = '$') and (in_record[3] = '}') +then begin +digest := false; +remove_characters(3); +end +else write_print_chars(1); +end + +@ If the next three are `\{\$\}' then we {\it might} have a sortas. +and check the next two +characters to see if they +are `{\tt sa}'. If so, we {\bf do} have a sortas. +Otherwise write those 6 characters out. In any case, if we don't have +a `\{\$\}' to begin with, then write the first character out +(which was a +`\$' if you remember from earlier.) + +@= +if (in_record[2] = '{') and +(in_record[3] = '$') and (in_record[4] = '}') +then begin +if (in_record[5] = 's') and (in_record[6] = 'a') +then do_sort_as +else write_print_chars(6); +end +else write_print_chars(1) + +@ +The {\it equal\_arrays} +function returns a true if the two arrays being passed are +identical. False if not. + +@p function equal_arrays(fieldy:field_array;fieldz:field_array):boolean; +var i :integer; +still_checking :boolean; +begin i := 1; +still_checking := true; +repeat +if fieldy[i] <> fieldz[i] {if arrays not equal} +then still_checking := false +else incr(i); +until (i>max_field) or not still_checking; +equal_arrays := still_checking; +end; + +@ The {\it plsort} procedure is written in PL/1 to call the CMS sort program +Syncsort. This was necessary since you cannot call Syncsort from PASCAL/VS. +The fields to be sorted are defined internally in the {\it plsort} +program. This should be the same as the three sort fields in {\it sort\_type}. +@:sort_type@> +@:plsort@> @^PL/1@> +@^Syncsort@> + +@p procedure plsort(var sort_rc:integer); fortran; + +@ This function converts to all uppercase. +Notice that this is an EBCIDIC conversion, not an ASCII conversion +to uppercase. + +@p function upper_case(x:char):char; +var temp:char; +begin + if (ord(x)>=129)and(ord(x)<=169) then + temp:=chr(ord(x)+64) + else temp:=x; +upper_case:=temp; +end; + + +@* Read Each Index Entry. +Each line in the {\it ix\_file} is a separate index entry generated with the +\bs{\it index markup}. This markup has the format +\par{\tt\bs{}index\it n\tt\{\it entry\rm/\it markup\tt\}} +\par +\nin where ``{\it entry}'' +is the textual material of the primary index. The +``{\it markup}'' may be one of the following submarkup +which may {\bf only} +appear within the \bs{\it index markup}. Never outside of it. +\item{1.} {\tt\bs{}subentry{\it n\/}}: where {\it n} is ``1'' or ``2'', +denoting the subentry level. +You would use this submarkup in the following fashion: +\par{\lin{+.5in}\tt\bs{}index1\{\rm entry +\bs\rm subentry1\tt\{\it submarkup\tt\}\}\par} +\indent where {\it submarkup} here can only be \bs{\it sortas}. +\item{2.}{\tt\bs{}sortas}: This markup is used to indicate text for either the +primary sort level, or one of the two subentry sort levels that is to be +sorted, but not printed in the resulting index. For example, someone may +want ``10 Downing Street'' +to sort as ``ten Downing Street''. This would be accomplished by entering +``{\tt\bs{}index1\{10 Downing Street\bs{}sortas\{ten Downing Street\}\}}''. +You can also use \bs{\it sortas} within the \bs{\it subentry} submarkup. +\item{3.} +{\tt\bs{}itpn}: This markup indicates this index number +is to be printed in italics in the sorted index. +To use it, enter: +\par{\lin{+.5in}\tt\bs{}index1\{\rm entry \tt +\bs{}itpn\}\par} +\item{4.} {\tt\bs{}bdpn}: This markup indicates this +index number is to be +printed in bold in the sorted index. +To use it, enter: +\par{\lin{+.5in}\tt\bs{}index1\{\rm entry \tt +\bs{}bdpn\}\par} +\item{5.} {\tt\bs{}uspn}: This markup indicates +this index number is to +be underscored in the sorted index. +To use it, enter: +\par{\lin{+.5in}\tt\bs{}index1\{\rm entry \tt +\bs{}uspn\}\par} +\item{6.} {\tt\bs{}blindentry}: This markup indicates this index is to be +a blind entry or ``cross reference''. It may appear inside of a +standard entry or subentry. There is no page number associated with +this submarkup. +\par + +@ @= +@!respect_case :boolean; +@!dot_leadering :boolean; +@!print_style:char; +@!sort_record :sort_type; +@!in_record :string_type(max_lrecl); +@!temp_strvalue:pass_pn_alpha; + +@^System dependent code@> +@ This procedure will read the {\it ix\_file} in until all index requests +have been read. + +@p procedure read_all_entries; +var @!i,j,k:integer; +begin +@ +while not eof(ix_file) do begin +@@/ +@@/ +@@/ +@@/ +@@/ +@@/ +@@/ +end;end; + +@ The first index default variable passed is ``case=". A ``yes" value will +respect the case in an index sort field. ``no" (the default) will convert +everything to uppercase before sorting. + +The second index default ``style=" will be one of ``1", ``2'', or ``3'' +depending on whether the style is ``paragraph'', ``dash'', or ``indented'' +(which is the default). + +The third default read in here is the ``leadering=". A ``yes'' here will give +dot leadering. Guess what ``no'' does. +Dot leadering in the paragraph style ({\it print\_style}=1). If that +has been requested, change {\it dot\_leadering} to false. + +@= +readln(ix_file,in_record); +if dosubstr(in_record,doindex(in_record,'=')+1) = 'no' +then respect_case := false +else respect_case := true; +readln(ix_file,in_record);@/ +print_style:=in_record[doindex(in_record,'=')+1];@/ +readln(ix_file,in_record);@/ +if dosubstr(in_record,doindex(in_record,'=')+1) = 'no' +then dot_leadering := false +else dot_leadering := true;@/ +if dot_leadering and (print_style = '1') +then begin writeln(messages, +' Error! Dot leadering not permitted with the paragraph style.'); +writeln(messages,' Dot leadering will be disabled.'); +dot_leadering := false; +end; + +@ The {\it all\_blanks} variable is filled with all blanks. Other arrays +of the same dimension of {\it all\_blanks} can be set to blank themselves +by saying $array\leftarrow all\_blanks$. + +@= +@!all_blanks:field_array; + +@ @= +with sort_record do +for i := 1 to max_levels do begin +sort_part[i].field_level:= all_blanks; +sort_part[i].field_lngth := 0; +print[i].field_level:= all_blanks; +print[i].field_lngth := 0; +end; +curr_level := 0; + +@ Read the next index request to be processed. +Get rid of trailing blanks. + +@= +readln(ix_file,in_record); +in_record:=trim(in_record); + +@ The {\it sort\_type} is always in column 2. Column 1, 3 and 4 will always +be curly braces. (`\{{\it s}\}\{' where ``{\it s}'' is the sort type.) +After moving the {\it sort\_type} to the sort record, then +delete the {\it sort\_type} and the three curly braces. + +@= +sort_record.record_type := in_record[2]; +remove_characters(4); + +@ The end of the page number is the next right curly brace (`\}'). +Move all of the digits from the input record to the sort record, +starting with the last digit and going forward. If a minus sign (`-') +is in +the page number (preface material), then put a minus sign in +byte one of the sort record's page number. + +@= +@!in_page_number:pn_type; + +@ Find and move the page number to the sort record. If it is negative, +then its a roman numeral. In that case, move the page number to the +{\it abs\_page\_number} to be sorted descending, as negative numbers +should be. If its not negative, then move zero to {\it abs\_page\_number} +so it will move to the bottom of that sort field. +After it is moved, delete the appropriate number of characters to +finish digesting the entry. + +@= +k := doindex(in_record,'}'); {find the end of the page number} +i := k - 1; +for j := 1 to max_pnum do in_page_number[j] := '0'; +j := max_pnum; +repeat +if in_record[i] = '-' +then begin +in_page_number[1] := '-'; +i := 0; +end +else begin +in_page_number[j] := in_record[i]; +decr(i); +decr(j); +end; +until i <= 0; +remove_characters(k+1);@/ +sort_record.page_number:=numeric(in_page_number);@/ +if sort_record.page_number < 0 +then sort_record.abs_page_number:=abs(sort_record.page_number) +else sort_record.abs_page_number:=0; +k := doindex(in_record,'}'); {find the end of the page number string} +for i := 1 to max_pn_alpha do sort_record.page_string[i] := ' '; +for i := 1 to k-1 do +sort_record.page_string[i] := in_record[i]; +remove_characters(k); + +@^System dependent code@> +@ Process the rest of the input record. Each time you see a dollar sign, +there could be a submarkup coming, so examine the next three characters. + +@= +repeat +if (in_record[1] = '$') and (length(in_record) >= 4) +then @ +else write_print_chars(1); +until length(in_record) < 1; + +@ Once the index request has been digested, each sort field is checked +to see if it is blank. If so, then {\it sort\_as} was not used, so copy the +{\it print} field to the {\it sort} field. + +@= +with sort_record do begin +for i := 1 to max_levels do +if sort_part[i].field_lngth=0 +then begin +sort_part[i].field_level := print[i].field_level; +sort_part[i].field_lngth := print[i].field_lngth; +check_case; end +else check_case; +end; + +@^System dependent code@> +@ Ok, the record has been processed, so write it to the output file. + +@= +sort_file@@:=sort_record; +put(sort_file); + +@ Ok, a dollar sign signals the beginning of some sort of action code if the +next three characters are `\{\$\}'. So lets look at them and see. + +@= +begin if (in_record[2] = '{') and +(in_record[3] = '$') and (in_record[4] = '}') +then @ +else write_print_chars(1);{Well then, the dollar sign must be part of the index} +end + +@ If a {\it blindentry} (`{\tt be}') or {\it subentry} (`{\tt se}'), +then perform the appropriate sections. + +@= +begin if (in_record[5] = 'b') and (in_record[6] = 'e') +then @ +else if (in_record[5] = 's') and (in_record[6] = 'e') +then @ +else if (in_record[5] = 's') and (in_record[6] = 'a') +then do_sort_as +else write_print_chars(6);{Might as well write all 6 characters examined} +end + +@ Everything up to the next `\{\$\}' is the blind entry. +The page number for a blind entry will always be 999999999. + +@= +begin remove_characters(6);{Throw away the `\$\{\$\}be'}@/ +i := doindex(in_record,'{$}'); +curr_level:=2; +write_print_chars(i-1); +curr_level:=0; +remove_characters(3);{Throw away the `\{\$\}'} +sort_record.page_number := 999999999; +end + +@ Process the subentry, depending on whether or not it is +{\it subentry}1 or {\it subentry}2. If not, ignore the whole thing. + +@= +begin remove_characters(6); {Throw away the `\$\{\$\}se'} +if in_record[1] = '1' +then process_subentry(1) +else if in_record[1] = '2' +then process_subentry(2) +else write_print_chars(1);{Perhaps someone entered \bs{}subentry3??} +end + +@* Write Formated Index. This section of code takes the sorted index +entries, merges them together, and writes them back out to the index file +to be read in by \bs{}printindex in the user's program. This section consists +of three procedures for accomplishing this feat: {\it add\_page\_number}, +{\it digest\_the\_line}, and {\it read\_sorted\_records}. +{\it numeric} is a function to convert the character string page number into +an integer. + +@^System dependent code@> +@ The procedure {\it add\_page\_number} is used to add the page number of the +current sorted record to the {\it string\_bold} if a +\bs{\it bdpn}, or to +the {\it string\_underscore} if a \bs{\it uspn}, +or otherwise to +the {\it str\_build}. + +@p procedure add_page_number; +var i:integer; + +@ @= +@!prev_page_number:integer; +@!prev_pg_string:string_type(max_pn_alpha); +@!prev_record_type:char; + +@ First check to see if we have a new page number. If so, then add the page +number to the string. Otherwise, only add the page number if the sort type +is new and is not equal to ``6'' (italic). + +@p +begin +with sort_record do if prev_page_number = page_number +then if (prev_record_type = record_type) and (record_type <> '9') + then getout +else if record_type = '6' then getout; +@ +end; + +@ {\it str\_build} is used to accumulate all of the page numbers. +{\it str\_blind\_entry} is used to accumulate the blind entry information +(typically there should be no more than one, but allowance is made for more.) + +@= +@!str_build:string_type(max_lrecl); +@!str_blind_entry:string_type(max_lrecl); +{come on, who's going to have one that long?} + +@ This module will take the page number of the current sorted index +record and add it to the build string, unless the record type is +9, which is a blind entry, in which case it is added to the blind entry +string. Note that if the record type is 0 (bold), 4 (underscore) or +6 (italic), then the page number is prefaced with ``B'', ``U'' or +``I'' respectively. This identifies that the page number is to be +emphasized when the build string is processed through the +{\it digest\_the\_line} procedure. + +@= +if sort_record.record_type = '9' then @ +else begin @ +end; +prev_page_number := sort_record.page_number;@/ +prev_pg_string := strconv(sort_record.page_string);@/ +prev_record_type := sort_record.record_type; + +@ @= +with sort_record.print[3] do begin +if length(str_blind_entry) > 0 then add_cmma_blnk(str_blind_entry); +for i := 1 to field_lngth do +str_blind_entry := ccat(str_blind_entry,str(field_level[i])); +end + +@ If the {\it page\_string[1]} is less than zero, its alphabetic and +roman numeral processing is necessary. + +@= +with sort_record do begin +if ord(page_string[1]) < ord('0') +then @ +else @; +end; + +@ @= +begin +if length(str_build) >= 1 +then str_build:=ccat(',',str_build); +strvalue(page_number,temp_strvalue); +str_build := ccat(ccat(ccat(strconv(page_string), +','),temp_strvalue),str_build); +if record_type = '0' +then str_build := ccat('B',str_build) +else if record_type = '4' +then str_build := ccat('U',str_build) +else if record_type = '6' +then str_build := ccat('I',str_build) +end + +@ @= +begin +if length(str_build) >= 1 +then add_comma(str_build); +if record_type = '0' +then str_build := ccat(str_build,'B') +else if record_type = '4' +then str_build := ccat(str_build,'U') +else if record_type = '6' +then str_build := ccat(str_build,'I'); +str_build := ccat(str_build,strconv(page_string)); +end + +@ {\it output\_string} is used to collect all of the page numbers +before writing them back out to the index file; +{\it bold\_string} collects the bold page numbers; +{\it us\_string} collects the underscored page numbers; +{\it rm\_string} collects everything not bold or underscored. +As you might expect, {\it italic\_last\_page} is true when the last +page number of a `roll' is to be italic. + +@= +@!output_string:string_type(max_lrecl); +@!bold_string:string_type(max_lrecl); +@!us_string:string_type(max_lrecl); +@!rm_string:string_type(max_lrecl); +@!italic_last_page:boolean; + +@^System dependent code@> +@ {\it finish\_the\_process} is a procedure that is used to +first check to see if we are {\it on\_a\_roll}, which means we are formatting +something like pages 1-3. +After doing that, if there were any bold page numbers, they are concatenated +to the front of the {\it output\_string}; underscored page numbers (if any) +are concatenated to the end of the {\it output\_string}. + +@p procedure finish_the_process; +begin +@;@/ +@;@/ +@; +end; + +@ If there were any bold page numbers, then add them to the {\it +output\_string}. + +@= +if length(bold_string) > 0 then begin +if length(output_string) > 0 then add_cmma_blnk(output_string); +output_string := ccat(output_string,bold_string); +end + +@ If we were on a roll (a consecutive series of page numbers) then finish +the roll. Then if there were any roman or italic page numbers, add them to +the {\it output\_string}. + +@= +if on_a_roll then if italic_last_page +then rm_string := +ccat(ccat(ccat(rm_string,'{\it '),trim(prev_pg_string)),'}') +else rm_string := ccat(rm_string,prev_pg_string); +@.\bs{}it@> +if length(rm_string) > 0 then begin if length(output_string) > 0 +then add_cmma_blnk(output_string); +output_string := ccat(output_string,rm_string); +end + +@ If there were any underscored page numbers, add them to the {\it +output\_string} here. + +@= +if length(us_string) > 0 then begin if length(output_string) > 0 +then add_cmma_blnk(output_string); +output_string := ccat(output_string,us_string); +end + +@ The procedure {\it start\_digesting} will initialize a few variables, +then add the {\it current\_page} to the appropriate list. + +@p procedure start_digesting; +begin @;@/ +prev_pg_string := curr_str_page;@/ +@; +end; + +@ @= +italic_last_page := false; +bold_string := ''; us_string :=''; rm_string:=''; +starting_to_process:=false; +on_a_roll:=false + +@ @= +print_type:= curr_str_page[1]; +if (print_type='B') or (print_type='I') or (print_type='U') +then curr_str_page:=dosubstr(curr_str_page,2) +else print_type := ' ' + +@ @= +if print_type = 'B' then do_when_bold +else if print_type = 'I' then do_when_italic +else if print_type = 'U' then do_when_underscore +else do_when_roman + +@^System dependent code@> +@ The procedure {\it digest\_the\_line} will take the full {\it str\_build} +and add the dashes when there is a run of page numbers (i.e. ``{\tt 1,2,3}'' bec +``1-3''); add the bold page numbers in front of the string (i.e. +``{\tt 1,2,B3,3,4}'' +prints as ``{\bf 3},1-4''. Note that page 3 had to appear twice +``{\tt B3,3}''. If it had only appeard as a bold page number and not the +default, ``{\tt 1,2,B3,4}'', you would get ``1-2,{\bf 3},4''); +add the underscored +page numbers to the end of the string (similar to bold page numbers, +``1,2,U3,3,4'' prints as ``1-4,\us{3}''); and print in italics when +necessary. + +@p procedure digest_the_line; +var +i:integer; +@!temp_roman:string_type(max_pn_alpha); +@!no_page_numbers:boolean; +begin +@;@/ +@; +end; + +@ @= +@!starting_to_process :boolean; +@!print_type:char; +@!curr_str_page :string_type(max_pn_alpha); +@!curr_num_page :integer; + +@ Initialize the variables, then read each page number until the whole +string is digested, then finish off the page number string before returning. +If {\it str\_build} is null, then we are doing a blind entry with no +page numbers associated. In that case, initialize the highlighting +strings. +@= +output_string := ''; +starting_to_process := true; +no_page_numbers:=false; +if length(str_build) > 0 +then repeat @ + until length(str_build) < 1 +else if starting_to_process then begin +@; +no_page_numbers:=true; +end; +finish_the_process; + +@ First get the next page number. Then if we are starting, initialize +everything. If we have already started, then check to see if we have a +consecutive page number sequence (i.e. pages 1,2,3,4 etc.) which is called +a `roll'. +@= +@;@/ +if starting_to_process +then start_digesting +else @; +prev_page_number:=curr_num_page; + +@ @= +i := doindex(str_build,','); +if i < 1 then begin curr_str_page:=str_build; str_build:='';end +else begin +curr_str_page:=dosubstr(str_build,1,i-1); +str_build := dosubstr(str_build,i+1); +end; +@;@/ +if ord(curr_str_page[1]) < ord('0') {Then its alphabetic} +then @ +else curr_num_page:=get_numeric(curr_str_page); + +@ @= +begin +i := doindex(str_build,','); +if i < 1 then begin temp_roman:=str_build; str_build:='';end +else begin +temp_roman:=dosubstr(str_build,1,i-1); +str_build := dosubstr(str_build,i+1); +end; +curr_num_page:=get_numeric(temp_roman); +end + +@ If we are on a roll, then the previous page number will be one less than +the current page number. If this is not the case, then {\it +finish\_the\_process} +and {\it start\_digesting} all over again. + +@= +if ((prev_page_number = curr_num_page) and (print_type <> ' ')) or + ((prev_page_number>=0) and (prev_page_number = curr_num_page - 1)) or + ((prev_page_number<0) and (prev_page_number = curr_num_page + 1)) +then begin +@ +prev_pg_string:=curr_str_page; +end +else begin finish_the_process; start_digesting; end + +@ Ok, so we're on a roll, right? If the {\it print\_type} is ``B'' (bold) or +``U'' (underscored) then do those and return. Otherwise, check to se if we +were previously {\it on\_a\_roll}. If we weren't, then add the hyphen to the +starting page number. In either case, move the {\it current\_page} to the +{\it prev\_pg\_string}. Lastly, if the page number is italic, then set +{\it italic\_last\_page} to true, in case it ends up being the last page in +the string. + +@= +if print_type = 'B' then do_when_bold +else if print_type = 'U' then do_when_underscore +else begin if not on_a_roll then begin on_a_roll := true; +rm_string:=ccat(rm_string,'--'); end; +if print_type = 'I' then italic_last_page := true +else italic_last_page := false; +end; + +@ Before the page numbers are actually written, we need to write out +the ID depending on which level we are formatting. Level 1 is the +primary level, level 2 is the subentry1, and level 3 is subentry2. +Then, we need to do a couple of things depending on whether there is +dot leadering going on or not. +Finally, write the output string to the formatted index file. + +@= +write_prev_header; +if dot_leadering then begin @ end +else begin @ end; +do_lnwrite(ix_file,output_string); + +@ If there is dot leadering, then add the blind entry first, before adding +the leadering. + +@= +if length(str_blind_entry) > 0 +then begin +if length(output_string) > 0 then add_cmma_blnk(output_string); +output_string := ccat(output_string,str_blind_entry); +end; +output_string := ccat(ccat('\leader{}',output_string),'\par'); +@.\bs{}leader@> +@.\bs{}par@> + +@ @= +@!new_level_1:boolean; + +@ If there is not dot leadering, then the blind entry goes at the end of the +page, except for +the paragraph style ({\it print\_style}=1). Also, if the paragraph style, +then do not add the {\tt \bs{}par} at the end. Instead, add a comma +if there is a new level 1 entry. + +@= +if (print_style <> '1') and (length(str_blind_entry) > 0)@/ +then begin +if length(output_string) > 0 then add_cmma_blnk(output_string); +output_string := ccat(output_string,str_blind_entry); +end; +if print_style = '1' +then if new_level_1 and ((length(str_blind_entry)=0) or no_page_numbers) +then do_nothing +else add_cmma_blnk(output_string) +else output_string := ccat(output_string,'\par'); +@.\bs{}par@> + +@ The {\it build\_sorted\_index} procedure is the driving force behind +formatting the index. The basic process is to read all of the sorted records in +and create a record called {\it str\_build}. There will be one of these for +each primary and subentry level index. After doing the {\it str\_build}, +this record is then read through again to add the {\it\TeX T1} markup +necessary to +print out the sorted index line. + +@p procedure build_sorted_index; +var @!first_time_through:boolean; + +@ @= +@!prev_sr1:field_array; +@!prev_sr2:field_array; +@!prev_sr3:field_array; +@!prev_pn1:field_array; +@!prev_ln1:integer;{the length of pn1} +@!prev_pn2:field_array; +@!prev_ln2:integer;{the length of pn2} +@!prev_pn3:field_array; +@!prev_ln3:integer;{the length of pn3} +@!id1_is_missing:boolean; +@!id2_is_missing:boolean; + +@ The first thing we need to do is read the next sorted record. If this is the +first time ever through this procedure, then do some quick initializing. Then, +once we come to a new ID, we should write out the previous index page numbers, +etc. If the ID has not changed from the previous record, then add the page +number given here on the sorted record to the {\it str\_build}. + +@p begin first_time_through:=true; +while not eof(sort_file) do begin +sort_record:=sort_file@@; +get(sort_file); +if first_time_through then begin @ end; +if not equal_arrays(prev_sr1,sort_record.sort_part[1].field_level) +then begin +@ end +else if not equal_arrays(prev_sr2,sort_record.sort_part[2].field_level) +then begin +@ end +else if not equal_arrays(prev_sr3,sort_record.sort_part[3].field_level) +and (sort_record.record_type <> '9') +then begin +@ end +else add_page_number; +end; +@ +end; + +@ First write out the {\it \bs{}everyindex} record at the beginning +of the index file. + +@= +do_lnwrite(ix_file,'\everyindex{',ix,'}'); +@.\bs{}everyindex@> + +@ These initializations only get done at the beginning of the +first sort record. + +@= +first_time_through:=false; +id1_is_missing:=false; +id2_is_missing:=false; +new_level_1:=false; +with sort_record do begin +prev_sr1:=sort_part[1].field_level; +prev_sr2:=sort_part[2].field_level; +prev_sr3:=sort_part[3].field_level; +prev_pn1:=print[1].field_level; +prev_ln1:=print[1].field_lngth; +prev_pn2:=print[2].field_level; +prev_ln2:=print[2].field_lngth; +prev_pn3:=print[3].field_level; +prev_ln3:=print[3].field_lngth; +end; +prev_page_number:=0; +str_blind_entry:='';@/ +str_build:='';@/ + +@ If this is not a blind entry, then check to see if sort records for +the first level id are missing. If they are, then the id name itself +will be printed in {\it id1\_missing\_check}. + +@= +if sort_record.record_type <> '9' +then id1_missing_check; + +@ Only alpha (a--z and A--Z) and numeric (0--9) characters get an +{\it \bs{}everyletterbreak}. Punctuation, for example, will not get +an {\it \bs{}everyletterbreak}. + +@= +with sort_record.sort_part[1] do begin +if ((field_level[1]>='a') and (field_level[1]<='i')) or @/ +((field_level[1]>='j') and (field_level[1]<='r')) or @/ +((field_level[1]>='s') and (field_level[1]<='z')) or @/ +((field_level[1]>='A') and (field_level[1]<='I')) or @/ +((field_level[1]>='J') and (field_level[1]<='R')) or @/ +((field_level[1]>='S') and (field_level[1]<='Z')) or @/ +((field_level[1]>='0') and (field_level[1]<='9')) + then +do_lnwrite(ix_file,'\everyletterbreak{',ix,'}{',field_level[1],'}') + else +do_lnwrite(ix_file,'\everyletterbreak{',ix,'}{}'); +end +@.\bs{}everyletterbreak@> + +@ +First we need to {\it digest\_the\_line} which is the current index's +entry. {\it digest\_the\_line} will write out the formatted index unless +we are in the paragraph +style of formatted index +({\it print\_style}=1). If we are in the paragraph style, +then we need to write out any {\it str\_blind\_entry} pending. + +@= +new_level_1:=true; +digest_the_line; +if print_style = '1' then +do_lnwrite(ix_file,str_blind_entry,'\par'); +new_level_1:=false; +@.\bs{}par@> + +@ We have just found the start of a new primary index level. +First we need to process the previous index's +entry. +If there is a blind entry, and it is style `1', then add it now. +Next, if we are at a letter break (i.e., going from the sorted ``A'' +primary index letters to the ``B''s) then write the ``{\tt +\bs{}everyletterbreak}'' to the formatted index file. + +@= +@ +with sort_record.sort_part[1] do begin +if (field_level[1] <> prev_sr1[1]) +then if +(((field_level[1]>='a') and (field_level[1]<='i')) or @/ +((field_level[1]>='j') and (field_level[1]<='r')) or @/ +((field_level[1]>='s') and (field_level[1]<='z')) or @/ +((field_level[1]>='A') and (field_level[1]<='I')) or @/ +((field_level[1]>='J') and (field_level[1]<='R')) or @/ +((field_level[1]>='S') and (field_level[1]<='Z')) or @/ +((field_level[1]>='0') and (field_level[1]<='9'))) @/ +then do_lnwrite(ix_file,'\everyletterbreak{',ix,'}{',field_level[1],'}') + else +do_lnwrite(ix_file,'\everyletterbreak{',ix,'}{}'); +end; +@.\bs{}everyletterbreak@> + +@ The next thing to be done when starting a new primary index is to +check the subentries. If they exist, then you can assume that this +primary level index has no page numbers associated with it. The macro +{\it id1\_missing\_check} accomplishes this. + +@= +curr_level:=1;@/ +if sort_record.record_type <> '9' +then id1_missing_check; + +@ The complicated stuff is done. So now we can actually do some simple +initializations to get this new level 1 (primary level) sort rolling. + +@= +str_build:=''; +str_blind_entry:=''; +with sort_record do begin +prev_sr1:=sort_part[1].field_level; +prev_sr2:=sort_part[2].field_level; +prev_sr3:=sort_part[3].field_level; +prev_pn1:=print[1].field_level; +prev_ln1:=print[1].field_lngth; +prev_pn2:=print[2].field_level; +prev_ln2:=print[2].field_lngth; +prev_pn3:=print[3].field_level; +prev_ln3:=print[3].field_lngth; +prev_page_number:=0; +end; +add_page_number; + +@ We have just found the start of a new subentry1 index level. +These modules are similar to {\it Start a New Level 1}, but not as +detailed since it is dealing with fewer levels. +First we need to {\it digest\_the\_line} which is the previous index's +entry. {\it digest\_the\_line} will write out the formatted index unless +we are in the paragraph +style of formatted index +({\it print\_style}=1). + +@= +digest_the_line; + +@ The next thing to be done when starting a new subentry1 index is to +check the subentry2. If it exists, then you can assume that this +subentry index has no page numbers associated with it. +This is done in {\it id2\_missing\_check}. + +@= +id2_missing_check; + +@ The complicated stuff is done. So now we can actually do some simple +initializations to get this new level 2 (subentry2 level) sort rolling. + +@= +str_build:=''; +if print_style <> '1' then str_blind_entry:=''; +with sort_record do begin +prev_sr2:=sort_part[2].field_level; +prev_sr3:=sort_part[3].field_level; +prev_pn2:=print[2].field_level; +prev_ln2:=print[2].field_lngth; +prev_pn3:=print[3].field_level; +prev_ln3:=print[3].field_lngth; +prev_page_number:=0; +end; +add_page_number; + +@ We have just found the start of a new subentry2 index level. +These modules are similar to {\it Start a New Level 2}, but not as +detailed since it is dealing with the lowest level. +First we need to {\it digest\_the\_line} which is the previous index's +entry. {\it digest\_the\_line} will write out the formatted index unless +we are in the paragraph +style of formatted index +({\it print\_style}=1). + +@= +digest_the_line; +curr_level:=3; + +@ Do some +initializations to get this new level 3 (subentry2) sort rolling. + +@= +str_build:=''; +if print_style <> '1' then str_blind_entry:=''; +with sort_record do begin +prev_sr3:=sort_part[3].field_level; +prev_pn3:=print[3].field_level; +prev_ln3:=print[3].field_lngth; +prev_page_number:=0; +end; +add_page_number; + +@* Main Program. +Ok, here is the main program. First we initialize (all\_blanks); then +set the ix\_file for input and the sort\_file for output; read all of the +entries, processing each one; close the files; sort; read the sorted file +in and build the entries, writing them back to the ix\_file to be read in +by the index markup. WHEW!! + +@p +begin @@/ +termout(messages); +reset_file(ix);@/ +file_rewrite(s_file_number); {Should always be file 9}@/ +read_all_entries;@/ +close(ix_file);@/ +close(sort_file);@/ +@@/ +reset_file(s_file_number);@/ +file_rewrite(ix);@/ +build_sorted_index;@/ +end; + +@ @= +for i := 1 to max_field do all_blanks[i] := ' '; + +@ As mentioned earlier, {\it plsort} is an external PL/1 subroutine +@^PL/1@> +@^Syncsort@> +which is used to call Syncsort to sort the file. +The sort fields are as follows: +\halign{\hskip3em\hfill#\hfill&&\hskip3em\hfill#\hfill\cr +\bf Starting Column&\bf Length&\bf Field Description&\bf Order\cr +38&300&character&ascending\cr +342&300&character&ascending\cr +646&300&character&ascending\cr +10&4&binary&descending\cr +6&4&binary&ascending\cr} + +@= +sort_rc:integer; + +@ @= +plsort(sort_rc); +if sort_rc = 0 + then writeln(messages,'Index Successfully Completed') + else writeln(messages,'Index Failed'); + +@* Index. +All modules in which an identifier is +used are listed with that identifier, except that reserved words are +indexed only when they appear in format definitions, and the appearances +of identifiers in module names are not indexed. Underlined entries +correspond to where the identifier was declared. Error messages, control +sequences put into the output, and a few +other things like ``Syncsort'' are indexed here too. diff --git a/macros/text1/texix/txt1v293.cmschan b/macros/text1/texix/txt1v293.cmschan new file mode 100644 index 0000000000..8f6bbe5a16 --- /dev/null +++ b/macros/text1/texix/txt1v293.cmschan @@ -0,0 +1,2000 @@ +TEX.CMS-CHAN - WEB change file for TeX 2.0 for VM/CMS and Pascal/VS. +Copyright (C) 1984 by David Fuchs. All rights are reserved. + +External references: TERMATTN, ATTN202, USESTACK. Assembled + text decks of these routines must be linked into module. + +Changes to this file since 1.0 version (at SLAC): + + Added increased mem size params etc from VMS-CHAN, + XEDIT hook, change ".log" to ".texlog". 11 Feb 84 + Fixed filemode specifier so you can "\input fn.ft.fm". 9 Mar 84 + Update line number references from TeX 1.0 to TeX 1.1. 20 Mar 84 + Increase |buf_size| parameter from 500 to 1024. 24 Apr 84 + Add CMS hook to send string to CMS using "\write15". 24 Apr 84 + Various small changes in comments in TeX. 12 Jul 84 + Change |pool_name| from "TEX.POOL" to "TEX.POOL.*". 21 Aug 84 + File mode "*" added to |prompt_file_name| on input. 23 Aug 84 + Allow tab and formfeed characters in input. 23 Aug 84 + Increase |pool_size| to 40000. 23 Aug 84 + ONERROR message deleted. 23 Aug 84 + DVI block size changed to 1024. 24 Aug 84 + SLAC character translates (hex): 4F->4A, 6A->4F, A1->5F. 27 Sep 84 + Add SLAC routines for logging use data. 27 Sep 84 + Update for TeX 1.4. 24 Feb 86 + Remove |ready_already| as per Klaus Thull's recommendation. 24 Feb 86 + Increase |hash_size| to 3000. 26 Feb 86 + Update for TeX 2.0. 10 Mar 86 + Add Chris Thompson's changes for large arrays, |use_stack|, + and do simple array asignments for |do_all_six|. 25 Mar 86 + Add code in |close_files_and_terminate| to explicitly close + all input files. Avoids Pascal/VS loop in AMPXIO. 6 May 86 + Allow |mem| array to start at negative index. 8 May 86 + Increase |pool_size| to 50000. 9 May 86 + Move |ret_code| from |end_of_TEX:| to |final_end:| and make + |history|:=|fatal_error_stop| if |bad_fmt|. 15 May 86 + Remove SLAC-specific routines and character translates + to conform to TeX Project (hex): 5F->A1, 4A->5F. 4 Jun 86 + Change |tfm_file| reading routine to read multiple 1024-byte + records. All TeX/MF data files are now RECFM F LRECL 1024. 2 Jul 86 + + Changes for TEXT1 by Dean Guenther 20 Aug 86 + Banner now reflects TEXT1 at WEB line 148 + DVI size changes to 2048 (4096) WEB line 345 + Variable tfm_buf_size added at WEB line 345 + (init'd at 1024) + tfm_buf_size replaces len_byte_block in system dependent + procedure fget in WEB code at line 23949 + Square brackets around the page numbers changed to + angle brackets at WEB line 12302 + Module's name changed to TXT1V2M0 at WEB line 212 + buf_size changed from 1024 to 2048 + + Changes by Dean Guenther 20 Dec 86 + Changes added to make \printindex a TeX primative. Refer to Web + lines 23602-23725 below. + Module's name changed to TXT1V2M1 at WEB line 212 + + Changes by Brian Harvey + Module's name is changed to TXT1V212 at WEB line 212 + Banner line changed "TEXT1 (TEX 2.1)" 16 June 87 + + Changes by Dean Guenther + Installed fixes for TeX 2.2, 2.3, 2.4, 2.5, 2.6 & 2.7 25 Nov 87 + Module is named TXT1V271 for TeX 2.7, mod 1 + Installed fixes for TeX 2.8 & 2.9 11 Jan 88 + Installed fixes for TeX 2.91, 2.92, & 2.93 2 Sep 88 + Now using 1k dvi files instead of 2k + Module is named TXT1V293 for TeX 2.93 + +TeX 2.0 WEB source line 34 +@x limbo +\def\ph{\hbox{Pascal-H}} +@y +\def\ph{\hbox{Pascal-H}} +\def\pvs{\hbox{Pascal/VS}} +@z + +TeX 2.0 WEB source line 60 +@x limbo +\pageno=3 +@y +\pageno=3 +\let\maybe=\iffalse % to TeX only the changed sections after WEAV'ing +\def\title{\TeX\ changes for VM/CMS} +@z + +TeX 2.0 WEB source line 148 +@x +@d banner=='This is TeX, Version 2.93' {printed when \TeX\ starts} +@y +The VM/CMS port of \TeX\ is a combination of efforts of many people. +\.{WEB} change files for preliminary versions of \TeX\ were brought to +the \TeX\ Users Group meeting in August 1983 and +given to David Fuchs, of Stanford +University Computer Science Department, who combined them into a +definitive version on the VM system at Stanford Linear Accelerator +Center. The original change files were supplied by Roger Chaffee of +SLAC (now at Metaphor), Craig Platt of the University of Manitoba, and +Peter M.~Sih of IBM Palo Alto Scientific Center. Bernd Schulze of the +University of Bonn contributed his experience from bringing up a +preliminary \TeX\ under CMS and has since sent many +further improvements including the Metafont change file used in this +implementation and other CMS change files. +Other CMS change files and suggestions were made by Klaus Thull. +All of this work was based on preliminary +work adapting \TeX\ to MVS by Eagle Berns and Susan Plass of Stanford +University. Peter Sih has donated countless hours of his expertise +and contributed the device support for the IBM 4250 and APA6670 (and +3800 model 3) printers. Many valuable revisions and additions to this +work were made by Robert J.~Creasy. +Alan Spragens at SLAC coordinated +communication among the CMS sites and made some enhancements to the +implementation while revising the CMS change file for \TeX\ versions +1.1 and 2.0. Significant improvements were contributed for version +2.0 by Chris Thompson of the University of Cambridge; they are +described in the ``System-dependent Changes'' section. +@d banner=='TEXT1 (TEX 2.93)' + {printed when \TeX\ starts} +@d term_in==tty_in +@d term_out==tty_out +@d string_length==len @& gth {IBM length function} +@d string_index ==ind @& ex {IBM index function} +@z + + +TeX 2.0 WEB source line 212 +@x +program TEX; {all file names are defined dynamically} +@y +program TXT1V293; {all file names are defined dynamically} +@z + +TeX 2.0 WEB source line 218 +@x +procedure initialize; {this procedure gets things started properly} +@y +@@/ +@@/ +@# +procedure initialize; {this procedure gets things started properly} +@z + +TeX 2.0 WEB source line 261 +@x +@d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging} +@d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging} +@y +@d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging} +@d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging} +@z + +TeX 2.0 WEB source line 266 +@x +@d stat==@{ {change this to `$\\{stat}\equiv\null$' when gathering + usage statistics} +@d tats==@t@>@} {change this to `$\\{tats}\equiv\null$' when gathering + usage statistics} +@y +@d stat== +@d tats== +@z + +TeX 2.0 WEB source line 281 +@x +@d init== {change this to `$\\{init}\equiv\.{@@\{}$' in the production version} +@d tini== {change this to `$\\{tini}\equiv\.{@@\}}$' in the production version} +@y virtex: init==@{ tini==@} initex: init== tini== +@d init==@{ +@d tini==@} +@z + +TeX 2.0 WEB source line 333 +@x +@d othercases == others: {default for cases not listed explicitly} +@y +@d othercases == otherwise {default for cases not listed explicitly} +@z + +TeX 2.0 WEB source line 345 +@x +@!mem_max=30000; {greatest index in \TeX's internal |mem| array; + must be strictly less than |max_halfword|; + must be equal to |mem_top| in \.{INITEX}, otherwise |>=mem_top|} +@!mem_min=0; {smallest index in \TeX's internal |mem| array; + must be |min_halfword| or more; + must be equal to |mem_bot| in \.{INITEX}, otherwise |<=mem_bot|} +@!buf_size=500; {maximum number of characters simultaneously present in + current lines of open files and in control sequences between + \.{\\csname} and \.{\\endcsname}; must not exceed |max_halfword|} +@!error_line=72; {width of context lines on terminal error messages} +@!half_error_line=42; {width of first lines of contexts in terminal + error messages; should be between 30 and |error_line-15|} +@!max_print_line=79; {width of longest text lines output; should be at least 60} +@!stack_size=200; {maximum number of simultaneous input sources} +@!max_in_open=6; {maximum number of input files and error insertions that + can be going on simultaneously} +@!font_max=75; {maximum internal font number; must not exceed |max_quarterword| + and must be at most |font_base+256|} +@!font_mem_size=20000; {number of words of |font_info| for all fonts} +@!param_size=60; {maximum number of simultaneous macro parameters} +@!nest_size=40; {maximum number of semantic levels simultaneously active} +@!max_strings=3000; {maximum number of strings; must not exceed |max_halfword|} +@!string_vacancies=8000; {the minimum number of characters that should be + available for the user's control sequences and font names, + after \TeX's own error messages are stored} +@!pool_size=32000; {maximum number of characters in strings, including all + error messages and help texts, and the names of all fonts and + control sequences; must exceed |string_vacancies| by the total + length of \TeX's own strings, which is currently about 23000} +@!save_size=600; {space for saving values outside of current group; must be + at most |max_halfword|} +@!trie_size=8000; {space for hyphenation patterns; should be larger for + \.{INITEX} than it is in production versions of \TeX} +@!dvi_buf_size=800; {size of the output buffer; must be a multiple of 8} +@!file_name_size=40; {file names shouldn't be longer than this} +@!pool_name='TeXformats:TEX.POOL '; + {string of length |file_name_size|; tells where the string pool appears} +@.TeXformats@> +@y +@!mem_max=32766; {greatest index in \TeX's internal |mem| array; + must be strictly less than |max_halfword|; + must be equal to |mem_top| in \.{INITEX}, otherwise |>=mem_top|} +@!mem_min=-32768; {smallest index in \TeX's internal |mem| array; + must be |min_halfword| or more; + must be equal to |mem_bot| in \.{INITEX}, otherwise |<=mem_bot|} +@!buf_size=2048; {maximum number of characters simultaneously present in + current lines of open files and in control sequences between + \.{\\csname} and \.{\\endcsname}; must not exceed |max_halfword|} +@!error_line=79; {width of context lines on terminal error messages} +@!half_error_line=50; {width of first lines of contexts in terminal + error messages; should be between 30 and |error_line-15|} +@!max_print_line=79; {width of longest text lines output; should be at least 60} +@!stack_size=200; {maximum number of simultaneous input sources} +@!max_in_open=6; {maximum number of input files and error insertions that + can be going on simultaneously} +@!font_max=120; {maximum internal font number; must not exceed |max_quarterword| + and must be at most |font_base+256|} +@!font_mem_size=30000; {number of words of |font_info| for all fonts} +@!param_size=60; {maximum number of simultaneous macro parameters} +@!nest_size=40; {maximum number of semantic levels simultaneously active} +@!max_strings=5000; {maximum number of strings; must not exceed |max_halfword|} +@!string_vacancies=26000; {the minimum number of characters that should be + available for the user's control sequences and font names, + after \TeX's own error messages are stored} +@!pool_size=50000; {maximum number of characters in strings, including all + error messages and help texts, and the names of all fonts and + control sequences; must exceed |string_vacancies| by the total + length of \TeX's own strings, which is currently about 23000} +@!save_size=600; {space for saving values outside of current group; must be + at most |max_halfword|} +@!trie_size=8000; {space for hyphenation patterns; should be larger for + \.{INITEX} than it is in production versions of \TeX} +@!dvi_buf_size=2048; {size of the output buffer; must be a multiple of 8} +@!len_byte_block=1024; {must be half of |dvi_buf_size|} +@!tfm_buf_size=1024; +@!len_word_block=256; {format file buffer length} +@!file_name_size=40; {file names shouldn't be longer than this} +@!pool_name='TEX.POOl.* '; + {string of length |file_name_size|; tells where the string pool appears} +@.TeXformats@> +@z + +TeX 2.0 WEB source line 395 +@x +@d mem_bot=0 {smallest index in the |mem| array dumped by \.{INITEX}; + must not be less than |mem_min|} +@d mem_top==30000 {largest index in the |mem| array dumped by \.{INITEX}; + must be substantially larger than |mem_bot| + and not greater than |mem_max|} +@d font_base=0 {smallest internal font number; must not be less + than |min_quarterword|} +@d hash_size=2100 {maximum number of control sequences; it should be at most + about |(mem_max-mem_min)/10|, but 2100 is already quite generous} +@d hash_prime=1777 {a prime number equal to about 85\% of |hash_size|} +@d hyph_size=307 {another prime; the number of \.{\\hyphenation} exceptions} +@^system dependencies@> +@y +@d mem_bot==-32768 {smallest index in the |mem| array dumped by \.{INITEX}; + must not be less than |mem_min|} +@d mem_top==32766 {largest index in the |mem| array dumped by \.{INITEX}; + must be substantially larger than |mem_bot| + and not greater than |mem_max|} +@d font_base=0 {smallest internal font number; must not be less + than |min_quarterword|} +@d hash_size=3000 {maximum number of control sequences; it should be at most + about |(mem_max-mem_min)/10|, but 2100 is already quite generous} +@d hash_prime=2549 {a prime number equal to about 85\% of |hash_size|} +@d hyph_size=307 {another prime; the number of \.{\\hyphenation} exceptions} +@^system dependencies@> +@z + +TeX 2.0 WEB source line 503 +@x +@!ASCII_code=0..127; {seven-bit numbers} +@y +@!ASCII_code=packed 0..127; {seven-bit numbers} +@z + +TeX 2.0 WEB source line 533 +@x +@d last_text_char=127 {ordinal number of the largest element of |text_char|} +@y +@d last_text_char=255 {ordinal number of the largest element of |text_char|} +@z + +TeX 2.0 WEB source line 689 +@x [2] System-dependent character set changes: +@^character set dependencies@> +@^system dependencies@> + +@= +for i:=1 to @'37 do xchr[i]:=' '; +@y +For \pvs\ we allow |form_feed| and |tab| characters in input. +@^character set dependencies@> +@^system dependencies@> + +@d form_feed=@'14 +@d tab=@'05 + +@= +for i:=1 to @'37 do xchr[i]:=' '; +xchr[form_feed]:=chr(form_feed); +xchr[tab]:=chr(tab); +@z + +TeX 2.0 WEB source line 737 +@x +for us to specify simple operations on word files before they are defined. + +@= +@!eight_bits=0..255; {unsigned one-byte quantity} +@!alpha_file=packed file of text_char; {files that contain textual data} +@!byte_file=packed file of eight_bits; {files that contain binary data} +@y +for us to specify simple operations on word files before they are defined. + +@d alpha_file==@= TEXT@> +@d ccat==@=||@> + +@= +@!eight_bits=packed 0..255; {unsigned one-byte quantity} +@z + +TeX 2.0 WEB source line 790 +@x +begin reset(f,name_of_file,'/O'); a_open_in:=reset_OK(f); +@y +begin okstatus; reset(f,'NAME='ccat@, trim(str(name_of_file))); + a_open_in:=status; +@z + +TeX 2.0 WEB source line 795 +@x +begin rewrite(f,name_of_file,'/O'); a_open_out:=rewrite_OK(f); +@y +var buf_string:string(4); +begin okstatus; +writestr(buf_string,buf_size:4); +rewrite(f,'NAME='ccat@, trim(str(name_of_file)) +ccat ',LRECL=' ccat buf_string); + a_open_out:=status; +@z + +TeX 2.0 WEB source line 800 +@x +begin reset(f,name_of_file,'/O'); b_open_in:=reset_OK(f); +@y +begin okstatus; reset(f,'NAME='ccat@, trim(str(name_of_file) ccat'.*')); + b_open_in:=status; +@z + +TeX 2.0 WEB source line 805 +@x +begin rewrite(f,name_of_file,'/O'); b_open_out:=rewrite_OK(f); +@y +begin okstatus; rewrite(f,'NAME='ccat@, trim(str(name_of_file))); + b_open_out:=status; +@z + +TeX 2.0 WEB source line 810 +@x +begin reset(f,name_of_file,'/O'); w_open_in:=reset_OK(f); +@y +begin okstatus; reset(f,'NAME='ccat@, trim(str(name_of_file) ccat'.*')); + w_open_in:=status; +@z + +TeX 2.0 WEB source line 815 +@x +begin rewrite(f,name_of_file,'/O'); w_open_out:=rewrite_OK(f); +@y +begin okstatus; rewrite(f,'NAME='ccat@, trim(str(name_of_file))); + w_open_out:=status; +@z + +TeX 2.0 WEB source line 855 +@x +@= +@!buffer:array[0..buf_size] of ASCII_code; {lines of characters being read} +@y +@d LA_buffer== +@!buffer:array[0..buf_size] of ASCII_code; {lines of characters being read} + +@= +@z + +TeX 2.0 WEB source line 901 +@x +@p function input_ln(var f:alpha_file;@!bypass_eoln:boolean):boolean; + {inputs the next line or returns |false|} +var last_nonblank:0..buf_size; {|last| with trailing blanks removed} +begin if bypass_eoln then if not eof(f) then get(f); + {input the first character of the line into |f^|} +last:=first; {cf.\ Matthew 19\thinspace:\thinspace30} +if eof(f) then input_ln:=false +else begin last_nonblank:=first; + while not eoln(f) do + begin if last>=max_buf_stack then + begin max_buf_stack:=last+1; + if max_buf_stack=buf_size then + overflow("buffer size",buf_size); +@:TeX capacity exceeded buffer size}{\quad buffer size@> + end; + buffer[last]:=xord[f^]; get(f); incr(last); + if buffer[last-1]<>" " then last_nonblank:=last; + end; + last:=last_nonblank; input_ln:=true; + end; +end; +@y +@p function input_ln(var f:alpha_file;@!bypass_eoln:boolean):boolean; + {inputs the next line or returns |false|} +var last_nonblank:0..buf_size; {|last| with trailing blanks removed} +begin if bypass_eoln then if not eof(f) then get(f); + {input the first character of the line into |f^|} +last:=first; {cf.\ Matthew 19\thinspace:\thinspace30} +if eof(f) then input_ln:=false +else begin last_nonblank:=first; + while not eoln(f) do + begin if last>=max_buf_stack then + begin max_buf_stack:=last+1; + if max_buf_stack=buf_size then + overflow("buffer size",buf_size); +@:TeX capacity exceeded buffer size}{\quad buffer size@> + end; + buffer[last]:=xord[f@@]; get(f); incr(last); {@@ is \pvs\ pointer notation} + if buffer[last-1]<>" " then last_nonblank:=last; + end; + last:=last_nonblank; input_ln:=true; + end; +end; +@z + +TeX 2.0 WEB source line 933 +@x +@ Here is how to open the terminal files +in \ph. The `\.{/I}' switch suppresses the first |get|. +@^system dependencies@> + +@d t_open_in==reset(term_in,'TTY:','/O/I') {open the terminal for text input} +@d t_open_out==rewrite(term_out,'TTY:','/O') {open the terminal for text output} +@y +@ Here is how to open the terminal files +in \pvs. There is no need to do a |reset| or |rewrite| or suppress +the first |get| as with \ph. +@d t_open_in==@= TERMIN@>(term_in) {open the terminal for text input} +@d t_open_out==@= TERMOUT@>(term_out); {open the terminal for text output} +@z + +TeX 2.0 WEB source line 949 +@x +some instruction to the operating system. The following macros show how +these operations can be specified in \ph: +@^system dependencies@> + +@d update_terminal == break(term_out) {empty the terminal output buffer} +@d clear_terminal == break_in(term_in,true) {clear the terminal input buffer} +@d wake_up_terminal == do_nothing {cancel the user's cancellation of output} +@y +some instructions to the operating system. The following macros were +used to specify these operations in \ph\ but have been made into +``no-ops'' for \pvs. +@d update_terminal == do_nothing +@d clear_terminal == do_nothing +@d wake_up_terminal == do_nothing +@z + +TeX 2.0 WEB source line 1011 +@x +@p function init_terminal:boolean; {gets the terminal input started} +label exit; +begin t_open_in; +loop@+begin wake_up_terminal; write(term_out,'**'); update_terminal; +@y +@p function init_terminal:boolean; {gets the terminal input started} +label exit; +var i,j,k: integer; + l: string(256); +begin t_open_in; + l:=parms; + if l<>'' then begin + i:=@=LENGTH@>(l); + j:=min(i,buf_size-first); {this much will fit} + if j>0 then for k:=0 to j-1 do buffer[first+k]:=xord[l[k+1]]; + last:=first+j; + max_buf_stack:=max(max_buf_stack,last); + loc:=first; + init_terminal:=true; + return + end; +loop@+begin wake_up_terminal; write_ln(term_out,'**'); update_terminal; +@z + +TeX 2.0 WEB source line 1072 +@x +@ @= +@!str_pool:packed array[pool_pointer] of ASCII_code; {the characters} +@!str_start : array[str_number] of pool_pointer; {the starting pointers} +@y +@ @d LA_string== +@!str_pool:packed array[pool_pointer] of ASCII_code; {the characters} +@!str_start : array[str_number] of pool_pointer; {the starting pointers} + +@= +@z + +The following change is to use \write15 to send stuff to CMS +TeX 2.0 WEB source line 1373 +@x +@ To end a line of text output, we call |print_ln|. + +@= +procedure print_ln; {prints an end-of-line} +begin case selector of +term_and_log: begin wterm_cr; wlog_cr; + term_offset:=0; file_offset:=0; + end; +log_only: begin wlog_cr; file_offset:=0; + end; +term_only: begin wterm_cr; term_offset:=0; + end; +no_print,pseudo,new_string: do_nothing; +othercases write_ln(write_file[selector]) +endcases;@/ +end; {|tally| is not affected} +@y +@ To end a line of text output, we call |print_ln|. +In CMS \TeX\ we also use |print_ln| to send a message +to the operating system using the \.{\\write15} stream. + +@= +procedure print_ln; {prints an end-of-line} +var i:integer; +begin case selector of +term_and_log: begin wterm_cr; wlog_cr; + term_offset:=0; file_offset:=0; + end; +log_only: begin wlog_cr; file_offset:=0; + end; +term_only: begin wterm_cr; term_offset:=0; + end; +no_print,pseudo,new_string: do_nothing; +15: begin cms(trim(str(cms_buf)), irc); {send \.{\\write15} to CMS} + for i:=1 to cms_ptr do cms_buf[i]:=' '; + cms_ptr:=1; end; +othercases write_ln(write_file[selector]) +endcases;@/ +end; {|tally| is not affected} +@z + +The following change is to use \write15 to send stuff to CMS +TeX 2.0 WEB source line 1394 +@x +@= +procedure print_char(@!s:ASCII_code); {prints a single character} +label exit; +begin if @ then + if selector= +procedure print_char(@!s:ASCII_code); {prints a single character} +label exit; +begin if @ then + if selector + +There is a secret `\.D' option available when the debugging routines have +not been commented out. +@^debugging@> + +@= +case c of +"0","1","2","3","4","5","6","7","8","9": if deletions_allowed then + @; +@t\4\4@>@;@+@!debug "D": begin debug_help; goto continue;@+end;@+gubed@/ +"E": if base_ptr>0 then + begin print_nl("You want to edit file "); +@.You want to edit file x@> + print(input_stack[base_ptr].name_field); + print(" at line "); print_int(line); + interaction:=scroll_mode; jump_out; + end; +"H": @; +"I":@; +"Q","R","S":@; +"X":begin interaction:=scroll_mode; jump_out; + end; +othercases do_nothing +endcases;@/ +@ +@y +wizardry, so the standard implementation simply types out what file should be +edited and the relevant line number. +The CMS implementation uses an external assembly routine |attn202| to +invoke XEDIT with ``:|line|'' in the +program stack. +@^system dependencies@> + +There is a secret `\.D' option available when the debugging routines have +not been commented out. +@^debugging@> + +@= +case c of +"0","1","2","3","4","5","6","7","8","9": if deletions_allowed then + @; +@t\4\4@>@;@+@!debug "D": begin debug_help; goto continue;@+end;@+gubed@/ +"E": if base_ptr>0 then + begin print_nl("You want to edit file "); +@.You want to edit file x@> + print(input_stack[base_ptr].name_field); + print(" at line "); print_int(line); + inp_line:='XEDIT '; + s1:=selector; + tally:=0; selector:=pseudo; + print(input_stack[base_ptr].name_field); + for s2:=0 to tally-1 do inp_line[s2+7]:=xchr[trick_buf[s2]]; + s2:=string_index(inp_line,'.'); if s2>0 then inp_line[s2]:=' '; + s2:=string_index(inp_line,'.'); if s2>0 then inp_line[s2]:=' '; + attn202('FIFO ',inp_line); + tally:=0; inp_line:=' '; + print_int(line); + inp_line[1]:=':'; + for s2:=0 to tally-1 do inp_line[s2+2]:=xchr[trick_buf[s2]]; + attn202('FIFO ',inp_line); + ret_code(12); + selector:=s1; + interaction:=scroll_mode; jump_out; + end; +"H": @; +"I":@; +"Q","R","S":@; +"X":begin interaction:=scroll_mode; jump_out; + end; +othercases do_nothing +endcases;@/ +@ +@z + +TeX 2.0 WEB source line 2030 +@x +interrupt:=0; OK_to_interrupt:=true; +@y +interrupt:=0; OK_to_interrupt:=true; +term_attn(interrupt); +@z + +TeX 2.0 WEB source line 2277 +@x +@!glue_ratio=real; {one-word representation of a glue expansion factor} +@y +@!glue_ratio=shortreal; {are there any other reals in the program?} +@z + +TeX 2.0 WEB source line 2330 +@x +@d min_quarterword=0 {smallest allowable value in a |quarterword|} +@d max_quarterword=255 {largest allowable value in a |quarterword|} +@d min_halfword==0 {smallest allowable value in a |halfword|} +@d max_halfword==65535 {largest allowable value in a |halfword|} +@y +@d min_quarterword=0 {smallest allowable value in a |quarterword|} +@d max_quarterword=255 {largest allowable value in a |quarterword|} +@d min_halfword==-32768 {smallest allowable value in a |halfword|} +@d max_halfword==32767 {largest allowable value in a |halfword|} +@z + +TeX 2.0 WEB source line 2363 +@x +@d qi(#)==#+min_quarterword + {to put an |eight_bits| item into a quarterword} +@d qo(#)==#-min_quarterword + {to take an |eight_bits| item out of a quarterword} +@d hi(#)==#+min_halfword + {to put a sixteen-bit item into a halfword} +@d ho(#)==#-min_halfword + {to take a sixteen-bit item from a halfword} +@y +@d qi(#)==# + {to put an |eight_bits| item into a quarterword} +@d qo(#)==# + {to take an |eight_bits| item out of a quarterword} +@d hi(#)==#+min_halfword + {to put a sixteen-bit item into a halfword} +@d ho(#)==#-min_halfword + {to take a sixteen-bit item from a halfword} +@z + +TeX 2.0 WEB source line 2378 +@x +@!quarterword = min_quarterword..max_quarterword; {1/4 of a word} +@!halfword=min_halfword..max_halfword; {1/2 of a word} +@!two_choices = 1..2; {used when there are two variants in a record} +@!four_choices = 1..4; {used when there are four variants in a record} +@y +@!quarterword = packed min_quarterword..max_quarterword; {1/4 of a word} +@!halfword=packed min_halfword..max_halfword; {1/2 of a word} +@!two_choices=packed 1..2; {used when there are two variants in a record} +@!four_choices=packed 1..4; {when there are four variants in a record} +@z + +TeX 2.0 WEB source line 2401 +@x +@!word_file = file of memory_word; +@y +@!word_block = packed array [0..len_word_block-1] of memory_word; +@!word_file = packed file of word_block; +@!byte_block = packed array [0..len_byte_block-1] of quarterword; +@!byte_file = packed file of byte_block; +@z + +TeX 2.0 WEB source line 2466 +@x +deallocating them after their use. + +@= +@!mem : array[mem_min..mem_max] of memory_word; {the big dynamic storage area} +@y +deallocating them after their use. + +For \pvs\ we have declared the big |mem| array in the ``large array +variables'' module. It is defined here in terms of a macro expanded +near the end of the program. All such ``large array'' macros begin +with ``|LA_|.'' + +@d LA_mem== +@!mem : array[mem_min..mem_max] of memory_word; {the big dynamic storage area} + +@= +@z + +TeX 2.0 WEB source line 3268 +@x +been included. (You may want to decrease the size of |mem| while you +@^debugging@> +are debugging.) + +@= +@!debug @!free: packed array [mem_min..mem_max] of boolean; {free cells} +@t\hskip1em@>@!was_free: packed array [mem_min..mem_max] of boolean; + {previously free cells} +@t\hskip1em@>@!was_mem_end,@!was_lo_max,@!was_hi_min: pointer; +@y +been included. (You may want to decrease the size of |mem| while you +@^debugging@> +are debugging.) + +@d LA_mem_debug== +@!free: packed array [mem_min..mem_max] of boolean; {free cells} +@!was_free: packed array [mem_min..mem_max] of boolean; + {previously free cells} + +@= +@!debug @!was_mem_end,@!was_lo_max,@!was_hi_min: pointer; +@z + +TeX 2.0 WEB source line 3653 +@x + if abs(mem[p+glue_offset].int)<@'4000000 then print("?.?") +@y + if false then print("?.?") {no need to check value in 370 architecture} +@z + +TeX 2.0 WEB source line 4218 +@x +@= +@!nest:array[0..nest_size] of list_state_record; +@y +@d LA_nest== +@!nest:array[0..nest_size] of list_state_record; + +@= +@z + +TeX 2.0 WEB source line 5085 +@x +is needed. The program here simply specifies July 4, 1776, at noon; but +users probably want a better approximation to the truth. + +@p procedure fix_date_and_time; +begin time:=12*60; {minutes since midnight} +day:=4; {fourth day of the month} +month:=7; {seventh month of the year} +year:=1776; {Anno Domini} +end; +@y +is needed. The standard program +here simply specified July 4, 1776, at noon; but +we want a better approximation to the truth. + +@p procedure fix_date_and_time; +var date,tod:alfa; hour, minute:integer; +begin datetime(date,tod); +readstr(str(date),month:3,day:3,year); +year:=year+1900;{Bug next century} +readstr(str(tod),hour:3,minute); time:=hour*60+minute; +end; +@z + +TeX 2.0 WEB source line 5289 +@x +called |xeq_level|. + +@= +@!eqtb:array[active_base..eqtb_size] of memory_word; +@!xeq_level:array[int_base..eqtb_size] of quarterword; +@y +called |xeq_level|. + +@d LA_eqtb== +@!eqtb:array[active_base..eqtb_size] of memory_word; +@!xeq_level:array[int_base..eqtb_size] of quarterword; +@z + +TeX 2.0 WEB source line 5336 +@x +@d hash_is_full == (hash_used=hash_base) {test if all positions are occupied} +@d font_id_text(#) == text(font_id_base+#) {a frozen font identifier's name} + +@= +@!hash: array[hash_base..undefined_control_sequence-1] of two_halves; + {the hash table} +@y +@d hash_is_full == (hash_used=hash_base) {test if all positions are occupied} +@d font_id_text(#) == text(font_id_base+#) {a frozen font identifier's name} +@# +@d LA_hash== +@!hash: array[hash_base..undefined_control_sequence-1] of two_halves; + {the hash table} + +@= +@z + +TeX 2.0 WEB source line 5721 +@x +@ @= +@!save_stack : array[0..save_size] of memory_word; +@y +@ @d LA_save_stack== +@!save_stack : array[0..save_size] of memory_word; + +@= +@z + +TeX 2.0 WEB source line 6277 +@x +@ @= +@!input_stack : array[0..stack_size] of in_state_record; +@y +@ @d LA_input_stack== +@!input_stack : array[0..stack_size] of in_state_record; + +@= +@z + +TeX 2.0 WEB source line 6543 +@x +rate from the others. + +@= +@!param_stack:array [0..param_size] of pointer; + {token list pointers for parameters} +@y +rate from the others. + +@d LA_param_stack== +@!param_stack:array [0..param_size] of pointer; + {token list pointers for parameters} + +@= +@z + +TeX 2.0 WEB source line 9736 +@x +@d TEX_area=="TeXinputs:" +@.TeXinputs@> +@d TEX_font_area=="TeXfonts:" +@.TeXfonts@> +@y +@d TEX_area==".*" +@.TeXinputs@> +@d TEX_font_area=="" +@.TeXfonts@> +@z + +TeX 2.0 WEB source line 9751 +@x +@p function more_name(@!c:ASCII_code):boolean; +begin if c=" " then more_name:=false +else begin if (c=">")or(c=":") then + begin area_delimiter:=pool_ptr; ext_delimiter:=0; + end + else if (c=".")and(ext_delimiter=0) then ext_delimiter:=pool_ptr; + str_room(1); append_char(c); {contribute |c| to the current string} + more_name:=true; + end; +end; +@y +@p function more_name(@!c:ASCII_code):boolean; +var ret:boolean; +begin +if c=" " then ret:=false +else begin ret:=true; + if (c=".")then if ext_delimiter=0 then ext_delimiter:=pool_ptr + else if area_delimiter=0 then area_delimiter:=pool_ptr + else ret:=false; + if ret then begin {contribute |c| to the current string} + str_room(1); append_char(c); end; + end; +more_name:=ret; +end; +@z + +TeX 2.0 WEB source line 9769 +@x +if area_delimiter=0 then cur_area:="" +else begin cur_area:=str_ptr; incr(str_ptr); + str_start[str_ptr]:=area_delimiter+1; + end; +if ext_delimiter=0 then + begin cur_ext:=""; cur_name:=make_string; + end +else begin cur_name:=str_ptr; incr(str_ptr); + str_start[str_ptr]:=ext_delimiter; cur_ext:=make_string; + end; +end; +@y +if ext_delimiter=0 then begin cur_area:=""; cur_ext:=""; + cur_name:=make_string; end +else begin cur_name:=str_ptr; incr(str_ptr); + str_start[str_ptr]:=ext_delimiter; + if area_delimiter=0 then + begin cur_area:=""; cur_ext:=make_string; + end + else begin cur_ext:=str_ptr; incr(str_ptr); + str_start[str_ptr]:=area_delimiter; cur_area:=make_string; + end; + end; +end; +@z + +TeX 2.0 WEB source line 9788 +@x +begin print(a); print(n); print(e); +@y +begin print(n); print(e); print(a); +@z + +TeX 2.0 WEB source line 9800 +@x +@p procedure pack_file_name(@!n,@!a,@!e:str_number); +@y +@p procedure pack_file_name(@!a,@!e,@!n:str_number); +@z + +TeX 2.0 WEB source line 9818 +@x +@d format_default_length=20 {length of the |TEX_format_default| string} +@d format_area_length=11 {length of its area part} +@y +@d format_default_length=9 {length of the |TEX_format_default| string} +@d format_area_length=0 {length of its area part} +@z + +TeX 2.0 WEB source line 9826 +@x +TEX_format_default:='TeXformats:plain.fmt'; +@y +TEX_format_default:='plain.fmt'; +@z + +TeX 2.0 WEB source line 9998 +@x +clear_terminal; prompt_input(": "); @; +if cur_ext="" then cur_ext:=e; +pack_cur_name; +@y +clear_terminal; prompt_input(": "); @; +if cur_ext="" then cur_ext:=e; +if (s="input file name") and (cur_area="") then cur_area:=TEX_area; +pack_cur_name; +@z + +TeX 2.0 WEB source line 10034 +@x +@p procedure open_log_file; +var old_setting:0..max_selector; {previous |selector| setting} +@!k:0..buf_size; {index into |months| and |buffer|} +@!l:0..buf_size; {end of first input line} +@!months:packed array [1..36] of char; {abbreviations of month names} +begin old_setting:=selector; +if job_name=0 then job_name:="texput"; +@.texput@> +pack_job_name(".log"); +while not a_open_out(log_file) do @; +log_name:=a_make_name_string(log_file); +selector:=log_only; +@y +@p procedure open_log_file; +var old_setting:0..max_selector; {previous |selector| setting} +@!k:0..buf_size; {index into |months| and |buffer|} +@!l:0..buf_size; {end of first input line} +@!months:packed array [1..36] of char; {abbreviations of month names} +begin old_setting:=selector; +if job_name=0 then job_name:="texput"; +@.texput@> +pack_job_name(".texlog"); +while not a_open_out(log_file) do @; +log_name:=a_make_name_string(log_file); +selector:=log_only; +@z + +TeX 2.0 WEB source line 10089 +@x +@p procedure start_input; {\TeX\ will \.{\\input} something} +label done; +begin scan_file_name; {set |cur_name| to desired file name} +if cur_ext="" then cur_ext:=".tex"; +pack_cur_name; +loop@+ begin begin_file_reading; {set up |cur_file| and new level of input} + if a_open_in(cur_file) then goto done; + if cur_area="" then + begin pack_file_name(cur_name,TEX_area,cur_ext); + if a_open_in(cur_file) then goto done; + end; + end_file_reading; {remove the level that didn't work} + prompt_file_name("input file name",".tex"); + end; +done: name:=a_make_name_string(cur_file); +if job_name=0 then + begin job_name:=cur_name; open_log_file; +@y +@p procedure start_input; {\TeX\ will \.{\\input} something} +label done; +begin scan_file_name; {set |cur_name| to desired file name} +if cur_ext="" then cur_ext:=".tex"; +if cur_area="" then cur_area:=TEX_area; +pack_cur_name; +loop@+ begin begin_file_reading; {set up |cur_file| and new level of input} + if a_open_in(cur_file) then goto done; + end_file_reading; {remove the level that didn't work} + prompt_file_name("input file name",".tex"); + end; +done: name:=a_make_name_string(cur_file); +if job_name=0 then + begin job_name:=cur_name; open_log_file; +@z + +|flush_string| removed--spoils XEDIT invocation +TeX 2.0 WEB source line 10110 +@x +print_char("("); print(name); update_terminal; state:=new_line; +if name=str_ptr-1 then {we can conserve string pool space now} + begin flush_string; name:=cur_name; + end; +@; +end; +@y +print_char("("); print(name); update_terminal; state:=new_line; +@; +end; +@z + +TeX 2.0 WEB source line 10399 +@x +@ Here now is the (rather formidable) array of font arrays. + +@= +@!font_info:array[0..font_mem_size] of memory_word; + {the big collection of font data} +@!fmem_ptr:0..font_mem_size; {first unused word of |font_info|} +@!font_ptr:internal_font_number; {largest internal font number in use} +@!font_check:array[internal_font_number] of four_quarters; {check sum} +@!font_size:array[internal_font_number] of scaled; {``at'' size} +@!font_dsize:array[internal_font_number] of scaled; {``design'' size} +@!font_params:array[internal_font_number] of halfword; {how many font + parameters are present} +@!font_name:array[internal_font_number] of str_number; {name of the font} +@!font_area:array[internal_font_number] of str_number; {area of the font} +@!font_bc:array[internal_font_number] of eight_bits; + {beginning (smallest) character code} +@!font_ec:array[internal_font_number] of eight_bits; + {ending (largest) character code} +@!font_glue:array[internal_font_number] of pointer; + {glue specification for interword space, |null| if not allocated} +@!font_used:array[internal_font_number] of boolean; + {has a character from this font actually appeared in the output?} +@!hyphen_char:array[internal_font_number] of integer; + {current \.{\\hyphenchar} values} +@!skew_char:array[internal_font_number] of integer; + {current \.{\\skewchar} values} +@y +@ Here now is the (rather formidable) array of font arrays. + +@d LA_font1== +@!font_info:array[0..font_mem_size] of memory_word; + {the big collection of font data} +@!font_check:array[internal_font_number] of four_quarters; {check sum} +@!font_size:array[internal_font_number] of scaled; {``at'' size} +@!font_dsize:array[internal_font_number] of scaled; {``design'' size} +@!font_params:array[internal_font_number] of halfword; {how many font + parameters are present} +@!font_name:array[internal_font_number] of str_number; {name of the font} +@!font_area:array[internal_font_number] of str_number; {area of the font} +@!font_bc:array[internal_font_number] of eight_bits; + {beginning (smallest) character code} +@!font_ec:array[internal_font_number] of eight_bits; + {ending (largest) character code} +@!font_glue:array[internal_font_number] of pointer; + {glue specification for interword space, |null| if not allocated} +@!font_used:array[internal_font_number] of boolean; + {has a character from this font actually appeared in the output?} +@!hyphen_char:array[internal_font_number] of integer; + {current \.{\\hyphenchar} values} +@!skew_char:array[internal_font_number] of integer; + {current \.{\\skewchar} values} + +@= +@!fmem_ptr:0..font_mem_size; {first unused word of |font_info|} +@!font_ptr:internal_font_number; {largest internal font number in use} +@z + +TeX 2.0 WEB source line 10435 +@x +@= +@y +@d LA_font2== +@z + +TeX 2.0 WEB source line 10639 +@x +@ @= +@y +@ @= +tfm_count:=0; +@z + +TeX 2.0 WEB source line 10654 +@x +@d fget==get(tfm_file) +@d fbyte==tfm_file^ +@y +@ In CMS we know that \.{TFM} files have a logical record length of +1024 bytes, so we do one |get(tfm_file)| per CMS record. Then, since +|tfm_file| is a |byte_file| which is a |file of byte_block| which are +arrays of 1024 bytes, we refer to each byte in the record while it is +in the file buffer, avoiding the need to |get(tfm_file)| for each byte. +Note that |fget| procedure is defined at the end of the program. +@d fbyte==tfm_file@@[tfm_count] {@@ is \pvs\ pointer notation} +@z + +TeX 2.0 WEB source line 11527 +@x +@ Some systems may find it more efficient to make |dvi_buf| a |packed| +array, since output of four bytes at once may be facilitated. +@^system dependencies@> +@y +@ We play a trick with variant records so that we can fill up the +|dvi_buf| array byte by byte, but write it out in one swell foop. +@^system dependencies@> +@d dvi_buf==d_buffer.b {buffer for \.{DVI} output} +@z + +TeX 2.0 WEB source line 11531 +@x +@!dvi_buf:array[dvi_index] of eight_bits; {buffer for \.{DVI} output} +@y +@!d_buffer: packed record + case boolean of + false:(b:packed array [dvi_index] of eight_bits); + true: (l:byte_block; r:byte_block); + end; +@z + +TeX 2.0 WEB source line 11547 +@x +@ The actual output of |dvi_buf[a..b]| to |dvi_file| is performed by calling +|write_dvi(a,b)|. For best results, this procedure should be optimized to +run as fast as possible on each particular system, since it is part of +\TeX's inner loop. It is safe to assume that |a| and |b+1| will both be +multiples of 4 when |write_dvi(a,b)| is called; therefore it is possible on +many machines to use efficient methods to pack four bytes per word and to +output an array of words with one system call. +@^system dependencies@> +@^inner loop@> +@^defecation@> + +@p procedure write_dvi(@!a,@!b:dvi_index); +var k:dvi_index; +begin for k:=a to b do write(dvi_file,dvi_buf[k]); +end; +@y +@ The actual output of |dvi_buf[a..b]| to |dvi_file| is performed by calling +|write| on the other variant of the |dvi_buf| record. Thus, we had +better be sure things line up properly. +many machines to use efficient methods to pack four bytes per word and to +output an array of words with one system call. +@^system dependencies@> +@^inner loop@> +@^defecation@> + +@= +if dvi_buf_size<>2*len_byte_block then bad:=223; +@z + +TeX 2.0 WEB source line 11572 +@x + begin write_dvi(0,half_buf-1); dvi_limit:=half_buf; +@y + begin write(dvi_file,d_buffer.l); dvi_limit:=half_buf; +@z + +TeX 2.0 WEB source line 11575 +@x +else begin write_dvi(half_buf,dvi_buf_size-1); dvi_limit:=dvi_buf_size; +@y +else begin write(dvi_file,d_buffer.r); dvi_limit:=dvi_buf_size; +@z + +TeX 2.0 WEB source line 11584 +@x +if dvi_limit=half_buf then write_dvi(half_buf,dvi_buf_size-1); +if dvi_ptr>0 then write_dvi(0,dvi_ptr-1) +@y +if dvi_limit=half_buf then write(dvi_file,d_buffer.r); +for k:=dvi_ptr to dvi_buf_size do dvi_buf[k]:=223; {bug is |k| ok?} +if dvi_ptr>0 then write(dvi_file,d_buffer.l); +if dvi_ptr>half_buf then write(dvi_file,d_buffer.r); +@z + +TeX 1.1 WEB source line 12302 +@x +print_char("["); j:=9; +while (count(j)=0)and(j>0) do decr(j); +for k:=0 to j do + begin print_int(count(k)); + if k0 then + begin print_char("]"); + begin_diagnostic; show_box(p); end_diagnostic(true); + end; +@; +if tracing_output<=0 then print_char("]"); +@y +print_char("<"); j:=9; +while (count(j)=0)and(j>0) do decr(j); +for k:=0 to j do + begin print_int(count(k)); + if k0 then + begin print_char(">"); + begin_diagnostic; show_box(p); end_diagnostic(true); + end; +@; +if tracing_output<=0 then print_char(">"); +@z + +TeX 2.0 WEB source line 15720 +@x +@d delta_node=2 {|type| field in a delta node} +@y +@d delta_node=2 {|type| field in a delta node} + +@= +@!delta_array=array[1..6] of scaled; +@z + +TeX 2.0 WEB source line 15735 +@x +@d do_all_six(#)==#(1);#(2);#(3);#(4);#(5);#(6) + +@= +@!active_width:array[1..6] of scaled; + {distance from first active node to~|cur_p|} +@!cur_active_width:array[1..6] of scaled; {distance from current active node} +@!background:array[1..6] of scaled; {length of an ``empty'' line} +@!break_width:array[1..6] of scaled; {length being computed after current break} +@y +In standard \TeX\ the |do_all_six| macro is sometimes used just to copy one +of these arrays to another. In this version, that uses \pvs, these have been +converted to simple array assignments. This not only produces faster code, +it decreases the size of the generated procedure: which is important, for +|try_break| is very nearly too large for \pvs. + +@d do_all_six(#)==#(1);#(2);#(3);#(4);#(5);#(6) + +@= +@!active_width:delta_array; {distance from first active node to~|cur_p|} +@!cur_active_width:delta_array; {distance from current active node} +@!background:delta_array; {length of an ``empty'' line} +@!break_width:delta_array; {length being computed after current break} +@z + +TeX 2.0 WEB source line 15874 +@x +@@; +@y +@@; + +procedure print_new_break; begin +@ +end; + +procedure print_feasible_break; begin + @; +end; +@z + +TeX 2.0 WEB source line 15877 +@x +do_all_six(copy_to_cur_active); +@y +cur_active_width:=active_width; {\pvs\ for |do_all_six(copy_to_cur_active)|} +@z + +TeX 2.0 WEB source line 16020 +@x +begin no_break_yet:=false; do_all_six(set_break_width_to_background); +@y +begin no_break_yet:=false; break_width:=background; + {\pvs\ for |do_all_six(set_break_width_to_background)|} +@z + +TeX 2.0 WEB source line 16122 +@x + begin do_all_six(store_break_width); +@y + begin active_width:=break_width; {\pvs\ for |do_all_six(store_break_width)|} +@z + +TeX 2.0 WEB source line 16158 +@x + @; +@y + print_new_break; +@z + +TeX 2.0 WEB source line 16343 +@x + @; +@y + print_feasible_break; +@z + +TeX 2.0 WEB source line 16448 +@x + do_all_six(copy_to_cur_active); +@y + cur_active_width:=active_width; {\pvs\ for |do_all_six(copy_to_cur_active)|} +@z + +TeX 2.0 WEB source line 16523 +@x +do_all_six(store_background);@/ +@y +active_width:=background; {\pvs\ for |do_all_six(store_background)|} +@z + +TeX 2.0 WEB source line 17394 +@x +@!trie_pointer=0..trie_size; {an index into |trie|} +@y +@!trie_pointer=packed 0..trie_size; {an index into |trie|} +@z + +TeX 2.0 WEB source line 17398 +@x +@d trie_op(#)==trie[#].b0 {program for hyphenation at this trie location} + +@= +@y +@d trie_op(#)==trie[#].b0 {program for hyphenation at this trie location} +@# +@d LA_trie== +@z + +TeX 2.0 WEB source line 17457 +@x +@!hyph_pointer=0..hyph_size; {an index into the ordered hash table} + +@ @= +@!hyph_word:array[hyph_pointer] of str_number; {exception words} +@!hyph_list:array[hyph_pointer] of pointer; {list of hyphen positions} +@y +@!hyph_pointer=packed 0..hyph_size; {an index into the ordered hash table} + +@ @d LA_hyph== +@!hyph_word:array[hyph_pointer] of str_number; {exception words} +@!hyph_list:array[hyph_pointer] of pointer; {list of hyphen positions} + +@= +@z + +TeX 2.0 WEB source line 17665 +@x +@d trie_op_hash_size=quarterword_diff+quarterword_diff {double} + +@= +@!init@! trie_op_hash:array[0..trie_op_hash_size] of quarterword; + {trie op codes for triples} +tini@;@/ +@t\hskip1em@>@!trie_op_ptr:quarterword; {highest |trie_op| assigned} +@y +@d trie_op_hash_size=quarterword_diff+quarterword_diff {double} +@# +@d LA_trie_init1== +@! trie_op_hash:array[0..trie_op_hash_size] of quarterword; + {trie op codes for triples} + +@= +@!trie_op_ptr:quarterword; {highest |trie_op| assigned} +@z + +TeX 2.0 WEB source line 17717 +@x +@d trie_root==trie_l[0] {root of the linked trie} + +@= +@!init @!trie_c:packed array[trie_pointer] of ASCII_code; {characters to match} +@t\hskip1em@>@!trie_o:packed array[trie_pointer] of quarterword; + {operations to perform} +@t\hskip1em@>@!trie_l:packed array[trie_pointer] of trie_pointer; + {left subtrie links} +@t\hskip1em@>@!trie_r:packed array[trie_pointer] of trie_pointer; + {right subtrie links} +@t\hskip1em@>@!trie_ptr:trie_pointer; {the number of nodes in the trie} +@y +@d trie_root==trie_l[0] {root of the linked trie} +@# +@d LA_trie_init2== +@!trie_c:packed array[trie_pointer] of ASCII_code; {characters to match} +@t\hskip1em@>@!trie_o:packed array[trie_pointer] of quarterword; + {operations to perform} +@t\hskip1em@>@!trie_l:packed array[trie_pointer] of trie_pointer; + {left subtrie links} +@t\hskip1em@>@!trie_r:packed array[trie_pointer] of trie_pointer; + {right subtrie links} + +@= +@!init @!trie_ptr:trie_pointer; {the number of nodes in the trie} +@z + +TeX 2.0 WEB source line 17734 +@x +initialized to zero. + +@= +@!init @!trie_hash:packed array[trie_pointer] of trie_pointer; +tini {to identify equivalent subtries} +@y +initialized to zero. + +@d LA_trie_init3== +@!trie_hash:packed array[trie_pointer] of trie_pointer; + {to identify equivalent subtries} +@z + +TeX 2.0 WEB source line 17809 +@x +@d trie_back(#)==trie[#].lh {backward links in |trie| holes} + +@= +@!init@!trie_taken:packed array[trie_pointer] of boolean; + {does a family start here?} +@t\hskip1em@>@!trie_min:trie_pointer; +@y +@d trie_back(#)==trie[#].lh {backward links in |trie| holes} +@# +@d LA_trie_init4== +@!trie_taken:packed array[trie_pointer] of boolean; + {does a family start here?} + +@= +@!init @!trie_min:trie_pointer; +@z + +TeX 2.0 WEB source line 22573 +@x + if cur_ext="" then cur_ext:=".tex"; +@y + if cur_ext="" then cur_ext:=".tex"; + if cur_area="" then cur_area:=TEX_area; +@z + +TeX 2.0 WEB source line 22865 +@x +bad_fmt: wake_up_terminal; + wterm_ln('(Fatal format file error; I''m stymied)'); +@.Fatal format file error@> +load_fmt_file:=false; +exit:end; +@y +bad_fmt: wake_up_terminal; + wterm_ln('(Fatal format file error; I''m stymied)'); +@.Fatal format file error@> +history:=fatal_error_stop; +load_fmt_file:=false; +exit:end; +@z + +TeX 2.0 WEB source line 22885 +@x +@d dump_wd(#)==begin fmt_file^:=#; put(fmt_file);@+end +@d dump_int(#)==begin fmt_file^.int:=#; put(fmt_file);@+end +@d dump_hh(#)==begin fmt_file^.hh:=#; put(fmt_file);@+end +@d dump_qqqq(#)==begin fmt_file^.qqqq:=#; put(fmt_file);@+end + +@= +@y +@d fmt_word==fmt_file@@[fmt_count] + +@d dump_wd(#)==begin fmt_word:=#; put_fmt;@+end +@d dump_int(#)==begin fmt_word.int:=#; put_fmt;@+end +@d dump_hh(#)==begin fmt_word.hh:=#; put_fmt;@+end +@d dump_qqqq(#)==begin fmt_word.qqqq:=#; put_fmt;@+end + +@= +@!fmt_count:integer; +@z + +TeX 2.0 WEB source line 22897 +@x +@d undump_wd(#)==begin get(fmt_file); #:=fmt_file^;@+end +@d undump_int(#)==begin get(fmt_file); #:=fmt_file^.int;@+end +@d undump_hh(#)==begin get(fmt_file); #:=fmt_file^.hh;@+end +@d undump_qqqq(#)==begin get(fmt_file); #:=fmt_file^.qqqq;@+end +@y +@d undump_wd(#)==begin get_fmt; #:=fmt_word;@+end +@d undump_int(#)==begin get_fmt; #:=fmt_word.int;@+end +@d undump_hh(#)==begin get_fmt; #:=fmt_word.hh;@+end +@d undump_qqqq(#)==begin get_fmt; #:=fmt_word.qqqq;@+end +@z + +TeX 2.0 WEB source line 22912 +@x +@= +@y +@= +fmt_count:=0; +@z; + +TeX 2.0 WEB source line 22927 +@x +x:=fmt_file^.int; +@y +fmt_count:=0; +x:=fmt_word.int; +@z + +TeX 2.0 WEB source line 23224 +@x +dump_int(interaction); dump_int(format_ident); dump_int(69069); +@y +dump_int(interaction); dump_int(format_ident); dump_int(69069); +while fmt_count<>0 do dump_int(0); {flush out the buffer} +@z + +TeX 2.0 WEB source line 23309 +@x +The initial test involving |ready_already| should be deleted if the +\PASCAL\ runtime system is smart enough to detect such a ``mistake.'' +@^system dependencies@> + +@p begin @!{|start_here|} +history:=fatal_error_stop; {in case we quit during initialization} +t_open_out; {open the terminal for output} +if ready_already=314159 then goto start_of_TEX; +@y +The initial test involving |ready_already| has been deleted here +since the +CMS storage management is not smart enough to clean up properly. +We also declare the procedure |use_stack| which is explained in +its definition. +@^system dependencies@> + +@p @ @; +@# +begin @!{|start_here|} +use_stack; +history:=fatal_error_stop; {in case we quit during initialization} +t_open_out; {open the terminal for output} +@z + +TeX 2.0 WEB source line 23319 +@x + begin wterm_ln('Ouch---my internal constants have been clobbered!', + '---case ',bad:1); +@y + begin wterm_ln('Ouch---my internal constants have been clobbered!', + '---case ',bad:1); + ret_code(100+bad); +@z + +TeX 2.0 WEB source line 23328 +@x +ready_already:=314159; +start_of_TEX: @; +@; +init_str_ptr:=str_ptr; init_pool_ptr:=pool_ptr;@/ +history:=spotless; {ready to go!} +main_control; {come to life} +final_cleanup; {prepare for death} +end_of_TEX: close_files_and_terminate; +final_end: ready_already:=0; +@y +do_nothing; {remove |ready_already:=314159;|} +start_of_TEX: @; +@; +init_str_ptr:=str_ptr; init_pool_ptr:=pool_ptr;@/ +history:=spotless; {ready to go!} +main_control; {come to life} +final_cleanup; {prepare for death} +end_of_TEX: close_files_and_terminate; +final_end: ret_code(history*4); +interrupt:=-1; +term_attn(interrupt); +@z + +TeX 2.0 WEB source line 23348 +@x +but that can't cause infinite recursion. + +@= +procedure close_files_and_terminate; +var k:integer; {all-purpose index} +begin @; +@!stat if tracing_stats>0 then @;@;@+tats@/ +wake_up_terminal; @; +if job_name>0 then + begin wlog_cr; a_close(log_file); selector:=selector-2; +@y +but that can't cause infinite recursion. + +For \pvs\ we explicitly close all text input files, which standard +\TeX\ leaves open, because \pvs\ sometimes(!) cannot manage +to close them +after a |jump_out| from an inner-level input file containing a +\TeX\ error. +It is (currently) okay to close files that are not open in \pvs. + +@= +procedure close_files_and_terminate; +var k:integer; {all-purpose index} +begin @; +@!stat if tracing_stats>0 then @;@;@+tats@/ +wake_up_terminal; @; +if job_name>0 then + begin wlog_cr; a_close(log_file); + for k:=1 to max_in_open do a_close(input_file[k]); {close input files} + selector:=selector-2; +@z + +Web line 23602, add index code +@x +@d special_node=3 {|subtype| in whatsits that represent \.{\\special} things} +@y +@d special_node=3 {|subtype| in whatsits that represent \.{\\special} things} +@d ix_print_node=5 +{|subtype| in whatsits that represent \.{\\printindex} things} +@z +The following change is to use \write15 to send stuff to CMS +TeX 2.0 WEB source line 23619 +@x +@ @= +for k:=0 to 17 do write_open[k]:=false; +@y +@ @= +for k:=0 to 17 do write_open[k]:=false; +write_open[15]:=true; {hack open \.{\\write15} stream for sending + messages to CMS} +cms_ptr:=1; {initialize |cms_buf| pointer and array} +for k:=1 to buf_size do cms_buf[k]:=' '; +@z + +Web line 23635, index code +@x +primitive("special",extension,special_node);@/ +@!@:special_}{\.{\\special} primitive@> +@y +primitive("special",extension,special_node);@/ +@!@:special_}{\.{\\special} primitive@> +primitive("printindex",extension,ix_print_node);@/ +@!@:printindex_}{\.{\\printindex} primitive@> +@z + +Web line 23651, index code +@x + special_node:print_esc("special"); +@y + special_node:print_esc("special"); + ix_print_node:print_esc("printindex"); +@z + +Web line 23671, index code +@x +special_node:@; +@y +special_node:@; +ix_print_node:@; +@z + +Web line 23725, index code +@x +@= +begin new_whatsit(special_node,write_node_size); write_stream(tail):=null; +p:=scan_toks(false,true); write_tokens(tail):=def_ref; +end +@y +@= +begin new_whatsit(special_node,write_node_size); write_stream(tail):=null; +p:=scan_toks(false,true); write_tokens(tail):=def_ref; +end +@ This is an extension to call TEXIX, the index building and sorting +program. + +@= +begin scan_int; +if (cur_val<1) or (cur_val>3) +then begin +print_err("Invalid index number"); +help2("Since I expected to read a number between 1 and 3,") +("I changed this one to 1."); +int_error(cur_val); +cur_val:=1; +end; +texix(chr(cur_val+ord('0'))); +end + +@ The next procedure calls the Pascal/VS module TEXIX to build the +sorted index. TEXIX calls +the PL/1 procedure PLSORT, which calls the CASORT procedure to sort +the index file. + +@= +procedure texix(@!ix:char); external; + +@z + +TeX 2.0 WEB source line 23949 +@x +This section should be replaced, if necessary, by changes to the program +that are necessary to make \TeX\ work at a particular installation. +It is usually best to design your change file so that all changes to +previous sections preserve the section numbering; then everybody's version +will be consistent with the published program. More extensive changes, +which introduce new sections, can be inserted here; then only the index +itself will get a new section number. +@^system dependencies@> +@y +The following sections, as recommended, contain the changes necessary to +make \TeX\ work under \pvs\ and CMS. + +@ The following two sections of code and comment are from Chris Thompson +of Cambridge University Computing Service: + +One of the unfortunate features of the \pvs\ compiler (and, indeed, of +all known \PASCAL\ compilers for the IBM/370 architecture) is that variables +in a stack frame are allocated strictly in the order they were declared. +If the stack frame is more than 4096 bytes long, access to the later variables +is less efficient, as \pvs\ must generate code to add a suitable multiple +of 4096 to the base register for the stack frame. If many different multiples +of 4096 are involved, the situation is correspondingly worse. + +Unfortunately, this effect is particularly acute for programs like \TeX. +The order of the global variable declarations in the program generated by +\.{TANGLE} is the order they actually occur in the source of \TeX. This order +is oriented towards a structured exposition of the program. In particular, +arrays (some of them rather large) and simple variables are mixed up; thus +some of the most heavily used global variables in \TeX\ not only are not +assigned addresses in the first 4096 bytes of the global stack frame, but +even occur in many different 4096-byte sections of that frame, causing +\pvs\ to have to assign many registers to point at them. + +There are many possible ways in which this situation could be improved. +In this version of \TeX\ the declarations of the largest arrays have been +removed from the module ``Global variables'' and added to a new one called +``Large array variables'' which is inserted at the end of the declarations. +The object is to make the space allocated to the variables left in the first +module no more than 4096 bytes. Many of the smaller arrays have been left in +the first module; after all, they too can gain from being directly addressable. + +As the individual sections of ``Global variables'' often contain declarations +of both simple and array variables, the latter have been converted to +\.{TANGLE} macros which are expanded here, rather than building up +``Large array variables'' on the way. +This would also enable us to change the order of +these arrays on the global stack frame if desired. + +@= + LA_buffer @; LA_string @; + LA_mem @; debug LA_mem_debug gubed @; + LA_nest @; LA_eqtb @; LA_hash @; LA_save_stack @; + LA_input_stack @; LA_param_stack @; + LA_font1 @; LA_font2 @; + LA_trie @; LA_hyph @; + init LA_trie_init1 @; LA_trie_init2 @; LA_trie_init3 @; LA_trie_init4 tini + +@ Another unfortunate feature of the \pvs\ compiler (this time unique to it) +is the way it manages the \PASCAL\ stack. Rather than allocating the whole +stack area at once, it uses \.{GETMAIN} system calls to obtain chunks of store +for it on demand. If stack overflow is detected on a routine call (i.e., the +current chunk is not big enough; which, in particular, always happens when +the main program is called from the runtime system) then a new chunk is made +current. This is taken from a chain of spare chunks if any of them is big +enough; if not, a new chunk is obtained, of size +$$\lceil\max(\hbox{new stack frame}, d)\rceil\quad\hbox{Kbytes}$$ +where $d$ is specified by a runtime option, defaulting to 12\thinspace Kbytes. +A special dummy procedure is +placed between the caller and callee. When the callee returns, this procedure +switches back to the old chunk, placing the new one on the spare list. + +Now, consider the case of \TeX. Most of the stack frames are not much larger +than the \pvs\ minimum of 144 bytes, because they do not contain arrays; +on the other hand, the global stack frame is enormous. The chunk obtained +by \pvs\ for the main program will have between 0~and 1\thinspace Kbytes +left after the global stack frame itself---and exactly how much will be +quite impossible to keep control of as \TeX\ is altered. This is not +enough for very many nested routine calls, and \TeX\ will soon use it up +and obtain a new chunk of 12\thinspace Kbytes; this will suffice for +nearly all \TeX\ applications (and if it didn't, we could change the +runtime option). + +Some routines will have their stack frames very near the end of the +first chunk. On every routine call they make, a switch will have to be +made to the second chunk, and on each return to them a switch back again. +Although this part of the \pvs\ runtime system is written in assembler, +this is still a heavy overhead. If the routine involved is one that calls +many other routines (the worst case may be |main_control|) then this will +observably degrade the whole performance of \TeX. Experiments have shown +variations due to this cause in the CPU time used by \TeX\ of 10\% in +normal applications, and more than that in special cases. + +The possible solutions here range from altering the algorithm in \pvs\ to +use a chunk size of +$$\lceil\hbox{new stack frame} + d\rceil\quad\hbox{Kbytes}$$ +(which would work quite well for \TeX) to arranging to always specify a +runtime system \.{STACK=d} option comfortably larger than the global +stack frame (but then one could hardly hope ever to get another chunk +if the first one {\sl did} run out). The solution adopted in this version +of \TeX\ is to use an assembler routine |use_stack| which arranges that +its caller's stack frame will subsequently be judged by \pvs\ to be as +high as possible in the current chunk---to do this it has to know more +than is good for it about the internals of \pvs, of course! + +Ideally, this routine would be used as follows. The main program would +consist of a call of |use_stack|, followed by a call of + \\{do\_everything\_else}; +then only one call-return pair gets the overhead. This is awkward for \TeX, +though, because of the labels in the main program, especially |end_of_TEX|. +Almost as good is to insert a call of |use_stack| near the beginning of the +existing main program, and this is what we do here. It works because the +main program doesn't actually call many other routines, and has no loops---we +can hope it will stay that way! + +@= +procedure use_stack; external; + +@ Extra type needed for CMS message +@= + +@!cms_buf_type=packed array[1..buf_size] of char; + +@ Here are extra global variables for VM/CMS routines +@= + +@!inp_line:string(255); +@!cms_buf:cms_buf_type; +@!cms_ptr:1..buf_size; +@!irc:integer; +@!tfm_count:integer; +@!status: boolean; {did the last |reset| or |rewrite| succeed?} + +@ @= +procedure term_attn(var interrupt: integer); fortran; +procedure cms(const s:string; var rc:integer); external; +procedure attn202(const lifofifo:alfa; const cmd:string); external; +procedure okstatus; begin status:=true; end; +@/@\@=%INCLUDE ONERROR;@>@\ +@# +procedure onerror; begin +if @= FERROR @> in [41,48] then begin + status:=false; + @= FACTION@>:=[@=XDECERR@>]; end; +if @= FERROR@>=30 then interrupt:=1; +end; + +procedure fget; begin {no check done for eof} + incr(tfm_count); + if tfm_count=tfm_buf_size then + begin get(tfm_file); tfm_count:=0; + end; + end; + +procedure put_fmt; begin + incr(fmt_count); + if fmt_count=len_word_block then + begin put(fmt_file); fmt_count:=0; + end; + end; + +procedure get_fmt; begin + incr(fmt_count); + if fmt_count=len_word_block then begin + get(fmt_file); fmt_count:=0; + end; + end; +@z diff --git a/macros/text1/vax_vms/compile_texix.com b/macros/text1/vax_vms/compile_texix.com new file mode 100644 index 0000000000..d62df0c372 --- /dev/null +++ b/macros/text1/vax_vms/compile_texix.com @@ -0,0 +1,10 @@ +$! used to create a new TEXIX executable +$! +$ set noverify +$ set on +$ pascal vmssort +$ tangle texix +$ pascal texix +$ link texix,vmssort +$ set noverify +$exit diff --git a/macros/text1/vax_vms/sortcall.pen b/macros/text1/vax_vms/sortcall.pen new file mode 100644 index 0000000000..af41cfbe0d Binary files /dev/null and b/macros/text1/vax_vms/sortcall.pen differ diff --git a/macros/text1/vax_vms/texix.ch b/macros/text1/vax_vms/texix.ch new file mode 100644 index 0000000000..20168b7fe4 --- /dev/null +++ b/macros/text1/vax_vms/texix.ch @@ -0,0 +1,509 @@ + +@x line 6 + \centerline{{\twelvept For IBM VM/CMS Pascal/VS}} +@y + \centerline{{\twelvept For Vax Pascal}} +@z + +@x line 107 +segment texix; +procedure texix(ix:char); external; +procedure texix; +@y +[inherit('sortcall')] +program texix(input,output); +@z + +@x line 142 +@d getout == return +@d messages == sysprint +@y +@d getout == goto return +@d messages == output +@z + +@x line 146 +@d max_lrecl = 2048 +@y +@d max_lrecl = 255 +@z + +@x line 147 +in_record := dosubstr(in_record,1 + #) +@y +in_record := dosubstr(in_record,1 + #,length(in_record)-(#)) +@z + +@x line 176 +@d do_when_bold == begin +if length(bold_string) > 0 then add_comma(bold_string); +bold_string:= +ccat(ccat(ccat(bold_string,'{\bd '),curr_str_page),'}'); +@.\bs{}bd@> +end + +@d do_when_underscore == begin +if length(us_string) > 0 then add_comma(us_string); +us_string:= +ccat(ccat(ccat(us_string,'\us{'),curr_str_page),'}'); +@.\bs{}us@> +end + +@d do_when_italic == begin +if length(rm_string) > 0 then add_comma(rm_string); +rm_string:= +ccat(ccat(ccat(rm_string,'{\it '),curr_str_page),'}'); +@.\bs{}it@> +end +@y +@d do_when_bold == begin +if length(bold_string) > 0 then add_comma(bold_string); +bold_string:=ccat(bold_string,'{\bd '); +bold_string:=ccat(bold_string,curr_str_page); +bold_string:=ccat(bold_string,'}'); +@.\bs{}us@> +end + +@d do_when_underscore == begin +if length(us_string) > 0 then add_comma(us_string); +us_string:=ccat(us_string,'\us{'); +us_string:=ccat(us_string,curr_str_page); +us_string:=ccat(us_string,'}'); +@.\bs{}us@> +end + +@d do_when_italic == begin +if length(rm_string) > 0 then add_comma(rm_string); +rm_string:=ccat(rm_string,'{\it '); +rm_string:=ccat(rm_string,curr_str_page); +rm_string:=ccat(rm_string,'}'); +@.\bs{}it@> +end +@z + +@x line 253 + ccat := x ccat_temp y; +@y + ccat := x + y; +@z + +@x line 271 +@^System dependent code@> +@p procedure reset_file(file_number:char); +begin +if file_number = '9' then reset(sort_file, +'NAME=TEXT1$$.OUTSORT.A,LRECL=1857,RECFM=V') +else reset(ix_file, +ccat(ccat('NAME=TEXT1$$.IX',str(file_number)),'.A')); +end; +@y +@^System dependent code@> +@p procedure reset_file(file_number:char); +begin +if file_number = '9' then begin open(sort_file, +'TEXT1$$.OUTSORT',history:=readonly); reset(sort_file); end +else begin open(ix_file,ccat('TEXT1$$.IX',file_number),history:=readonly); +reset(ix_file); end; +end; + +function trim(object:string_pass):string_pass; +var i:integer; +new_string:string_pass; +begin +i:=length(object)+1; +repeat + decr(i); + until (object[i] <> ' ') or (i=1); +if (object[i] = ' ') and (i=1) +then new_string:='' +else new_string:=dosubstr(object,1,i); +trim:=new_string; +end; +@z + +@x line 288 +rewrite(sort_file,'NAME=TEXT1$$.INSORT.A,LRECL=1857,RECFM=V') +else +rewrite(ix_file, +ccat(ccat('NAME=TEXT1$$.IX',str(file_number)), +'.A,LRECL=2048,RECFM=V')); +@y +begin open(sort_file,'TEXT1$$.INSORT'); +rewrite(sort_file); end +else +begin +open(ix_file,ccat('TEXT1$$.IX',file_number), +record@=_@>@t\_@>length:=1024); +rewrite(ix_file); end; +@z + +@x line 444 +@ The {\it get\_numeric} +function will take a packed array of length max\_pn\_alpha and convert +that array (which is really the page number) into an integer. + +@p function get_numeric(x_string:string_type(max_pn_alpha)):integer; +var @!i:integer; +begin +readstr(x_string,i); +get_numeric:=i; +end; +@y +@ The {\it get\_numeric} +function will take a packed array of length max\_pn\_alpha and convert +that array (which is really the page number) into an integer. + +@p function get_numeric(x_string:string_pass):integer; +var @!i:integer; +begin +readv(x_string,i); +get_numeric:=i; +end; +@z + +@x line 459 +@p procedure strvalue(x:integer; var results:pass_pn_alpha); +var +temp:string_type(max_pn_alpha); +begin +writestr(temp,x); +results:=ltrim(temp); +end; +@y +@p function ltrim(triml_in_string:string_pass):pn_type; +var i,j:integer; +triml_out_string:pn_type; +begin +j:=0; +for i:=1 to length(triml_in_string) do begin +if triml_in_string[i] <> ' ' then begin + incr(j); + triml_out_string[j]:=triml_in_string[i]; + end; +end; +ltrim:=triml_out_string; +end; + + +procedure strvalue(x:integer; var results:pn_type); +var +temp:string_type(max_pn_alpha); +begin + writev(temp,x); + results:=trim(ltrim(temp)); + end; +@z + +@x line 470 +@p function strconv(x:pn_alpha_type):string_type(max_pn_alpha); +var i:integer; +temp:string_type(max_pn_alpha); +begin +temp:='';i := 1; +with sort_record do begin +repeat +if x[i] <> ' ' then +temp := ccat(temp,str(x[i])); +incr(i); +until (i > max_pn_alpha) or (x[i] = ' '); +end; +strconv:=temp; +end; +@y +@p function strconv(x:pn_alpha_type):pass_pn_alpha; +var i:integer; +temp:string_type(max_pn_alpha); +begin +temp:='';i := 1; +with sort_record do begin +repeat +if x[i] <> ' ' then +temp := ccat(temp,x[i]); +incr(i); +until (i > max_pn_alpha) or (x[i] = ' '); +end; +strconv:=temp; +end; +@z + +@x line 626 +@ The {\it plsort} procedure is written in PL/1 to call the CMS sort program +Syncsort. This was necessary since you cannot call Syncsort from PASCAL/VS. +The fields to be sorted are defined internally in the {\it plsort} +program. This should be the same as the three sort fields in {\it sort\_type}. +@:sort_type@> +@:plsort@> @^PL/1@> +@^Syncsort@> + +@p procedure plsort(var sort_rc:integer); fortran; +@y +@ The {\it vmssort} procedure calls a VMS sort program. +You can use your favorite program here. +The three sort fields in {\it sort\_type} are to be sorted. +@:sort_type@> +@:vmssort@> + +@z + +@x line 643 +@ This function converts to all uppercase. +Notice that this is an EBCIDIC conversion, not an ASCII conversion +to uppercase. + +@p function upper_case(x:char):char; +var temp:char; +begin + if (ord(x)>=129)and(ord(x)<=169) then + temp:=chr(ord(x)+64) + else temp:=x; +upper_case:=temp; +end; +@y +@ This function converts to all uppercase. +Notice that this is an ASCII conversion, not an EBCDIC conversion +to uppercase. + +@p function upper_case(x:char):char; +var temp:char; +begin + if ord(x) >= "a" then + temp:=chr(ord(x)-@'40) + else temp:=x; +upper_case:=temp; +end; +@z + + +@x line 710 +@!temp_strvalue:pass_pn_alpha; +@y +@!temp_strvalue:pn_type; +@z + +@x line 738 +if dosubstr(in_record,doindex(in_record,'=')+1) = 'no' +@y +if dosubstr(in_record,doindex(in_record,'=')+1,length(in_record) +-doindex(in_record,'=')) = 'no' +@z + +@x line 744 +if dosubstr(in_record,doindex(in_record,'=')+1) = 'no' +@y +if dosubstr(in_record,doindex(in_record,'=')+1,length(in_record) +-doindex(in_record,'=')) = 'no' +@z + +@x line 862 +@= +sort_file@@:=sort_record; +put(sort_file); +@y +@= +write(sort_file,sort_record); +@z + +@x line 890 +The page number for a blind entry will always be 999999999. + +@= +begin remove_characters(6);{Throw away the `\$\{\$\}be'}@/ +i := doindex(in_record,'{$}'); +curr_level:=2; +write_print_chars(i-1); +curr_level:=0; +remove_characters(3);{Throw away the `\{\$\}'} +sort_record.page_number := 999999999; +@y +The page number for a blind entry will always be 9999. + +@= +begin remove_characters(6);{Throw away the `\$\{\$\}be'}@/ +i := doindex(in_record,'{$}'); +curr_level:=2; +write_print_chars(i-1); +curr_level:=0; +remove_characters(3);{Throw away the `\{\$\}'} +sort_record.page_number := 9999; +@z + +@x line 937 +@p procedure add_page_number; +var i:integer; +@y +@p procedure add_page_number; +var i:integer; +label return; +@z + +@x line 955 +@ +@y +@ +return: +@z + +@x line 963 +@!str_build:string_type(max_lrecl); +@y +@!str_build:string_type(max_lrecl); +@!temp_build:string_type(max_lrecl); +@z + +@x line 976 +str_blind_entry := ccat(str_blind_entry,str(field_level[i])); +@y +str_blind_entry := ccat(str_blind_entry,field_level[i]); +@z + +@x line 996 +@ If the {\it page\_string[1]} is less than zero, its alphabetic and +roman numeral processing is necessary. + +@= +with sort_record do begin +if ord(page_string[1]) < ord('0') +@y +@ If the {\it page\_string[1]} is greater + than nine, its alphabetic and +roman numeral processing is necessary. + +@= +with sort_record do begin +if ord(page_string[1]) > ord('9') +@z + +@x line 1006 +str_build := ccat(ccat(ccat(strconv(page_string), +','),temp_strvalue),str_build); +@y +temp_build:=ccat(strconv(page_string),','); +temp_build:=ccat(temp_build,temp_strvalue); +str_build:=ccat(temp_build,str_build); +@z + +@x line 1103 +then curr_str_page:=dosubstr(curr_str_page,2) +@y +then curr_str_page:=dosubstr(curr_str_page,2,length(curr_str_page)-1) +@z + +@x line 1179 +if i < 1 then begin curr_str_page:=str_build; str_build:='';end +else begin +curr_str_page:=dosubstr(str_build,1,i-1); +str_build := dosubstr(str_build,i+1); +end; +@;@/ +if ord(curr_str_page[1]) < ord('0') {Then its alphabetic} +@y +if i < 1 then begin curr_str_page:=str_build; +str_build:='';end +else begin +curr_str_page:=dosubstr(str_build,1,i-1); +str_build := dosubstr(str_build,i+1,length(str_build)-i); +end; +@;@/ +if ord(curr_str_page[1]) > ord('9') +@z + + +@x line 1192 +if i < 1 then begin temp_roman:=str_build; str_build:='';end +else begin +temp_roman:=dosubstr(str_build,1,i-1); +str_build := dosubstr(str_build,i+1); +@y +if i < 1 then begin temp_roman:=str_build; +str_build:='';end +else begin +temp_roman:=dosubstr(str_build,1,i-1); +str_build := dosubstr(str_build,i+1,length(str_build)-i); +@z + +@x line 1254 +output_string := ccat(ccat('\leader{}',output_string),'\par'); +@y +output_string:=ccat('\leader{}',output_string); +output_string:=ccat(output_string,'\par'); +@z + +@x line 1305 +sort_record:=sort_file@@; +get(sort_file); +@y +read(sort_file,sort_record); +@z + +@x line 1524 +@* Main Program. +Ok, here is the main program. First we initialize (all\_blanks); then +set the ix\_file for input and the sort\_file for output; read all of the +entries, processing each one; close the files; sort; read the sorted file +in and build the entries, writing them back to the ix\_file to be read in +by the index markup. WHEW!! + +@p +begin @@/ +termout(messages); +reset_file(ix);@/ +file_rewrite(s_file_number); {Should always be file 9}@/ +read_all_entries;@/ +close(ix_file);@/ +close(sort_file);@/ +@@/ +reset_file(s_file_number);@/ +file_rewrite(ix);@/ +build_sorted_index;@/ +end; +@y +@* Main Program. +Ok, here is the main program. First we initialize (all\_blanks); then +prompt to determine which index to use (1, 2, or 3). +Next call VMS' sort routine. And thats it. + WHEW!! + +@p +begin @@/ +write('Which index are you processing (1, 2, or 3)? ');@/ +readln(ix);@/ +if (ix <> '1') and (ix <> '2') and (ix <> '3') then begin +writeln(messages, +'You can only process indexes 1, 2, or 3. Start again.'); +halt; end; +writeln(''); +writeln(messages,'Starting the sort routine....'); +writeln(messages); +reset_file(ix);@/ +file_rewrite('9'); +read_all_entries; +close(ix_file); +close(sort_file); +@@/ +reset_file('9'); +file_rewrite(ix); +build_sorted_index; +close(ix_file); {ix\_file now has the index to be run through \TeX} +end. +@z + + +@x line 1558 +sort_rc:integer; +@y +sort_rc:integer; +@!ix:char; +@z + + +@x line 1565 +plsort(sort_rc); +if sort_rc = 0 + then writeln(messages,'Index Successfully Completed') + else writeln(messages,'Index Failed'); +@y +vmssort(sort_rc); +if odd(sort_rc) + then writeln(messages,'Index Successfully Completed') + else writeln(messages,'Index Failed'); +@z diff --git a/macros/text1/vax_vms/texix_vms.readme b/macros/text1/vax_vms/texix_vms.readme new file mode 100644 index 0000000000..1bc62ad50d --- /dev/null +++ b/macros/text1/vax_vms/texix_vms.readme @@ -0,0 +1,12 @@ +To create a new application on VMS for the TEXT1 sorted index, you +must TANGLE the TEXIX.WEB file (found in the directory TEXIX) with the +TEXIX.CH changes file in this directory. Then compile the program with Pascal. +You must also compile VMSSORT with Pascal. +This is all done for you with the COMPILE_TEXIX.COM procedure. +The resulting TEXIX.EXE can be run by saying: + + $ RUN TEXIX + +It will ask for index level 1, 2, or 3. Usually "1" is used, which corresponds +to the index file TEXT1$$.IX1 which was created by running TEXT1 on your TEX +file. diff --git a/macros/text1/vax_vms/vmssort.pas b/macros/text1/vax_vms/vmssort.pas new file mode 100644 index 0000000000..064cef2593 --- /dev/null +++ b/macros/text1/vax_vms/vmssort.pas @@ -0,0 +1,78 @@ +[environment('sortcall')] + +module vmssort(output); +procedure vmssort(var sort_rc:integer); +label RETURN; + +const + max_pn_alpha=20; + max_field = 300; + SS$_NORMAL = 1; + DSC$K_DTYPE_L = 8; (* Longword Integer. 32-bit signed *) + DSC$K_DTYPE_T = 14; (* Character-coded text. A single 8-bit character *) + sor$gk_record = 1; + +type + word_integer = [word] 0..65535; + byte_integer = [byte] 0..255; + pn_alpha_type=packed array[1..max_pn_alpha] of char; + field_array = packed array[1..max_field] of char; + field_type = packed record + field_lngth :integer; + field_level :field_array; + end; + sort_type = packed record + record_type :char; + page_number :integer; + abs_page_number :integer; + page_string :pn_alpha_type; + sort_part :packed array[1..3] of field_type; + print :packed array[1..3] of field_type; + end; + + +var + sort_stat: integer; + key_info:array[1..21] of word_integer + := (5,DSC$K_DTYPE_T,0,33,300, + DSC$K_DTYPE_T,0,337,300, + DSC$K_DTYPE_T,0,641,300, + DSC$K_DTYPE_L,1,5,4, + DSC$K_DTYPE_L,0,1,4); + vmssort_type:byte_integer := sor$gk_record; + + +function sor$pass_files( + in_file: [class_s] packed array [l..u:integer] of char; + out_file: [class_s] packed array [a..b:integer] of char) + : integer; extern; + +function sor$begin_sort( + %REF key_data: array [l..u:integer] of word_integer; + long_rec: word_integer := %IMMED 0; + options: integer := %IMMED 0; + in_file_size: integer := %IMMED 0; + user_compare: integer := %IMMED 0; + user_equal: integer := %IMMED 0; + s_type: byte_integer; + work_files: byte_integer := %IMMED 0; + context : integer := %IMMED 0): integer; extern; + +function sor$sort_merge: integer; extern; + +function sor$end_sort: integer; extern; + +begin + sort_stat:=sor$pass_files(in_file:='TEXT1$$.INSORT', + out_file:='TEXT1$$.OUTSORT'); + if not odd(sort_stat) then goto RETURN; + sort_stat:=sor$begin_sort(key_data:=key_info, + s_type:=vmssort_type); + if not odd(sort_stat) then goto RETURN; + sort_stat:=sor$sort_merge; + if not odd(sort_stat) then goto RETURN; + sort_stat:=sor$end_sort; +RETURN: + sort_rc:=sort_stat; +end; +end. -- cgit v1.2.3